Documente Academic
Documente Profesional
Documente Cultură
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.
https://sourceforge.net/projects/portugolstudio/
SUMRIO
Linguagem Portugol
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.
Para se utilizar uma biblioteca necessrio primeiro importa-la para o seu programa.
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.
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).
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
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.
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.
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.
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
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.
importante ressaltar que o nome de cada varivel deve ser explicativo, facilitando
assim a compreenso do contedo que est armazenado nela.
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.
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.
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.
.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:
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.
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".
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:
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:
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
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.
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.
Se
Se-senao
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 ?
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.
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
Enquanto
Faa-Enquanto
Para
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
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
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.
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.
Operaes Aritmticas
As operaes aritmticas so nossas velhas conhecidas da Matemtica. Em
algoritmos muito comum usarmos operadores aritmticos para realizar
clculos.
36
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.
Note que voc poder atribuir o resultado desta operao a uma varivel, ou
mesmo executar diretamente atravs do comando escreva.
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.
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.
Note que voc poder atribuir o resultado desta operao a uma varivel, ou
mesmo executar diretamente atravs do comando escreva.
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
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
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:
Ou seja, o nao tem maior prioridade que todos, e o ou tem a menor. Veja os
exemplos a seguir:
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.
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
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.
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).
Tipos
Quais so os tipos de dados que o computador pode armazenar?
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
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.
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.
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.
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.
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
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.
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.
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.