Vous êtes sur la page 1sur 8

1 of 8

Estrutura de um Algoritmo, Variveis,


Comandos de Entrada e Sada e Expresses
Aritmticas
Estrutura de um Algoritmo em Linguagem Algortmica
Nesse curso ns vamos utilizar a linguagem algortmica para treinar a programao de
computadores. A linguagem algortmica que ns vamos utilizar muito similar linguagem
Pascal. As principais diferenas entre a linguagem algortmica e a linguagem Pascal so:
1. A linguagem algortmica pode ser escrita em portugus, portanto, mas simples de
compreender os conceitos iniciais.
2. A linguagem algortmica mais simples sintaticamente do que a linguagem Pascal. Isso
significa que podemos nos preocupar menos com regras sintticas como, por exemplo, as
regras que definem identificadores vlidos.
3. A linguagem algortmica no possui algumas restries de implementao presentes nas
linguagens de programao reais. Por exemplo, no existe faixa de valores vlidos para
um determinado tipo de varivel na linguagem algortmica. Em Pascal, por exemplo, os
valores das variveis de tipo integer esto limitados a uma determinada faixa de valores,
dependendo da implementao do compilador Pascal.
4. Portanto, essas simplificaes nos ajudam a focar na resoluo do problema em si, e no
em detalhes de sua codificao.
Um algoritmo em linguagem algortmica tem a seguinte estrutura mnima:
Algoritmo primeiro;
incio
fim.

Esse o algoritmo mais simples que pode ser criado em linguagem algortmica. Ele inicia com
a palavra algoritmo e seguido de um nome para o algoritmo, escolhido pelo programador.
Esse nome mais formalmente chamado de identificador, pois ele identifica algo, neste caso
o algoritmo. O identificador do algoritmo serve para nos ajudar a lembrar para que serve esse
algoritmo. Nesse caso, esse o nosso primeiro algoritmo, por isso o identificador primeiro.
Sempre utilize identificadores que sejam sugestivos, no caso de algoritmos, que ajudem a
lembrar qual a funo do algoritmo.
As palavras incio e fim marcam o incio e o final dos comandos presentes no algoritmo. Entre
essas duas palavras ns devemos inserir os comandos que devem ser executados no
algoritmo. As palavras incio e fim delimitam um bloco de comandos. Todo algoritmo tem
pelo menos um bloco de comandos, chamado de corpo principal do algoritmo. O corpo
principal do algoritmo sempre termina com um ponto final aps a palavra fim.
O algoritmo acima no faz absolutamente nada. Isso ocorre porque no existe nenhum
comando dentro do corpo principal do algoritmo. Assim que ns comearmos a aprender
alguns comandos, os nossos algoritmos ficaro mais interessantes.
Para ajudar na explicao dos algoritmos, aqui nesse texto, so inseridos esquerda do
algoritmo, nmeros que correspondem s posies das linhas. Por exemplo, o algoritmo
anterior ficaria assim:
01 | Algoritmo primeiro;

2 of 8

02 |
03 | incio
04 | fim.

Variveis
Todos ns j ouvimos falar que os computadores so excelentes para armazenar e processar
informaes. Entretanto, o que deve ser feito para armazenar um determinado valor na
memria do computador? Uma das formas de faz-lo atravs das variveis.
As variveis so componentes de um algoritmo que permitem armazenar valores na memria
do computador. O valor de uma varivel pode ser modificado no decorrer da execuo do
algoritmo, da a origem do nome "varivel".
As variveis tambm possuem um tipo associado. O tipo da varivel limita o valor que a
varivel pode receber. Existem diversos tipos de variveis, os mais utilizados so:
inteiro: uma varivel inteira pode receber um valor inteiro, como por exemplo: 2, 5, -6, 11
ou 15423;
real: uma varivel real pode rececer um valor real, ou seja, um nmero com ou sem parte
fracionria, como por exemplo: -1.43, 0.001, 5 ou 2111.99;
caractere: uma varivel do tipo caractere pode receber como contedo um caractere (ou
seja, um nico smbolo que pode ser entrado pelo teclado), como por exemplo: %, #, q, A,
7 ou {;
texto: uma varivel do tipo texto pode receber como contedo uma seqncia de
caracteres, como por exemplo: Jos da Silva, A Pedra do Rei, ou DJK-2345.
Em um algoritmo necessrio declarar as variveis antes de utiliz-las. Declarar uma varivel
significa dizer qual o identificador e o tipo da varivel. Na linguagem algortmica, a palavra
variveis indica o incio do bloco de declarao de variveis.
01
02
03
04
05
06
07

|
|
|
|
|
|
|

Algoritmo segundo;
Variveis
a: inteiro;
incio
fim.

O algoritmo anterior d um exemplo de como declarar uma varivel. Essa varivel possui um
identificador a e do tipo inteiro. As variveis devem ser declaradas entre a palavra variveis
e a palavra incio, que indica o incio do corpo principal do algoritmo. Por fim, as variveis
sempre so declaradas da forma:
<Identificador da varivel> : <Tipo da varivel> ;

No qual <Identificador da varivel> deve ser substitudo pelo nome da varivel e <Tipo da
varivel> deve ser substitudo pelo tipo da varivel. Como por exemplo:
a: inteiro;

ou
media: real;

Repare que a declarao da varivel a no algoritmo segundo est a alguns espaos em


branco direita. Isso chamado de indentao e ajuda na legibilidade do programa. A
indentao ajuda as pessoas que forem ler (incluindo voc mesmo) o algoritmo. Nesse caso,
fica bastante visvel que a declarao a: inteiro; est dentro do bloco de declarao de

3 of 8

variveis.
Portanto, a declarao a: inteiro cria uma varivel com identificador a do tipo inteiro. Aps
declarar a varivel a, necessrio executar os comandos presentes no corpo principal do
algoritmo. Entretanto, no nosso segundo algoritmo o corpo principal est vazio. Sendo assim, o
algoritmo termina.
Ns j sabemos como declarar uma varivel na linguagem algortmica. Mas, como possvel
ler ou alterar o valor dessa varivel? As duas formas mais comuns para alterar o contedo de
uma varivel so:
1. atravs de uma atribuio;
2. atravs de um comando de entrada.
Vamos ver agora como fazer uma atribuio. Mais tarde, vamos ver como os comandos de
entrada funcionam.
Uma atribuio feita atravs do smbolo " ". Atravs desse smbolo possvel armazenar
um valor (possivelmente resultado de uma expresso aritmtica, como veremos logo a seguir)
em uma varivel. Vamos modificar o nosso segundo algoritmo para que ele armazene o valor
10 na varivel a:
01
02
03
04
05
06
07
08

|
|
|
|
|
|
|
|

Algoritmo terceiro;
Variveis
a: inteiro;
incio
10;
a
fim.

O algoritmo acima possui um nico comando dentro do corpo principal do algoritmo, esse
comando a atribuio na linha 07 (repare no smbolo ). Nesse caso, o valor 10 est sendo
atribudo varivel a. Em portugus l-se "a recebe 10". Como foi declarado, a varivel de
identificador a uma varivel que pode receber valores inteiros. Na linha 07, essa varivel
passar a ter como contedo o valor 10.
Uma atribuio segue sempre a mesma sintaxe. esquerda do smbolo de atribuio ( ) deve
ser colocado o identificador de uma varivel. Essa varivel ir receber o valor especificado
direita do smbolo de atribuio. Como veremos na prxima seo, pode-se utilizar, no lado
direiro da atribuio, uma expresso matemtica. Isso faz com que o algoritmo possa realizar
alguns clculos matemticos e atribuir o resultado varivel.
At agora ns somente sabemos como atribuir um valor a uma varivel. Mais interessante seria
se ns pudessemos realizar clculos matemticos com essas variveis. Esse o assunto da
prxima seo.

Expresses Aritmticas
Podemos fazer um algoritmo que utilize as variveis para realizar clculos, como se o
computador fosse uma calculadora. Por exemplo, podemos calcular a mdia anual de um
estudante a partir de 4 notas bimestrais. O algoritmo ficaria assim:
01
02
03
04
05
06

| Algoritmo Media;
|
| Variveis
|
B1, B2, B2, B4: real;
|
Media: real;
|

4 of 8

07
08
09
10
11
12
13

| incio
|
B1
|
B2
|
B3
|
B4
|
Media
| fim.

7;
5;
8;
7;

{Nota
{Nota
{Nota
{Nota
(B1 + B2 +

da
da
da
da
B3

primeira prova bimestral: 7}


segunda prova bimestral: 5}
terceira prova bimestral: 8}
quarta prova bimestral: 7}
+ B4) / 4;

O algoritmo acima possui algumas novidades. Na linha 04 so declaradas 4 variveis inteiras.


Repare que para no repetir 4 vezes a mesma declarao "nome da varivel: inteiro", ns
podemos fazer uma simplificao e declarar na mesma linha as quatro variveis. Isso vlido
para qualquer nmero de variveis e qualquer tipo. Entretanto, todas as variveis declaradas
na mesma linha precisam ser necessariamente do mesmo tipo.
As linhas 08, 09, 10 e 11 fazem quatro atribuies s variveis B1, B2, B3 e B4,
respectivamente. B1, B2, B3, e B4 so as variveis que armazenam as quatro notas bimestrais
dos respectivos bimestres. Outra novidade so os textos entre chaves. Esses textos so
chamados de comentrios, e a sua funo simplesmente explicar algo para a pessoa que
est lendo o algoritmo. Um comentrio nunca levado em considerao pelo algoritmo. A sua
funo unicamente tornar o algoritmo mais simples de ser entendido pelas pessoas que o
lem.
Na linha 12 atribudo varivel Media um valor resultante da expresso aritmtica:
(B1 + B2 + B3 + B4) / 4

Essa expresso aritmtica precisa primeiro ser avaliada, ou seja, necessrio fazer os clculos
para ver qual valor resulta dessa expresso. Dado os valores das variveis, o algoritmo realiza
o seguinte clculo.
(7 + 5 + 8 + 7) / 4

Essa expresso resulta no valor 6,75. Por fim, esse valor atribudo varivel Media. Repare
que o valor 6,75 no um valor inteiro. Portanto, a varivel Media no pode ser uma varivel
do tipo inteiro, mas sim uma varivel do tipo real, exatamente como est declarado na linha
05.
Existem vrios tipos de operaes que podem ser realizadas atravs de expressoes
aritmticas. Para realizar essas operaes necessrio conhecer os operadores aritmtidos da
linguagem algortmica. Eles so:
+ (adio);
- (subtrao);
* (multiplicao);
/ (diviso);
div (diviso inteira);
mod (resto de diviso inteira).
Voc j deve estar acostumado com as operaes de adio, subtrao, multiplicao e
diviso. Mas, o que so as operaes diviso inteira e resto de diviso inteira?
Diviso inteira (operador div) calcula uma diviso entre dois nmeros inteiros, mas o resultado
fica restrito parte inteira do quociente. Por exemplo:
7 / 2 = 3,5

Mas,
7 div 2 = 3

5 of 8

O operador resto de diviso inteira (mod), faz, de certa forma, a operao complementar a
operao de diviso inteira. Esse operador realiza uma diviso inteira e retorna o resto dessa
diviso. Portanto:
7 mod 2 = 1

No permitido omitir o operador de multiplicao, como feito normalmente nos textos de


matemtica. Isso feito para evitar confuses com os identificadores das variveis. Na
matemtica a expresso AB+C quer dizer "multiplique A por B e some com C", mas na
linguagem algortmica AB pode ser entendido como um identificador de uma varivel. Portanto,
obrigatrio escrever A*B+C.
Na linguagem algortmica, os operadores possuem uma relao de prioridade entre si. Essa
relao de prioridade est resumida na tabela a seguir:
Prioridade Operador
1

* / div mod

+-

Para modificar a precedncia dos operadores, basta utilizar parnteses. Por exemplo:
(2 + 7) * (5 + 5)

Na expresso acima, as parcelas (2 + 7) e (5 + 5) sero calculadas primeiro, resultando em 9 e


10. S ento a multiplicao ser calculada, resultando em 90.
Voltando ao algoritmo que calcula a mdia anual de um estudante, ele ainda pode ser
melhorado. Por exemplo, o algoritmo no capaz de informar ao usurio qual foi o resultado da
mdia calculada. Para fazer isso, necessrio utilizar os comandos de entrada e sada. Esse
o assunto da prxima seo.

Comandos de Entrada e Sada


importante que um algoritmo tenha mecanismos de comunicao com o usurio. As formas
mais simples de faz-lo escrever mensagens na tela do computador e ler valores do teclado.
Em linguagem algortmica, os comandos utilizados para essas finalidades so os comandos
escreva e leia.
O comando escreva um comando de sada. Na sua forma mais simples, esse comando
permite que mensagens ou valores de variveis sejam impressos na tela do computador. Toda
mensagem a ser impressa na tela deve estar entre aspas simples. Por exemplo:
escreva('Ol mundo');

imprime a mensagem "Ol mundo" na tela do computador.


possvel imprimir tambm valores de variveis, como por exemplo:
escreva(Media);

Nesse caso, o valor da varivel Media impresso na tela. Repare que o identificador da
varivel Media no est entre aspas simples. Isso indica que o valor da varivel Media deve
ser impresso na tela, e no a mensagem "Media".
Podemos, ento, refazer o nosso algoritmo de clculo da mdia anual de forma que o algoritmo
informe ao usurio qual foi o resultado do clculo da mdia anual:

6 of 8

01
02
03
04
05
06
07
08
09
10
11
12
13
14

|
|
|
|
|
|
|
|
|
|
|
|
|
|

Algoritmo Media;
Variveis
B1, B2, B2, B4: real;
Media: real;
incio
7;
{Nota
B1
5;
{Nota
B2
8;
{Nota
B3
7;
{Nota
B4
(B1 + B2 +
Media
escreva(Media);
fim.

da
da
da
da
B3

primeira prova bimestral: 7}


segunda prova bimestral: 5}
terceira prova bimestral: 8}
quarta prova bimestral: 7}
+ B4) / 4;

Ao algoritmo anterior foi adicionada apenas a linha 13, a qual utiliza o comando de sada
escreva para escrever na tela do computador a valor da varivel Media.
Ainda, possvel mesclar mensagens e valores de variveis em um mesmo comando escreva,
para isso basta separar as mensagens e os nomes de variveis com vrgulas, como por
exemplo:
escreva('O valor da sua mdia anual ', Media);

Com isso, o nosso algoritmo ficaria ainda mais fcil de ser utilizado pelo usurio. Podemos,
portanto, modificar a linha 13 para escrever a mensagem anterior, o algoritmo ficaria assim:
01
02
03
04
05
06
07
08
09
10
11
12
13
14

|
|
|
|
|
|
|
|
|
|
|
|
|
|

Algoritmo Media;
Variveis
B1, B2, B2, B4: real;
Media: real;
incio
7;
{Nota
B1
5;
{Nota
B2
8;
{Nota
B3
7;
{Nota
B4
(B1 + B2 +
Media
escreva('O valor da
fim.

da primeira prova bimestral: 7}


da segunda prova bimestral: 5}
da terceira prova bimestral: 8}
da quarta prova bimestral: 7}
B3 + B4) / 4;
sua mdia anual ', Media);

Esse algoritmo imprime na tela do computador a mensagem:


O valor da sua mdia anual 6,75

O nosso algoritmo ainda possui um defeito. Ele calcula a mdia sempre sobre os mesmos
valores das notas bimestrais. Seria bem mais interessante se esses valores pudessem ser
fornecidos pelo usurio. Dessa forma, a cada execuo do algoritmo, o usurio informaria quais
so os valores das suas provas bimestrais.
Para fazer isso necessrio utilizar o comando de entrada leia. Ele permite que informaes
externas (do teclado, por exemplo) sejam entradas em um algoritmo. Na sua forma mais
simples o comando leia possui a seguinte sintaxe:
leia(<identificador da varivel>);

Sendo que <identificador da varivel> deve ser substitudo por um identificador de uma
varivel declarada no algoritmo. Quando o comando leia executado, a execuo do algoritmo
pra e fica esperando o usurio digitar um valor seguido da tecla ENTER. Enquanto o usurio
no digita um valor seguido de ENTER o algoritmo no ir prosseguir. To logo o usurio digite
um valor seguido da tecla ENTER, o valor digitado automaticamente armazenado na varivel
especificada entre os parnteses do comando leia.

7 of 8

possvel alterar o nosso algoritmo de clculo da mdia de forma que ele leia os valores das
provas bimestrais do teclado, ao invs do programador atribuir esses valores diretamente no
programa. Assim o usurio ser capaz de fornecer diferentes valores para as notas das provas
bimestrais, a cada execuo do algoritmo. O algoritmo fica assim:
01
02
03
04
05
06
07
08
09
10
11
12
13
14

|
|
|
|
|
|
|
|
|
|
|
|
|
|

Algoritmo Media;
Variveis
B1, B2, B2, B4: real;
Media: real;
incio
leia(B1);
{Nota da primeira prova bimestral}
leia(B2);
{Nota da segunda prova bimestral}
leia(B3);
{Nota da terceira prova bimestral}
leia(B4);
{Nota da quarta prova bimestral}
(B1 + B2 + B3 + B4) / 4;
Media
escreva('O valor da sua mdia anual ', Media);
fim.

Nesse ltimo algoritmo, o usurio ser responsvel por fornecer os valores das notas
bimestrais. Quando o comando leia, na linha 08, executado, o computador pra a execuo e
fica esperando o usurio digitar um valor no teclado. Vamos supor que o usurio digite 10. O
valor 10 ento atribudo varivel B1. Na seqncia, so executados os comandos leia nas
linhas 09, 10 e 11. Para cada comando leia o usurio ter que digitar um valor. Vamos supor
que ele digite 5 para o comando leia na linha 09, 4 para o comando leia na linha 10 e 9 para o
comando leia na linha 11. Ento as variveis B1, B2, B3 e B4 tero os seguintes valores:
B1 = 10
B2 = 5
B3 = 4
B4 = 9

Na linha 12 calculada a mdia anual. Essa mdia ser:


(B1 + B2 + B3 + B4) / 4 = (10 + 5 + 4 + 9) / 4 = 7

Portanto, o valor 7 atribudo na linha 12 varivel Media. Por fim, o comando escreva, na
linha 13, ir escrever na tela do computador a seguinte mensagem:
O valor da sua mdia anual 7

E o algoritmo termina.
Um ltimo melhoramento no nosso algoritmo de calcular a mdia anual. Repare que o algorimo
no informa ao usurio o que deve ser feito. Seria mais interessante se o algoritmo escrevesse
na tela do computador mensagens que indicassem o que o usurio deve fazer. Como por
exemplo:
Entre com o valor da sua primeira nota bimestral:

E assim por diante. Vamos ento modificar o nosso algoritmo para escrever mensagens de
ajuda ao usurio:
01
02
03
04
05
06
07
08
09
10

| Algoritmo Media;
|
| Variveis
|
B1, B2, B2, B4: real;
|
Media: real;
|
| incio
|
escreva('Entre com o valor da primeira nota bimestral: ');
|
leia(B1);
{Nota da primeira prova bimestral}
|
escreva('Entre com o valor da segunda nota bimestral: ');

8 of 8

11
12
13
14
15
16
17
18

|
leia(B2);
{Nota da segunda prova bimestral}
|
escreva('Entre com o valor da terceira nota bimestral: ');
|
leia(B3);
{Nota da terceira prova bimestral}
|
escreva('Entre com o valor da quarta nota bimestral: ');
|
leia(B4);
{Nota da quarta prova bimestral}
(B1 + B2 + B3 + B4) / 4;
|
Media
|
escreva('O valor da sua mdia anual ', Media);
| fim.

Dicas
Quando voc criar os seus algorimtos lembre-se:
Utilize sempre identificadores sugestivos. Evite, por exemplo, chamar as variveis que
armazenam as notas bimestrais de X, Y, Z, W, pois esses identificadores no so
sugestivos das funcionalidades dessas variveis no algoritmo.
Sempre comente os seus algoritmos. Utilize os comentrios para facilitar o entendimento
do algoritmo.
Mantenha o seu algoritmo sempre legvel. Evite escrev-lo totalmente em letra
maisculas. Utilize a indentao para mostrar que certos comandos fazem parte de
blocos de comandos, por exemplo.

Resumo
Algumas coisas que voc deve lembrar da aula de hoje:
Uma varivel possui um identificador (nome), um tipo e um valor. O nome da varivel
utilizado para ler ou modificar o valor dessa varivel. O tipo da varivel limita os valores
que podem ser atribudos ela. Por exemplo, uma varivel do tipo inteiro somente pode
receber valores inteiros.
Os comandos de entrada e sada permitem que o programa se comunique com o mundo
exterior. Em linguagem algortmica o comando leia permite ler valores do teclado e
atribuir esses valores s variveis. O comando escreva escreve mensagens e valores de
variveis na tela do computador.
Expresses aritmticas fazem com o um algoritmo faa clculos aritmticos. Esses
clculos podem envolver valores, variveis e operadores, entre outras coisas.

Exerccios
1. Faa um algoritmo que leia dois nmeros, calcule e escreva na tela a soma, a
multiplicao e a subtrao desses nmeros.
2. Faa um algoritmo que leia dois valores: base e altura. Calcule e escreva na tela as reas
do retngulo (base * altura) e do tringulo (base * altura) / 2.
3. Faa um algoritmo que leia trs valores do teclado, os quais correspondem a uma
determinada hora (hora, minuto e segundo). Calcule e imprima na tela, quantos segundos
a partir da hora zero, correspondem a hora fornecida pelo usurio.