Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 ALGORITMOS 30h EMENTA • Estudo, desenvolvimento e implementação de algoritmos estruturados aplicados. Tipos de dados, variáveis e comandos. OBJETIVOS • Fornecer noções de informática, desenvolvimento de algoritmos estruturados e suas implementações em linguagem de programação estruturada. HABILIDADES • Raciocínio lógico, resolução de problemas e capacidade de abstração da solução em uma representação formal e/ou em uma linguagem computacional. AVALIAÇÃO • Frequência >= 75% • Média = (N1+N2)/2 2 Referências Bibliográficas • TOSCANI, Laira Vieira; VELOSO, Paulo A. S. INSTITUTO DE INFORMÁTICA DA UFRGS. Complexidade de algoritmos : Laira Vieira Toscani, Paulo A. S. Veloso. Porto Alegre: Bookman, 2008. 261 p. (Livros didáticos ; n. 13) ISBN 9788577803507. • LOUDON, Kyle. Dominando algoritmos com C. Rio de Janeiro: Ciência Moderna, 2000. xvi, 580 p. + 1 CD-ROM ISBN 8573930764. • DEITEL. Programação C. • Auraújo, Rogério. LÓGICA DE PROGRAMAÇÃO. 3 PRIMEIRO COMPUTADOR - ENIAC 4 Em 1943 durante a II guerra mundial foi desenvolvido o ENIAC,que pesava 30 toneladas e tinha 5,5 metros de altura, 25 metros de comprimento , 70 mil resistores e 17.468 válvulas. ARQUITETURA SIMPLIFICADA 5 ARQUITETURA DE UM COMPUTADOR 6 ARQUITETURA VON NEUMANN x HARVARD 7 Von Neumann •Arquitetura mais simples •Mais lento pois não permite acesso simultâneo às memórias •Geralmente CISC •Exemplos: 4004(46 instruções), 8080(78 instruções), 8051(111 •Instruções), 8085(150 instruções), Z80(Mais de 500 instruções) Harvard •Arquitetura mais complexa •Mais rápido, pois permite acesso simultâneo às memórias •Geralmente RISC •Permpite Pepelining •Exemplos: Intel 8086, 8088, Microchip PIC(35 instruções) ELABORAÇÃO DE UM PROGRAMA 8 Problem a Análise AlgoritmoPrograma PROCESSO DE GERAÇÃO DE UM PROGRAMA • Análise do problema: – Ler atentamente o enunciado do problema até entendê-lo bem – Identificar os dados de entrada – Identificar as saídas (resultados esperados) – O que o programa deve fazer (seu objetivo), isto é, como transformar as entradas em saídas – Identificar se existem valores ou dados intermediários, necessários para transformar entradas em saídas 9 10 • LÓGICA DE PROGRAMAÇÃO: – Técnica de encadear pensamentos para atingir determinado objetivo – Necessária para desenvolver programas e sistemas, pois permite definir a seqüência lógica para a solução de um problema • SEQÜÊNCIA LÓGICA: 1. 2. 3. – Passos executados até se atingir o objetivo ou solução de um problema – Podem ser descritos como uma seqüência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa 11 • INSTRUÇÃO: – Cada um dos passos, cada uma das ações a tomar (obedecendo a seqüência lógica) para ir resolvendo o problema, ou para ir executando a tarefa – Em informática, é a informação que indica a um computador uma operação elementar a executar • Ex.: “somar”, “subtrair”, “comparar se é maior”, etc – Uma só instrução não resolve problemas reais – Executar um conjunto de instruções – Executar em uma seqüência lógica 12 • EXEMPLO: para “fazer omelete” – Instruções: “quebrar ovos”, “bater ovos”, “pôr sal”, “ligar fogão”, “pôr óleo na frigideira”, “pôr frigideira no fogo”, “fritar ovos batidos”, etc... • Quanto às instruções isoladas: – Só “quebrar ovos”, ou só “pôr óleo na frigideira”, não é suficiente para cumprir a tarefa “fazer omelete” • Quanto à seqüência lógica: – Se executarmos “fritar ovos batidos” antes de “bater ovos”, ou pior, antes de “quebrar ovos”, não iremos cumprir a tarefa “fazer omelete” 13 • ALGORITMO: – Seqüência finita de passos que levam à execução de uma tarefa – Claro e preciso. Ex. “somar dois números”: • Escrever primeiro número no retângulo A • Escrever segundo número no retângulo B • Somar o número do retângulo A com o número do retângulo B e escrever o resultado no retângulo C A B C + = 14 Exemplo de algoritmo (Descrição Narrativa) Quando uma dona de casa prepara um bolo, segue uma receita, que nada mais é do que um algoritmo em que cada instrução é um passo a ser seguido para que o prato fique pronto com sucesso: 1. Bata 4 claras em neve 2. Adicione 2 xícaras de açúcar 3. Adicione 2 colheres de farinha de trigo, 4 gemas, uma colher de fermento e duas colheres de chocolate 4. Bata por 3 minutos 5. Unte uma assadeira com margarina 6. Coloque o bolo para assar por 20minutos a 200 graus C 15 Exemplo de algoritmo Um motorista que necessita efetuar a troca de um pneu furado segue uma rotina para realizar essa tarefa: 1. Verifica qual pneu está furado 2. Posiciona o macaco e levanta o carro 3. Solta os parafusos 4. Pega o estepe 5. Substitui o pneu furado 6. Recoloca os parafusos 7. Desce o carro 8. Guarda o macaco e o pneu furado 16 • PROGRAMA: – Algoritmo escrito em uma linguagem de computador (linguagem de programação - C, Pascal, COBOL, Fortran, Basic, Java, etc.) – Interpretado e executado por um computador – Interpretação rigorosa, exata, do computador escrita do algoritmo na linguagem de prog. tem que seguir regras mais rigorosas 17 • PSEUDOCÓDIGO: – Facilita descrever o algoritmo antes de passá-lo para uma linguagem de programação – Intermediária: linguagem natural – linguagem de programação • FLUXOGRAMA: – É uma forma universal de representação, que se utiliza de figuras geométricas para ilustrar passos a serem seguidos para a resolução de problemas Tipos de algoritmos 18 – Descrição do algoritmo, menos rigorosa que na linguagem de programação (código fonte) – Fácil de entender e fácil de codificar depois – Independente da linguagem de programação – Simples e objetivo PSEUDOCÓDIGO 19 Observação: Vamos utilizar, em nossos exemplos, a notação utilizada na ferramenta VisuAlg. algoritmo "Média" //aqui, definimos o nome do algoritmo. var//início das declarações das variáveis. nota1 : real//aqui, é definida a entrada da primeira nota do aluno. nota2 : real// aqui, é definida a entrada da segunda nota do aluno. media : real//declaração da variável em que será armazenado o resultado do cálculo da média. Inicio //início do bloco de execução (local onde instruímos o computador a executar os comandos). escreva ("Digite o valor da primeira nota: ") //o programa exibe na tela o texto entre aspas. leia (nota1) // o programa lê o que o usuário escreveu: a primeira nota escreva ("Digite o valor da segunda nota: ") //o programa exibe na tela o texto entre aspas. leia (nota2) // o programa lê o que o usuário escreveu: a segunda nota media <- (nota1 + nota2)/2 //é realizado o cálculo da média. escreva ("A média do aluno é: ", media) //o valor encontrado é exibido na tel. fimalgoritmo //fim do algoritmo. PSEUDOCÓDIGO - EXEMPLO FLUXOGRAMA 20 ALGORITMO PARA CALCULAR A MÉDIA ARITMÉTICA DE UM ALUNO 21 • FASES para desenvolver o algoritmo: – Determinar o problema, definí-lo (entendê-lo) bem – Dividir a solução nas três fases: • Exemplo: – Problema: calcular a média de quatro números – Dados de entrada: os números N1, N2, N3 e N4 – Processamento: somar os quatro números e dividir a soma por 4 – Dado de saída: a média final ENTRADA PROCESSAMENTO SAÍDA N1 + N2 + N3 + N4 4 22 • Algoritmo: – Início – Ler o primeiro número – Ler o segundo número – Ler o terceiro número – Ler o quarto número – Somar todos os números – Dividir a soma por 4 – Mostrar o resultado da divisão – Fim 23 Variável – Representa uma posição na memória, onde pode ser armazenado um dado – Possui um nome e um valor – Durante a execução do algoritmo, pode ter seu valoralterado (seu valor pode variar) – Mudanças no valor das variáveis: • Por entrada de dados (“Ler N1”) • Por atribuição (“N2 14”) 24 • Exemplo SEQÜENCIAL: “Calcular a média de quatro números” – PSEUDOCÓDIGO: Ler N1 Ler N2 Ler N3 Ler N4 MEDIA (N1+N2+N3+N4) / 4 Mostrar MEDIA VARIÁVEL VARIÁVEIS: mais clareza no pseudocódigo Expressão usando as variáveis 25 Atribuição • Atribui o valor da direita à variável da esquerda • O valor pode ser uma constante, uma variável ou uma expressão – MEDIA (N1+N2+N3+N4) / 4 – (Lê-se media recebe N1+...) • Neste caso, estamos atribuindo o resultado da fórmula à variável MEDIA, ou seja, a variável MEDIA está recebendo como valor o resultado da fórmula • Outros Exemplos: – a 3; – a x; 26 Operadores Aritméticos Exemplos: MEDIA = (N1+N2+N3+N4) / 4 X 1 + 7 * 2 ** 2 - 1 Total preço * quantidade Y 3*(1-2)+4*2 27 TESTE DE MESA • Todo algoritmo deve ser testado • Usar dados e resultados previamente calculados, seguir precisamente as instruções do algoritmo e verificar se o procedimento está correto ou não Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27
Compartilhar