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