Logica Algoritmo 02-Algoritmo

  • View
    1.649

  • Download
    2

Embed Size (px)

Transcript

Introduo Lgica

Regis Pires Magalhesregis@cefetpi.brltima atualizao em 20/04/2007

Algoritmo A palavra algoritmo tem origem no sobrenome, AlKhwarizmi, do matemtico persa do sculo IX Mohamed ben Musa, cujas obras foram traduzidas no ocidente cristo no sculo XII, tendo uma delas recebido o nome "Algorithmi de numero indorum", sobre os algoritmos usando o sistema de numerao decimal (indiano). Outros autores, contudo, defendem a origem da palavra em Al-goreten (raiz - conceito que se pode aplicar aos clculos). Segundo o dicionrio Aurlio, o termo algoritmo oriundo do idioma Latim das palavras algorismos ou algorithmos, que representam o conceito de algarismo. Este termo teve influncia do idioma Grego atravs da palavra arithms, que representa nmero.

Algoritmo Matemtica Descreve o processo de clculo, ou de resoluo de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restries, regras formais para a obteno do resultado, ou da soluo do problema.

Computao Descreve o conjunto predeterminado e bem definido de regras e processos destinados soluo de um problema, com um nmero finito de etapas. O conceito de programao est profundamente vinculado ao conceito de algoritmos.

Um algoritmo poderia ser grosseiramente comparado a uma receita culinria. Uma receita um programa de atividades que deve ser respeitada e cumprida passo-a-passo. Caso um dos passos seja desconsiderado, a receita no dar certo. Eles podem repetir passos (fazer iteraes) ou necessitar de decises (tais como comparaes ou lgica) at que a tarefa seja completada. Um algoritmo no representa, necessariamente, um programa de computador, e sim os passos necessrios para realizar uma tarefa.

Algoritmo

Algoritmo Algoritmo no a soluo do problema, pois, se assim fosse, cada problema teria um nico algoritmo. Algoritmo um caminho para a soluo de um problema. Em geral, os caminhos que levam a uma soluo so muitos.

Por que usar algoritmos? Abstrao - todo o esforo concentrado na resoluo do problema e no em detalhes computacionais que podem ser acrescentados posteriormente Portabilidade - uma soluo algortmica pode ser traduzida para qualquer linguagem de programao

Fases do Algoritmo

Processamento de Dados Processamento de Dados qualquer atividade que, utilizando informaes (ou dados), efetua transformaes para obter novas informaes (ou dados) como resultado.

Fases da Programao

Representao de Algoritmos Existem diversas formas de representao de algoritmos, mas no h um consenso com relao melhor delas. Algumas formas de representao de algoritmos tratam dos problemas apenas em nvel lgico, abstraindo-se de detalhes de implementao muitas vezes relacionados com alguma linguagem de programao especfica. Por outro lado, existem formas de representao de algoritmos que possuem uma maior riqueza de detalhes e muitas vezes acabam por obscurescer a idia principal, o algoritmo, dificultando seu entendimento.

Representao de Algoritmos Dentre as formas de representao de algoritmos mais conhecidas, sobressaltam: Descrio Narrativa Fluxograma Convencional Diagrama de Chapin Pseudocdigo, tambm conhecido como Portugus Estruturado ou Portugol.

Descrio Narrativa Nesta forma de representao os algoritmos so 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

Descrio Narrativa Desvantagens: Esta representao pouco usada na prtica porque o uso de linguagem natural muitas vezes d oportunidade a ms interpretaes, ambigidades e imprecises. Por exemplo, a instruo afrouxar ligeiramente as porcas no algoritmo da troca de pneus est sujeita a interpretaes diferentes por pessoas distintas. Uma instruo mais precisa seria: afrouxar a porca, girando-a de 30 no sentido antihorrio.

Descrio Narrativa Problema: Calcular a mdia final dos alunos. Os alunos realizaro 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 diviso

Descrio NarrativaAlgoritmo Trocar uma lmpada queimada pegar uma escada posicionar a escada debaixo da lmpada buscar uma lmpada nova subir na escada retirar a lmpada queimada colocar lmpada nova

Descrio Narrativa O algoritmo no atingir seu objetivo se a lmpada nova estiver queimada. Para tal, acrescentamos um teste condicional (estrutura seletiva). pegar uma escada posicionar a escada debaixo da lmpada buscar uma lmpada nova subir na escada retirar a lmpada queimada colocar lmpada nova se a lmpada nova no acender, ento: retirar a lmpada queimada colocar lmpada nova se a lmpada nova no acender, ento: retirar a lmpada queimada colocar a lmpada nova se a lmpada nova no acender, ento: retirar a lmpada queimada colocar a lmpada nova

...

at quando????

Descrio NarrativaAlgoritmo Trocar uma lmpada queimada com o uso de estruturas de repetio pegar uma escada posicionar a escada debaixo da lmpada buscar uma lmpada nova subir na escada retirar a lmpada queimada colocar lmpada nova enquanto lmpada nova no acender, faa: retirar a lmpada queimada colocar lmpada nova

Fluxograma uma representao grfica de algoritmos onde formas geomtricas diferentes implicam aes distintas. Objetivo: Facilitar o entendimento das idias contidas nos algoritmos.

Principais smbolos usados em Fluxogramas

FluxogramaClculo da mdia de um aluno: Obter as notas da primeira e da segunda prova Calcular a mdia aritmtica entre as duas Se a mdia for maior ou igual a 7, o aluno foi aprovado, seno ele foi reprovado

Diagrama de Chapin Diagrama criado por Ned Chapin a partir de trabalhos de Nassi-Shneiderman, para substituio do fluxograma tradicional por um diagrama que apresenta uma viso hierrquica e estruturada da lgica do programa. Representa as estruturas que tem um ponto de entrada e um ponto de sada e so compostas pelas estruturas bsicas de controle de seqncia, seleo e repetio. Enquanto difcil 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 pseudocdigo.

Diagrama de Chapin

Pseudocdigo Tambm conhecido como portugus estruturado ou portugol. Bastante rico em detalhes e, por assemelhar-se bastante forma em que os programas so escritos, encontra muita aceitao. Representao suficientemente geral para permitir que a traduo de um algoritmo nela representado para uma linguagem de programao especfica seja praticamente direta.

PseudocdigoAlgoritmo Incio Fim.

PseudocdigoAlgoritmo Media Var N1, N2, Media : real Incio Leia N1, N2 Media (N1+N2)/2 Se Media >= 7 Entao Escreva "Aprovado" Senao Escreva "Reprovado" Fim.

PseudocdigoCalcular a rea de uma mesa retangular Algoritmo AreaRetangulo Var comprimento, largura, area : real Incio leia comprimento leia largura area comprimento * largura imprima 'rea igual a', area Fim

Calcular o preo de uma passagem de nibus Algoritmo PassagemOnibus Var idade : inteiro preco : real Incio leia idade leia preco se idade < 65 ento imprima 'Preo ', preco seno imprima 'Grtis' fimse Fim

Pseudocdigo