









Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Este documento fornece uma visão geral dos conceitos básicos de programação em pascal, abordando assuntos como variáveis, estruturas de repetição, procedimentos e funções. Além disso, é apresentado um exemplo de programa para receber e somar elementos em um vetor e outro para receber e armazenar elementos em uma matriz bidimensional.
Tipologia: Notas de estudo
1 / 15
Esta página não é visível na pré-visualização
Não perca as partes importantes!










var I : integer;
begin
for I :=1 to lo do begin writeIn(I); end;
end.
Desejando decrementar a variável de controle, teremos a seguinte configuração:
Program Prog12;
var I : integer;
begin
for I := 10 downto 1 do begin writeIn(I); end;
end.
Quando houver necessidade da existência de um for dentro da estrutura de outro for, a escrita do programa ficará assim:
Program Prog
var I,J ; integer;
begin
for I := 1 to 10 do begin . for J := 1 to 10 do begin . . . end;
end;
end.
OBS: O comando repetitivo for deve ser utilizado nos locais em que a quantidade de vezes a ser repetida já está determinada antes da sua execução. Isto significa que não devemos fazer atribuições à variável de controle do for dentro da própria estrutura. Esta variável pode ser utilizada para ser impressa ou para cálculos, mas jamais deve receber algum valor.
O comando repeat controla repetições de trecho de programa tal como o for, mas há duas diferenças fundamentais:
Exemplo:
Suponha um programa que só termina quando for digitado um número negativo:
Program Progl 4;
var VALOR : real; begin VALOR := 0;
repeat
writel'DIGITE UM NÚMERO NEGATIVO') ; readln(VALOR);
until VALOR < 0;
end.
A declaração de uma matriz no Turbo Pascal é obrigatória. Por exemplo, para se declarar uma matriz MAT de uma única dimensão (vetor) composta de 50 números inteiros, seria feito da seguinte forma:
var MAT : array[1..50] of integer;
No caso de uma matriz bidimensional de 50 linhas e 100 colunas, composta de string de 10 caracteres, seria assim:
var MAT : array[1..50 , 1..100] of string[10];
OBS: Os elementos que formam as matrizes são conhecidos com variáveis indexadas. Estas variáveis além de serem indexadas, podem ser utilizadas de todas as formas que são utilizadas as variáveis comuns (cálculos, impressões, etc...).
Exemplo:
programa para receber via teclado 5 elementos para serem armazenados no Vetor VET e somá,los na variável TOTAL:
Program Prog16;
var VET : array[1..5] ofinteger; TOTAL,I : integer;
begin TOTAL := 0; for I :=1to 5 do begin write('DIGITE ELEMENTO ',I,': '); readIn(VET[I]); TOTAL := TOTAL + VET[I]; end;
writeIn(TOTAL);
end.
Outro exemplo:
Programa para receber via teclado os elementos da Matriz MAT, que possui 10 Linhas e 5 colunas:
program Prog 17; var LINHA, COLUNA : integer; MAT : array[1.. lo , 1..5] ofinteger; begin for LINHA := 1 to lo do begin for COLUNA := 1 to 5 do begin writeI'DIGITE ELEMENTO ',LINHA,'X',COLUNA,': readln(MAT[LINHA,COLUNA]); end; end; end.
Para transferir todos os elementos de uma matriz MAT para outra matriz chamada COPIA, pode-se utilizar a técnica de acesso a todos os elementos da matriz MAT, usando geralmente o comando for. Supondo que a matriz MAT de uma única dimensão (vetor) estivesse anteriormente carregada, poderíamos fazer da seguinte forma:
.
. for I := 1 to lo do begin COPIA[I] := MAT[I]; end; . .
ou simplesmente:
COPIA := MAT;
A atribuição acima pode ser feita com qualquer matriz, independente de sua dimensão.
Para facilitar o entendimento do conceito de variáveis locais, imagine um grande programa (com vários procedimentos) escrito simultaneamente por diversos programadores. Cada programador não precisa preocupar-se com os nomes das variáveis que outro esteja utilizando para desenvolver o seu procedimento. Cada variável só vale dentro do seu respectivo procedimento e deve ser declarada cada vez que se fizer presente. Os valores contidos em variáveis locais perdem-se após a execução do procedimento.
Estas variáveis valem para qualquer parte do programa, exceto no caso de ser novamente declarada como variável local dentro de um procedimento. Toda declaração de variáveis é feita no início do programa.
Exemplo:
program Prog19;
{-- DECLARAÇÃO DE VARIÁVEIS GLOBAIS--}
var
I: integer;
procedure TESTE;
var
I : integer; begin I := 5; end;
{--* PROGRAMA PRINCIPAL *--} begin
I := 1; TESTE;
writeIn(I);
end.
OBSERVAÇÃO: Ao dar RUN no programa anterior, o valor impresso na tela deverá ser 1 e não 5, apesar da variável I ter sido também declarada dentro do procedimento (variável local que perde o seu valor após a execução do procedimento). Esta declaração tornou-a uma variável local e portanto, distinta
da I global. Se retirássemos a declaração da variável I que está dentro do procedimento esta seria tratada como variável global e o resultado a ser impresso seria 5.
Um procedimento pode trabalhar com valores, mesmo que não sejam usadas variáveis globais. Para isto temos um recurso chamado passagens de parâmetro. O grande poder dos parâmetros está nesta correta passagem de valores entre o programa principal/procedimento e o procedimento chamado.
Observe o exemplo abaixo:
Program Prog20;
procedure MULT(A,B : real); begin writeIn(A * B); end;
{--* PROGRAMA PRINCIPAL *--} begin
MULT (3,5);
end.
OBS.: O programa anterior consiste em um procedimento que imprime o valor do produto de dois números recebidos pela passagem de parâmetros e um programa principal que manda executar o procedimento MULT enviando os valores numéricos 3 e 5 como parametro.
Observações:
Outro exemplo:
Program Prog21;
processo inverso, ou seja, passar valores de um procedimento para o programa principal ou procedimento que o chamou, pode ser efetuado mediante uma pequena alteração na declaração local, acrescentando o comando var.
Exemplo:
program Prog23;
var
A,B,C : real;
procedure MULT(X,Y : real; var Z: real); begin Z := X * Y; end;
{--* PROGRAMA PRINCIPAL *--} begin
A := 3; B := 5; MULT(A,B,C); writeIn(C);
end.
OBS.: Quando se usa este tipo de declaração do procedimento (usando var), permite-se que um valor seja retomado de um procedimento para utilização fora dele.
No exemplo, a variável local Z passou o valor 15 de volta para a variável global C, quando o processamento retornou do procedimento para o programa principal.
Vejamos os dois exemplos a seguir:
program Prog24;
var A,B : real;
procedure SOMA(X,Y : real); begin X := X + Y; writeIn (X); end;
{--* PROGRAMA PIIINCIPAL *--} begin
B := lo; SOMA (A,B); writeIn (A);
end.
OBS.: Os resultados obtidos ao rodar o programa acima são, respectivamente 12 e 2. Observe que a variável global A permanece com o mesmo valor, pois houve apenas a passagem de parâmetro no sentido de ida.
program Prog25;
var A,B : real;
procedure SOMA(var X,Y : real); begin X := X + Y; writeIn (X); end;
{--* PROGRAMA PRINCIPAL --} begin
A := 2; B := lo; SOMA(A,B); writeIn (A);
end.
Desta vez, os resultados impressos são respectivamente 12 e 12. Devido a presença do var na declaração, o valor da variável X foi passado de volta para a variável A ao retornar para o programa principal.
A estrutura de uma função (function) é muito parecida com um procedimento. Pode-se imaginar que uma função é um procedimento com características especiais quanto ao retorno de valores. No Turbo Pascal, uma função pode ser tão bem elaborada quanto um programa qualquer.
Uma característica que distingue uma função de um procedimento é que a função pode ser impressa, atribuida ou participar de cálculos como se fosse uma variável qualquer.
program Prog26;
begin
readIn (X); readIn (Y); writeIn (SOMA (X,Y));
end.
OBS.: Na declaração da função podemos acrescentar a cláusula VAR e obter os mesmos recursos adicionais do procedimento feito desta forma.
program Prog28;
var
A,B,C: real;
function PROD(X : real; var Y : real) : real; begin PROD := X * Y; X := 1 Y := 1 end;
{--* PROGRAMA PRINCIPAL *--} begin
A := 2; B := lo; writeln (PROD (A,B));
end.
Após a chamada da função, as variáveis X e Y terminam valendo 1. Mas na declaração da função somente a variável Y recebe VAR. Isto implica que o valor final de Y é passado de volta ao local onde foi solicitada a função, fazendo com que B passe a tomar-se 1 em vez do valor original l0 Isto tudo não ocorreu com a variável A, que continua valendo 2 tal como antes.
No caso de uma função ser do tipo STRING, deve-se definir primeiro o tipo de dado e depois colocar o nome deste tipo na declaração da função.
Type STR1O : string[10];
function EXEMPLO( ) : STR1O;
O Turbo Pascal possui algumas funções e procedimentos pré-declarados para controle da tela:
clrscr - Comando para limpar a tela.
clreol - Este comando apaga todos os caracteres da linha que estão à direito do cursor.
delline - Apaga a linha onde está o cursor e causa scroll nas linhas seguintes de tal modo que preencha a linha deletada.
insline - Este comando funciona de modo oposto ao delline. Insere uma linha vazia na posição onde está o cursor. Provoca scroll nas linhas seguintes.
gotoxy(X,Y) - Movimenta o cursor para coluna X, linha Y da tela. A contagem das colunas e linhas começa no 1, ou seja, o canto superior esquerdo possui coordenadas (1 ,1).
lowvideo - Diminui a luminosidade dos caracteres na tela.
highvideo - Aumenta a luminosidade dos caracteres na tela.
norrnvideo - Retoma a luminosidade normal.
delay(X) - Provoca uma pausa no processamento equivalente a X millissegundos. X deve ser definido como número inteiro.
exit - Abandona o bloco corrente. Estando numa sub-rotina, retoma ao bloco onde foi feita a sua chamada. Se usado no programa principal, termina a execução do mesmo.
Halt - Interrompe o processamento do programa e retoma ao nível de sistema operacional.
randomize - Inicializa o gerador de números aleatórios com um valor aleatório.
prograrn Prog29;
var
I: integer;
begin