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 usada no dia a dia das pessoas que trabalham com ao para solucionar problemas de forma eficiente . computa¸ c˜ Algoritmo Um algoritmo representa de forma estruturada, uma seq¨ uˆ encia de a¸ c˜ oes, 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 2/34
Introdu¸ c˜ ao II ◮ Exemplo: Seq¨ uˆ encia de a¸ c˜ oes para chegar ao trabalho/universidade pegar o onibus ˆ chegar tomar ou Acordar levantar os cafe destino pegar o carro 3/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) 4/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. 5/34
Portugol II Estrutura de um algoritmo I n i c i o < d e c l a r a ¸ c ˜ o e s de v a r i ´ a v e i s > < comandos > Fim 6/34
Portugol III ◮ Identificadores : elemento b´ asico da linguagem, a sua sintaxe ´ e definida por ◮ Exemplos: area, nota1, i, N1, . . . 7/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: 8/34
Portugol V ◮ No Portugol existem quatro tipos b´ asicos de dados: INTEIRO, REAL, CARACTER e L´ OGICO 9/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´ ogico : valor l´ ogico verdadeiro ou falso Exemplo: x > y ? 10/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 ; 11/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 ; 12/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; 13/34
Portugol X ◮ Comandos b´ asicos : ◮ O comando de atribui¸ ao ´ e utilizado para atribuir um valor a c˜ uma vari´ avel. ◮ Para isso usamos o s´ ımbolo “ ← ” 14/34
Portugol XI ◮ A nota¸ c˜ ao usada para express˜ oes ´ e basicamente uma forma linear comumente usada na matem´ atica, que pode conter operadores: ◮ Aritm´ eticos: +, − , ∗ , / , raiz(), ∧ , sen(), cos(), mod, div, . . . ◮ L´ ogicos: e, ou, n˜ ao ◮ Relacionais: =, � =, > , ≥ (ou > =), < , ≤ (ou < =) 15/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˜ oes 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; 16/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 , o r e s u l t a d o ´ e a t r i b u i d o a z Fim 17/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 18/34
Entrada e Sa´ ıda de dados II O comando de entrada ´ e leia O comando de sa´ ıda ´ e escreva 19/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 20/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 21/34
Exerc´ ıcio 3 I Desenvolva um algoritmo que calcule o volume de uma esfera de ario. ( V = 4 / 3 π R 3 ) raio R , fornecido pelo usu´ 22/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 23/34
Exerc´ ıcio 3 III Desenvolva um algoritmo para encontrar a m´ edia entre 4 valores fornecidos pelo usu´ ario 24/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 25/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 ) 26/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 ˆ onibius? ◮ Para se testar condi¸ c˜ oes pode ser necess´ ario utilizar operadores l´ ogicos e relacionais 27/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 28/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 29/34
Comandos de Controle V ◮ Desvio condicional composto ◮ As condi¸ c˜ oes, verdadeiras ou falsas, geram a¸ c˜ oes 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 30/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 31/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ˆ onica 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”. 32/34
Exerc´ ıcios propostos I 1. Crie um algoritmo que fa¸ ca a soma de dois valores inteiros obtidos 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. 33/34
FIM Cr´ editos: Baseado no material preparado pelo Prof. Guillermo C´ amara-Ch´ avez. 34/34
Recommend
More recommend