ALGORITMOS NO CONTEXTO COMPUTACIONAL: PORTUGUÊS ESTRUTURADO
Algoritmos são conjuntos de instruções que visam solucionar um problema com um
objetivo bem definido. Para representar programas de computadores, cuja linguagem requer um
rigor lógico e sequencial, costuma-se utilizar diagramas (os fluxogramas) ou algoritmos com
linguagens adaptadas. No curso utilizaremos, além dos fluxogramas que serão vistos mais
adiante, o Português Estruturado (também chamado de portugol ou pseudocódigo).
Para melhor compreender as características de um programa de computador e de um
algoritmo do tipo Português Estruturado, consideremos o seguinte exemplo:
PROGRAMA soma;
VARIÁVEL
num1, num2, resultado: INTEIRO;
INÍCIO
num1  5;
num2  3;
resultado  num1 + num2;
FIM.
As palavras em maiúsculo destacadas em vermelho representam as palavras-chaves do
programa. Essas palavras são especiais porque tem funções específicas e servem como referência para
nortear o processamento das informações. No programa acima, as palavras chaves e suas respectivas
funções são:




PROGRAMA: Identifica o começo do programa e atribui um nome a esse programa.
VARIÁVEL e INTEIRO: (ver exemplo 2).
INÍCIO: Indica o início do processamento das informações. Tudo o que é relacionado
anteriormente (nome do programa, lista de variáveis, por exemplo) compõem o que chamamos
de cabeçalho. O cabeçalho basicamente inicializa o programa (faz a alocação de memória,
encontra banco de dados, identifica biblioteca de funções e procedimentos, etc), sem que
nenhum processamento lógico ocorra efetivamente. A partir da palavra-chave INICIO, é que os
procedimentos lógicos para a solução do problema são efetivamente executados.
FIM: Indica que não há mais instruções. Fim do programa.
Diferentemente de um programa de computador, o portugol não são rigorosos com relação a
essas palavras-chaves podendo haver variações. Em geral, elas seguem alguma linguagem padrão
como o Pascal, o C ou o Fortran. O padrão do portugol apresentado neste curso segue a linguagem C.
Repare que no programa exemplo foram utilizados sinais de pontuação. Ele também tem
significados:


Ponto-e-vírgula: indica fim de instrução.
Ponto final: sempre acompanha o FIM, indicando o fim do bloco de instruções.
Outra característica comum em algoritmos de computador (tanto quanto na própria
formulação dos programas) é o uso da indentação, ou seja, colocação de espaços antes das instruções
para uma melhor visualização da estruturação lógica do programa. Assim, repare que as palavras
PROGRAMA, INÍCIO e FIM estão posicionadas mais próximas à margem esquerda, enquanto que as
instruções estão alinhadas mais à direita.
Para melhor entender as variáveis, consideremos o seguinte exemplo:
PROGRAMA mat_basica;
VARIÁVEL
n1, n2: INTEIRO;
x, y, mult, divisao, resto: REAL;
nome: CARACTER;
INÍCIO
n1  3;
n2  10;
x  2.5;
y  3.2321;
nome “Rafael”;
mult  n1*x;
divisao  x/y;
resto  n2 MOD n1;
FIM.
As variáveis são endereços na memória RAM do computador que são representados por um
nome simbólico. Assim, as variáveis são usadas para guardar informações. Uma vez que se atribui um
nome à uma variável, este nome não deve ser mudado (o valor dela pode “variar”, mas o nome não).
Na nomeação, algumas regras devem ser respeitadas:




O primeiro caractere deve ser uma letra.
Pode conter somente letras, números e underscore.
Não pode haver espaços entre os caracteres.
Sem acentuação, cedilha ou outros caracteres especiais.
A palavra-chave VARIÁVEL tem a função de identificar todas as variáveis que vão aparecer nas
instruções do programa. Essa lista de variáveis deve ser sempre colocada antes da palavra-chave
INÍCIO. É nesse ponto também que se declara qual o tipo de informação que determinada variável
pode guardar. Elas podem ser do tipo:




Lógico: Assume apenas dois valores: verdadeiro ou falso.
Inteiro: Assume valores numéricos inteiros (sem casas decimais).
Real: Assume valores numéricos reais (com casas decimais).
Caractere: Assume valores alfanuméricos.
Mas como guardamos informações nas variáveis? Uma das formas é o uso do sinal de
atribuição que funciona basicamente como o sinal de igual. O sinal de atribuição é “”. Assim, na linha
n1  3;
Temos a atribuição do valor 3 à variável n1.
Também podemos executar operações com as variáveis, como adição, multiplicação,
exponenciação, etc. Os principais operadores aritméticos são:
Operação
Adição
Subtração
Multiplicação
Divisão
Exponenciação
Raiz Quadrada
Resto da divisão
Quociente da divisão
Símbolo
+
*
/
**, ^, ↑
SQR()
MOD
DIV
Assim, na linha :
mult  n*x;
Temos que a variável mult terá o valor da multiplicação do valor de n (igual a 3) multiplicado
pelo valor de x (2.5). Ou seja, mult guardará na memória o valor de 7.5. Duas operações merecem
atenção especial por não serem muito comuns na álgebra básica, mas que tem grande importância na
programação: o MOD e o DIV. O MOD fornece o resto de uma divisão, assim a linha:
resto  n2 MOD n1;
Tem que fornecer o resto da divisão de 10 por 3, ou seja, resto será igual a 1. Já o DIV faz o
papel contrário, fornece a parte inteira da divisão. A operação 10 DIV 3 seria igual a 3. Outros
exemplos:
15 MOD 4 = 3
20 MOD 5 = 0
17 MOD 6 = 5
11 DIV 2 = 5
22 DIV 5 = 4
13 DIV 4 = 3
Para finalizar, retomemos o último programa exemplo dando a devida ênfase a alguns detalhes
que devem ser observados:
PROGRAMA mat_basica;
VARIÁVEL
n1, n2: INTEIRO;
x, y, mult, divisao, resto: REAL;
As variáveis de mesmo tipo são separadas por
vírgulas.
Os dois pontos são colocados depois da lista de
variáveis e indicam que a seguir será identificado o
TIPO das variáveis
nome: CARACTER;
INÍCIO
n1  3;
n2  10;
As listas de variáveis terminam
com um ponto e vírgula.
x  2.5;
y  3.2321;
nome: “Rafael”;
mult  n*x;
O separador decimal é o ponto e não a vírgula
Valores alfanuméricos (do tipo CARACTER) devem
estar sempre entre aspas.
divisao  x/y;
resto  n2 MOD n1;
FIM.
Lembre-se de colocar ponto-e-vírgula no final de
cada instrução.
EXERCÍCIOS
1. Complete o seguinte algoritmo em português estruturado, com os respectivos tipos das
variáveis declaradas.
PROGRAMA Compras;
VARIÁVEL
nomeCliente: ________________;
qtdAbacaxi, qtdLaranja: ____________________;
pcoAbacaxi, pcoLaranja, total: ____________________;
INÍCIO
nomeCliente  “Rafael”;
qtdAbacaxi  2;
qtdLaranja  6;
pcoAbacaxi  3.00;
pcoLaranja  0.80;
total  qtdAbacaxi*pcoAbacaxi + qtdLaranja*pcoLaranja;
FIM.
2. Escreva os seguintes algoritmos (em TODOS os casos, não se esqueça de incluir PROGRAMA,
VARIÁVEL, INÍCIO e FIM; não se esqueça do ponto-e-vírgula e da indentação).
a) Dadas as variáveis np1, np2 com os valores 5,0 e 7,5 respectivamente, faça um algoritmo que
calcule e atribua à variável chamada med a média dos dois valores. (obs: lembre-se de usar
parêntesis, pois a divisão tem prioridade sobre a adição).
b) Crie quatro variáveis do tipo inteiro, atribua a três deles os valores 100, 1522 e 357 e para a
quarta variável, atribua a soma desses três valores.
c) Crie uma variável do tipo caractere, uma do tipo inteiro e uma do tipo real. Atribua a eles, em
conformidade com os seus tipos, as seguintes informações: sua altura, seu nome e sua idade.
3. Qual o resultado das seguintes expressões?
a) 5^2 + SQR(9)
c) 10 mod 3
b) 15 mod 4
d) 10 div 3
DESAFIO
O primeiro que entregar a resposta até o final da aula ganhará meio ponto na nota da prova.
Dado o seguinte programa:
PROGRAMA troca;
VARIÁVEL
a, b: INTEIRO;
INÍCIO
a  10;
b  5;
_________________;
_________________;
_________________;
FIM.
Apenas manipulando as variáveis a e b (não pode criar mais variáveis) e usando operações
matemáticas (soma, subtração, etc), preencha as três linhas tal que os valores de a e b sejam trocados.
Ou seja, ao final do programa, a deve valer 5 e b deve valer 10 (obviamente que não é permitido fazer
a  5 e b  10).
Download

português estruturado