Logica Algoritmo 02-Algoritmo

Post on 08-Jun-2015

1685 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

Transcript

Introdução à Lógica

Regis Pires Magalhãesregis@cefetpi.br

Última atualização em 20/04/2007

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

top related