Programação de Computadores I
Aula 03
Linguagem algorı́tmica: Portugol
José Romildo Malaquias
Departamento de Computação
Universidade Federal de Ouro Preto
2011-1
1/34
Introdução I
Lógica
A lógica é usada no dia a dia das pessoas que trabalham com
computação para solucionar problemas de forma eficiente.
Algoritmo
Um algoritmo representa de forma estruturada, uma seqüência de
ações, que levam a um resultado esperado.
Resumindo:
I
algoritmo: exercı́cio de raciocı́nio (definir o problema);
I
técnicas de programação: exercı́cio da implementação
2/34
Introdução II
I
Exemplo: Seqüência de ações para chegar ao
trabalho/universidade
pegar
o
ônibus
Acordar
levantar
tomar
cafe
ou
chegar
os
destino
pegar
o carro
3/34
Introdução III
I
Para cada ação acontecer, é necessário que a ação anterior
tenha sido executada
I
Cada ação pode conter outros eventos associados (outros
algoritmos)
4/34
Portugol I
Portugol
É uma pseudolinguaguem que permite ao programador pensar no
problema em si e não no equipamento que irá executar o algoritmo.
5/34
Portugol II
Estrutura de um algoritmo
Inicio
< d e c l a r a ç õ e s de v a r i á v e i s >
<comandos>
Fim
6/34
Portugol III
I
Identificadores: elemento básico da linguagem, a sua sintaxe
é definida por
I
Exemplos: area, nota1, i, N1, . . .
7/34
Portugol IV
I
Variável
I
I
I
I
Variável é um local que armazena um tipo especı́fico de
conteúdo
Contém um valor que se modifica durante a execução de um
programa.
É identificada por um nome (identificador), que pode ser
representando:
Declaração de variáveis:
8/34
Portugol V
I
No Portugol existem quatro tipos básicos de dados: INTEIRO,
REAL, CARACTER e LÓGICO
9/34
Portugol VI
I
I
I
I
Inteiro: qualquer número inteiro (negativo, nulo ou positivo)
Exemplo: 100, 0, 1, 2, 1250
Real: qualquer número real (negativo, nulo ou positivo)
Exemplo: -10, -1.5, 11.2, 0, 1, 2, 50
Caracter: caracteres alfanuméricos
Exemplo: casa, Win31, 123
Lógico: valor lógico verdadeiro ou falso
Exemplo: x > y ?
10/34
Portugol VII
I
Exemplo:
i n t e i r o : idade ;
r e a l : nota1 , nota2 , media ;
c a r a c t e r : nome aluno ;
l o g i c o : maior ;
11/34
Portugol VIII
I
É importante não esquecer
1. Não é possı́vel definir variáveis de diferentes tipos com o
mesmo identificador.
Exemplo: real A; inteiro A; causaria erro na programação.
2. Tomar cuidado em relação à sintaxe da linguagem. Não
é possı́vel ter identificador como:
c a r a c t e r nome−empregado ;
real valor ∗;
i n t e i r o 8x ;
logico positivo ?;
3. Letras maiúsculas e minúsculas são tratadas de forma
diferente.
Exemplo: Media é diferente de media, como também de
MEDIA;
12/34
Portugol IX
I
Constantes
I
I
Uma constante é um valor fixo que não se modifica ao longo
do tempo
Em algoritmo representaremos constantes pelo tipo const ou
#define (eventualmente alguns elementos da linguagem C
podem ser escritos no algoritmo)
const M 10;
13/34
Portugol X
I
Comandos básicos:
I
I
O comando de atribuição é utilizado para atribuir um valor a
uma variável.
Para isso usamos o sı́mbolo “←”
14/34
Portugol XI
I
A notação usada para expressões é basicamente uma forma
linear comumente usada na matemática, que pode conter
operadores:
I
I
I
Aritméticos: +, −, ∗, /, raiz(), ∧, sen(), cos(), mod, div, . . .
Lógicos: e, ou, não
Relacionais: =, 6=, >, ≥ (ou >=), <, ≤ (ou <=)
15/34
Portugol XII
Exemplos:
I
Atribuição de um valor constante
inteiro valor ;
v a l o r <− 1 0 ;
I
Atribuição entre variáveis
inteiro valor ;
inteiro x;
x <− 1 0 ;
v a l o r <− x ;
I
Resultado de expressões
inteiro valor ;
inteiro x , y;
x <− 1 0 ;
y <− 5 ;
v a l o r <− x + y ∗ 2 ;
16/34
Exercı́cio 1 I
Desenvolva um algoritmo em portugol para somar dois valores
inteiros (10+5)
Inicio
i n t e i r o x , y , z ; // d e c l a r a t r ê s v a r i á v e i s i n t e i r a s
x <− 1 0 ; // a t r i b u i 10 p a r a x
y <− 5 ; // a t r i b u i 5 p a r a y
z <− x + y ; // soma x e y , o r e s u l t a d o é a t r i b u i d o a z
Fim
17/34
Entrada e Saı́da de dados I
I
Um algortimo pode receber um dado informado através de um
comando de leitura
I
Também pode ser necessário conhecer o resultado de uma
determinada operação, nesse caso usaremos um comando de
escrita
18/34
Entrada e Saı́da de dados II
O comando de entrada é leia
O comando de saı́da é escreva
19/34
Exercı́cio 2 I
Inserir dois números inteiros e encontrar a soma
Inicio
i n t e i r o : x , y , soma ;
l e i a (x , y );
soma <− x + y ;
e s c r e v a ( "A soma entre " , x , " e " , y , " é " , soma ) ;
Fim
20/34
Regras para escrever algoritmos I
I
Incluir comentários
I
Usar nomes significativos para as variáveis que possam
identificar o conteúdo
I
Identar os comandos facilita a legibilidade do algoritmo e
reduz a possibilidade de erros
21/34
Exercı́cio 3 I
Desenvolva um algoritmo que calcule o volume de uma esfera de
raio R, fornecido pelo usuário. (V = 4/3πR 3 )
22/34
Exercı́cio 3 II
Inicio
const pi 3.14159;
r e a l : R , volume ;
e s c r e v a ( " Inserir raio da esfera " ) ;
l e i a (R ) ;
volume <− 4/3 ∗ p i ∗ (R ˆ 3 ) ;
e s c r e v a ( "O volume da esfera : " , volume ) ;
Fim
23/34
Exercı́cio 3 III
Desenvolva um algoritmo para encontrar a média entre 4 valores
fornecidos pelo usuário
24/34
Exercı́cio 3 IV
Inicio
r e a l : nota1 , nota2 , nota3 , nota4 , media ;
e s c r e v a ( " Inserir quatro notas " ) ;
l e i a ( nota1 , nota2 , nota3 , n o t a 4 ) ;
media <− ( n o t a 1 + n o t a 2 + n o t a 3 + n o t a 4 ) / 4 ;
e s c r e v a ( " Valor da media : " , media ) ;
Fim
25/34
Comandos de Controle I
I
Permite
I
I
alterar a direção tomada por um programa, ou (desvio)
fazer com que partes especı́ficas de um algoritmo sejam
executadas mais de uma vez (loop)
26/34
Comandos de Controle II
I
Desvio condicional: muitas vezes será necessário desviar a
execução do programa segundo uma condição.
I
I
Por exemplo, ir a universidade de carro ou de ônibius?
Para se testar condições pode ser necessário utilizar operadores
lógicos e relacionais
27/34
Comandos de Controle III
I
Desvio condicional simples
s e ( c o n d i ç ã o ) e n t ã o
l i s t a de comandos
fim se
Inserir um número real, se ele for positivo imprimir o número
28/34
Comandos de Controle IV
Inicio
i n t e i r o A;
e s c r e v a ( " Inserir valor " ) ;
l e i a (A ) ;
s e A > 0 e n t ã o
e s c r e v a (A ) ;
fim se
Fim
29/34
Comandos de Controle V
I
Desvio condicional composto
I
As condições, verdadeiras ou falsas, geram ações através de
um único comando de desvio condicional
s e ( c o n d i ç ã o ) e n t a o
l i s t a de comandos
s e n ã o
l i s t a de comandos
fim se
Inserir dois valores numéricos e encontrar o maior deles
30/34
Comandos de Controle VI
Inicio
r e a l num1 , num2 ;
e s c r e v a ( " Inserir dois valores " ) ;
l e i a ( num1 , num2 ) ;
s e num1 > num2
e s c r e v a ( "o maior é " , num1 ) ;
s e n ã o
e s c r e v a ( "o maior é " , num2 ) ;
fim se
Fim
31/34
Exercı́cios em aula I
1. Desenvolva um algoritmo que lê o nome de um aluno, as
notas a, b e c de suas três provas, calcula e exibe a média
harmônica das provas, dada por
3
1
a
+
1
b
+
1
c
.
2. Faça um algoritmo para calcular a área de um cı́rculo, sendo
fornecido o valor do raio, que deve ser positivo.
3. Escreva um algoritmo que leia um número inteiro. Se o
número lido for positivo, escreva uma mensagem indicando se
ele é par ou ı́mpar. Se o número for negativo, escreva a
seguinte mensagem “Este número não é positivo”.
32/34
Exercı́cios propostos I
1. Crie um algoritmo que faça a soma de dois valores inteiros
obtidos através de leitura e imprima o resultado dessa soma.
Em seguida leia outro número inteiro e calcule e exiba a
quociente da soma calculada anteriormente por este número.
2. Faça um algoritmo que leia o nome de um piloto, uma
distância percorrida em km e o tempo que o piloto levou para
percorrê-la (em horas). O programa deve calcular a velocidade
média
Distância
Velocidade =
Tempo
em km/h, e exibir a seguinte frase:
A velocidade média do <nome do piloto> foi <velocidade
media calculada> km/h.
33/34
FIM
Créditos:
Baseado no material preparado pelo
Prof. Guillermo Cámara-Chávez.
34/34
Download

Portugol