AED1-07-PORTUGOL
Transcript of AED1-07-PORTUGOL
PORTUGOLPORTUGOL
IntroduIntroduççãoão
A Sintaxe do PORTUGOL apresentada aqui está baseada
no trabalho G-Portugol.
A Sintaxe do PORTUGOL apresentada aqui está baseada
no trabalho G-Portugol.
Elementos básicos de um algoritmo
<declarações de variáveis><declara<declaraçções de variões de variááveis>veis>
<comandos><comandos><comandos>
algoritmo <nome_do_algoritmo>;variáveis
fim-variáveisinício
fim
Elementos básicos de um algoritmo
Exemplo
/*Nosso primeiro programa
*/algoritmo olamundo;inícioimprima("Olá mundo!");
fim
/*Nosso primeiro programa
*/algoritmo olamundo;inícioimprima("Olá mundo!");
fim
Elementos básicos de um algoritmo
Exemplo
algoritmo teste_variaveis;variáveisx : inteiro;nome : literal;
fim-variáveisinício....fim
algoritmo teste_variaveis;variáveisx : inteiro;nome : literal;
fim-variáveisinício....fim
Elementos básicos de um algoritmoExemploalgoritmo perimetro_circunferência;
// declaração de variáveis
variáveis
pi, raio, perim: real;
fim-variáveis
// comandos
início
pi := 3,1415;
raio := leia();
perim = 2 * pi * raio;
imprima (perim);
fim
Elementos básicos de um algoritmo
�Dados (variáveis e constantes)
�Tipos de dados
�Operadores
�Comandos
�Funções
�Comentários
Elementos básicos de um algoritmoExemploalgoritmo perimetro_circunferência;
// declaração de variáveis
variáveis
pi, raio, perim: real;
fim-variáveis
// comandos
início
pi := 3,1415;
raio := leia();
perim := 2 * pi * raio;
imprima (perim);
fim
tipo de dado
comentário
declaração variável
função
atribuição dado variáveloperador
função
atrib. dado constante
Elementos básicos de um algoritmo:: Dados
� Dados Variáveis
�Elemento que têm a função de associar um nome a uma porção da memória onde um dado pode ser armazenado.
� Dados Constantes
�G-Portugol não tem definição explícita de constantes
�O valor de uma constante não se altera após sua definição.
�Exemplos (usando variáveis):�N_NEPERIANO := 2,7182
�UNIVERSIDADE := 'UFAM'
Elementos básicos de um algoritmo:: Tipos de dados
�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.
Elementos básicos de um algoritmo:: Operadores
�Atribuição
�Aritméticos
�Relacionais
�Lógicos
�Utilizado para atribuir um valor a uma variável
�Notação:
x1 := 23;
temp := x2;
nome da variável
nome da variável ValorValor
Elementos básicos de um algoritmo:: Operador Atribuição
Elementos básicos de um algoritmo:: Operadores Aritméticos
�Dados de entrada: tipo inteiro ou real
�Resultado: tipo inteiro ou real
�Exemplos:�x_2 := 2 + 3;
�alfa := 1 / 5;
�ang := 1 / 5.0;
�resto := 10 % 3;
�resto := 1 % 4;
�delta := 5 * 5 – 4 * 1 * 4;
Elementos básicos de um algoritmo:: Operadores Relacionais
�Dados de entrada: tipo inteiro ou real�Resultado: tipo lógico
�Exemplos:�cond1 := 2 == 3;
�cond2 := 1.6 ≠ 5.0;
�cond3 := 1 > 5;
�cond4 := (1 + 2) < 5;
�cond5 := 10 ≥ 3;
�cond6 := 1 ≤ (– 4 / 3);
Elementos básicos de um algoritmo:: Operadores Lógicos
�Dados de entrada: tipo lógico
�Resultado: tipo lógico
�Exemplos:
�cond1 := verdadeiro e falso;
�cond2 := falso ou falso;
�cond3 := não cond1;
�cond4 := (verdadeiro e falso) ou (5 > 3);
Elementos básicos de um algoritmo:: Precedência de Operadores
1. não
2. * / %
3. + –
4. < > >=<=
5. = <>
6. e
7. ou
8. :=
�d + y - z * a / p
�d / y
�y / a
�b / z
�r % q
�y % d
�((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
� (B = A * C) e (LOG ou T)
� (B > A) ou (B = A)
�LOG ou (B / A >= C) e não(A >= C)
�não LOG ou T e (A + B >= C)
�não LOG ou (B * 2 - C = 0)
�LOG ou não (B * B <= C * 10 + A * B)A = 2
B = 7
C = 3.5
LOG = FF
Elementos básicos de um algoritmo:: Exercícios sobre Operadores
Elementos básicos de um algoritmo:: Funções
� Pré-definidas
� Definidas pelo programador
� G-Portugol tem duas funções internas: “leia” e
“imprima”, que permitem entrada e saída.
� Exemplos:
�seno(angulo)
�pow(x,y)
�sqrt(resto)
�exp(tempo)
�var1 := leia()
� imprima()
Elementos básicos de um algoritmo:: Comentários
�Utilizados para descrever o algoritmo, esclarecendo trechos do código
�Notação igual a linguagem C:
�//
�/* <comentário> */
Algoritmos com qualidade
�Devem ser feitos para serem lidos por seres humanos!
�Escreva os comentários no momento em que estiver escrevendo o algoritmo.
// Cálculo da área do retângulo:area ← b * h;
// C// Cáálculo da lculo da áárea do retângulo:rea do retângulo:
areaarea ←← b * h;b * h;
// Multiplicação de b por h:area ← b * h;
// Multiplica// Multiplicaçção de b por h:ão de b por h:
areaarea ←← b * h;b * h;
Algoritmos com qualidade
�Os comentários devem acrescentaralguma coisa, e não frasear o comando:
/*****************************************UNIVERSIDADE FEDERAL DO AMAZONASFULANO DA SILVADATA: 25/11/2006ÚLTIMA MODIFICAÇÃO: 26/12/2007
ALGORITMO DE DEMONSTRAÇÃO*****************************************/
/*****************************************UNIVERSIDADE FEDERAL DO AMAZONASFULANO DA SILVADATA: 25/11/2006ÚLTIMA MODIFICAÇÃO: 26/12/2007
ALGORITMO DE DEMONSTRAÇÃO*****************************************/
Algoritmos com qualidade
�Use comentários no prólogo:
hip := sqrt(cat1 * cat1 + cat2 * cat2);hip := sqrt(cat1 * cat1 + cat2 * cat2);
hip:=sqrt(cat1*cat1+cat2*cat2);hip:=sqrt(cat1*cat1+cat2*cat2);
Algoritmos com qualidade
�Use espaços em branco para melhorar a legibilidade:
preco ← custo + lucro;preco ← custo + lucro;
p := c + l;p := c + l;
Algoritmos com qualidade
�Escolha nomes representativos para as variáveis:
Algoritmos com qualidade
�Utilize um comando por linha.
�Utilize parênteses para melhorar a compreensão e evitar erros.
�Utilize identação (recuo de texto).
�Atenção: identação ≠ endentação
Exercício
�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_extd_ext
d_intd_int
2
int2
=
d_intArea π
2
2
_
=
extdAreaext π
intAAArea ext −=
Exercício:: Algoritmo inicial
2. Calcular volume:
3. Calcular peso:
4. Calcular custo (peso × frete)
espessuraAreaVolume ×=
unidadesdensidadeVolumePeso ××=
fretePesoCusto ×=
Exercício:: Pseudo-códigoalgoritmo arruela;
// variáveis constantes
pi : real;
// Variáveis de entrada
d_ext, d_int, espes, dens, unid, frete: real;
// Variável de saída
custo : real;
// Variáveis do programa
area, area_ext, area_int, volume, peso : real;
...
Exercício:: Pseudo-código (cont.)...
início
pi := 3,1415;
d_ext:= leia(); d_int := leia(); espes := leia();
dens := leia(); unid := leia(); frete := leia();
area_ext := pi * (d_ext/2) * (d_ext/2);
area_int := pi * (d_int/2) * (d_int/2);
area := area_ext – area_int;
volume := area * espes;
peso := volume * dens * unid;
custo := peso * frete;
imprima (custo);
fim