Baixe o app para aproveitar ainda mais
Prévia do material em texto
PASCAL 1. Introdução A linguagem Pascal foi desenvolvida pelo cientista da computação suíço Niklaus Wirth durante o período de 1960 a meados de 1970. Baseada na linguagem de programação Algol, a linguagem Pascal buscava ser uma linguagem de fácil aprendizado, além de oferecer instruções que encorajavam o uso da programação estruturada (uma técnica de programação que visa a construção de programas mais simples e mais corretos). Ao longo dos anos, surgiram diversos compiladores para a linguagem Pascal, originando, dessa forma, diferentes dialetos para essa mesma linguagem. Dentre esses dialetos, os mais famosos foram: o Pascal Padrão que foi definido por comitês internacionais, e o Turbo Pascal que foi desenvolvido pela Borland em 1983. O Turbo Pascal, na verdade, é uma IDE que utiliza uma variação da linguagem Pascal definida pela Borland. A partir da versão 5.5, o Turbo Pascal passaria a utilizar a linguagem Object Pascal, uma evolução da linguagem utilizada até aquele momento com a adição de características do paradigma orientado a objetos. O Turbo Pascal seria descontinuado pela Borland em 1995 na versão 7 quando deu lugar ao ambiente Delphi. 2. Elementos Básicos 2.1 Forma Geral de um Programa Pascal [Program <identificador>;] [<cláusula uses>] [<seção de declarações>] BEGIN <corpo do programa> END. 2.2 Comentários Os Comentários são delimitados por {} ou (* *) 2.3 Identificadores Os Identificadores possuem as seguintes regras de formação: a) Devem começar com uma letra b) Devem ser formados por letras, dígitos ou caractere de sublinhado c) Não devem ser uma palavra reservada Somente os 63 primeiros caracteres de um identificador são significativos 2.4 Tipos de Dados A linguagem pascal apresenta diversos tipos de dados: Tipo escalar – Representa um único dado Tipo estruturado – Representa uma coleção de dados Tipo apontador – Faz referência a outro dado Tipo Descrição boolean Tipo lógico. Pode assumir os valores true ou false char Pode assumir todos os valores do conjunto de caracteres ASCII (American Standard Code for Information Interchange) string Tipo estruturado definido como uma coleção do tipo char. shortint inteiros no intervalo –128 a 127 (1byte) integer inteiros no intervalo -32768 a 32767 (2 bytes) longint inteiros no intervalo –2147483648 a 2147483647 (4 bytes) byte inteiros no intervalo 0 a 255 (1 byte) word inteiros no intervalo 0 a 65535 (2 bytes) real dados em ponto flutuante no intervalo 2.9 x 10 –39 a 1.7 x 10 38 (6 bytes) single dados em ponto flutuante no intervalo 1.5 x 10 –45 a 3.4 x 10 38 (4 bytes) double dados em ponto flutuante no intervalo 5.0 x 10 –324 a 1.7 x 10 308 (8 bytes) extended dados em ponto flutuante no intervalo 1.9 x 10 –4951 a 1.1 x 10 4932 (10 bytes) 2.5 Variáveis As variáveis em um programa devem ser declaradas na seção de declarações antes de serem utilizadas. As variáveis são declaradas com o comando var. Exemplo: Program Variaveis; var X: integer; Y, Soma: integer; Z: real; BEGIN ... END. Declaração de variáveis do tipo string A definição do tipo string é <variável> : string[comprimento]; onde comprimento é constante que pode variar de 1 a 255 Exemplo: var nome: string; sobrenome: string[80]; 2.6 Constantes As constantes são declaradas na seção de declarações com o comando const Exemplo: Program Constantes; const X = 5; Nome = ‘Andre’; 2.7 Operação de Atribuição O comando de atribuição é := <variável> := <expressão>; 2.8 Operações de Entrada Permitem que dados sejam lidos de uma unidade de entrada e atribuídos às variáveis indicadas read (<lista_de_variáveis>) readln(<lista_de_variáveis>) – Após atribuição das variáveis passa automaticamente para a próxima linha Exemplo: Program Entrada; var I,J : integer; X : real; CH : char; S : string[10]; BEGIN readln(I, J, CH, S, X); END. Se os dados são 36 24 ABCDEFGHIJ3.45 Os valores atribuídos às variáveis seriam: I 36 J 24 CH ‘ ’ S ‘ABCDEFGHIJ’ 2.9 Operações de Saída write (<lista_de_saída>) writeln (<lista_de_saída>) – Posiciona a unidade de saída no início da próxima linha Formato de impressão a) e O dado é impresso utilizando tantas colunas quantas forem necessárias z : = 5.98 write(z) ‘ 5.9800000000E+00’ b) e : comp comp indica o comprimento do campo a ser utilizado c) e: comp1: comp2 comp2 é utilizado apenas para números reais e indica com quantas casas decimais o dado deve ser impresso 2.10 Procedimentos Pré-Definidos length(S) Retorna o comprimento corrente do argumento que deve ser do tipo string. copy (S, Inic,Comp) Retorna uma substring da string S começando na posição Inic e tendo como comprimento Comp Exemplos: copy (‘ANDRE’,2,3) retorna NDR copy (‘ANDRE’,1,3) retorna AND copy (‘ANDRE’,2,9) retorna NDRE pos(SP, S) Retorna a posição da primeira ocorrência da string SP na string S. Se não existir nenhuma ocorrência de SP em S, o valor retornado será zero. abs(x) Retorna o valor absoluto do argumento (inteiro ou real) frac(x) Retorna a parte fracionária do argumento que deve ser do tipo real. int(x) Retorna a parte inteira do argumento que deve ser do tipo real, sem efetuar arredondamento. O resultado é do tipo real round(x) Retorna a parte inteira do argumento, que deve ser do tipo real, arredondando seu valor. O resultado é do tipo inteiro trunc(x) Retorna a parte inteira do argumento, que deve ser do tipo real, sem efetuar arredondamento. O resultado será do tipo inteiro. pi Retorna o valor de PI sqr(x) Calcula o quadrado do seu argumento sqrt(x) Calcula a raiz quadrada do argumento exp(x) Calcula o valor da base dos logaritmos naturais elevado à potência indicada pelo argumento ln(x) Calcula o logaritmo natural do argumento que deve ser do tipo real Nem todas as funções que necessitamos estão prontas e às vezes é necessário utilizar uma fórmula equivalente: Y X = exp ( ln ( Y ) * X ) Yx = exp ( ln ( Y ) * ( 1 / X )) LOG (x) = ln ( X ) / LN ( 10 ) Exemplos: 1.Programa para efetuar a soma de dois números lidos Program SomaXY; var X:integer; Y,Z:integer; begin writeln('Digite o primeiro numero:'); readln(X); writeln('Digite o segundo numero:'); readln(Y); Z := X + Y; writeln('A soma e: ', Z); end. 2. Programa para calcular a área de um círculo Program Area_Circulo; var raio, area :real; begin writeln('Digite o raio:'); readln(raio); area := pi * sqr(raio); writeln('A area e: ', area:8:2); end. 3. Escreva um programa para calcular o valor da expressão x + x 3 + x 11 para um valor x lido. Program Expressao; var x :real; resultado:real; begin writeln('Digite o valor de x:'); readln(x); resultado := x + exp(3 * ln(x)) + exp(11 * ln(x)); writeln('O resultado e: ', resultado:8:2); end. 3. Expressões 3.1 Expressões Numéricas Operadores numéricos: + - * / div - Retorna o quociente inteiro dos operandos, que devem ser também inteiros mod - Retorna o resto inteiro da divisão dos operandos, que devem ser também inteiros 3.2 Expressões Literais Operador de Concatenação: + 3.3 Expressões Relacionais Operadores relacionais =>= <= > < <> 3.4 Expressões Lógicas Operadores lógicos not and or 4. Estruturas de Seleção 4.1 IF THEN ELSE if <expressão lógica> then <comando> [else <comando>] 4.2 CASE case <expressão> of <rotulo-de-case> : comando; [<rotulo-de-case>: comando;] else <comando>[;<comando>] end Exemplos: 1. Programa para efetuar expressões aritméticas simples com dois operandos: Program calculadora; var Operador:char; Operando1, Operando2, Resultado: real; begin readln(Operando1); readln(Operador); readln(Operando2); case Operador of ‘+’ : Resultado := Operando1 + Operando2; ‘-’ : Resultado := Operando1 - Operando2; ‘/’ : Resultado := Operando1 / Operando2; ‘*’ : Resultado := Operando1 * Operando2; end; writeln(Resultado); end. 5. Estruturas de Repetição 5.1 While while <expressão lógica> do <comando> 5.2 Repeat repeat <comando>[;<comando>]... until <expressão lógica> 5.3 For for <variável> := <expressão1> to <expressão2> do <comando> for <variável> := <expressão1> downto <expressão2> do <comando> 5.4 O Comando Continue O comando continue causa um desvio para o final do laço mais interno de um comando de repetição. 5.5 O Comando Break O comando break causa uma saída incondicional do laço mais interno de um comando de repetição
Compartilhar