Algoritmos e Estruturas de Dados Portugol Prof Me














































- Slides: 46
Algoritmos e Estruturas de Dados Portugol Prof. Me. Claudio Benossi claudio@beno. com. br
Sumário v Representações de algoritmos v Elementos básicos v Algoritmos com qualidade
Sumário v Representações de algoritmos v Elementos básicos v Algoritmos com qualidade
Representações de algoritmos v Três formas de representação de algoritmos: w Fluxograma w Diagrama de Chapin w Pseudo-código
Representações de algoritmos - Fluxograma v Fluxograma é uma forma padronizada para representar os passos lógicos de um determinado processamento. v O fluxograma, podemos definir uma sequência de símbolos, com significado bem definido, portanto, sua principal função é a de facilitar a visualização dos passos de um processamento
Representações de algoritmos - Fluxograma v Simbologia do Diagrama de Bloco v Existem diversos símbolos em um diagrama de bloco. Veja no quadro abaixo alguns dos símbolos que iremos utilizar: Símbolo Função TERMINAL Indica o início ou fim de um processamento Exemplo: Início do algoritmo
Representações de algoritmos - Fluxograma Símbolo PROCESSAMENTO Função Processamento em geral Exemplo: x<- 2+3 ENTRADA MANUAL DE DADO Indica entrada de dados pelo usuário via teclado Exemplo: Digite a nota da prova 1
Representações de algoritmos - Fluxograma Símbolo EXIBIR Função Mostra informações ou resultados Exemplo: Mostre o resultado do cálculo DECISÃO Impõe uma condição do tipo se Exemplo: SE numero > 0 ENTÃO
Fluxograma início C 1 C 2 C 3 fim
Fluxograma início separar ingredientes misturar ingredientes colocar massa no forno tirar bolo do forno fim
Fluxograma início esperar assar separar ingredientes t ≥ 30 min misturar ingredientes colocar massa no forno V tirar bolo do forno fim F
Diagrama de Chapin separar ingredientes misturar ingredientes colocar massa no forno tirar bolo do forno
Diagrama de Chapin separar ingredientes misturar ingredientes colocar massa no forno t ≥ 30 min esperar assar tirar bolo do forno
Pseudo-código (Portugol) v Características: w Sintaxe mais simples que a de uma Linguagem de Programação. w Ênfase nas idéias e não nos detalhes. w Facilita construir um programa em Linguagem de Programação.
Pseudo-código (Portugol) v Ingredientes: farinha, açúcar, leite v Separar os ingredientes v Misturar os ingredientes v Colocar massa no forno v Esperar assar por 30 minutos v Retirar bolo do forno
Sumário v Representações de algoritmos v Elementos básicos v Algoritmos com qualidade
Elementos básicos de um algoritmo Algoritmo <nome_do_algoritmo> <declarações de variáveis> <comandos> fim
Elementos básicos de um algoritmo : : Exemplo Algoritmo perimetro_circunferência // declaração de constantes e variáveis const pi float raio = 3, 1415 float perim // comandos ler (raio) perim = 2 * pi * raio escrever (perim) fim
Elementos básicos de um algoritmo v Dados (variáveis e constantes) v Tipos de dados v Operadores v Comandos v Funções v Comentários
Elementos básicos de um algoritmo : : Exemplo Algoritmo perimetro_circunferência // declaração de variáveis const PI float raio = 3, 1415 dado constante dado variável float perim tipo de dado // comandos ler (raio) comentário operador perim = 2 * PI * raio escrever (perim) fim função
Elementos básicos de um algoritmo : : Dados v Dados Constantes w O valor de uma constante não se altera após sua definição. w Exemplos: § N_NEPERIANO = 2, 7182 § UNIVERSIDADE = DRUMMOND' v Dados Variáveis w Elemento que têm a função de associar um nome a uma porção da memória onde um dado pode ser armazenado.
Elementos básicos de um algoritmo : : Tipos de dados v Definem a natureza do dado, as operações que podem ser realizadas com o dado e o espaço a ser ocupado na memória. v Exemplos: w Inteiro: 10 -5 -128 w Real (ponto flutuante): 1, 34 13, 4 w String de caracteres: 'quarta-feira' 'Abril' w Lógico: FALSE (0) TRUE (1) -5, 0
Elementos básicos de um algoritmo : : Operadores v Atribuição v Aritméticos v Relacionais v Lógicos
Elementos básicos de um algoritmo : : Operador Atribuição v Utilizado para atribuir um valor a uma variável nome da variável v Notação: x 1 ← 23; temp ← x 2; Valor
Elementos básicos de um algoritmo : : Operadores Aritméticos v Dados de entrada: tipo numérico (int ou float) v Resultado: tipo numérico (int ou float) v Exemplos: w x_2 ← 2 + 3; w alfa ← 1 / 5; w ang ← 1 / 5. 0; w resto ← 10 % 3; w resto ← 1 % 4; w delta ← 5 * 5 – 4 * 1 * 4;
Elementos básicos de um algoritmo : : Operadores Relacionais v Dados de entrada: tipo numérico (int ou float) v Resultado: tipo lógico v Exemplos: w cond 1 ← 2 == 3; w cond 2 ← 1. 6 ≠ 5. 0; w cond 3 ← 1 > 5; w cond 4 ← (1 + 2) < 5; w cond 5 ← 10 ≥ 3; w cond 6 ← 1 ≤ (– 4 / 3);
Elementos básicos de um algoritmo : : Operadores Lógicos v Dados de entrada: tipo lógico v Resultado: tipo lógico v Exemplos: w cond 1 ← V AND F; w cond 2 ← F OR F; w cond 3 ← NOT cond 1; w cond 4 ← (V AND F) OR (5 > 3);
Elementos básicos de um algoritmo : : Precedência de Operadores 1. NOT – (negação) 2. * / % 3. + – (subtração) 4. == < > 5. AND 6. OR 7. ← ≠ ≥ ≤
Elementos básicos de um algoritmo : : Exercícios sobre Operadores v d + y - z * a / p v d / y v y / a v b / z v r % q v y % d v ((z / a) + b*a ) – d y = 2 z = 4. 0 a = 8 b = 6. 0 d = 12 p = 4 q = 3 r = 10
Elementos básicos de um algoritmo : : Exercícios sobre Operadores v (B == A * C) AND (LOG OR T) v (B > A) OR (B == A) v LOG OR (B / A ≥ C) AND NOT(A ≥ C) v NOT LOG OR T AND (A + B ≥ C) v NOT LOG OR (B * 2 - C == 0) v LOG OR NOT (B * B ≤ C * 10 + A * B) A = 2 B = 7 C = 3. 5 LOG = F
Elementos básicos de um algoritmo : : Funções v Pré-definidas v Definidas pelo programador v Exemplos: w seno(angulo) w pow(x, y) w sqrt(resto) w exp(tempo) w ler(var 1, var 2, . . . ) w escrever(resul 1, result 2, . . . )
Elementos básicos de um algoritmo : : Comentários v Utilizados para descrever o algoritmo, esclarecendo trechos do código v Notação em Linguagem C: w // w /* <comentário> */
Sumário v Representações de algoritmos v Elementos básicos v Algoritmos com qualidade
Algoritmos com qualidade v Devem ser feitos para serem lidos por seres humanos! v Escreva os comentários no momento em que estiver escrevendo o algoritmo.
Algoritmos com qualidade v Os comentários devem acrescentar alguma coisa, e não frasear o comando: // Multiplicação de b por h: area ← b * h; // Cálculo da área do retângulo: area ← b * h;
Algoritmos com qualidade v Use comentários no prólogo: /**************** DRUMMOND – Colégio e Faculdade Fulano da Silva Data: 10/02/2014 Última modificação: 12/02/2014 Algoritmo de Demostração ****************/
Algoritmos com qualidade v Use espaços em branco para melhorar a legibilidade: hip←sqrt(cat 1*cat 1+cat 2*cat 2); hip ← sqrt(cat 1 * cat 1 + cat 2 * cat 2);
Algoritmos com qualidade v Escolha nomes representativos para as variáveis: p ← c + l; preco ← custo + lucro;
Algoritmos com qualidade v Utilize um comando por linha. v Utilize parênteses para melhorar a compreensão e evitar erros. v Utilize identação (recuo de texto). w Atenção: identação ≠ endentação
Exercício v Uma fábrica de arruelas precisa calcular o custo de envio de um conjunto de unidades. Escreva um pseudo-código para tal.
Exercício : : Algoritmo inicial 1. Calcular área 2. Calcular volume (área × espessura) 3. Calcular peso (volume × densidade × unidades) 4. Calcular custo (peso × frete)
Exercício : : Algoritmo inicial 1. Calcular área d_int d_ext
Exercício : : Algoritmo inicial 2. Calcular volume: 3. Calcular peso: 4. Calcular custo (peso × frete)
Exercício : : Pseudo-código Algoritmo arruela // Constantes const PI = 3, 1415 // Variáveis de entrada float d_ext, d_int float espessura, densidade, unidades, frete // Variável de saída float custo // Variáveis do programa float area, area_ext, area_int, volume, peso. . .
Exercício : : Pseudo-código (cont. ). . . // Início ler(d_ext, d_int, espessura, densidade, unidades, frete) area_ext ← pi * (d_ext/2) area_int ← pi * (d_int/2) area ← area_ext – area_int volume ← area * espessura peso ← volume * densidade * unidades custo ← peso * frete escrever (custo) fim
Questões