Sei sulla pagina 1di 24

Aprendendo a

Programar em Pascal

Resumo da matria dada no 10 ano Bases de Programao

Nesta apresentao dar-lhe-ei a conhecer o maravilhoso


mundo da programao...
Programar consiste em dar uma sequncia de comandos
ao computador para resolver um determinado problema.
Em primeiro lugar, precisamos de aprender a definir os
passos que nos levam soluo do problema.
Este o processo mais importante da programao, que
exige uma certa habilidade em entender o problema e propor
uma soluo criativa, simples e correcta.
Esta sequncia de passos visando a soluo de um
determinado problema denominado de algoritmo.

O que um algoritmo?

Um algoritmo uma sequncia de passos para realizar um


tarefa ou resolver um problema.

No dia a dia utilizamos algoritmos para realizar as nossas


actividades, definindo a sequncia de aces que devemos
fazer para atingir um objectivo.

Essas sequncias de passos geralmente so guardadas na


nossa memria.

Por exemplo, quando marcamos um encontro com algum, a


sequncia de procedimentos para esta situao ser:
1.
2.
3.
4.
...

tomar banho
vestir roupa bonita
levar guarda-chuva se estiver mau tempo
Apanhar o autocarro

Esta sequncia de procedimentos no anotamos no


papel, por que so coisas simples ou que fazemos com
bastante frequncia.

Porm, para resolver problemas mais complexos,


precisamos de apontar no papel os passos,
principalmente quando queremos escrever um
programa.

Existem diferentes formas de escrever um algoritmo.

Neste curso vamos escrever os algoritmos numa


linguagem intermediria entre a linguagem falada e a
linguagem de programao.

Iremos usar termos simples, mas tambm claros e


objectivos.

Para perceber melhor o que lhe falei nesta


introduo vamos comear por resolver um simples
problema.

Exemplo de um problema:
Na disciplina de matemtica tivemos trs provas e as notas foram as seguintes:
N1 = 5.5

N2 = 7.0

N3 = 4.5

Gostaramos de saber qual foi a mdia das trs notas. Qual seria a sequncia
de operaes que o computador precisa para fazer este simples clculo?
Soluo:

Para calcular a mdia, em primeiro lugar precisamos informar ao computador quais so os


valores das notas. Depois, pedimos para ele somar as notas e dividir por 3.

O resultado deve ser guardado num determinado lugar, para depois mostrar no ecr do
computador.
Esta sequncia poder ser escrita num algoritmo da seguinte forma:
1. Atribuir os valores N1 = 5.5 ; N2 = 7.0 ; N3 = 4.5.
2. Calcular a soma:

S = N1 + N2 + N3

3. Calcular a mdia: M = S/3


4. Mostrar o resultado M

Para fazer os clculos, o computador precisa guardar os dados na memria.

Para entender melhor como isso funciona, vamos imaginar que esses lugares so caixas vazias.
Portanto N1, N2 e N3 so caixas onde vamos guardar o valor das notas.

Por exemplo, quando fazemos N1 = 5.5 no algoritmo, estamos a informar ao computador que deve
guardar o valor 5.5 na caixa N1. O que acontece quando escrevemos:
S = N1 + N2 + N3

O computador far a soma dos valores que esto nas caixa N1,N2 e N3 e o resultado ser guardado
na caixa S. A caixa M ser utilizada para guardar o valor de S dividido por 3. Finalmente quando
quisermos ver o resultado do clculo, pedimos ao computador para mostrar o contedo da caixa M.

Podemos alterar o contedo das caixas utilizando o smbolo = , nesse caso o valor anterior da caixa
ser substitudo pelo ltimo valor atribudo.

Agora imaginemos que temos poucas caixas vazias e para economizar vamos pedir ao computador que
guarde o resultado da mdia no mesmo lugar onde estava a soma, j que a soma no ser mais
usada. Para isso o comando seria o seguinte:
S = S/3

Neste caso, o computador vai dividir o contedo da caixa S por 3 e o resultado vai guardar na mesma
caixa S, apagando o resultado anterior. Este tipo de procedimento podemos fazer quando no
precisarmos dos valores anteriores.

Para colocar o nome das caixas nos algoritmos podemos utilizar qualquer letra ou palavra, mas
recomendvel usar palavras ou letras associadas ao contedo. Por exemplo, para guardar a mdia
pudemos colocar a letra M, poderamos usar tambm: Media, med, MEDIA, etc.

Como converter um algoritmo para a


linguagem Pascal?
Vamos ver primeiro como funciona a estrutura de um programa em Pascal:

A estrutura do programa em Pascal consta de dois componentes: cabea e corpo.


Na primeira parte (var) so declarados os tipos e variveis. Mais frente explicarei o
significado desta parte.
Na segunda parte trata-se do corpo do programa. Como podemos observar o corpo do
programa comea com a palavra Begin e acaba com End.

As palavras Program, Begin e End so palavras da linguagem Pascal e sempre estaro


presentes em todos os programas.
Agora vamos passar o nosso algoritmo da mdia para um programa em Pascal.

Criar um programa
Vamos passar o algoritmo que se segue para a linguagem Pascal:
1.
2.
3.
4.

Atribuir os valores N1 = 5.5 ; N2 = 7.0 ; N3 = 4.5


Calcular a soma: S = N1 + N2 + N3
Calcular a mdia: M = S/3
Mostrar o resultado M
(S para lembrar: N1, N2 e N3 contm as notas, S guarda o resultado da soma e M guarda o resultado da mdia. )

Vemos que o algoritmo inteiro passou


para o corpo do programa. Vemos
tambm que na cabea aparece a
declarao de N1, N2, N3, S e M.
O corpo do programa consta
geralmente de trs partes principais:
Entrada de dados, processamento
ou clculo e sada dos resultados.

Geralmente, o computador trabalha bastante com nmeros reais e inteiros, mas tambm
pode guardar outros tipos de dados, como por exemplo, caracteres (um caractere
uma letra, smbolo ou dgito), da seguinte forma:
Var
letra : char

A linguagem Pascal tem algumas regras que dever considerar quando quiser
criar programas

Todos os comandos tm um ; no final (com algumas excepes)

Para alterar o contedo de uma caixa ou varivel utilizamos um := e no um = como


nos algoritmos

No Pascal no existe diferena entre letras maisculas e minsculas, portanto pode


escrever os comandos e os nomes de variveis com qualquer letra.

Os comentrios dentro do programa no so considerados pelo computador, porm


recomendvel escrever os comentrios explicando o que faz cada linha ou bloco do
programa. Isso o ajudar, por exemplo, a entender o que faz o programa quando
quiser voltar a us-lo aps algum tempo. Para escrever comentrios dentro do
programa use // seguido do comentrio que deseja introduzir.

Vamos supor agora que gostaria que o computador o informasse de acordo com o
resultado da mdia se foi aprovado ou no na disciplina de matemtica.
Para tal, elaborava o seguinte algoritmo:
1. Atribuir os valores a N1, N2, N3
2. Calcular a soma: S = N1 + N2 + N3
3. Calcular a mdia: M = S/3
4. Se a mdia for maior ou igual a 5: informar aprovado

O programa correspondente
a este algoritmo seria:

5. Caso contrrio: informar reprovado

Analisando o programa observamos


que uma condio traduzida em
Pascal usando os comandos IF...
ELSE e a estrutura geral a
seguinte:
IF condio THEN
fazer tarefa 1
ELSE
fazer tarefa 2 ;

Que acontece se existir mais de um comando a ser executado para cada


condio?
Para o computador saber que comandos ou tarefas fazem parte de uma condio,
vamos usar blocos.
Um bloco uma sequncia de comandos que comea com BEGIN e termina com
END.
Portanto a estrutura de IF usando bloco seria:
IF condio THEN
BEGIN
comando1;
comando2;
comando3;
......
END;
(Da mesma forma para o ELSE tambm podemos usar o bloco quando for necessrio. )

J vimos alguns tipos de dados que o computador utiliza, como Integer para nmero
inteiros, Real para nmeros reais e Char para caracteres.
Vamos agora aprender um novo tipo que o boolean.
O computador utiliza variveis do tipo boolean para saber o resultado de uma condio
ou comparao. Portanto uma varivel do tipo boolean pode ter apenas dois valores:
FALSO ou VERDADEIRO, em Pascal isso significa, FALSE ou TRUE.
Vejamos um exemplo de como usar as variveis do tipo boolean.
No exemplo anterior, suponha que precisamos de guardar numa varivel o resultado (se
estamos aprovados ou no).

Logo, o programa modificado seria:

Para entender melhor a estrutura IF veja como o seguinte problema ser


resolvido em Pascal
Faa um programa que dados trs nmeros, mostre qual o maior deles:
O Pascal permite escrever muitos comandos na
mesma linha, porem recomendado que seja escrito
apenas um comando por linha para facilitar o
entendimento do programa e apenas em casos de
comandos simples (por exemplo, atribuies) usar
mais de um comando por linha.
Apenas com um comando Writeln podemos mostrar
vrios resultados. Neste caso as variveis devem ser
separadas por um , .
Tambm podemos incluir textos dentro do Writeln
usando duas aspas ( ' ), como mostra o seguinte
exemplo:
Writeln('o valor de a : ' , a, ' e o valor de b : ', b)
No coloque o ; no comando anterior a ELSE, nem no
comando END

Uma das grandes vantagens da programao que podemos agrupar clculos repetidos e
informar ao computador atravs da linguagem de programao que trechos deve repetir,
quantas vezes ou em que condies.
Para entender melhor vamos resolver o seguinte problema:
Calcular e mostrar o quadrado de todos os nmero inteiros de 1 at 100
No Pascal utilizamos Comando WHILE...DO para indicar ao computador que vamos repetir
um trecho do programa enquanto uma condio for satisfeita.
Vejamos como fica na linguagem Pascal

Observando o programa vemos que


alm do While...Do aparecem outras
duas palavras reservadas da linguagem
que j conhecemos: o Begin...End.
Neste caso, estas palavras so
utilizadas para informar ao computador
onde comea e acaba o trecho do
programa que precisa de ser repetido.
O formato geral do comando WHILE
o seguinte:
WHILE condio DO
BEGIN
blocos de comandos
END;

Agora vamos aprender uma outra forma de entrada de dados bastante utilizada. muito
trabalhoso ter que ir ao programa e mudar os valores dos dados cada vez que desejamos
fazer clculos com novos dados.
Por exemplo, no programa da mdia temos que alterar os valores de N1, N2 e N3 se
quisermos calcular a mdia das notas de outro aluno. Ficaria mais fcil se pudssemos
informar isso durante a execuo do programa.
Para fazer isso em Pascal existe o comando chamado Readln.
Como seria ento o programa da mdia se quisssemos introduzir ns mesmos os
valores das notas?
Os comandos IF e While podem ter mais que uma
condio, unidos por OR ou AND. Por exemplo:
WHILE (N >0 AND N <100) DO
BEGIN
......
END;
Isso significa que o bloco dentro do While ser
repetido enquanto o N for maior que 0 e menor
que 100.
No mesmo comando Readln podemos ler mais de
um dado, por exemplo a leitura de dados no
programa da media pode ser escrito ainda como:
Readln(N1,N2,N3);

Como calcular o resto de uma diviso?


No pascal existe um operador chamado mod, que calcula o resto de uma diviso. Por exemplo:
10 mod 3 igual a 1
O operador mod util para saber se um nmero divisvel por outro.
Por exemplo para saber se 50 divisivel por 4, calculamos o 50 mod 4. Como o resultado igual a 2,
conclumos que 50 no divisivel por 4.
Imagine agora que deseja criar um programa em que introduza determinado nmero e quer que o
computador calcule de forma a concluir se o nmero introduzido ou no par.

Como pode ver neste exemplo, aparece


um novo comando que ainda no
tnhamos visto. Uses crt.
Este comando permite fazer uma pausa
de modo a permitir ao utilizador visualizar
resultados no fim do programa.
O Delay dever ficar aps o resultado
que querer visualizar como mostra o
exemplo.
1000 = 1 segundo de espera
10000= 10 segundos
100000= 100 segundosetc

Como fazer para armazenar um conjunto de dados do mesmo tipo?


Em Pascal, para declarar uma varivel que armazena um conjunto de dados do mesmo tipo utilizada a
palavra array. Vamos supor que desejamos declarar uma varivel para armazenar o nome de uma
pessoa. Sabemos que um nome constitudo por caracteres, portanto a declarao seria:
Var nome: array [1..100] of char

Esta declarao informa ao computador para reservar 100 caixinhas do tipo char para armazenar o nome de
uma pessoa. Na declarao entre parnteses colocado o nmero mximo de elementos do array, neste
caso, como no sabemos antecipadamente qual vai ser o tamanho do nome, colocamos um nmero
grande.
Vamos resolver um problema aplicando arrays.
Dado o nome de uma pessoa, queremos determinar o nmero de vogais contidos no nome.

Para determinar o nmero de


vogais utilizmos um contador.
A cada passo fomos
comparando os caracteres um
por um e quando achmos
uma vogal acrescentamos 1 ao
contador.
Para aceder a cada caractere
dentro do array, precisamos
tambm de um contador.

Temos visto que em muitos casos conhecemos o nmero de repeties de um bloco de


comandos, para tal temos usado o comando while juntamente com um contador.
Por exemplo, no programa anterior o bloco dentro do comando while repitido enquanto o
indice i menor ou igual a 100 e em cada passo acrescentamos o valor do ndice.
Para estas situaes em Pascal existe o comando FOR que facilita bastante
O formato do comando o seguinte:
FOR valor inicial TO valor final DO
BEGIN
comandos
END

Este comando pode ser


utilizado somente se i for
declarado como nmero inteiro
e se conhecermos os seus
valores, inicial e final.
O comando for bastante
usado principalmente para
aceder aos elementos de um
vector.

Vejamos como seria o programa anterior usando o comando FOR:

Uma matriz um array de duas dimenses. Uma matriz til por exemplo para armazenar
tabelas, fazer clculos matemticos, fazer desenhos, resolver problemas, etc.
Imagine que desejamos guardar no computador a lista dos alunos com suas respectivas notas
em todas as disciplinas durante o ano.
Por exemplo a seguinte tabela mostra a lista de 10 alunos e as notas em 8 disciplinas.
Gostaramos fazer um programa para
armazenar essa tabela no computador e
depois poder calcular, por exemplo, a
mdia de todas as notas de todos os
alunos. Inclusive para saber o
desempenho da turma inteira poderamos
calcular a media das medias.
Em Pascal, uma matriz definida em
forma muito parecida com um vector:
Var notas : array [1..10,1..8] of real;
O nmero 10 indica o nmero mximo de
linhas da matriz e o nmero 8 indica o
nmero mximo de colunas. Se no
sabemos com antecedncia qual ser o
tamanho da nossa matriz podemos
reservar um nmero grande como fizemos
com os vectores.

Veremos a seguir como trabalhar com matrizes, analisando


o programa que l as notas dos alunos, calcula as medias,
guarda num vector e imprime os resultados no ecr do
computador.

Para manter a informao completa da


tabela no computador, poderamos
armazenar tambm os nomes dos alunos
num vector de string e as mdias dos
alunos num vector de nmeros reais.

Clique aqui para ver o


programa em pascal

Para aceder aos elementos


de uma matriz utilizamos dois
ndices:
O primeiro para definir a linha
e o segundo para definir a
coluna.
Os vectores e matrizes so
bastante usados em clculos
matemticos.
No programa observamos
que precisamos sempre de
dois lados para percorrer
todos os elementos de uma
matriz. Quando um lado est
dentro de outro lado, estes
so chamados de lados
aninhados.
muito comum encontrar em
programas lados aninhamos,
especialmente quando se
trabalha com vectores e
matrizes.

til para encontrar falhas no programa (variveis no


definidas, falta de comandos fechando blocos,
etc.), acompanhar sua execuo e entender a
funcionalidade do programa.
Outro factor importante para ter um programa mais
fcil de visualizar a indentao.

Sem indentao

Pascal uma linguagem estruturada, j que permite


ordenar os blocos de comandos de forma a serem
executados em forma sequencial e sem saltos
longos.

J deve ter notado que no programa em Pascal os


comandos no comeam todos na mesma coluna.

Por exemplo, todas as linhas depois do comando


Begin tm um espao maior. Este tipo de
ordenao chamada de indentao.

Estes espaos vazios so ignorados pelo computador e


o resultado no alterado, porm o seu programa
fica mais fcil de ler e entender.
Sempre que for possvel tente estruturar melhor seu
programa. Num programa correctamente
indentado fica mais fcil entender o que o
programa faz, determinando os blocos de
condies e lados.

Com indentao

Isso significa que pode comear cada linha de


comando deixando espaos vazios no comeo.

Resumindo

Write (escrever) : Imprime no ecr determinado texto editado pelo programador.

Read (ler) : Memoriza determinado dado introduzido pelo utilizador.


(Ambos os comandos podem conter ln no final que significa mudana de linha. Exemplo: writeln, readln.)

If (se) : Utiliza uma condio. SE a condio for verdadeira ento executa um conjunto de

While (enquanto) : Permite executar um conjunto de instrues enquanto uma condio

For (para) : Repte um bloco de instrues durante um determinado nmero de vezes.

Vector (Array unidimensional) : Memoriza determinados dados do mesmo tipo. (char,

Matriz (Array multidimensional): Memoriza determinados dados, podendo ser de

instrues, seno executa outro conjunto de instrues.

mantiver o valor lgico verdadeiro. Quando o valor lgico estiver falso, termina o ciclo e
prossegue com a execuo do programa.

integer, etc). Na hora de memorizar dados, apenas contm uma linha com vrias
colunas.

diferentes tipos ou no. Na hora de memorizar dados, contm vrias linhas e vrias
colunas.

Resumindo

Uses crt : Permite pausar o programa de modo a permitir ao utilizador


visualizar o ecr.

Integer : Tipo de varivel usado para nmeros inteiros.

Real : Tipo de varivel usado para nmeros reais (inteiros ou


decimais).

Boolean : Tipo de varivel que apenas pode conter dois valores: True
(verdadeiro) ou False (falso).

String : Tipo de varivel que apenas contem um caractere (letra) ou


um conjunto de caracteres (palavra)

Trabalho Realizado por


Pedro Rocha
N 5

10 C

Neste trabalho apenas consta matria dada ao longo do ano lectivo de 2007/2008 de Bases de Programao.

Potrebbero piacerti anche