Logica Algoritmo 02-Algoritmo
-
Upload
regis-pires-magalhaes -
Category
Documents
-
view
1.686 -
download
2
Transcript of Logica Algoritmo 02-Algoritmo
Algoritmo• A palavra algoritmo tem origem no sobrenome, Al-Khwarizmi,
do matemático persa do século IX Mohamed ben Musa, cujas obras foram traduzidas no ocidente cristão no século XII, tendo uma delas recebido o nome "Algorithmi de numero indorum", sobre os algoritmos usando o sistema de numeração decimal (indiano).
• Outros autores, contudo, defendem a origem da palavra em Al-goreten (raiz - conceito que se pode aplicar aos cálculos).
• Segundo o dicionário Aurélio, o termo algoritmo é oriundo do idioma Latim das palavras algorismos ou algorithmos, que representam o conceito de algarismo. Este termo teve influência do idioma Grego através da palavra arithmós, que representa número.
Algoritmo• Matemática
– Descreve o processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, regras formais para a obtenção do resultado, ou da solução do problema.
• Computação– Descreve o conjunto predeterminado e bem definido de
regras e processos destinados à solução de um problema, com um número finito de etapas.
– O conceito de programação está profundamente vinculado ao conceito de algoritmos.
Algoritmo• Um algoritmo poderia ser grosseiramente comparado a
uma receita culinária.
• Uma receita é um programa de atividades que deve ser respeitada e cumprida passo-a-passo. Caso um dos passos seja desconsiderado, a receita não dará certo.
• Eles podem repetir passos (fazer iterações) ou necessitar de decisões (tais como comparações ou lógica) até que a tarefa seja completada.
• Um algoritmo não representa, necessariamente, um programa de computador, e sim os passos necessários para realizar uma tarefa.
Algoritmo• Algoritmo não é a solução do problema, pois, se
assim fosse, cada problema teria um único algoritmo.
• Algoritmo é um caminho para a solução de um problema.
– Em geral, os caminhos que levam a uma solução são muitos.
Por que usar algoritmos? • Abstração - todo o esforço é concentrado na
resolução do problema e não em detalhes computacionais que podem ser acrescentados posteriormente
• Portabilidade - uma solução algorítmica pode ser traduzida para qualquer linguagem de programação
Fases do Algoritmo
Processamento de Dados• Processamento de Dados é qualquer atividade
que, utilizando informações (ou dados), efetua transformações para obter novas informações (ou dados) como resultado.
Fases da Programação
Representação de Algoritmos• Existem diversas formas de representação de algoritmos,
mas não há um consenso com relação à melhor delas.
• Algumas formas de representação de algoritmos tratam dos problemas apenas em nível lógico, abstraindo-se de detalhes de implementação muitas vezes relacionados com alguma linguagem de programação específica.
• Por outro lado, existem formas de representação de algoritmos que possuem uma maior riqueza de detalhes e muitas vezes acabam por obscurescer a idéia principal, o algoritmo, dificultando seu entendimento.
Representação de Algoritmos• Dentre as formas de representação de algoritmos
mais conhecidas, sobressaltam:
– Descrição Narrativa
– Fluxograma Convencional
– Diagrama de Chapin
– Pseudocódigo, também conhecido como Português Estruturado ou Portugol.
Descrição Narrativa• Nesta forma de representação os algoritmos são
expressos diretamente em linguagem natural.• Exemplo:
Troca de um pneu furado• 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
Descrição Narrativa• Desvantagens:
– Esta representação é pouco usada na prática porque o uso de linguagem natural muitas vezes dá oportunidade a más interpretações, ambigüidades e imprecisões.
– Por exemplo, a instrução “afrouxar ligeiramente as porcas” no algoritmo da troca de pneus está sujeita a interpretações diferentes por pessoas distintas.
• Uma instrução mais precisa seria:“afrouxar a porca, girando-a de 30º no sentido anti-horário”.
Descrição Narrativa• Problema: Calcular a média final dos alunos. Os
alunos realizarão quatro provas: P1, P2, P3 e P4, onde:– MF = (P1 + P2 + P3 +P4) / 4
• Algoritmo:– Receba a nota da prova1– Receba a nota de prova2– Receba a nota de prova3– Receba a nota da prova4– Some todas as notas e divida o resultado por 4– Mostre o resultado da divisão
Descrição NarrativaAlgoritmo Trocar uma lâmpada queimada
• pegar uma escada
• posicionar a escada debaixo da lâmpada
• buscar uma lâmpada nova
• subir na escada
• retirar a lâmpada queimada
• colocar lâmpada nova
Descrição Narrativa• O algoritmo não atingirá seu objetivo se a lâmpada nova estiver
queimada. Para tal, acrescentamos um teste condicional (estrutura seletiva). – pegar uma escada– posicionar a escada debaixo da lâmpada– buscar uma lâmpada nova– subir na escada– retirar a lâmpada queimada– colocar lâmpada nova– se a lâmpada nova não acender, então:
• retirar a lâmpada queimada• colocar lâmpada nova• se a lâmpada nova não acender, então:
– retirar a lâmpada queimada– colocar a lâmpada nova– se a lâmpada nova não acender, então:
» retirar a lâmpada queimada» colocar a lâmpada nova
. . .
até quando????
Descrição NarrativaAlgoritmo Trocar uma lâmpada queimada com o
uso de estruturas de repetição• pegar uma escada• posicionar a escada debaixo da lâmpada• buscar uma lâmpada nova• subir na escada• retirar a lâmpada queimada• colocar lâmpada nova• enquanto lâmpada nova não acender, faça:
– retirar a lâmpada queimada– colocar lâmpada nova
Fluxograma
• É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações distintas.
• Objetivo: Facilitar o entendimento das idéias contidas nos algoritmos.
Principais símbolos usados em Fluxogramas
Fluxograma
Cálculo da média de um aluno:
– Obter as notas da primeira e da segunda prova
– Calcular a média aritmética entre as duas
– Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele foi reprovado
Diagrama de Chapin• Diagrama criado por Ned Chapin a partir de trabalhos de
Nassi-Shneiderman, para substituição do fluxograma tradicional por um diagrama que apresenta uma visão hierárquica e estruturada da lógica do programa.
• Representa as estruturas que tem um ponto de entrada e um ponto de saída e são compostas pelas estruturas básicas de controle de seqüência, seleção e repetição.
• Enquanto é difícil mostrar o embutimento e a recursividade com o fluxograma tradicional, torna-se mais simples mostrá-lo com o diagrama de Chapin, bem como codificá-lo futuramente em pseudocódigo.
Diagrama de Chapin
Pseudocódigo• Também conhecido como português
estruturado ou portugol.• Bastante rico em detalhes e, por assemelhar-se
bastante à forma em que os programas são escritos, encontra muita aceitação.
• Representação suficientemente geral para permitir que a tradução de um algoritmo nela representado para uma linguagem de programação específica seja praticamente direta.
Pseudocódigo
Algoritmo <nome_do_algoritmo>
<declaração_de_variáveis>
<subalgoritmos>
Início
<corpo_do_algoritmo>
Fim.
PseudocódigoAlgoritmo Media
Var N1, N2, Media : real
Início
Leia N1, N2
Media (N1+N2)/2
Se Media >= 7 Entao
Escreva "Aprovado"
Senao
Escreva "Reprovado"
Fim.
PseudocódigoCalcular a área de uma mesa retangular
Algoritmo AreaRetangulo
Var comprimento, largura, area : real
Início
leia comprimento
leia largura
area comprimento * largura
imprima 'Área igual a', area
Fim
PseudocódigoCalcular o preço de uma passagem de ônibus
Algoritmo PassagemOnibusVar idade : inteiro preco : real Inícioleia idadeleia precose idade < 65 então
imprima 'Preço é ', precosenão
imprima 'Grátis'fimse
Fim