27
Introdução à Lógica Regis Pires Magalhães [email protected] Última atualização em 20/04/2007

Logica Algoritmo 02 Algoritmo

Embed Size (px)

Citation preview

Page 1: Logica Algoritmo 02 Algoritmo

Introdução à Lógica

Regis Pires Magalhã[email protected]

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

Page 2: 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.

Page 3: Logica Algoritmo 02 Algoritmo

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.

Page 4: Logica Algoritmo 02 Algoritmo

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.

Page 5: Logica Algoritmo 02 Algoritmo

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.

Page 6: Logica Algoritmo 02 Algoritmo

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

Page 7: Logica Algoritmo 02 Algoritmo

Fases do Algoritmo

Page 8: Logica Algoritmo 02 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.

Page 9: Logica Algoritmo 02 Algoritmo

Fases da Programação

Page 10: Logica Algoritmo 02 Algoritmo

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.

Page 11: Logica Algoritmo 02 Algoritmo

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.

Page 12: Logica Algoritmo 02 Algoritmo

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

Page 13: Logica Algoritmo 02 Algoritmo

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”.

Page 14: Logica Algoritmo 02 Algoritmo

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

Page 15: Logica Algoritmo 02 Algoritmo

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

Page 16: Logica Algoritmo 02 Algoritmo

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????

Page 17: Logica Algoritmo 02 Algoritmo

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

Page 18: Logica Algoritmo 02 Algoritmo

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.

Page 19: Logica Algoritmo 02 Algoritmo

Principais símbolos usados em Fluxogramas

Page 20: Logica Algoritmo 02 Algoritmo

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

Page 21: Logica Algoritmo 02 Algoritmo

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.

Page 22: Logica Algoritmo 02 Algoritmo

Diagrama de Chapin

Page 23: Logica Algoritmo 02 Algoritmo

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.

Page 24: Logica Algoritmo 02 Algoritmo

Pseudocódigo

Algoritmo <nome_do_algoritmo>

<declaração_de_variáveis>

<subalgoritmos>

Início

<corpo_do_algoritmo>

Fim.

Page 25: Logica Algoritmo 02 Algoritmo

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.

Page 26: Logica Algoritmo 02 Algoritmo

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

Page 27: Logica Algoritmo 02 Algoritmo

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