Algoritmos UDESC - Prof. Juliano Maia 1 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação de Algoritmos UDESC - Prof. Juliano Maia 2 Introdução Seção 1 Definição Algoritmos Características Algoritmos Definição Programa UDESC - Prof. Juliano Maia 3 Uma Receita de bolo! Misture os ingredientes Unte a forma com manteiga Despeje a mistura na forma Se forno convencional, asse por 45 minutos em temperatura de 180 graus Se forno microondas, asse por 30 minutos em temperatura alta Retire a forma do forno UDESC - Prof. Juliano Maia 4 Conceitos comuns “Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico” “Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema” UDESC - Prof. Juliano Maia 5 Conceitos comuns “Seqüência ordenada de passos que deve ser seguida para a realização de uma tarefa, garantindo a sua repetibilidade.” UDESC - Prof. Juliano Maia 6 Características de um Algoritmo Ter fim Não dar margem à dupla interpretação (não ambíguo) Capacidade de receber dado(s) de entrada do mundo exterior Poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo UDESC - Prof. Juliano Maia 7 Programa Um programa de computador nada mais é que um algoritmo escrito numa forma compreensível pelo computador. UDESC - Prof. Juliano Maia 8 Estruturas de Controle Seção 2 Estrutura Seqüencial Estruturas de Seleção Estruturas de Repetição UDESC - Prof. Juliano Maia 9 Estrutura Seqüencial Esta estrutura representa a seqüência de execução dos comandos de um algoritmo: Comando 1 Comando 2 :: Comando N UDESC - Prof. Juliano Maia 10 Estruturas de Seleção Estas estruturas subordinam a execução de um comando, ou bloco de comandos, à veracidade ou não de uma condição lógico relacional. Se <condição> :: Senão :: Fim_Se UDESC - Prof. Juliano Maia 11 Estruturas de Repetição Estas estruturas permitem a repetição de um comando, ou bloco de comandos, um número determinado de vezes ou tantas vezes quantas uma condição lógica permita, são elas: Para Enquanto Faça Enquanto UDESC - Prof. Juliano Maia 12 Estrutura Para Nesta estrutura a repetição acontece um número determinado de vezes, de forma automática. Para contador = 1 Até N :: Fim_Para UDESC - Prof. Juliano Maia 13 Estrutura Enquanto Nesta estrutura a repetição acontece enquanto uma condição lógica relacionada for verdadeira, após a verificação desta condição. Enquanto <condição> :: Fim_Enquanto UDESC - Prof. Juliano Maia 14 Estrutura Faça Enquanto Nesta estrutura a repetição acontece enquanto uma condição lógica relacionada for verdadeira, antes da verificação desta condição. Faça :: Enquanto <condição> UDESC - Prof. Juliano Maia 15 Representação de Algoritmos Seção 3 Descrição Narrativa Fluxograma Pseudocódigo UDESC - Prof. Juliano Maia 16 Descrição Narrativa Representação de algoritmos diretamente em linguagem natural, o português. Cálculo da média de um aluno Obter notas da primeira e segunda provas Calcular a média aritmética entre as duas provas Se a média for maior que 7, o aluno foi aprovado, senão ele foi reprovado UDESC - Prof. Juliano Maia 17 Desvantagens Sujeito a más interpretações, ambigüidades e imprecisões: Maria toma banho porque sua mãe disse ela traga a toalha. Maria toma banho porque sua. Mãe, disse ela, traga a toalha. UDESC - Prof. Juliano Maia 18 Desvantagens UDESC - Prof. Juliano Maia 19 Exercício Proposto Crie um algoritmo em descrição narrativa com o objetivo de trocar um pneu de carro. Seja detalhista! UDESC - Prof. Juliano Maia 20 Fluxograma Representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos. UDESC - Prof. Juliano Maia 21 Símbolos de representação Início e final do fluxograma Operação de entrada de dados Operação de saída de dados Operação de atribuição e controle subalgoritmo Decisão UDESC - Prof. Juliano Maia 22 Exemplo UDESC - Prof. Juliano Maia 23 Conceito de variável Nota1, Nota2 e média são variáveis. Variável: entidade destinada a armazenar (espaço de memória) uma informação. UDESC - Prof. Juliano Maia 24 Vantagens e Desvantagens Padrão mundial Figuras representam melhor que palavras Representação conhecida e reconhecida Trabalhoso e complicado a medida que o algoritmo cresce UDESC - Prof. Juliano Maia 25 Exercício Exemplo Faça um algoritmo que escreva 100 vezes o texto “Não vou fazer mais bagunça”, utilizando um comando de repetição. UDESC - Prof. Juliano Maia 26 Exercício Exemplo Faça um algoritmo (representação fluxograma) que leia uma lista de números inteiros positivos terminada pelo número 0 (zero). Ao final, o algoritmo deve mostrar a média aritmética de todos os números lidos (excluindo o zero). UDESC - Prof. Juliano Maia 27 Pseudocódigo Representação de algoritmos através de uma pseudolinguagem de programação, cujos comandos são em português. UDESC - Prof. Juliano Maia 28 Exemplo Algoritmo Media-Aluno Início Var nota1, nota2, media Leia nota1 e nota2 media = (nota1 + nota2) / 2 Se media >= 7 Então Escreva “APROVADO” Senão Escreva “REPROVADO” Fim_Se Fim UDESC - Prof. Juliano Maia 29 Variáveis e Comandos Comandos: Início, Var, Leia, Se ... Então ... Senão ... Fim_se, Escreva, Fim. Variáveis: nota1, nota2, media UDESC - Prof. Juliano Maia 30 Operadores Operadores aritméticos Operadores relacionais +, -, *, /, %, ** >, >=, <, <=, ==, != Atenção: = representa uma atribuição e não uma comparação. Operadores lógicos || (OU), && (E), ! (NÃO) UDESC - Prof. Juliano Maia 31 Vantagens e Desvantagens Usa o português como base Pode-se definir quais e como os dados serão estruturados Rápida codificação do algoritmo Não padronizado UDESC - Prof. Juliano Maia 32 Exercício Num frigorífico existem 90 bois. Cada boi traz preso em seu pescoço um cartão contendo seu número de identificação e seu peso. Faça um algoritmo (representação pseudocódigo) que escreva o número e o peso do boi mais gordo e do boi mais magro (supondo que não haja empates). UDESC - Prof. Juliano Maia 33 Exercício Proposto Faça um algoritmo que calcule a multiplicação de dois números inteiros sem utilizar o operador “*”. Utilize apenas o operador “+” UDESC - Prof. Juliano Maia 34