Portugol
Linguagens de Programação
Objetivo Principal
• O aluno deverá estar apto a raciocinar e
desenvolver a sua capacidade de abstração,
para a criação de algoritmos e programas
elementares.
Contextualizando
• As técnicas de programação serão vistas
através da utilização de uma
pseudolinguagem em português, denominada
"Portugol". Assim, o aluno poderá escrever
algoritmos e aplicar as técnicas de
desenvolvimento para serem usadas com
qualquer linguagem de programação.
Portugol - Objetivo
• Introdução ao Portugol para o
desenvolvimento de algoritmos, declaração de
variáveis, desvio condicional, laços de
repetição.
Algoritmo
• Algoritimo é um conjunto de instruções executadas em sequência
até determinada condição. Digamos assim, para nós humanos é
muito fácil mandar alguém abrir uma porta. A pessoa vai e abre,
mas imagine se você fosse pedir para um computador/robô abrir
uma porta. O que aconteceria? Para o computador/robô conseguir
abrir a porta você teria que colocar uma série de comandos em
sequência para que ele executasse um por um até abrir a porta.
Ex: 1º - Levante, 2º Vire-se 30 graus para a direita, 3º Dê 5 passos
para frente, 4º levante o braço 25 cm, 5º coloque a mão na
maçaneta, 6º Gire a maçaneta 90 graus no sentido anti horário, 7º
Puxe a porta.
• A máquina precisa receber todos os passos de um processo para
conseguir executá-lo, como se fosse uma receita. Isso é algoritmo.
Algoritmo – Resumindo...
• Algoritmo = como definir o problema,
esquematizar, exercício do raciocínio;
• Técnicas de programação = como
operacionalizar, recursos, exercício da
implementação.
Exemplo
a) Seqüência de ações para chegar ao
trabalho/universidade:
Acordar → levantar → tomar café → pegar o ônibus
Ou →
chegar ao destino
→ pegar o carro
• Note que, para cada ação acontecer, é necessário que
a ação imediatamente anterior tenha sido executada.
• Note também que, cada ação pode conter outros
eventos associados (outros algoritmos).
Algoritmo em Portugol
• Um algoritmo é de forma geral, uma descrição
passo a passo de como um problema pode ser
solucionado. A descrição deve ser finita, e os
passos devem ser bem definidos sem
ambiguidades" [Terada] . A razão da existência do
algoritmo vem da dissonância entre um estado
desejado e aquele observado na realidade.
• Algoritmo não é a solução de um problema, mas
é o meio de obtê-la. A resolução de um problema
envolve vários parâmetros que devem ser
organizados através de alguma técnica formal.
Algoritmo em Portugol
As técnicas de desenvolvimento estruturado de
algoritmos, tem o objetivo de:
• Facilitar o desenvolvimento de algoritmos;
• Facilitar o seu entendimento pelos operadores;
• Antecipar a correção;
• Facilitar manutenção e modificações;
• Permitir que o desenvolvimento seja feita por
uma equipe de pessoas.
Algoritmo em Portugol
• Uma técnica formal afasta a possibilidade de
uma ambiguidade. Ou seja, a partir de dadas
condições iniciais a execução do algoritmo
será realizada por um mesmo "caminho"
(sequência de ações), que deve resultar num
mesmo estado final. Uma destas técnicas é o
Portugol.
Algoritmo em Portugol
• Portugol é uma pseudolinguagem que permite ao
programador pensar no problema em si e não no
equipamento que irá executar o algoritmo. Devem ser
considerados a sintaxe (em relação à forma) e a semântica
(em relação ao conteúdo ou seu significado). Em Portugol a
sintaxe é definida pela linguagem e a semântica depende
do significado que quer se dar ao algoritmo.
• No Portugol e nas linguagens de programação, basicamente
têm-se comandos e variáveis que operacionalizam a
execução de um algoritmo. Estes comandos são executados
sequencialmente, de forma que um comando só será
executado após a finalização do comando anterior.
Algoritmo em Portugol
A estrutura de um algoritmo em portugol
pode ser dada como:
• Exemplo:
início
<declarações de variáveis>
<comandos>
fim
Variáveis
• Variáveis como o próprio nome diz, são as
partes de um algoritmo que vão variar. Elas
podem servir para armazenar resultados de
operações, armazenar a entrada de dados do
usuário e por aí vai. De um modo geral
variáveis servem para armazenar na memória
RAM de um computador dados que
posteriormente serão processados.
Tipos de Variáveis
No Portugol, os tipos básicos de variáveis são:
• Inteiro: Qualquer número inteiro (negativo, nulo ou
positivo).
Exemplo: -100, 0, 1, 2, 1250.
• Real: Qualquer número real, nulo ou positivo.
Exemplo: -10, -1.5, 11.2, 0,1, 2, 50.
• Caracter: Caracteres alfanuméricos.
Exemplo: casa, Win31, 123, alfa#2, etc...
• Lógico: valor lógico verdadeiro ou falso
Exemplo: x > y ?
Constante
• Uma constante é um valor fixo, que não se
modifica ao longo do tempo, durante a
execução do programa. Em algoritmos
representaremos constantes pelo tipo const.
Exemplo: const M 10;
Operadores Aritméticos
Os símbolos das operações básicas são:
• A multiplicação é dada através do operador * (asterisco);
– Exemplo: z <- x * y;
• A soma é realizada através do operador + ;
– Exemplo: z <- x + y;
• A subtração é dada através do operador -;
– Exemplo: z <- x - y;
• A divisão para real será dada por / ;
– Exemplo: z <- x / y;
• A divisão para inteiro será dada por div ;
– Exemplo: z <- x div y;
• O resto de uma divisão é dada pelo comando mod .
– Exemplo: z <- x mod y;
• O cálculo de x elevado à y é dado pelo símbolo ^ .
– Exemplo: z <- x^y;
• A raiz de uma valor é extraída através do comando raiz() .
– Exemplo: z <- raiz(x);
Exemplo
Observações sobre o exemplo
• O inconveniente deste algoritmo é que sempre
fornecerá o mesmo resultado, o que não é
interessante. De maneira mais correta, os valores
de x e y podem ser fornecidos pelo usuário,
permitindo ao algoritmo que efetue a soma de
dois números quaisquer.
- Neste exemplo podemos observar que o
resultado da soma de x + y será armazenado em
z. Como o usuário ficará sabendo da resposta ? É
necessário usar comandos de escrita, para
apresentar os resultados.
Entrada e Saída de Dados
• Na construção de algoritmos, é conveniente
que o usuário possa informar dados externos,
para serem operados pelo programa. Assim,
um programa pode receber um dado
informado por um operador através de um
comando de leitura. Da mesma forma, pode
ser necessário conhecer o resultado de
determinada operação executada pelo
computador, então será necessária uma forma
de exibir os dados.
Entrada e Saída de Dados
• Cada linguagem tem uma forma específica
para entrada e saída de dados. Em algoritmos
usaremos os comandos genéricos leia() e
escreva(), para realizar a interface com o
usuário.
Entrada e Saída de Dados
Regras para escrever Algoritmos
em Portugol
• Incluir comentários pelo menos nas linhas
mais importantes do programa;
• Usar nomes significativos para as variáveis e
constantes, que possam identificar o
conteúdo;
• Grifar as palavras chaves do Portugol;
• Alinhar os comandos facilita a legibilidade
do algoritmo e reduz a possibilidade de erros.
Exemplo Algoritmo
Inicio algoritmo “Exemplo”;
variaveis
idade: inteiro;
nome: caractere;
inicio
escreva “Informe seu nome: “;
leia nome;
escreva “Informe sua idade: “;
leia idade;
escreva “Você se chama”, nome, “e
possui”, idade, “anos!”;
fim
Fim algoritmo
Exercícios
• Em uma folha nomeada, elabore os algoritmos
a seguir:
Exercício 1
• Desenvolva um algoritmo em Portugol para
multiplicar 3 valores a serem informados pelo
usuário e que seja demonstrado em tela.
Exercício 2
• Desenvolva um algoritmo em Portugol para
somar 4 valores a serem informados pelo
usuário e que seja demonstrado em tela.
Exercício 3
• Desenvolva um algoritmo em Portugol para
subtrair 2 valores a serem informados pelo
usuário e que seja demonstrado em tela.
Exercício 4
• Desenvolva um algoritmo em Portugol para
dividir 2 valores para tipo Real a serem
informados pelo usuário e que seja
demonstrado em tela.
Exercício 5
• Desenvolva um algoritmo em Portugol para
dividir 2 valores para tipo Inteiro a serem
informados pelo usuário e que seja
demonstrado em tela.
Exercício 6
• Desenvolva um algoritmo em Portugol para
elevar o número 5 à terceira potência e que
seja demonstrado em tela.
Exercício 7
• Desenvolva um algoritmo em Portugol para
encontrar a raíz quadrada do número 49 e que
seja demonstrado em tela.
Exercício 8
• Desenvolva um algoritmo em Portugol com as
variáveis “nome” e “matrícula” donde o
usuário digite as informações e que seja
demonstrado em tela.
Estruturas Condicionais
• As estruturas condicionais são utilizadas
quando há uma condição que desvia o fluxo
do programas para diferentes partes,
dependendo do fato de a condição ser
verdadeira ou falsa. Na condição das
estruturas condicionais, utilizam-se os
operadores relacionais (<, >, =, <=, >=, <>)
para as comparações, observando suas
características particulares
• As estruturas condicionais dividem-se em estrutura SE
e estrutura ESCOLHA/CASO.
• A estrutura condicional SE é a estrutura mais flexível,
podendo acontecer de várias formas, dependendo do
fato de a condição ser satisfeita ou não e do fato de
cada desvio do fluxo poder ou não ter outros
comandos antes da finalização da estrutura.
• a) Estrutura Condicional SE Simples
• As instruções contidas dentro do laço condicional SE
serão executadas somente se a condição retornar um
resultado verdadeiro
se (A = 1) então
escreva “Um”;
fim_se;
se (A = 2) então
escreva “Dois”;
fim_se;
se (A = 3) então
escreva “Três”;
fim_se.
Inicio algoritmo “ExMedia”;
variáveis
nome: caractere;
nota_1, nota_2, media: real;
contador: inteiro;
início
media ← 0;
contador ← 1;
enquanto (contador<=30) faça
escreva (“Nome do aluno: “);
leia(nome);
escreva (“Primeira nota: “);
leia(nota_1);
escreva(“Segunda nota: “);
leia(nota_2);
media ← (nota_1 + nota_2)/2;
se (media<=3,0) então
escreva(nome, media, ”Rep.”);
senão
se(media>=6,0) então
escreva(nome, media, “Apr.”);
senão
escreva(nome, media, “Rec.”);
fim se;
fim se;
contador ← contador + 1;
fim enquanto;
Fim.
Exercícios
• Escreva um algoritmo em Portugol para
calcular a média entre dois números
quaisquer.
Resposta Algoritmo
• A idéia principal do algoritmo está centrada na expressão
matemática utilizada no cálculo da média (M) entre dois números,
N1 e N2, dada por:
M = (N1 + N2) / 2
• Para que o valor de M possa ser calculado pelo algoritmo, é
necessário que os valores de N1 e N2 tenham sido fornecidos ao
mesmo com antecedência. Portanto, a primeira etapa do
algoritmo consiste da obtenção (leitura) dos valores de N1 e N2 e
armazenamento dos mesmos em posições distintas de memória
(variáveis).
• Na seqüência, o valor da média deve ser calculado por meio de uma
expressão apropriada e atribuído a uma terceira variável (M).
• Por fim, deve-se relatar ao usuário o valor calculado por meio de
uma instrução primitiva de saída de dados.
Resposta Algoritmo
• A transformação do fluxograma em pseudocódigo exige a
disponibilidade de algumas informações adicionais concernentes ao
tipo das variáveis utilizadas. Como o algoritmo opera apenas com
dados numéricos, certamente as variáveis utilizadas serão do tipo
inteiro ou real. Como se deseja calcular a média entre dois números
quaisquer, então as variáveis N1 e N2 devem ser capazes de
armazenar números com ou sem parte fracionária e, portanto, é
necessário que estas sejam do tipo real. Como o valor médio entre
dois números reais é um número que pode ou não ter parte
fracionária, então a variável M também deve ser do tipo real.
• De posse dessa informação, pode-se escrever o pseudocódigo do
algoritmo em questão, a partir de seu fluxograma.
Solução
Algoritmo MEDIA
Var N1, N2, M : real
Início
Escreva “Algoritmo para calcular a média entre dois
números”
Escreva “Digite o primeiro número: ”
Leia N1
Escreva “Digite o segundo número: ”
Leia N2
M ← (N1 + N2) / 2
Escreva “O valor da média é:”, M
• Fim.
Download

Portugol