Representação de Algoritmos Denise Guliato Faculdade de Computação 4.2. Formas de Representação de Algoritmos A descrição de um algoritmo de forma clara e fácil de ser seguida ajuda no seu desenvolvimento, depuração (localização e correção de erros) e futura migração para uma linguagem de programação. Para facilitar este trabalho, são utilizadas ferramentas específicas de representação da lógica de programação (seqüência de ações a serem realizadas). •Descrição Narrativa Especificação verbal dos passos em linguagem natural. Desvantagens: A linguagem natural é imprecisa (possibilita ambigüidades). Proporciona maior trabalho na codificação. Sugere-se sua utilização apenas para comentar algoritmos e/ou programas, esclarecendo ou realçando pontos específicos. •Fluxograma Uso de ilustrações gráficas para representar as instruções. Apresenta a lógica de um algoritmo, enfatizando passos individuais (objetos gráficos) e o fluxo de execução (setas) Desvantagens: Fluxogramas detalhados podem obscurecer a estrutura do programa. Permite transferências arbitrárias de controle INICIO 1 INICIO N Leitura P1, P2, P3 e P4 condição S Ação 1 MEDIA = (P1+P2+P3+P4)/4 Ação 2 Ação 3 MEDIA condição S N FIM FIM 1 •Pseudolinguagem Linguagem especial para desenvolvimento de algoritmos, que utiliza expressões pré-definidas para representar ações e fluxos de controle. Funciona como uma linguagem simplificada de programação, logo, facilita a codificação futura. É uma descrição textual, estruturada e regida por regras; que descrevem os passos executados no algoritmo. Possui características similares às linguagens de programação: •Utiliza palavras-chaves (ex: escreva, se-então, etc.); •Indentação (alinhamento dos blocos de comandos); •Possui um comando por linha; Obs: será a forma de representação utilizada durante este curso. Formato básico do pseudo- codigo da linguagem do VisualAlg Tipos de dados Declarações de variáveis Contantes • Numericas: são valores numericos escritos na forma usual das linguagens de programação (3.5; 6; 90) • Caracteres: qualquer cadeia de caracteres delimitada por aspas duplas (“ “) • Lógicas: assume valor VERDADEIRO ou FALSO Operadores Aritméticos Operadores Relacionais Operadores Lógicos Alguns comandos da pseudolinguagem do VisualAlg • Leia (x) – le um valor do teclado e atribui à variavel x • Escreva (“texto”, lista de variaveis) – escreve o valor das variáveis que foram especificadas no comando • Escreval(“texto”, lista de variaveis) - escreve o valor das variáveis que foram especificadas no comando e pula uma linha Exercício: faça um algortimo para calcular a media aritmética de 4 notas algoritmo “media de notas“ var p1,p2,p3,p4: real media: real // Seção de Comandos inicio escreva ("Entre com a nota p1: leia (p1) escreval ("") escreva ("Entre com a nota p2: leia (p2) escreval ("") escreva ("Entre com a nota p3: leia (p3) escreval ("") escreva ("Entre com a nota p4: leia (p4) escreval ("") media <- (p1+p2+p3+p4)/4 ") ") ") ") escreva ("A media de", p1,p2,p3,p4, " é:", media) fimalgoritmo Exercícios 1. Crie um programa que dados os dois catetos de um triângulo, calcule o valor de sua hipotenusa. Funções: RaizQ( expressão) - Retorna a raiz quadrada do valor representado por expressão algoritmo "hipotenusa" // Função : encontra a hipotenusa dado os catetos // Autor : Denise // Data : 9/3/2010 // Seção de Declarações var cat1,cat2,hip:real // Seção de Comandos inicio escreva ("entre com cateto1:") leia (cat1) escreval("") escreva ("entre com cateto2:") leia (cat2) escreval("") hip <- raizq(cat1^2+cat2^2) escreva("cateto 1", cat1,"cateto 2",cat2,"hipotenusa ",hip) fimalgoritmo Exercícios 1. Escreva um algoritmo que converta polegadas em centímetros ( uma polegada = 2.54 cm). Imprima o valor em polegada e o valor convertido para centímetros. 2. Elabore um algoritmo que forneça o valor em graus Fahrenheit de uma temperatura expressa em graus Celsius (F = 9/5*C+32) 3. Elabore um algoritmo que recebe como entrada o raio (não negativo) de um circulo. Calcule a area e o perímetro deste circulo. Imprima o raio, a area e o perímetro. (área = pi*r2, perímetro = 2*pi*r) Exercício 4. Elabore um algoritmo que, dada uma temperatura em graus Celsius, imprima a frase“Está frio”, se a temperatura for menor 16 graus. Caso contrario não faça nada. Desvio condicional Exercícios 5. Elabore um algoritmo que calcule a área e o perímetro de um circulo, apenas se o raio for maior que zero.Imprima os resultados. Caso contrário não faça nada. 6. Elabore um algoritmo que receba o valor de uma temperatura dada em graus Celsius. Imprima a frase “a temperatura esta agradavel” se a temperatura estiver no intervalo [16,24]. Caso contrário não faça nada. 7.Elabore um algoritmo que receba o valor de uma temperatura dada em graus Celsius. Imprima a frase “a temperatura esta insuportavel” se a temperatura estiver for menor que 0 graus ou maior que 40 graus. Caso contrário não faça nada. Exercício 8. Elabore um algoritmo que receba o valor de uma temperatura dada em graus Celsius. Imprima a frase “a temperatura esta agradavel” se a temperatura estiver no intervalo [16,24]. Caso contrário escreva “Esta ficando ruim” Desvio Condicional Exercícios 9. Elabore um algoritmo que, dada uma temperatura em graus Celsius, escreva: Esta muito frio, se a temperatura for menor que 16 graus; Esta agradavel, se a temperatura estiver no intervalo [16,24] Esta quente, se a temperatura estiver no intervalo (24, 40) Esta insuportavelmente quente, se a temperatura for maior ou igual a 40 graus. Exercícios 10. Escreva um algoritmo, que dado o tipo do veículo ( ‘c’ para carro, ‘o’ para ônibus e ‘t’ para caminhão) e o numero de horas que o veiculo esteve estacionado, retorna o valor a ser pago de acordo com a tabela: carro R$ 2,00 a hora ônibus R$3,00 a hora caminhão R$4,00 a hora 11. Escreva um algoritmo que, dados três números inteiros, encontre o maior valor entre eles. Imprima o resultado. 12. Elabore um algoritmo que encontre as raízes de uma equação de segundo grau: Ax2+Bx+C = 0. Entre com os valores de A, B e C,imprima o resultado.