Introdução à Programação Prof. Gustavo Callou gustavo.callou@ufrpe.br gcallou@gmail.com
Roteiro Apresentações; A disciplina: Objetivos; Cronograma; Avaliação; O que é Computação; Breve histórico. Gustavo Callou DEINFO/UFRPE 2
Nos conhecendo Quem são vocês? Experiências? Expectativas? 3
Apresentação Disciplina: Introdução à Programação Professor: Gustavo Callou Carga Horária: 90h Horário: Seg 20h 10 Qua 18h 30 Sex 18h 30 Site: Site: www.cin.ufpe.br/~grac/ip AVA 4
Do que se trata esta disciplina? 5
Ementa Fundamentos da construção de algoritmos e programas; Ambientes de programação: uso de uma linguagem de programação; Conceitos básicos: variáveis, operadores e expressões, estruturas de controle (atribuição, seleção, repetição); Dados estruturados; Subprogramas: funções, procedimentos; Parâmetros locais e globais; Recursão; Ponteiro; e Manipulação de Arquivos.
Ementa Algoritmos Pesquisa sequencial e binária bublesort inserção shellsort heapsort quicksort. Noções de Complexidade e Paradigmas de Programação Notação o, O, Ω e Ө. Introdução a programação orientada a objetos. Projeto de Implementação 18:37 Gustavo Rau de Almeida Callou 7
Objetivos da Disciplina Capacitar o aluno a projetar e implementar soluções que envolvam os elementos básicos da construção de algoritmos e programas de computador. Ajudar os alunos a desenvolver os conhecimentos, habilidades e atitudes necessárias para as futuras disciplinas. Gustavo Callou DEINFO/UFRPE 8
Cronograma Conteúdo Data Conteúdo 1 Apresentação da disciplina e Introdução a algoritmos 2 Algoritmos - Ling de Programação 3 Comandos Básicos 4 Estrutura de controle IF e exercícios 5 Laço While 6 Exercícios While 7 Laço For 8 Exercícios de For e While 9 Array unidimensional (vetor) 10 Exercícios de vetor 11 Array bidimensional (matriz) 12 Exercícios de Arrays Bidimensionais 13 lista de exercícios 14 Exercícios 15 Exercícios 16 Arquivos 17 Exercício de Arquivos 18 Lista de exercícios 9
Cronograma(cont.) 19 Exercícios 20 Revisão 21 Primeira Avaliação 22 Resolução da prova 23 Definição de Subprogramas 24 Exercícios de subprogramas 25 Regras de Escopo e Escopo em Funções Aninhadas 26 Exercícios 27 Passagem de Argumentos e exercícios 28 Definição dos projetos 29 Acompanhamento projeto 30 Pesquisa sequencial e binária 31 Ordenação por Inserção e Seleção 32 Acompanhamento projeto 33 Bublesort 34 Shellsort 35 Quicksort 10
Cronograma(cont.) 36 Acompanhamento projeto 37 Introdução a Orientação a Objetos 38 Introdução a Orientação a Objetos 39 Orientação a Objetos e Exercícios 40 Exercícios 41 Acompanhamento projeto 42 Acompanhamento projeto 43 Apresentação dos Projetos 44 Apresentação dos Projetos 45 Segunda Avaliação Terceira Avaliação Final 11
Avaliação (1/2) Provas discursivas e listas de exercício. Avaliação individual. Primeira Avaliação: 1VA = Prova + 1 ponto extra de listas de exercício; Segunda Avaliação: 2VA = 0,7.Prova + 0,3.Lista de Exercicios (Projeto); Terceira Avaliação: 3VA = Prova (todo o conteúdo). Gustavo Callou DEINFO/UFRPE 12
Avaliação (2/2) Média Parcial (MP): média aritmética entre as duas maiores notas entre 1VA, 2VA e 3VA Verificação Final: VF = Prova (todo conteúdo) Média Final (MF): MF = (MP + VF)/2 Serão realizadas provas discursivas, individuais e sem consulta, em sala de aula abordando os tópicos relativos às 1VA, 2VA e 3VA. Na Final será apenas realizada prova discursiva em sala de aula. Gustavo Callou DEINFO/UFRPE 13
Compromissos Presença; Horários; Avaliações; Fila. Gustavo Callou DEINFO/UFRPE 14
BIBLIOGRAFIA ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da Programação de Computadores. 2. ed. Editora Pearson, 2008. Lopes, Anita e Garcia, Guto. Introdução à Programação. Editora Campus, 2002. Albano, R., Albano, S. Programação em Linguagem C. Editora Ciência Moderna. Lopes, Anita e Garcia, Guto. Introdução à Programação: 500 Algoritmos Resolvidos. Editora Campus, 2002. SCHILD, Herbert. C, completo e total. 3. ed. rev. e atual. Tradução Roberto Carlos Mayer. S334c. São Paulo: Makron, c1996; Cormen, Thomas H. et. al. Algoritmos: Teoria e Prática. Editora Campus, 2002. Ziviani, Nivio. Projeto de Algoritmos. Editora Nova Fronteira, 2004. Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001.
Contato Comunicações durante a disciplina: Materiais: Site: www.cin.ufpe.br/~grac/ip Grupo do Facebook: IPUFRPE2017.1 Contato com o professor: email: gustavo.callou@ufrpe.br gcallou@gmail.com Skype: gustavo.callou 16
Dúvidas? Sugestões? 17
Introdução a algoritmos 18
Tópicos Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador Ambiente de Desenvolvimento 19
Algoritmo Conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico. Knuth, 1972. Seqüencia ordenada, e não ambígua, de passos que levam à solução de um dado problema. Tremblay, 1983. Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, as regras formais para a obtenção do resultado ou da solução do problema. AURÉLIO. 20
Algoritmo Formas de Representação Narrativa: Fluxograma: Pseudocódigo: 21
Algoritmo Formas de Representação Narrativa: uso de português. Fluxograma: símbolos gráficos para representar fases e componentes dos algoritmos. Pseudocódigo: Definição de uma pseudo Linguagem de programação, cujos comandos são em português. 22
Algoritmo Descrição Narrativa Receita de Bolo 23
Algoritmo Descrição Narrativa Receita de Bolo Misture os ingredientes Junte a forma com manteiga Despeje a mistura na forma Se houver coco ralado então despeje sobre a mistura Leve a forma ao forno Enquanto não corar deixe a forma no forno Retire do forno Deixe esfriar 24
Algoritmo Descrição Narrativa Troca de Pneus 25
Algoritmo Descrição Narrativa Troca de Pneus Afrouxar ligeiramente as porcas Suspender o carro Retirar as porcas e o pneu Colocar o pneu reserva Apertar as porcas Abaixar o carro Dar o aperto final nas porcas 26
Algoritmo Descrição Narrativa Média de um aluno 27
Algoritmo Descrição Narrativa Média de um aluno Obter as suas 2 notas de provas Calcular a média aritmética Se a média for maior que 7, o aluno foi aprovado, senão ele foi reprovado 28
Exercícios de Descrição Narrativa Vamos Praticar! 1 - Passos para chegar a UFRPE e assistir aula de introdução a programação. 2 - Passos para comprar algo via internet. 29
Algoritmo Fluxograma : representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos. Símbolos Início e final Processamento Entrada de dados Decisão Saída de dados Conector 30
Algoritmo Início Ler primeiro Número N1 Ler segundo Número N2 D = N1/N2 Não N2=0? sim Exibir na tela: divisão por zero Exibir na tela: valor de D Fim 31
Exercícios Vamos Praticar! 1. Calcular a área de um triângulo retângulo. 2. Verificar se o individuo é maior de idade ou não. 32
Algoritmo Pseudo-Código Programa PDOBRO; Variáveis NUM, DOBRO : inteiros início escreva ( Digite um número: ) Leia (NUM); DOBRO = 2 x NUM; escreva ( O dobro é:, DOBRO); fim 33
Algoritmo Comandos Atribuição : Utilizado para guardar um determinado valor em uma variável. 1. total = 0 2. SOMA = SOMA + 1 3. mensagem = Erro de Digitação! Entrada de Dados : Utilizado para ler dados do usuário, de dispositivos externos, etc. 1. leia(idade) 2. leia( d:\arquivo.txt ) Saída de dados : Utilizado para exibir dados. 1. escreva(idade) 2. escreva( d:\arquivo.txt ) 34
Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Divididas em três tipos, com relação à sua similaridade com a linguagem humana: Linguagem de máquina; Linguagem Simbólica; e Linguagem de Alto Nível (abstrata). 35
Linguagens de Programação Linguagem de Máquina : é a linguagem de mais baixo nível de entendimento pelo ser humano e a única, na verdade, entendida pelo processador (CPU). Constituída inteiramente de números (0 s e 1 s). Uma instrução típica em linguagem de máquina seria algo como: 0100 1111 1010 36
Linguagens de Programação Linguagem Simbólica (assembly): linguagem de nível imediatamente acima da linguagem de máquina. Possui a mesma estrutura e conjunto de instruções que a linguagem de máquina, porém permite que o programador utilize nomes (mnemônicos) e símbolos em lugar de números. Única para cada tipo de CPU. A conversão da linguagem simbólica para a linguagem de máquina se chama montagem, e é feita por um programa chamado montador (assembler). 37
Linguagens de Programação Exemplo de instrução: ADD A, B Classificada como linguagem de segunda geração, e, assim como a linguagem de máquina, é considerada uma linguagem de baixo nível. 38
Linguagens de Programação Linguagens de Alto Nível (abstratas): linguagens de programação que possuem uma estrutura e palavras-chave que são mais próximas da linguagem humana. C, C++, Java, Python, etc... Programas escritos nessas linguagens são convertidos para a linguagem de baixo nível através de um programa denominado compilador ou de um interpretador. 39
Linguagens de Programação Exemplo de instrução de uma linguagem de alto nível: if (A>10) then A:=A-7; 40
Compilador Compilação : transformação de um programa em código fonte (programa escrito pelo programador source language) em linguagem de máquina (programa executável target language). 41
Ambiente de Desenvolvimento 18:38 Gustavo Rau de Almeida Callou 42
Dúvidas? Sugestões? 43