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