28
Introdução à Programação 2006/07 Algoritmos

Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/07

Algoritmos

Page 2: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Objectivos da Aula

Algoritmos e suas características Técnicas de Descrição de Algoritmos

Linguagem NaturalPseudocódigoFluxogramas

Especificação do problemaDecomposição hierárquica da solução

Page 3: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Algoritmos e suas características

Um algoritmo é um conjunto de acções detalhadas que representam a solução do problema.Um algoritmo deve considerar sempre a resolução de classes de problemas e não de problemas particulares (deve contemplar alternativas para toda a gama de valores das variáveis de entrada)Um algoritmo deve ser eficiente, resolvendo o problema da maneira mais e com o menor custo possível.

Page 4: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Técnicas de Descrição de Algoritmos

Existem várias técnicas para a descrição de algoritmos:linguagem natural, em que os algoritmos são expressos directamente em linguagem natural.O pseudocódigo é um código de escrita em que se utilizam termos convencionais para indicar as instruções do programa

esses termos são geralmente um misto de palavras da nossa linguagem natural com palavras e notações típicas das linguagens de programação. A utilização de pseudocódigo permite ao programador expressar as suas ideias sem ter de se preocupar com a sintaxe da linguagem de programação.

fluxogramas. Os fluxogramas são diagramas representativos do fluxo de acções de um programa, através de símbolos, que representam os diferentes tipos de acções e seu encadeamento na sequência do programa

Page 5: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Algoritmo – Linguagem NaturalElaborar um algoritmo que calcule a área total das paredes de uma caixa de secção rectangular a partir das suas dimensões.

Identificação das variáveis que o algoritmo vai manipular:Dados de entrada: comprimento -> comp, largura -> largura, altura -> alturaValores intermédias: area_base, area_lateral1, area_lateral2Dados de saida: área da caixa -> area_caixa

Algoritmo:Introdução dos valores iniciais

Pedir comprimento da caixa Ler compPedir largura da caixaLer larguraPedir altura da caixaLer altura

Transformaçãoarea_base = comp * larguraarea_lateral1 = comp * alturaarea_lateral2 = largura * alturaarea_caixa = 2 * area_base + 2 * area_lateral1 + 2 * area_lateral2

Apresentação dos resultadosEscrever area_caixa

Page 6: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Algoritmo – Pseudocódigonome: Conversão de distâncias (milhas para quilómetros){

/* Leitura com validação da distância expressa em milhas */do{

output(“Distância em milhas?”);input( Milhas);

} while (Milhas < 0.0 )/* conversão da distância de milhas para quilómetros */Quilometros = 1.609 * Milhas;/* Escrita da distância em quilómetros */output ( “Distância em Kilómetros = “, Quilometros);

}

Page 7: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Algoritmo – FluxogramaInício

Ler a

Escrever “O quadrado é:”

result

Fim

result = a*a

Pedir a

Page 8: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Especificação do problema

A especificação completa da solução de um problema consiste:

Definição de uma estrutura de dados capaz de armazenar a informação necessária àresolução do problema

Desenvolvimento do algoritmo, capaz de executar o funcionamento pretendido

Page 9: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Especificação do problema (cont.)

Problema 1

Pretende-se escrever um programa que, dada uma distância expressa em milhas, que é lida do teclado, converte-a para quilómetros e escreve-a no monitor

Page 10: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Especificação do problema (cont.)

Page 11: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Especificação do problema (cont.)

Problema 2

Pretende-se escrever um programa que, dados os parâmetros A, B e C, que são lidos do teclado, determina as raízes da equação de 2ºgrau, Ax2+Bx+C=0, e escreve-as no monitor

Page 12: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Especificação do problema (cont.)

Page 13: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Decomposição hierárquica da solução

Page 14: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Decomposição hierárquica da solução

Page 15: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Regras Gramaticais do Pseudocódigo

Page 16: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Definição da operação composta

{sequência de operações simples

}

Page 17: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Selecção

Page 18: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Selecção (cont.)

Page 19: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Selecção (cont.)

Page 20: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Selecção (cont.)

Page 21: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Repetiçãofor ( contador = valor_inicial; contador <= valor_final; actualização do contador)

operação simples ou composta

Page 22: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Repetição (cont.)

Page 23: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Repetição (cont.)

Page 24: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Input e Output

input ( lista de variáveis de entrada);

output ( lista de variáveis de saída e/ou mensagens);

Page 25: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Decomposição hierárquica (cont.)

Page 26: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Decomposição hierárquica (cont.)nome: Conversão de distâncias (milhas para quilómetros){

/* Leitura com validação da distância expressa em milhas */do{

output(“Distância em milhas?”);input( Milhas);

} while (Milhas < 0.0 )/* conversão da distância de milhas para quilómetros */Quilometros = 1.609 * Milhas;/* Escrita da distância em quilómetros */output ( “Distância em Kilómetros = “, Quilometros);

}

Page 27: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Algoritmos: Exercício 1

Pretende-se escrever um programa que, dado um numero indeterminado de números introduzidos pelo teclado, até que apareça o número zero como indicador de paragem, calcule a média dos números lidos e escreva-a no monitor.

a) Efectue a especificação da estrutura de dados e solução do cálculo da média de uma sequência.

b) Faça o algoritmo do programa.

Page 28: Introdução à Programação 2006/07ltodi.est.ips.pt/ip/ficheiros/Algoritmos.pdf · Introdução à Programação 2006/2007 Algoritmos: Exercício 2 Pretende-se um programa que leia

Introdução à Programação 2006/2007

Algoritmos: Exercício 2

Pretende-se um programa que leia números inteiros positivos introduzidos pelo teclado, atéque apareça o número zero como indicador de paragem ou até à leitura de um máximo 50 números, e que determine e escreva o maior dos números lidos no monitor. Portanto, pretende-se ignorar eventuais números negativos que forem introduzidos pelo teclado.

a) Efectue a especificação da estrutura de dados e solução do problema.

b) Faça o algoritmo do programa.