Algoritmos e Estruturas de Dados Portugol Prof Me

  • Slides: 46
Download presentation
Algoritmos e Estruturas de Dados Portugol Prof. Me. Claudio Benossi claudio@beno. com. br

Algoritmos e Estruturas de Dados Portugol Prof. Me. Claudio Benossi [email protected] 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

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

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

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

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

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

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 C 1 C 2 C 3 fim

Fluxograma início separar ingredientes misturar ingredientes colocar massa no forno tirar bolo do forno

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

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,

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

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

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

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

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

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 +

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

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

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)

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 1. Calcular área d_int d_ext

Exercício : : Algoritmo inicial 2. Calcular volume: 3. Calcular peso: 4. Calcular custo

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

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,

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

Questões