Você está na página 1de 54

Aprendizado de Algoritmos

usando o Portugol Studio


APRESENTAO

O Portugol Studio um ambiente para aprender a programar, voltado para os


iniciantes em programao. Possui uma sintaxe fcil, diversos exemplos e
materiais de apoio aprendizagem. Tambm possibilita a criao de jogos e
outras aplicaes.

Este material foi compilado a partir dos textos e imagens presentes no contexto
da ajuda do Portugol Studio do qual nos esforamos para mantermos o mais
fil a obra original. Objetivamos com isso apenas contribuir com o acesso a
essas informaes fora do ambiente do programa para os estudantes que
usam esta excelente ferramenta.

Todos os direitos do material aqui exposto so de propriedade dos seus


criadores, aqui representados pela UNIVALI Universidade do Vale do
Itaja

Link para Download do Portugol Studio:

https://sourceforge.net/projects/portugolstudio/
SUMRIO

LINGUAGEM PORTUGOL ........................................................................................................... 4


BIBLIOTECAS ............................................................................................................................... 5
DECLARAES ........................................................................................................................... 6
DECLARAO DE CONSTANTE ...................................................................................................... 6
DECLARAO DE FUNO ............................................................................................................ 7
DECLARAO DE MATRIZ ............................................................................................................. 9
DECLARAO DE VARIVEIS ....................................................................................................... 11
DECLARAO DE VETORES ........................................................................................................ 13
ENTRADA E SADA ................................................................................................................... 14
ESCREVA .................................................................................................................................. 15
LEIA .......................................................................................................................................... 17
LIMPA........................................................................................................................................ 19
ESTRUTURAS DE CONTROLE................................................................................................. 19
DESVIOS CONDICIONAIS ............................................................................................................. 20
Escolha Caso ...................................................................................................................... 20
Se ........................................................................................................................................ 23
Se-senao ............................................................................................................................. 24
Se-senao se ........................................................................................................................ 26
LAOS DE REPETIO ............................................................................................................ 27
LAO ENQUANTO (PR-TESTADO) .............................................................................................. 28
LAO FAA-ENQUANTO (PS-TESTADO) .................................................................................... 30
LAO PARA (COM VARIVEL DE CONTROLE) ............................................................................... 31
EXPRESSES ............................................................................................................................ 33
ATRIBUIES............................................................................................................................. 34
OPERAES ARITMTICAS .................................................................................................... 35
OPERAO DE ADIO .............................................................................................................. 36
OPERAO DE DIVISO .............................................................................................................. 38
OPERAO DE MDULO ............................................................................................................. 39
OPERAO DE MULTIPLICAO .................................................................................................. 40
OPERAO DE SUBTRAO........................................................................................................ 42
OPERAES LGICAS ............................................................................................................ 43
E .............................................................................................................................................. 44
OU ........................................................................................................................................... 45
NAO ......................................................................................................................................... 47
OPERAES RELACIONAIS ......................................................................................................... 48
TIPOS .......................................................................................................................................... 49
TIPO CADEIA ............................................................................................................................. 50
TIPO CARACTER ........................................................................................................................ 51
TIPO INTEIRO ............................................................................................................................. 52
TIPO LGICO ............................................................................................................................. 52
TIPO REAL................................................................................................................................. 53
TIPO VAZIO................................................................................................................................ 54
4

Linguagem Portugol

Uma linguagem de programao um mtodo padronizado para comunicar


instrues para um computador. um conjunto de regras sintticas e
semnticas usadas para definir um programa de computador. Permite que um
programador especifique precisamente sobre quais dados um computador vai
atuar, como estes dados sero armazenados ou transmitidos e quais aes
devem ser tomadas sob vrias circunstncias.

O Portugol uma representao que se assemelha bastante com a linguagem


C, porm escrito em portugus. A ideia facilitar a construo e a leitura dos
algoritmos usando uma linguagem mais fcil aos alunos.

Sintaxe e semntica do Portugol


O compilador auxilia a verificar se a sintaxe e a semntica de um programa
est correta.

Durante os tpicos da ajuda, sero apresentadas as estruturas bsicas da


linguagem.

Exemplo da estrutura bsica


5

Bibliotecas
Em todo o algoritmo que se possa elaborar, existe a possibilidade da utilizao de um
conjunto de funes e comandos j existentes. A estes conjuntos de funes e
comandos, d-se o nome de Bibliotecas.

As bibliotecas contm cdigos e dados auxiliares, que provm servios a programas


independentes, o que permite o compartilhamento e a alterao de cdigo e dados de
forma modular. Existem diversos tipos de bibliotecas, cada uma com funes para
atender a determinados problemas.

Para se utilizar uma biblioteca necessrio primeiro importa-la para o seu programa.

No portugol para importar uma biblioteca usa-se as palavras reservadas inclua


biblioteca seguido do nome da biblioteca que se deseja usar, e opcionalmente pode-
se atribuir um apelido a ela usando do operador "-->" sem aspas seguido do apelido.

Para usar um recurso da biblioteca deve-se escrever o nome da biblioteca (ou


apelido), seguido por um ponto e o nome do recurso a ser chamado como
demonstrado abaixo.

No portugol, existem as seguintes bibliotecas:

Arquivos Teclado
Graficos Texto
Matematica Tipos
Mouse Util
Sons
6

Declaraes
Sejam nmeros ou letras, nossos programas tem que conseguir armazenar dados
temporariamente para poderem fazer clculos, exibir mensagens na tela, solicitar a
digitao de valores e assim por diante.

Uma declarao especifica o identificador, tipo, e outros aspectos de elementos da


linguagem, tais como variveis, constantes e funes. Declaraes so feitas para
anunciar a existncia do elemento para o compilador.

Para as variveis, a declarao reserva uma rea de memria para armazenar valores
e ainda dependendo onde ela foi declarada pode ser considerada local (vai existir
somente dentro de seu escopo) ou global (vai existir enquanto o programa estiver em
execuo).

Para as constantes a declarao funciona de forma parecida a de uma varivel, porem


sem a possibilidade de alterar seu valor no decorrer do programa.

Para as funes, declaraes fornecem o corpo e assinatura da funo.

Nesta seo, abordaremos os seguintes tipos de declaraes:

Declarao de Constante
Declarao de Funo
Declarao de Matriz
Declarao de Variveis
Declarao de vetor

Declarao de Constante
Existem algumas situaes em que precisamos que um determinado parmetro no
tenha seu valor alterado durante a execuo do programa. Para isso, existem as
constantes. Constante um identificador cujo valor associado no pode ser alterado
pelo programa durante a sua execuo.

Para declarar uma constante basta adicionar a palavra reservada const seguida do
tipo de dado, pelo nome da constante e atribuir um valor a ela.
7

Por uma questo de conveno, aconselhvel deixar o nome da sua constante em


caixa alta (todas as letras em maisculo)

Para melhor compreenso deste conceito, confira o exemplo abaixo.

Declarao de Funo
Se lhe fosse solicitado um algoritmo para preencher uma matriz, voc o resolveria
correto? Porm, se ao invs de uma matriz fossem solicitadas dez matrizes?
Concordamos que o algoritmo ficaria muito cansativo e repetitivo. Mas, e se
pudssemos repetir o mesmo procedimento, quantas vezes necessrias, o
escrevendo apenas uma vez? Ns podemos. Para isso, usamos uma funo. Funo
consiste em uma poro de cdigo que resolve um problema muito especfico, parte
de um problema maior.

Algumas das vantagens na utilizao de funes durante a programao so:

A reduo de cdigo duplicado num programa;


A possibilidade de reutilizar o mesmo cdigo sem grandes alteraes em
outros programas;
A decomposio de problemas grandes em pequenas partes;
Melhorar a interpretao visual de um programa;
Esconder ou regular uma parte de um programa, mantendo o restante cdigo
alheio s questes internas resolvidas dentro dessa funo;
8

Os componentes de uma funo so:

O seu prottipo, que inclui os parmetros que so passados funo na altura


da invocao;
O corpo, que contm o bloco de cdigo que resolve o problema proposto;
Um possvel valor de retorno, que poder ser utilizado imediatamente a seguir
invocao da funo.

A declarao de funo no Portugol realizada da seguinte forma: Deve-se utilizar a


palavra reservada funcao, seguido do tipo de retorno. Quando o tipo de retorno
ocultado, o Portugol assume que o retorno do tipo vazio. Ento, deve-se definir o
nome da funo seguido de abre parnteses, uma lista de parmetros pode ser
includa antes do fecha parnteses. Para concluir a declarao deve-se criar o corpo
da funo. O corpo da funo consiste em estruturas dentro do abre e fecha chaves.
Quando uma funo possui um tipo de retorno diferente de vazio, obrigatria a
presena do comando retorne no corpo da funo.

A declarao dos parmetros similar a declarao de varivel,vetor e matriz sem


inicializao e devem ser separados por vrgula. Note que uma funo do tipo vazio
no tem retorno.

Para funes existem dois tipos de passagens de valores possveis. So eles: por
valor e por referncia. A passagem de parmetros por valor transfere para a funo
apenas o valor contido na varivel, ou seja, a varivel em si no ter seu contedo
alterado. J a passagem de parmetro por referncia transfere a varivel como um
todo, modificando a mesma de acordo com os comandos presentes no corpo da
funo.
9

Por padro os parmetros se comportam como passagem por valor, para o parmetro
se comportar como referncia deve-se adicionar o smbolo & antes do nome do
parmetro.

Para melhor compreenso deste conceito, confira o exemplo abaixo.

Declarao de Matriz
Para a melhor compreenso do conceito de matriz, e interessante o entendimento de
Vetores. Os vetores permitem solucionar uma srie de problemas onde necessrio
armazenamento de informaes, porm ele possui a restrio de ser linear. Por
exemplo, imagine que queremos armazenar trs notas obtidas por quatro alunos
diferentes. Neste caso, existe outra estrutura mais adequada para armazenar os
dados. A matriz.

A matriz definida como sendo um vetor com mais de uma dimenso (geralmente
duas). Enquanto o vetor armazena as informaes de forma linear, a matriz armazena
de forma tabular (com linha e colunas).
10

A tabela a seguir ilustra uma matriz que armazena trs notas de quatro alunos:

Posies 0 1 2
0 10 9 6.7
1 6 8 10
2 8 7 4.5
3 5.2 3.3 0.3

Repare que cada linha da matriz representa um aluno que tm trs notas (trs
colunas).

Assim como o vetor, a matriz tambm possui todos os elementos de um mesmo tipo.
Na declarao de uma matriz temos sempre que indicar respectivamente o tipo de
dado, nome da varivel, nmero de linhas e colunas (nesta ordem) entre colchetes.

Para fazer acesso a um elemento da matriz, seja para preencher ou para consultar o
valor, devemos indicar dois ndices, uma para linha e outro para a coluna. O ndice
um valor inteiro (pode ser constante ou uma varivel) que aparece sempre entre
colchetes "[ ]" aps o nome do vetor.
11

Da mesma forma que o vetor, tentar acessar um ndice fora do tamanho declarado ir
gerar um erro de execuo.

Para melhor compreenso deste conceito, confira o exemplo abaixo.

Declarao de Variveis
O computador armazena os dados que so utilizados nos programas e algoritmos na
memria de trabalho ou memria RAM (Random Access Memory). A memria do
computador sequencial e dividida em posies. Cada posio de memria permite
12

armazenar uma palavra (conjunto de bytes) de informao e possui um nmero que


indica o seu endereo.

Vamos supor que queremos fazer um programa que solicita para um usurio digitar a
sua idade e exibe a ele quantos anos faltam para ele atingir 100 anos de idade.
Precisaremos armazenar a idade do usurio para depois realizar o clculo 100 -
idade_usuario e depois armazenar tambm o resultado.

Para facilitar a nossa vida de programadores, foram criadas as variveis. As variveis


podem ser entendidas como sendo apelidos para as posies de memria. atravs
das variveis que os dados dos nossos programas sero armazenados. A sintaxe para
se declarar uma varivel o tipo da varivel, o nome da varivel ou das variveis
(separadas por virgula cada uma) e opcionalmente pode ser atribudo a ela um valor
de inicializao (exceto se for declarado mais de uma na mesma linha)

importante ressaltar que o nome de cada varivel deve ser explicativo, facilitando
assim a compreenso do contedo que est armazenado nela.

Para melhor compreenso deste conceito, confira o exemplo abaixo.


13

Declarao de Vetores
Armazenar a nota de um aluno possvel utilizando uma varivel do tipo real. Mas
para armazenar as notas de todos os alunos de uma turma? Seria necessrio criar
uma varivel para cada aluno? E se cada turma tiver quantidade de alunos variveis?
E os nomes de cada um dos alunos? Poderamos armazenar estes dados em
variveis, porm o controle de muitas variveis em um programa no uma soluo
prtica. Ao invs disso, utiliza-se uma estrutura de dados que agrupa todos estes
valores em um nome nico. Esta estrutura chama-se vetor.

Um vetor pode ser visto como uma varivel que possui diversas posies, e com isso
armazena diversos valores, porm todos do mesmo tipo.

Assim como as variveis, o vetor tem que ser declarado. Sua declarao similar
declarao de variveis, definindo primeiro o seu tipo, em seguida do seu nome e por
fim a sua dimenso entre colchetes (opcional se for atribuir valores a ele na
declarao)

Elementos individuais so acessados por sua posio no vetor. Como um vetor tem
mais de uma posio, deve-se indicar qual posio do vetor se quer fazer acesso.
Para isso necessrio usarmos um ndice.

O ndice um valor inteiro que aparece sempre entre colchetes "[ ]" aps o nome do
vetor. Adotamos que a primeira posio do vetor tem ndice zero (similar a linguagem
C) e a ltima depende do tamanho do vetor. Em um vetor de dez elementos tem-se as
posies 0,1,2,3,4,5,6,7,8,9. J um vetor de quatro elementos tem apenas os ndices
0,1,2,3.

Para melhor compreenso deste conceito, confira o exemplo abaixo.


14

Entrada e Sada
Entrada/sada um termo utilizado quase que exclusivamente no ramo da
computao (ou informtica), indicando entrada(insero) de dados por meio de algum
cdigo ou programa,para algum outro programa ou hardware, bem como a sua sada
(obteno de dados) ou retorno de dados, como resultado de alguma operao de
algum programa,consequentemente resultado de alguma entrada.

A instruo de entrada de dados possibilita que o algoritmo capture dados


provenientes do ambiente externo (fora da mquina) e armazene em variveis. Assim
um algoritmo consegue representar e realizar operaes em informaes que foram
fornecidas por um usurio tais como: nome, idade,salrio, sexo, etc. A forma mais
comum de capturar dados atravs do teclado do computador. Por meio dele o
usurio pode digitar nmeros, palavras, frases etc.
15

A instruo de sada de dados permite ao algoritmo exibir dados na tela do


computador. Ela utilizada para exibir mensagens, resultados de clculos,
informaes contidas nas variveis, etc.

Nesta seo, sero abordados os seguintes tpicos:

Escreva
Leia
Limpa

Escreva
Em determinadas situaes precisamos mostrar ao usurio do programa alguma
informao. Para isso, existe um comando na programao que exibe dados ao
usurio. No portugol a instruo de sada de dados para a tela chamada de
escreva", pois segue a ideia de que o algoritmo est escrevendo dados na tela do
computador.

O comando escreva utilizado quando deseja-se mostrar informaes no console da


IDE, ou seja, um comando de sada de dados

.Para utilizar o comando escreva, voc dever escrever este comando e entre
parnteses colocar a(s) varivel(eis) ou texto que voc quer mostrar no console.
Lembrando que quando voc utilizar textos, o texto deve estar entre aspas. A sintaxe
para utilizao deste comando est demonstrada a seguir:

O fluxograma abaixo ilustra as diversas formas de se exibir valores na tela com o


comando escreva.
16

Note que quando queremos exibir o valor de alguma varivel no utilizamos as aspas.
Para exibio de vrias mensagens em sequncia, basta separ-las com vrgulas.

Existem duas ferramentas importantes que auxiliam a organizao e visualizao de


textos exibidos na tela. So elas:o quebra-linha e a tabulao.

O quebra-linha utilizado para inserir uma nova linha aos textos digitados. Sem ele,
os textos seriam exibidos um ao lado do outro. Para utilizar este comando, basta
inserir "\n". O comando de tabulao utilizado para inserir espaos maiores entre os
textos digitados. Para utilizar este comando, basta inserir "\t".

O exemplo a seguir ilustra em portugol o mesmo algoritmo do fluxograma acima, bem


como a utilizao do quebra-linha e da tabulao.
17

Leia
Em alguns problemas, precisamos que o usurio digite um valora ser
armazenado. Por exemplo, se quisermos elaborar um algoritmo para calcular a
mdia de nota dos alunos,precisaremos que o usurio informe ao algoritmo
quais as suas notas. No portugol a instruo de entrada de dados via teclado
chamada de "leia", pois segue a ideia de que o algoritmo est lendo dados do
ambiente externo(usurio) para poder utiliz-los. O Comando leia utilizado
quando se deseja obter informaes do teclado do computador, ou seja, um
comando de entrada de dados. Esse comando aguarda um valor a ser digitado
e o atribui diretamente na varivel.

Para utilizar o comando leia, voc dever escrever este comando e entre
parnteses colocar a(s) varivel (eis) que voc quer que recebam os valores a
serem digitados. A sintaxe deste comando est exemplificada a seguir:

Note que para armazenar um valor em uma varivel, necessrio que a


mesma j tenha sido declarada anteriormente. Assim como no comando
escreva, se quisermos que o usurio entre com dados sucessivos, basta
separar as variveis dentro dos parnteses com vrgula.

O fluxograma abaixo ilustra um algoritmo que l as variveis: idade, salrio,


nome, sobrenome, nota1, nota2 e nota3.
18

O exemplo a seguir ilustra em portugol o mesmo algoritmo do fluxograma


acima.
19

Limpa
medida que um algoritmo est sendo executado ele exibe mensagens e
executa aes no console. Assim, em alguns casos o console fica poludo com
informaes desnecessrias, que atrapalham a compreenso e visualizao do
programa. Para isso, podemos usar o comando limpa. O comando limpa
responsvel por limpar o console. Norequer nenhum parmetro e no tem
nenhuma sada. Sua sintaxe simples, e est demonstrada a seguir:

Para melhor compreenso deste conceito, confira o exemplo abaixo.

Estruturas de Controle
Em determinadas situaes necessrio executar aes de acordo com os
dados fornecidos pelo programa. Em alguns casos, pode ser necessrio que o
programa execute uma determinada instruo repetidas vezes, por exemplo.
Sendo assim, controlar e manipular a ordem com que instrues sero
20

executadas em funo de dados fornecidos pelo programa essencial, e


para isso que servem as estruturas de controle.

Estruturas de controle (ou fluxos de controle) referem-se ordem em que


instrues, expresses e chamadas de funo so executadas. Sem o uso de
estruturas de controle, o programa seria executado de cima para baixo,
instruo por instruo, dificultando assim a resoluo de diversos problemas.

Nesta seo, sero abordados os seguintes tpicos:

Desvios Condicionais
Laos de Repetio

Desvios Condicionais
No s na vida que fazemos escolhas. Nos algoritmos encontramos
situaes onde um conjunto de instrues deve ser executado caso uma
condio seja verdadeira. Por exemplo: sua aprovao na disciplina de
algoritmos depende da sua mdia final ser igual ou superior a 6. Podemos
ainda pensar em outra situao: a seleo brasileira de futebol s participa de
uma copa do mundo se for classificada nas eliminatrias, se isso no ocorrer
ficaremos sem o hexacampeonato.

Estas e outras situaes podem ser representadas nos algoritmos por meio de
desvios condicionais.

Nesta seo, sero abordados os seguintes tpicos:

se se-senao-se
se-senao escolha-caso

Escolha Caso

Qual a melhor forma para programar um menu de, por exemplo, uma
calculadora? Esta tarefa poderia ser executada atravs de desvios condicionais
se e seno, porm esta soluo seria complexa e demorada. Pode-se executar
21

esta tarefa de uma maneira melhor, atravs de outro tipo de desvio condicional:
o escolha junto com o caso. Este comando similar aos comandos se e
seno, e reduz a complexidade do problema.

Apesar de suas similaridades com o se, ele possui algumas diferenas. Neste
comando no possvel o uso de operadores lgicos, ele apenas trabalha com
valores definidos, ou o valor igual ou diferente. Alm disto, o escolha e o
caso tem alguns casos testes, e se a instruo pare no for colocada ao fim
de*cada um destes testes, o comando executar todos casos*existentes.

A sintaxe do escolha respectivamente o comando escolha a condio a ser


testada e entre chaves se coloca os casos.

A sintaxe para se criar um caso a palavra reservada caso, o valor que a


condio testada deve possuir dois pontos e suas instrues. Lembre-se de
termina-las com o comando pare.

O comando pare evita que os blocos de comando seguinte sejam executados


por engano. O caso contrario ser executado caso nenhuma das expresses
anteriores sejam executadas.

A figura a seguir ilustra um algoritmo que verifica se o a varivel valor igual a


0, 1 ou 2.
22

O exemplo a seguir ilustra em portugol o mesmo algoritmo do fluxograma


acima.
23

Se

Aqui veremos como dizer a um algoritmo quando um conjunto de instrues


deve ser executado. Esta determinao estabelecida se uma condio for
verdadeira. Mas o que seria esta condio? Ao executar um teste lgico
teremos como resultado um valor verdadeiro ou falso. A condio descrita
anteriormente nada mais que um teste lgico.

Se este teste lgico resultar verdadeiro, as instrues definidas dentro do


desvio condicional sero executadas. Se o teste for falso, o algoritmo pular o
trecho e continuar sua execuo a partir do ponto onde o desvio condicional
foi finalizado.

O desvio condicional que foi acima apresentado considerado simples e


conhecido como o comando se. A sintaxe respectivamente a palavra
reservada se, a condio a ser testada entre parnteses e as instrues que
devem ser executadas entre chaves caso o desvio seja verdadeiro.

A figura abaixo ilustra um algoritmo que verifica se o nmero digitado pelo


usurio zero. Ele faz isso usando um desvio condicional. Note que se o teste
for verdadeiro exibir uma mensagem, no caso falso nenhuma ao
realizada.
24

O exemplo a seguir ilustra em portugol o mesmo algoritmo do fluxograma


acima.

Se-senao

Agora vamos imaginar que se a condio for falsa um outro conjunto de


comandos deve ser executado. Quando iremos encontrar esta situao?

Imagine um programa onde um aluno com mdia final igual ou maior a 6


aprovado. Se quisermos construir um algoritmo onde aps calculada a mdia,
seja mostrada na tela uma mensagem indicando se o aluno foi aprovado ou
reprovado. Como fazer isto? Utilizando o comando se junto com o senao.
25

Sua sintaxe simples, basta no termino do comando se ao lado do*fechamento


de chaves, colocar o comando senao e entre chaves colocar as instrues a
serem executadas caso o comando se for falso.

O exemplo a seguir ilustra em portugol o mesmo algoritmo do fluxograma


acima.
26

Se-senao se

Agora imagine que voc precise verificar a nota da prova de um aluno e falar
se ele foi muito bem, bem, razovel ou mau em uma prova como fazer isto ?

Quando voc precisa verificar se uma condio verdadeira, e se no for,


precise verificar se outra condio verdadeira uma das formas de se
fazer*esta verificao utilizando o se ... senao se;

A sua sintaxe parecida com a do senao, mas usando o comando se


imediatamente aps escrever o comando senao.
27

Tambm pode-se colocar o comando senao no final do ultimo senao se, assim
quando todos os testes falharem, ele ir executar as instrues dentro do
seno.

O exemplo a seguir ilustra a resoluo do em Portugol de avisar se o aluno foi


muito bem, bem, razovel ou mau em uma prova.

Laos de Repetio
Existem problemas que so repetitivos por natureza. Por exemplo, escrever um
algoritmo para calcular a mdia de um aluno algo fcil, mas se quisermos
calcular a mdia da turma inteira? A soluo mais simples seria executar o
algoritmo tantas vezes que o clculo fosse necessrio, embora esta tarefa seja
um tanto trabalhosa. Mas se ainda, nesta conta ao final o professor quisesse
que fosse mostrada a mdia mais alta e mais baixa da turma?
28

Esse e outros problemas podem ser resolvidos com a utilizao de laos de


repetio. Um lao de repetio, como sugere o prprio nome, um comando
onde uma quantidades de comandos se repete at que uma determinada
condio seja verdadeira.

O Portugol contm 3 tipos de laos de repetio: pr-testado, ps-testado e


lao com varivel de controle.

Nesta seo, sero abordados os seguintes tpicos:

Enquanto
Faa-Enquanto
Para

Lao Enquanto (Pr-Testado)


Se fosse necessrio a elaborao de um jogo, como por exemplo um jogo da
velha, e enquanto houvessem lugares disponveis no tabuleiro, este jogo
devesse continuar, como faramos para que o algoritmo tivesse este
comportamento? simples. O comando enquanto poderia fazer esse teste
lgico. A funo do comando enquanto : executar uma lista de comandos
enquanto uma*determinada condio for verdadeira.

A sintaxe respectivamente a palavra reservada enquanto, a condio a ser


testada entre parnteses, e entre chaves a lista de instrues que se deseja
executar.

A figura abaixo ilustra um algoritmo que verifica uma varivel do tipo carcter.
Enquanto a varivel for diferente da letra S o comando enquanto ser
executado, assim como as instrues dentro dele. No momento em que o
29

usurio atribuir S a varivel, o comando enquanto terminar e o programa


chega ao seu final.

O exemplo a seguir ilustra em portugol o mesmo algoritmo do fluxograma


acima.
30

Lao Faa-Enquanto (Ps-Testado)


Em algumas situaes, faz-se necessrio verificar se uma condio
verdadeira ou no aps uma entrada de dados do usurio. Para situaes
como essa, podemos usar o lao de repetio faca-enquanto. Este teste bem
parecido com o enquanto. A diferena est no fato de que o teste lgico
realizado no final, e com isso as instrues do lao sempre sero realizadas
pelo menos uma vez. O teste verifica se elas devem ser repetidas ou no.

A sintaxe respectivamente a palavra reservada faca, entre chaves as


instrues a serem executadas, a palavra reservada enquanto e entre
parnteses a condio a ser testada.

A figura abaixo ilustra um algoritmo que calcula a rea de um quadrado. Note


que para o clculo da rea necessrio que o valor digitado pelo usurio para
aresta seja maior que 0. Caso o usurio informe um valor menor ou igual a 0
para a aresta, o programa repete o comando pedindo para que o usurio entre
novamente com um valor para a aresta. Caso seja um valor vlido, o programa
continua sua execuo normalmente e ao fim exibe a rea do quadrado.
31

Lao Para (Com Varivel de Controle)


E se houver um problema em que sejam necessrias um nmero determinado
de repeties? Por exemplo, se quisssemos pedir ao usurio que digitasse 10
valores. Poderamos utilizar a instruo Leia repetidas vezes. Porm se ao
invs de 10 valores precisssemos de 100, essa tarefa se tornaria muito
32

extensa. Para resolver problemas como esse, podemos usar um lao


de*repetio com varivel de controle. No portugol, ele conhecido como para.

O lao de repetio com varivel de controle facilita a construo de algoritmos


com nmero definido de repeties, pois possui um contador (varivel de
controle) embutido no comando como incremento automtico. Desta forma, um
erro muito com um que se comete ao esquecer de fazer o incremento do
contador evitado. Toda vez que temos um problema cuja soluo necessita
de um nmero determinado de repeties utilizamos um contador. O contador
deve ser inicializado antes do lao e deve ser incrementado dentro do lao.

O lao com varivel de controle possui trs partes. A inicializao da varivel


contadora, a definio do valor final do contador e adefinio do incremento.
Estas trs partes so escritas juntas, no incio do lao.

A sintaxe respectivamente a palavra reservada para, abre parenteses, a


declarao de uma varivel de controle, ponto e virgula, a condio a ser
testada, ponto e virgula, uma alterao*na varivel de controle a ser feita a
cada iterao, fecha parenteses, e entre chaves as instrues do programa.

A figura abaixo ilustra um algoritmo que exibe na tela a tabuada de 3. Note que
conforme a sintaxe mostrada anteriormente, a primeira instruo do lao
inicializar o contador c=1. O segundo comando especifica a condio para que
o lao continue a ser executado, ou seja, enquanto o contador c for menor ou
igual a10. Por ltimo, a terceira instruo demonstra que o contador c ser
acrescentado em 1 em seu valor a cada iterao do comando. O lao ser
executado 10 vezes e mostrar a tabuada de 3.
33

O exemplo a seguir ilustra em portugol o mesmo algoritmo do fluxograma


acima.

Expresses
Uma expresso em uma linguagem de programao uma combinao de
valores explcitos, constantes, variveis,operadores e funes que so
interpretados de acordo com as regras especficas de precedncia e de
associao para uma linguagem de programao especfica, que calcula e, em
seguida,produz um outro valor. Este processo, tal como para as expresses
34

matemticas, chama-se avaliao. O valor pode ser de vrios tipos, tais como
numrico, cadeia, e lgico.

Nesta seo, sero abordados os seguintes tpicos:

Operao de Atribuio
Operaes Aritmticas
Operaes Bit a Bit
Operaes Lgicas
Operaes Relacionais

Atribuies
Quando criamos uma varivel, simplesmente separamos um espao de
memria para um contedo. Para especificar esse contedo, precisamos de
alguma forma determinar um valor para essa varivel. Para isso, usamos a
operao de atribuio. A instruo de atribuio serve para alterar o valor de
uma varivel.

Ao fazer isso dizemos que estamos atribuindo um novo valor a esta varivel. A
atribuio de valores pode ser feita de variadas formas. Pode-se atribuir
valores atravs de constantes,de dados digitados pelo usurio (Leia) ou
mesmo atravs de comparaes e operaes com outras variveis j
existentes.Neste ltimo caso, aps a execuo da operao, a varivel conter
o valor resultante da operao. O sinal de igual "=" o smbolo da atribuio no
Portugol. A varivel a esquerda do sinal de igual recebe o valor das operaes
que estiverem direita.

Veja a sintaxe:
35

Note que uma varivel s pode receber atribuies do mesmo tipo que ela. Ou
seja, se a varivel "b" do tipo inteiro e a varivel "a" do tipo real, a atribuio
no poder ser realizada.

Existem alguns operandos no Portugol que podem ser utilizados para


atribuio de valores. So eles:

Para melhor compreenso deste conceito, confira o exemplo abaixo.

Operaes Aritmticas
As operaes aritmticas so nossas velhas conhecidas da Matemtica. Em
algoritmos muito comum usarmos operadores aritmticos para realizar
clculos.
36

Os smbolos que usamos para os operadores na Matemtica mudam um


pouquinho em algoritmos. A multiplicao, que na matemtica um xis 'x' ou
um ponto "." torna-se um '*',justamente para no confundir com o xis que pode
ser uma varivel e com o ponto que pode ser a parte decimal de um nmero
real. A tabela a seguir mostra quais so os operadores que o Portugol utiliza:

A prioridade indica qual operao deve ser realizada primeiro quando


houverem vrias juntas. Quanto maior a prioridade,antes a operao ocorre.
Por exemplo:

6 + 7 * 9A multiplicao 7 * 9 feita antes pois a operao de multiplicao tem


prioridade maior que a soma. O resultado deste clculo ser 69.

O uso de parnteses permite modificar a ordem em que as operaes so


realizadas. Na Matemtica existem os parnteses'(', os colchetes '[' e as
chaves '{' para indicar as prioridades. Na computao, usa-se somente os
parnteses, sendo que os mais internos sero realizados primeiro.Nesta seo,
sero abordados os seguintes tpicos:

Operao de Adio Operao de Subtrao


Operao de Diviso
Operao de Mdulo
Operao de Multiplicao

Operao de Adio
Adio uma das operaes bsicas da lgebra. Na sua forma mais simples,
adio combina dois nmeros (termos, somando sou parcelas), em um nico
nmero, a soma ou total. Adicionar mais nmeros corresponde a repetir a
operao.

A sintaxe bem fcil, se coloca os operandos entre o sinal demais.


37

Note que voc poder atribuir o resultado desta operao a uma varivel, ou
mesmo executar diretamente atravs do comando escreva.

Para melhor compreenso deste conceito, confira o exemplo abaixo.


38

Operao de Diviso
Diviso a operao matemtica inversa da multiplicao. utilizada para,
como o prprio nome sugere, dividir, repartir, separar algum valor em partes
iguais. Seus elementos esto demonstrados na figura a seguir:

Note que voc poder atribuir o resultado desta operao a uma varivel, ou
mesmo executar diretamente atravs do comando escreva.

Tabela de compatibilidade de tipos da operao de


diviso

Para melhor compreenso deste conceito, confira o exemplo abaixo.


39

Operao de Mdulo
Em algumas situaes faz-se necessrio manipular o resto de algumas
divises. Por exemplo, se voc quiser saber se um determinado valor par ou
mpar, como faria? Para isso podemos utilizar o mdulo. A operao mdulo
encontra o resto da diviso de um nmero por outro.

Dados dois nmeros a (o dividendo) e b o divisor, a modulo b (a % b) o resto


da diviso de a por b. Por exemplo, 7 % 3 seria 1, enquanto 9 % 3 seria 0.

Note que voc poder atribuir o resultado desta operao a uma varivel, ou
mesmo executar diretamente atravs do comando escreva.

Tabela de compatibilidade de tipos da operao de mdulo

Para melhor compreenso deste conceito, confira o exemplo abaixo.


40

Operao de Multiplicao
Na sua forma mais simples a multiplicao uma forma de se adicionar uma
quantidade finita de nmeros iguais. O resultado da multiplicao de dois
nmeros chamado produto. Os nmeros sendo multiplicados so chamados
de coeficientes ou operandos, e individualmente de multiplicando e
multiplicador, conforme figura abaixo:

Note que voc poder atribuir o resultado desta operao a uma varivel, ou
mesmo executar diretamente atravs do comando escreva.

Propriedades importantes

Comutatividade: A ordem dos fatores no altera o resultado da


operao. Assim, se x * y = z, logo y * x = z.
41

Associatividade: O agrupamento dos fatores no altera o resultado.


(Podemos juntar de dois em dois de modo que facilite o clculo). Assim,
se (x * y) * z = w, logo x *(y * z) =w.
Distributividade: Um fator colocado em evidncia numa soma dar
como produto a soma do produto daquele fator com os demais fatores.
Assim, x *(y + z) = (*x * y) +(x * z).
Elemento neutro: O fator 1 (um) no altera o resultado dos demais
fatores. O um chamado "Elemento neutro" da multiplicao. Assim, se
x * y = z, logo x * y * 1 = z.(obs:o 0 o da soma.)
Elemento opositor: O fator -1 (menos um) transforma o produto em seu
simtrico. Assim, -1 * x = -x e -1 * y = -y, para y diferente de x.
Fechamento: O produto de dois nmeros reais ser sempre um nmero
do conjunto dos nmeros reais.
Anulao: O fator 0 (zero) anula o produto. Assim, x * 0 = 0, e y * 0 = 0,
com x diferente de y.

Tabela de compatibilidade de tipos da operao de


multiplicao

Para melhor compreenso deste conceito, confira o exemplo abaixo.


42

Operao de Subtrao
Operao de Subtrao uma operao matemtica que indica quanto um
valor numrico (minuendo) se dele for removido outro valor numrico
(subtraendo).A subtrao o mesmo que a adio por um nmero de sinal
inverso. , portanto, a operao inversa da adio. Seus elementos esto
demonstrados na figura a seguir:

Note que voc poder atribuir o resultado desta operao a uma varivel, ou
mesmo executar diretamente atravs do comando escreva.

Propriedades importantes

Fechamento: A diferena de dois nmeros reais ser sempre um


nmero real.
Elemento neutro: Na subtrao no existe um elemento neutro n tal
que, qualquer que seja o real a, a - n = n - a = a.
Anulao: Quando o minuendo igual ao subtraendo, a diferena ser
0 (zero).

Tabela de compatibilidade de tipos da operao de


subtrao
43

Para melhor compreenso deste conceito, confira o exemplo abaixo.

Operaes Lgicas
As operaes lgicas so uma novidade para muitos, pois raramente so vistas
na escola. Um operador lgico opera somente valores lgicos, ou seja,
necessrio que o valor esquerda e a direita do operador sejam valores
lgicos (verdadeiro ou falso). muito comum usar expresses relacionais (que
do resultado lgico) e combin-las usando operadores lgicos. Por exemplo:

Assim como as operaes aritmticas, as operaes lgicas tambm possuem


prioridades. Veja a tabela abaixo:
44

Ou seja, o nao tem maior prioridade que todos, e o ou tem a menor. Veja os
exemplos a seguir:

Nesta seo, sero abordados os seguintes tpicos:

E OU NAO

E
Em algumas situaes, necessitamos que alguma instruo s seja executada
se outras condies forem verdadeiras. Por exemplo, se voc quisesse testar
se duas variveis*distintas tm valor igual a 2, como faria? Para isso podemos
utilizar o operador lgico e.

Quando usamos o operador e o resultado de uma operao lgica ser


verdadeiro somente quando AMBOS os operandos forem verdadeiros. Ou seja,
basta que um deles seja falso e a resposta ser falsa. A tabela a seguir
conhecida como tabela verdade e ilustra o comportamento do operador e.
45

Em geral, os operadores lgicos so utilizados em conjunto com as Estruturas


de Controle.

Para melhor compreenso deste conceito, confira o exemplo abaixo.

OU
Em algumas situaes, necessitamos que alguma instruo seja executada se
uma entre vrias condies forem verdadeiras. Por exemplo, se voc quisesse
testar se pelo menos uma entre duas variveis distintas tm valor igual a 2,
como faria? Para isso podemos utilizar o operador lgico ou.
46

Quando usamos o operador *ou* o resultado de uma operao lgica ser


verdadeiro sempre que UM dos operandos for verdadeiro. A tabela verdade a
seguir ilustra o*comportamento do operador ou.

Em geral, os operadores lgicos so utilizados em conjunto com as Estruturas


de Controle.

Para melhor compreenso deste conceito, confira o exemplo abaixo.


47

NAO
Em algumas situaes necessitamos verificar se o contrrio de uma sentena
verdadeiro ou no. Por exemplo, se voc tem uma varivel com um valor falso,
e quer fazer um teste que ser positivo sempre que essa varivel for falsa,
como faria? Para isso podemos utilizar o operador lgico nao.

O operador nao funciona de forma diferente, pois necessita apenas de um


operando. Quando usamos o operador nao, o valor lgico do operando
invertido, ou seja, o valor*falso torna-se verdadeiro e o verdadeiro torna-se
falso. Em geral, os operadores lgicos so utilizados em conjunto com as
Estruturas de Controle.

Para melhor compreenso deste conceito, confira o exemplo abaixo.


48

Operaes Relacionais
Vamos imaginar que voc precise verificar se um nmero digitado pelo usurio
positivo ou negativo. Como poderamos verificar isto? Atravs de uma
operao relacional. As operaes relacionais tambm so nossas conhecidas
da Matemtica. Em algoritmos, os operadores relacionais so importantes, pois
permitem realizar comparaes que tero como resultado um valor lgico
(verdadeiro ou falso).

Os smbolos que usamos para os operadores tambm mudam um pouco em


relao ao que usamos no papel. Os smbolos para diferente, maior ou igual e
menor ou igual mudam pois no existem nos teclados convencionais. A tabela
a seguir mostra todas as operaes relacionais e os smbolos que o Portugol
utiliza.

A tabela a seguir apresenta a estrutura de algumas dessas operaes.

Nos dois ltimos exemplos, temos operadores aritmticos e relacionais juntos.


Nestes casos, realiza-se primeiro a operao aritmtica e depois a relacional.
Em geral, as operaes relacionais so utilizadas em conjunto com as
Estruturas de Controle. Veja a sintaxe:
49

Para melhor compreenso deste conceito, confira o exemplo abaixo.

Tipos
Quais so os tipos de dados que o computador pode armazenar?

Se pararmos para pensar que tudo que o computador compreende


representado atravs de Zeros e Uns. Ento a resposta Zero e Um. Certo?
Certo! Mas como ento o computador pode exibir mensagens na tela,
apresentar ambientes grficos cheios de janelas, compreender o significado
das teclas do teclado ou dos cliques do mouse.
50

Bom tudo comea com a definio de uma srie de cdigos. Por exemplo. A
letra "a" do teclado representada pela seguinte sequncia de zeros e uns
"01000001". O nmero 22 representado por "00010110". E assim todos os
dados que so armazenados pelo computador podem ser representados em
zeros e ums.

Sendo assim, existem alguns tipos bsicos de dados nos quais valores podem
ser armazenados no computador. O Portugol exige que o tipo de dado de um
valor seja do mesmo tipo da varivel ao qual este valor ser atribudo.Nesta
seo, sero abordados os seguintes tpicos:

Tipo Cadeia Tipo Real


Tipo Caracter Tipo Vazio
Tipo Inteiro
Tipo Lgico

Tipo Cadeia
Em algumas situaes precisa-se armazenar em uma varivel, um texto ou
uma quantidade grande de caracteres. Para armazenar este tipo de contedo,
utiliza-se uma varivel do tipo cadeia. Cadeia uma sequncia ordenada de
caracteres (smbolos) escolhidos a partir de um conjunto pr-determinado. A
sintaxe a palavra reservada cadeia seguida do nome da varivel.

O valor que essa varivel assumir poder ser especificado pelo programador,
ou solicitado ao usurio (ver Operao de Atribuio). Caso seja especificado
pelo programador, o contedo deve estar acompanhado de aspas duplas.

Para melhor compreenso deste conceito, confira o exemplo abaixo.


51

Tipo Caracter
Em determinadas situaes faz-se necessrio o uso de smbolos, letras ou
outro tipo de contedo. Por exemplo, em um jogo da velha, seriam necessrias
variveis que tivessem*contedos de 'X' e '0'. Para este tipo de situao, existe
a varivel do tipo caracter. A varivel do tipo caracter aquela que contm
uma informao composta de apenas UM caracter alfanumrico ou especial.
Exemplos de caracteres so letras, nmeros, pontuaes e etc.

A sintaxe a palavra reservada caracter e em seguida um nome para varivel.

O valor que essa varivel assumir poder ser especificado pelo programador
ou solicitado ao usurio (ver Operao de Atribuio). Caso seja especificado
pelo programador, o contedo deve estar acompanhado de aspas simples.

Para melhor compreenso deste conceito, confira o exemplo abaixo.


52

Tipo Inteiro
Em determinadas situaes faz-se necessrio a utilizao de valores inteiros
em um algoritmo. Como faramos, por exemplo, uma simples soma entre dois
nmeros pertencentes*ao conjunto dos nmeros inteiros? Simples. Utilizando
variveis do tipo inteiro. Uma varivel do tipo inteiro pode ser entendida como
uma varivel que contm qualquer nmero*que pertena ao conjunto dos
nmeros inteiros. Podem ser positivos, negativos ou nulos.

A declarao de uma varivel do tipo inteiro simples. A sintaxe a palavra


reservada *inteiro* e em seguida um nome para varivel.

O valor que essa varivel assumir poder ser especificado pelo programador
ou solicitado ao usurio (ver Operao de Atribuio). Para melhor
compreenso deste conceito, confira o exemplo abaixo.

Tipo Lgico
Em determinadas situaes faz-se necessrio trabalhar com informaes do
tipo verdadeiro e falso. Este tipo de necessidade aparece muito em operaes
relacionais para exibir*se determinada condio verdadeira ou falsa. Por
exemplo: como poderamos verificar se um nmero digitado pelo usurio
maior que zero? Atravs de uma varivel do tipo logico. Uma varivel do tipo
logico aquela que contm um tipo de dado, usado em operaes lgicas,
que possui somente dois valores, que so consideradas pelo Portugol*como
verdadeiro e falso.
53

A declarao de uma varivel do tipo logico simples. A sintaxe a palavra


reservada logico seguida do nome da varivel.

O valor que essa varivel assumir poder ser especificado pelo programador
ou solicitado ao usurio (ver Operao de Atribuio). Lembrando que em
ambos os casos a varivel s assume valores verdadeiro ou falso.

Para melhor compreenso deste conceito, confira o exemplo abaixo.

Tipo Real
Em algumas situaes necessrio armazenar valores que no pertencem aos
nmeros inteiros. Por exemplo, se quisssemos armazenar o valor da diviso
de 8 por 3, como faramos? Este problema pode ser solucionado com uma
varivel do tipo real. Uma varivel do tipo real armazena um nmero real como
uma frao decimal possivelmente*infinita, como o nmero PI 3.1415926535.
Os valores do tipo de dado *real* so nmeros separados por pontos e no por
vrgulas.

A sintaxe para a declarao a palavra reservada real junto com o nome da


varivel.
54

O valor que essa varivel assumir poder ser especificado pelo programador
ou solicitado ao usurio (ver Operao de Atribuio). Para melhor
compreenso deste conceito, confira o exemplo abaixo.

Tipo Vazio
Vazio usado para o resultado de uma funo que retorna normalmente, mas
no fornece um valor de resultado ao seu chamado. Normalmente, essas
funes de tipo vazio so chamadas por seus efeitos colaterais, como a
realizao de alguma tarefa ou escrevendo os seus parmetros na sada de
dados. A funo com o tipo vazio termina ou por atingir o final da funo ou
executando um comando retorne sem valor retornado.

Você também pode gostar