Upload
internet
View
110
Download
1
Embed Size (px)
Citation preview
UDESC - Prof. Juliano Maia 1
Algoritmos
UDESC - Prof. Juliano Maia 2
Índice
Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação de
Algoritmos
UDESC - Prof. Juliano Maia 3
IntroduçãoSeção 1
Definição Algoritmos Características Algoritmos Definição Programa
UDESC - Prof. Juliano Maia 4
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 5
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 6
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 7
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 8
Programa
Um programa de computador nada mais é que um algoritmo escrito numa forma compreensível pelo computador.
UDESC - Prof. Juliano Maia 9
Estruturas de ControleSeção 2
Estrutura Seqüencial Estruturas de Seleção Estruturas de Repetição
UDESC - Prof. Juliano Maia 10
Estrutura Seqüencial Esta estrutura representa a
seqüência de execução dos comandos de um algoritmo:
Comando 1Comando 2 ::Comando N
UDESC - Prof. Juliano Maia 11
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 12
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:ParaEnquantoFaça Enquanto
UDESC - Prof. Juliano Maia 13
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 14
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 15
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 16
Representação de AlgoritmosSeção 3
Descrição Narrativa Fluxograma Pseudocódigo
UDESC - Prof. Juliano Maia 17
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 18
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 19
Desvantagens
UDESC - Prof. Juliano Maia 20
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 21
Fluxograma
Representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos.
UDESC - Prof. Juliano Maia 22
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 23
Exemplo
UDESC - Prof. Juliano Maia 24
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 25
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 26
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 27
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 28
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 29
Exemplo Algoritmo Media-AlunoIní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_SeFim
UDESC - Prof. Juliano Maia 30
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 31
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 32
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 33
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 34
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 “+”