![]() |
|
| TURBO PASCAL |
Com grande utilização em faculdades ligadas à informática, devido a sua estrutura didática, o Pascal é uma linguagem que vem ganhando terreno ainda agora devido ao seu sucessor, o Delphi. Quem não conhece um algoritmo Pascal tem maiores dificuldades de se adaptar à linguagem da Inprise / Borland.
Aqui você poderá conhecer dicas, rotinas e até baixar o compilador do Turbo Pascal 7.0 (708Kb) apenas clicando no link anterior. Se você for estudante visite regularmente nossa página recorrendo, quando precisar, ao Quadro de Dúvidas ou aos E-Mails.
Algumas dicas rápidas para quem está començando a se aventurar no estruturado Pascal:
Um programa sempre iniciará com "program <nome do programa>" e terminará com "end.";
TODAS as variáveis deverão ser declaradas no espaço definido pelo comando "var" e sempre antes do "begin" inicial do programa;
A regra manda que, ao final de cada instrução completa* exista um ponto-e-vírgula ( ; ). A principal exceção é o "begin" que NUNCA vem acompanhado pela pontuação;
Outra exceção à regra anterior que causa muita dúvida é a linha que precede o "else" de uma cláusula "if". Ela NÃO recebe o ponto-e-virgula porque o "else" é continuação da instrução;
Numa cláusula "if", se for executada mais de uma instrução, elas deverão ser iniciadas por "begin" e encerradas por "end";
Para quem já programou em outras linguagens estruturadas, como Clipper, é bom lembrar que o Pascal é considerado uma linguagem "limpa". Nela não existem quebras e interrupções de loops como o comando "loop" ou "exit" do Clipper. No Pascal, todas as rotinas de loop deverão ser precisas, para que sejam encerradas no momento correto.
Só deverão ser usadas as aspas simples ( ' ) o Pascal não reconhece ( " ).
*Instrução Completa: Entende-se por instrução completa uma rotina que compreenda uma ação dentro de um programa não importando como ela está disposta no programa. Assim, o local correto do ponto-e-vírgula deve ser muito bem observado. Veja o Exemplo:
If a = 34 Then
WriteLN('O número está correto!!');
A primeira linha não tem o ponto-e-vírgula porque ainda não acabou a instrução, que foi "quebrada" em duas linhas apenas por questão de organização.
Porém, ela poderia ter sido escrita desta forma:
If a = 34 Then WriteLN('O número está correto!!');
Aí sim, existiria o ponto-e-virgula já que a cláusula estaria completa.
Em outro exemplo, usaremos um "if" com um "else":
If b = 'carro' Then
WriteLN('Tem carro!!')
Else
WriteLN('Nao tem carro!!');
Note que, apesar de "quebrar" em várias linhas, a rotina só possui um ponto-e-vírgula. Por quê? Simples! A instrução só estará completa com o "SE faça SENÃO faça"! Ela não pode ser divida em partes. Assim, a rotina poderia ser escrita desta maneira:
If b = 'carro' Then WriteLN('Tem carro!!') Else WriteLN('Nao tem carro!!);
Esta rotina pode ser escrita de diversas maneiras sem que o compilador Pascal se "confunda" desde que o ponto-e-vírgula seja corretamente empregado!
Veja, abaixo, a listagem de um fonte simples que armazena números em 10 variáveis e, utilizando-se de uma propriedade matemática identifica-os como PARES ou ÍMPARES:
| program exerc01; uses crt; var n1, n2, n3, n4, n5, n6, n7, n8, n9, n10: integer; begin clrscr; {Limpar a Tela.} write('INFORME O 1o. NUMERO: '); {Imprime na Tela e passar p/ proxima linha.} readln(n1); {Obtem do usuario o valor p/ uma variavel.} write('INFORME O 2o. NUMERO: '); readln(n2); write('INFORME O 3o. NUMERO: '); readln(n3); write('INFORME O 4o. NUMERO: '); readln(n4); write('INFORME O 5o. NUMERO: '); readln(n5); write('INFORME O 6o. NUMERO: '); readln(n6); write('INFORME O 7o. NUMERO: '); readln(n7); write('INFORME O 8o. NUMERO: '); readln(n8); write('INFORME O 9o. NUMERO: '); readln(n9); write('INFORME O 10o. NUMERO: '); readln(n10); writeln('-------------------------------------------'); writeln(' '); if n1 mod 2 = 0 then begin {Quando ha mais de uma instrucao colocar begin.} write(n1); writeln(' é par'); end else begin write(n1); writeln(' é ímpar'); end; if n2 mod 2 = 0 then begin {Quando ha mais de uma instrucao colocar begin.} write(n2); writeln(' é par'); end else begin write(n2); writeln(' é ímpar'); end; if n3 mod 2 = 0 then begin {Quando ha mais de uma instrucao colocar begin.} write(n3); writeln(' é par'); end else begin write(n3); writeln(' é ímpar'); end; if n4 mod 2 = 0 then begin {Quando ha mais de uma instrucao colocar begin.} write(n4); writeln(' é par'); end else begin write(n4); writeln(' é ímpar'); end; if n5 mod 2 = 0 then begin {Quando ha mais de uma instrucao colocar begin.} write(n5); writeln(' é par'); end else begin write(n5); writeln(' é ímpar'); end; if n6 mod 2 = 0 then begin {Quando ha mais de uma instrucao colocar begin.} write(n6); writeln(' é par'); end else begin write(n6); writeln(' é ímpar'); end; if n7 mod 2 = 0 then begin {Quando ha mais de uma instrucao colocar begin.} write(n7); writeln(' é par'); end else begin write(n7); writeln(' é ímpar'); end; if n8 mod 2 = 0 then begin {Quando ha mais de uma instrucao colocar begin.} write(n8); writeln(' é par'); end else begin write(n8); writeln(' é ímpar'); end; if n9 mod 2 = 0 then begin {Quando ha mais de uma instrucao colocar begin.} write(n9); writeln(' é par'); end else begin write(n9); writeln(' é ímpar'); end; if n10 mod 2 = 0 then begin {Quando ha mais de uma instrucao colocar begin.} write(n10); writeln(' é par'); end else begin write(n10); writeln(' é ímpar'); end; readkey; {Aguarda que uma tecla seja pressionada} end. |
Agora, veja o mesmo programa, utilizando a cláusula "WHILE [condição] DO" (ENQUANTO [condição] FAÇA). O código-fonte ficou muito menor e o resultado final, para o usuário será o mesmo do anterior.
| program exerc02; uses crt; var cont, num: integer; begin clrscr; cont := 0; |
A rotina à cima funciona perfeitamente, porém, para ser logicamente mais correta o Pascal possui a cláusula FOR...DO (PARA...FAÇA). Esta cláusula de repetição cria um loop obedecendo uma contagem seqüencial. Então, com ela, poderíamos mandar o programa "contar" de 1 a 10 enquanto repete a rotina.
| program exerc02; uses crt; var cont, num: integer; begin clrscr; For cont := 1 to 10 do
{Aqui eh criado um loop de 1 a 10} |
Colaboração: FERNANDA SIQUEIRA
Webmaster: CARLO VINÍCIUS DE MELO ALMEIDA