Você está na página 1de 23

Aprendendo a

Programar em Pascal

Resumo da matéria dada no 10º ano Bases de Programação


Nesta apresentação dar-lhe-ei a conhecer o maravilhoso
mundo da programação...

 Programar consiste em dar uma sequência de comandos


ao computador para resolver um determinado problema.

 Em primeiro lugar, precisamos de aprender a definir os


passos que nos levam á solução do problema.

 Este é o processo mais importante da programação, que


exige uma certa habilidade em entender o problema e propor
uma solução criativa, simples e correcta.

 Esta sequência de passos visando a solução de um


determinado problema é denominado de algoritmo.
O que é um algoritmo?
 Um algoritmo é uma sequência de passos para realizar um
tarefa ou resolver um problema.

 No dia a dia utilizamos algoritmos para realizar as nossas


actividades, definindo a sequência de acções que devemos
fazer para atingir um objectivo.

 Essas sequências de passos geralmente são guardadas na


nossa memória.

 Por exemplo, quando marcamos um encontro com alguém, a


sequência de procedimentos para esta situação será:

1. tomar banho
2. vestir roupa bonita
3. levar guarda-chuva se estiver mau tempo
4. Apanhar o autocarro
...
 Esta sequência de procedimentos não anotamos no
papel, por que são coisas simples ou que fazemos com
bastante frequência.

 Porém, 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 intermediária entre a linguagem falada e a
linguagem de programação.

 Iremos usar termos simples, mas também claros e


objectivos.

 Para perceber melhor o que lhe falei nesta


introdução vamos começar por resolver um simples
problema.
Exemplo de um problema:
Na disciplina de matemática tivemos três provas e as notas foram as seguintes:

N1 = 5.5 N2 = 7.0 N3 = 4.5

 Gostaríamos de saber qual foi a média das três notas. Qual seria a sequência
de operações que o computador precisa para fazer este simples cálculo?

Solução:

 Para calcular a média, em primeiro lugar precisamos informar ao computador quais são 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 sequência 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 média: M = S/3
4. Mostrar o resultado M
Para fazer os cálculos, o computador precisa guardar os dados na memória.

 Para entender melhor como isso funciona, vamos imaginar que esses lugares são caixas vazias.
Portanto N1, N2 e N3 são 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 estão 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 cálculo, pedimos ao computador para mostrar o conteúdo da caixa M.

 Podemos alterar o conteúdo das caixas utilizando o símbolo = , nesse caso o valor anterior da caixa
será substituído pelo último valor atribuído.

 Agora imaginemos que temos poucas caixas vazias e para economizar vamos pedir ao computador que
guarde o resultado da média no mesmo lugar onde estava a soma, já que a soma não será mais
usada. Para isso o comando seria o seguinte:

S = S/3

 Neste caso, o computador vai dividir o conteúdo 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 não
precisarmos dos valores anteriores.

 Para colocar o nome das caixas nos algoritmos podemos utilizar qualquer letra ou palavra, mas é
recomendável usar palavras ou letras associadas ao conteúdo. Por exemplo, para guardar a média
pudemos colocar a letra M, poderíamos usar também: 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: cabeça e corpo.


Na primeira parte (var) são declarados os tipos e variáveis. Mais á frente explicarei o
significado desta parte.

Na segunda parte trata-se do corpo do programa. Como podemos observar o corpo do


programa começa com a palavra Begin e acaba com End.

As palavras Program, Begin e End são palavras da linguagem Pascal e sempre estarão
presentes em todos os programas.

Agora vamos passar o nosso algoritmo da média para um programa em Pascal.


Criar um programa…
Vamos passar o algoritmo que se segue para a linguagem Pascal:

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


2. Calcular a soma: S = N1 + N2 + N3
3. Calcular a média: M = S/3
4. Mostrar o resultado M

(Só para lembrar: N1, N2 e N3 contém as notas, S guarda o resultado da soma e M guarda o resultado da média. )

Vemos que o algoritmo inteiro passou


para o corpo do programa. Vemos
também que na cabeça aparece a
declaração de N1, N2, N3, S e M.

O corpo do programa consta


geralmente de três partes principais:
Entrada de dados, processamento
ou cálculo e saída dos resultados.
Geralmente, o computador trabalha bastante com números reais e inteiros, mas também
pode guardar outros tipos de dados, como por exemplo, caracteres (um caractere é
uma letra, símbolo ou dígito), da seguinte forma:

Var
letra : char

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

 Todos os comandos têm um ; no final (com algumas excepções)

 Para alterar o conteúdo de uma caixa ou variável utilizamos um := e não um = como


nos algoritmos

 No Pascal não existe diferença entre letras maiúsculas e minúsculas, portanto pode
escrever os comandos e os nomes de variáveis com qualquer letra.

 Os comentários dentro do programa não são considerados pelo computador, porém é


recomendável escrever os comentários 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 após algum tempo. Para escrever comentários dentro do
programa use // seguido do comentário que deseja introduzir.
Vamos supor agora que gostaria que o computador o informasse de acordo com o
resultado da média se foi aprovado ou não na disciplina de matemática.

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 média: M = S/3


O programa correspondente
4. Se a média for maior ou igual a 5: informar aprovado
a este algoritmo seria:
5. Caso contrário: informar reprovado

Analisando o programa observamos


que uma condição é traduzida em
Pascal usando os comandos IF...
ELSE e a estrutura geral é a
seguinte:

IF condição THEN
fazer tarefa 1
ELSE
fazer tarefa 2 ;
Que acontece se existir mais de um comando a ser executado para cada
condição?

Para o computador saber que comandos ou tarefas fazem parte de uma condição,
vamos usar blocos.

Um bloco é uma sequência de comandos que começa com BEGIN e termina com
END.

Portanto a estrutura de IF usando bloco seria:

IF condição THEN
BEGIN
comando1;
comando2;
comando3;
......
END;

(Da mesma forma para o ELSE também podemos usar o bloco quando for necessário. )
Já vimos alguns tipos de dados que o computador utiliza, como Integer para número
inteiros, Real para números reais e Char para caracteres.
Vamos agora aprender um novo tipo que é o boolean.

O computador utiliza variáveis do tipo boolean para saber o resultado de uma condição
ou comparação. Portanto uma variável 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 variáveis do tipo boolean.

No exemplo anterior, suponha que precisamos de guardar numa variável o resultado (se
estamos aprovados ou não).

Logo, o programa modificado seria:


Para entender melhor a estrutura IF veja como o seguinte problema será
resolvido em Pascal…

Faça um programa que dados três números, 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, atribuições) usar
mais de um comando por linha.

Apenas com um comando Writeln podemos mostrar


vários resultados. Neste caso as variáveis devem ser
separadas por um , .
Também 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)

Não coloque o ; no comando anterior a ELSE, nem no


comando END
Uma das grandes vantagens da programação é que podemos agrupar cálculos repetidos e
informar ao computador através da linguagem de programação que trechos deve repetir,
quantas vezes ou em que condições.

Para entender melhor vamos resolver o seguinte problema:

Calcular e mostrar o quadrado de todos os número inteiros de 1 até 100…

No Pascal utilizamos Comando WHILE...DO para indicar ao computador que vamos repetir
um trecho do programa enquanto uma condição for satisfeita.

Vejamos como fica na linguagem Pascal… Observando o programa vemos que


além do While...Do aparecem outras
duas palavras reservadas da linguagem
que já conhecemos: o Begin...End.

Neste caso, estas palavras são


utilizadas para informar ao computador
onde começa e acaba o trecho do
programa que precisa de ser repetido.
O formato geral do comando WHILE é
o seguinte:

WHILE condição 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 cálculos com novos dados.
Por exemplo, no programa da média temos que alterar os valores de N1, N2 e N3 se
quisermos calcular a média das notas de outro aluno. Ficaria mais fácil se pudéssemos
informar isso durante a execução do programa.

Para fazer isso em Pascal existe o comando chamado Readln.

Como seria então o programa da média se quiséssemos introduzir nós mesmos os


valores das notas?

Os comandos IF e While podem ter mais que uma


condição, 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 divisão?

No pascal existe um operador chamado mod, que calcula o resto de uma divisão. Por exemplo:

10 mod 3 é igual a 1

O operador mod é util para saber se um número é divisível por outro.

Por exemplo para saber se 50 é divisivel por 4, calculamos o 50 mod 4. Como o resultado é igual a 2,
concluímos que 50 não é divisivel por 4.

Imagine agora que deseja criar um programa em que introduza determinado número e quer que o
computador calcule de forma a concluir se o número introduzido é ou não par.

Como pode ver neste exemplo, aparece


um novo comando que ainda não
tínhamos 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 após o resultado
que quererá visualizar como mostra o
exemplo.
1000 = 1 segundo de espera
10000= 10 segundos…
100000= 100 segundos…etc
Como fazer para armazenar um conjunto de dados do mesmo tipo?

Em Pascal, para declarar uma variável que armazena um conjunto de dados do mesmo tipo é utilizada a
palavra array. Vamos supor que desejamos declarar uma variável para armazenar o nome de uma
pessoa. Sabemos que um nome é constituído por caracteres, portanto a declaração seria:

Var nome: array [1..100] of char

Esta declaração informa ao computador para reservar 100 caixinhas do tipo char para armazenar o nome de
uma pessoa. Na declaração entre parênteses é colocado o número máximo de elementos do array, neste
caso, como não sabemos antecipadamente qual vai ser o tamanho do nome, colocamos um número
grande.
Vamos resolver um problema aplicando arrays.
Dado o nome de uma pessoa, queremos determinar o número de vogais contidos no nome.

Para determinar o número de


vogais utilizámos um contador.
A cada passo fomos
comparando os caracteres um
por um e quando achámos
uma vogal acrescentamos 1 ao
contador.
Para aceder a cada caractere
dentro do array, precisamos
também de um contador.
Temos visto que em muitos casos conhecemos o número de repetições 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 situações em Pascal existe o comando FOR que facilita bastante…

O formato do comando é o seguinte: Vejamos como seria o programa anterior usando o comando FOR:

FOR valor inicial TO valor final DO


BEGIN
comandos
END

Este comando pode ser


utilizado somente se i for
declarado como número inteiro
e se conhecermos os seus
valores, inicial e final.

O comando for é bastante


usado principalmente para
aceder aos elementos de um
vector.
Uma matriz é um array de duas dimensões. Uma matriz é útil por exemplo para armazenar
tabelas, fazer cálculos matemáticos, 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.
Gostaríamos fazer um programa para
armazenar essa tabela no computador e
depois poder calcular, por exemplo, a
média de todas as notas de todos os
alunos. Inclusive para saber o
desempenho da turma inteira poderíamos
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 número 10 indica o número máximo de


linhas da matriz e o número 8 indica o
número máximo de colunas. Se não
sabemos com antecedência qual será o
tamanho da nossa matriz podemos
reservar um número grande como fizemos
com os vectores.

Para manter a informação completa da


tabela no computador, poderíamos
Veremos a seguir como trabalhar com matrizes, analisando
armazenar também os nomes dos alunos
o programa que lê as notas dos alunos, calcula as medias, num vector de string e as médias dos
guarda num vector e imprime os resultados no ecrã do alunos num vector de números reais.
computador.
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 são
bastante usados em cálculos
matemáticos.
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
são chamados de lados
aninhados.
É muito comum encontrar em
programas lados aninhamos,
especialmente quando se
trabalha com vectores e
matrizes.
Pascal é uma linguagem estruturada, já que permite
ordenar os blocos de comandos de forma a serem
executados em forma sequencial e sem saltos
longos.

Sem indentação
É útil para encontrar falhas no programa (variáveis não
definidas, falta de comandos fechando blocos,
etc.), acompanhar sua execução e entender a
funcionalidade do programa.

Outro factor importante para ter um programa mais


fácil de visualizar é a indentação.

Já deve ter notado que no programa em Pascal os


comandos não começam todos na mesma coluna.

Por exemplo, todas as linhas depois do comando


Begin têm um espaço maior. Este tipo de
ordenação é chamada de indentação.

Isso significa que pode começar cada linha de


comando deixando espaços vazios no começo.

Com indentação
Estes espaços vazios são ignorados pelo computador e
o resultado não é alterado, porém o seu programa
fica mais fácil de ler e entender.

Sempre que for possível tente estruturar melhor seu


programa. Num programa correctamente
indentado fica mais fácil entender o que o
programa faz, determinando os blocos de
condições e lados.
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 mudança de linha. Exemplo: writeln, readln.)

 If (se) : Utiliza uma condição. SE a condição for verdadeira então executa um conjunto de
instruções, senão executa outro conjunto de instruções.

 While (enquanto) : Permite executar um conjunto de instruções enquanto uma condição


mantiver o valor lógico verdadeiro. Quando o valor lógico estiver falso, termina o ciclo e
prossegue com a execução do programa.

 For (para) : Repte um bloco de instruções durante um determinado número de vezes.

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


integer, etc…). Na hora de memorizar dados, apenas contém uma linha com várias
colunas.

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


diferentes tipos ou não. Na hora de memorizar dados, contém várias linhas e várias
colunas.
Resumindo
 Integer : Tipo de variável usado para números inteiros.

 Real : Tipo de variável usado para números reais (inteiros ou


decimais).

 Boolean : Tipo de variável que apenas pode conter dois valores: True
(verdadeiro) ou False (falso).

 String : Tipo de variável que apenas contem um caractere (letra) ou


um conjunto de caracteres (palavra)

Você também pode gostar