Você está na página 1de 15

Introduo Programao em Linguagem Pascal

Parte 1
Fundamentos, Expresses e Comandos de Entrada e Sada
Faculdades Integradas Stella Maris FISMA Curso de Tecnologia em Anlise e Projeto de Sistemas Prof. Mrcio A. S. Torrente

Andradina SP

Introduo Programao em Linguagem Pascal Parte 1

Sumrio:
Introduo ................................................................................................................................... 2 Estrutura de um programa Pascal .............................................................................................. 2 Delimitadores de Comandos ...................................................................................................... 2 Palavras Reservadas .................................................................................................................. 2 Identificador ................................................................................................................................ 2 Linhas de comentrios ................................................................................................................ 3 Tipos de Comandos e Blocos de Comandos ............................................................................. 3 Tipos de dados predefinidos da linguagem Pascal .................................................................... 4 rea de Declaraes .................................................................................................................. 4 Declarao de Bibliotecas de Rotinas ........................................................................................ 4 Declarao de Constantes ......................................................................................................... 5 Declarao de Tipos Estruturados ............................................................................................. 6 Declarao de Variveis ............................................................................................................. 6 Expresses Pascal ..................................................................................................................... 7 Operador de Atribuio ............................................................................................................... 7 Operadores de Aritmticos ......................................................................................................... 8 Operadores de Relacionais ........................................................................................................ 9 Operadores Lgicos ................................................................................................................. 10 Funes Predefinidas ............................................................................................................... 10 Procedimentos Predefinidos ..................................................................................................... 12 Comandos de Entrada e Sada ................................................................................................ 13 O Comando READ.................................................................................................................... 13 O Comando WRITE .................................................................................................................. 13 Formatao da Sada de Dados ............................................................................................... 13

Prof. Mrcio A. S. Torrente

Introduo Programao em Linguagem Pascal Parte 1

Introduo:
Abordaremos aqui a utilizao dos conceitos da programao Pascal por meio de exemplos, enfocando os termos fundamentais da linguagem, a sintaxe dos principais comandos, a lgica envolvida em cada um deles e a aplicao de estruturas de dados que organizam o armazenamento e aperfeioam a recuperao rpida das informaes.

Estrutura de um programa Pascal:


A estrutura de codificao de um programa em Pascal se apresenta da seguinte forma:
Cabealho

rea de Declaraes

Bloco Principal de Comandos

Program <identificador-do-programa>; [Uses <lista-de-bibliotecas>;] [Type <declarao-de-tipos-estruturados>;] [Const <declarao-de-constantes>;] [Var <declarao-de-variveis>;] [Procedure <cabealho-do-procedimento>; Begin [<comandos> End;] [Function <cabealho-da-funo>; Begin [<comandos> End;] Begin <comandos>; End. ou Program MenorPrograma; Begin Write(Oi!) End.

Exemplo: Program MenorPrograma; Begin Write(Oi!) End.

Delimitadores de Comandos:
Como se observa na estrutura do programa e no exemplo acima se usa no Pascal um ponto-e-vrgula (;) para delimitar o trmino de cada linha de comando, permitindo ao compilador identificar onde se inicia e onde se encerra uma instruo de programa. Ento possvel em uma nica linha de texto do cdigo-fonte, delimitarmos vrias linhas de comando. usado tambm pelo Pascal um ponto (.) para marcar o trmino do Bloco Principal de Comandos, determinando o trmino do programa.

Palavras Reservadas:
As palavras em negrito nas notaes sintticas so palavras reservadas ou palavras chaves da linguagem. Elas definem um comando, atravs de um verbo ou substantivo, compondo a sintaxe de uma instruo de programa reconhecida pelo compilador. Veja as principais palavras reservadas do Pascal: and, asm, array, begin, case, const, constructor, destructor, div, do, downto, else, end, exports, file, for, function, goto, if, implementation, in, inline, interface, label, library, mod, nil, not, of, or, packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, xor, entre outras...

Identificador:
Um identificador uma nica palavra que identifica qualquer dado ou rotina de programa. Para criarmos um identificador, devem ser respeitadas as seguintes regras: 1) No pode ser iniciado com um dgito numrico; 2) No pode conter espaos em branco nem smbolos especiais, exceto o sublinha (underline); 3) No pode ser uma palavra reservada;

Prof. Mrcio A. S. Torrente

Introduo Programao em Linguagem Pascal Parte 1

No h limite quanto ao tamanho de um identificador, porm, o compilador Pascal considera at 255 caracteres, desprezando os demais. No entanto, no se justifica criar um identificador to grande que no seja um termo sugestivo ao dado a ser armazenado ou a rotina a ser executada. Exemplo: Program Potenciacao; Var potencia, base, expoente : Real; Onde Potenciacao o identificador do programa, e potencia, base e expoente so identificadores das variveis a serem utilizadas no programa.

Linhas de comentrios:
Os comentrios so textos explicativos escritos no cdigo-fonte, delimitados pelos caracteres de { e }, ou pelos caracteres (* e *). Os textos de comentrio so ignorados pelo compilador na fase de traduo do programa, teis somente no sentido de documentar uma rotina de instrues dentro do programa, para torn-lo mais legvel e fcil de entender, quando retomado para correo ou alterao.

Tipos de Comandos e Blocos de Comandos:


Um Comando Simples aquele formado por uma nica palavra reservada, seguido ou no de parmetros necessrios para sua funcionalidade e delimitado pelo ponto-e-vrgula (;). Um Comando Composto aquele formado por mais de uma palavra reservada e que contm em sua estrutura um ou mais Comandos Simples ou outros Comandos Compostos. Quando um Comando Composto inclui mais de um comando qualquer, esses devem ser embutidos em sub-blocos de comandos, delimitados entre seu incio e fim pelos termos BEGIN e END. Esquema de estruturas de blocos em Pascal: Begin <comando-simples1>; <comando-simples2>; <comando-composto1> Begin <comando-simples3>; <comando-composto2> Begin <comando-simples4>; <comando-simples5>; End; <comando-simples6>; End; <comando-simples7>; <comando-composto3> Begin <comando-simples8>; <comando-simples9>; End; <comando-simples10>; End. Exemplo de um programa estruturado:
Program Fibonacci; {Programa para imprimir os 30 primeiros nmeros da seqncia de Fibonacci: (1, 1, 2, 3, 5, 8, 13, 21, ... , 1346269)} Uses WinCrt; Const max = 30; Var atual, anterior, proximo : LongInt; n : Byte; Begin Writeln('Seqncia de Fibonacci:'); Write('{'); atual := 1; anterior := 0; For n := 1 to max - 1 do Begin proximo := atual + anterior; anterior := atual; atual := proximo; Write(atual, ', '); End; atual := atual + anterior; Write(atual, '}'); End.

Observe a endentao dos comandos dentro de cada bloco delimitado pelos termos BEGIN e END. Esse alinhamento de grupos de comandos no considerado pelo compilador Pascal, no entanto, facilita extremamente a compreenso dos nveis de hierarquia dos comandos e a consecutiva assimilao da lgica do programa.

Prof. Mrcio A. S. Torrente

Introduo Programao em Linguagem Pascal Parte 1

Tipos de dados predefinidos da linguagem Pascal:


Para cada tipo de dado, o Pascal capaz de reservar um determinado nmero de bytes na memria. Para que ele possa reter corretamente uma determinada informao necessrio que ela seja adequada a um desses tipos. So eles: Tipos de dados nmeros inteiros: Integer ShortInt LongInt Byte Word (Nmero inteiro de 2 bytes entre 32.768 e +32.767) (Nmero inteiro de 1 byte entre 128 e +127) (Nmero inteiro de 4 bytes entre 2.147.483.648 e +2.147.483.647) (Nmero inteiro positivo de 1 byte entre 0 e 255) (Nmero inteiro positivo de 2 bytes entre 0 e 65.535)

Tipos de dados nmeros reais: (Nmero real de 6 bytes variando de 2,9 E-39 a 1,7 E+38 incluindo o zero, podendo ser negativo ou positivo com 11 a 12 dgitos significativos) Single (Nmero real de 4 bytes variando de 1,5 E-45 a 3,4 E+38 incluindo o zero, podendo ser negativo ou positivo com 7 a 8 dgitos significativos) Double (Nmero real de 8 bytes variando de 5,0 E-324 a 1,7 E+308 incluindo o zero, podendo ser negativo ou positivo com 15 a 16 dgitos significativos) Extended (Nmero real de 10 bytes variando de 3,4 E-4932 a 1,1 E+4932 incluindo o zero, podendo ser negativo ou positivo com 19 a 20 dgitos significativos) Real Tipos de dados alfanumricos: Char (Caracter ASCII de 1 byte) String[n] (Cadeia de caracteres ASCII de 2 a 256 bytes, sendo n um valor numrico determinando o comprimento da cadeia. Na omisso do valor n, o compilador do Pascal assume o comprimento mximo) Tipos de dados lgicos: Boolean (Valor lgico de 1 byte que representa apenas: TRUE ou FALSE)

rea de Declaraes:
Localizada aps o cabealho do programa e antes do bloco principal de comandos, a rea de declaraes a parte do programa destinada locao de memria para os dados que sero utilizados no decorrer do programa. O montante da memria locada est relacionado ao tipo de dado a ser utilizado. Podem ser declaradas aqui regies de memria que podem ter seu contedo alterado (as Variveis), regies de memria onde a alterao dos dados no permitida (as Constantes), outros tipos alm dos predefinidos da linguagem e tambm rotinas de programas denominadas Subprogramas (as Procedures e Functions).

Declarao de Bibliotecas de Rotinas:


As Bibliotecas de Rotinas, chamadas no Pascal de UNITs (ou Unidades), so arquivos contendo um conjunto de pequenas rotinas, denominadas Procedures e Functions, reutilizveis em diversos outros programas, podendo ser predefinidas da linguagem ou definidas pelo usurio. Essas UNITs so compiladas separadamente e inseridas no programa principal atravs da linkedio. Um programador pode simplesmente associar as Units predefinidas que necessitar ou ter sua prpria biblioteca de rotinas criando uma Unit e associando-a a cada novo programa que fizer. Desta forma, no necessrio reescrever rotinas e sim, cham-las atravs de seu identificador. Para associar uma UNIT predefinida ou definida pelo usurio a um programa, utiliza-se o comando USES na rea de declaraes.

Prof. Mrcio A. S. Torrente

Introduo Programao em Linguagem Pascal Parte 1

Sintaxe do comando Uses: Uses <lista-de-units>; Veja as principais Units predefinidas do Pascal e os identificadores de suas rotinas predefinidas: CRT ou WINCRT (Unit com rotinas de tratamento de vdeo e som): ClrEol ClrScr DelLine GotoXY HighVideo InsLine KeyPressed LowVideo NormVideo NoSound Sound TextBackGround TextColor TextMode WhereX WhereY Window

DOS ou WINDOS (Unit com rotinas que envolvem acesso ao Sistema Operacional): DiskFree DiskSize DosExitCode DosVersion EnvCount EnvStr Exec FExpand FindFirst FindNext FSearch Fslip GetCBreak GetDate GetEnv GetFatTr GetFTime GetIntVec GetTime GetVerify Intr Keep MsDos PackTime SetCBreak SetDate SetFatTr SetFTime SetIntVec SetTime SetVerify SwapVectors UnpackTime

SYSTEM (Unit default do compilador Pascal, sem necessidade de declarao): Abs Addr Append ArcTan Assign BlockRead BlockWrite Chr Close Concat Copy Cos CSeg Dec Delete Dispose DSeg Eof Eoln Erase Exit Exemplo: Uses Crt, Dos, MinhaUnit; Exp FilePos FileSize FillChar Flush Frac FreeMem GetDir GetMem Halt Hi Inc Insert Int IOResult Length Ln Lo MaxAvail MemAvail MkDir Move New Odd Ofs Ord ParamCount ParamStr Pi Pos Pred Ptr Random Randomize Read Readln Rename Reset Rewrite Round RunError ScrollTo Seek SeekEof SeekEolm Seg SetTextBuf Sin SizeOf SPtr Sqr Sqrt SSeg Str Succ Swap Trunc Truncate UpCase Val Write Writeln

Declarao de Constantes:
Constantes so entidades na memria RAM cujos seus contedos no se alteram durante a execuo do programa e devem ser declaradas pelo comando CONST na rea de declaraes juntamente com seu valor constante, podendo ou no ser tipadas.

Prof. Mrcio A. S. Torrente

Introduo Programao em Linguagem Pascal Parte 1

Sintaxe do comando Const: Const <identificador1> [: <tipo>] = <valor>; <identificadorN> [: <tipo>] = <valor>; Exemplo: Const num_pi = 3.1415; ano : Word = 1969;

Declarao de Tipos Estruturados:


Alm dos tipos predefinidos da linguagem Pascal, existe a possibilidade de se definir outros tipos com estrutura prpria, chamados de Tipos Estruturados, a partir do comando TYPE na rea de declaraes, utilizando alguns dos tipos estruturados predefinidos no Pascal como: Array, Record, File, Set e Pointer, ou seja, Matrizes, Registros, Arquivos, Conjuntos e Ponteiros. Sintaxe do comando Type: Type <identificador1> = <estrutra-do-tipo1>; <identificadorN> = <estrutra-do-tipoN>; Exemplo: Type indices = 1..6; Sala = Array[indices] of String; Aluno = Record nome : String[30]; nota : Real; End; Turma = File of Aluno; Vogais = (a, e, i, o, u); Vogal = Set of Vogais; Var predio : Sala; registro: Aluno; classe : Turma; tecla : Vogal;

Declarao de Variveis:
Variveis so entidades que assumem valores temporrios na memria RAM, distinguidas entre elas por identificadores declarados e associados a um tipo de dado predefinido ou definido pelo usurio, atravs do comando VAR na rea de declaraes: Sintaxe do comando Var: Var <lista-de-identificadores1> : <tipo1>; <lista-de-identificadoresN> : <tipoN>;

Prof. Mrcio A. S. Torrente

Introduo Programao em Linguagem Pascal Parte 1

Exemplo: Observe que cada item de uma lista de identificadores de mesmo tipo, deve ser separado por vrgula (,). Var nota, media i, x1, x2 codigo, idade flag, Sim letra1, letra2 nome e_mail : : : : : : : Real; Integer; Byte; Boolean; Char; String[30]; String;

Expresses Pascal:
Uma Expresso similar a uma equao matemtica, na qual um conjunto de operandos, que podem ser variveis e/ou constantes, interagem com operadores resultando num nico valor. Do ponto de vista do Pascal, uma expresso pode resultar um dado de qualquer tipo predefinido; portanto, se uma expresso resulta um valor numrico, denominada Expresso Aritmtica; se resulta um valor lgico denominada Expresso Lgica e, se manipula ou resulta uma string ou caracter denominada Expresso Alfanumrica. Exemplo de uma frmula matemtica e sua equivalente Expresso Aritmtica Pascal, onde m, x e y so variveis numricas; 2, 3 e 5 so constantes e; *, + e / so operadores: m := (2 * x + 3 * y) / 5; Veja o exemplo de uma Expresso Lgica Pascal, onde digito_certo uma varivel lgica, n uma varivel numrica e; os smbolos >=, < e and so operadores: digito_certo := (n >= 0) and (n < 10); Agora veja o exemplo de uma Expresso Alfanumrica Pascal, onde nomecompleto, nome, prenome e sobrenome, so variveis declaradas como String; o espao em branco uma constante e; + um operador. nomecompleto := nome + + prenome + + sobrenome; Neste caso, essa operao chamada de Concatenao, ou seja, a juno de vrias strings em uma s; a partir de uma Expresso Alfanumrica. Dizemos que existe, neste caso, uma sobrecarga do operador, pois a partir do tipo do operando Numrico ou Alfanumrico, o Pascal decide se efetua uma adio ou uma concatenao, como nos seguintes exemplos, supondo n1, n2 e n; variveis do tipo Integer; s1, s2 e s; variveis do tipo String: n1 := 5; n2 := 7; s1 := SO; s2 := PAULO; n := n1 + n2; s := s1 + s2;

{n = 12} {s = SOPAULO}

Operador de Atribuio:
O operador de atribuio altera dentro da memria RAM, o contedo de uma varivel, atribuindo a partir daquela linha de programa o seu valor. Este um comando simples compilado pelo Pascal atravs da juno de dois smbolos especiais (: e =). O identificador (do lado esquerdo do operador) deve sempre ser uma varivel, considerada nesse caso como varivel receptora; e o valor a ser atribudo (do lado direito do operador) pode ser uma varivel, uma constante ou uma expresso de qualquer tipo. Obviamente a varivel receptora e o valor atribudo devem ser do mesmo tipo, exceto no caso em que a varivel do tipo real e o
Prof. Mrcio A. S. Torrente 7

Introduo Programao em Linguagem Pascal Parte 1

valor atribudo do tipo inteiro, quando nesse caso o valor inteiro da expresso automaticamente transformado em real. Sintaxe de uma atribuio Pascal: (:=) <varivel> := <constante>|<varivel>|<expresso>; Exemplo: Var x, y, z, soma : Integer; media : Real; cor : String[10]; dentro, fora : Boolean; Begin x := 5; y := 2 * x + 1; soma := x + y; z := soma; media := (x + y + z) / 3; cor := verde; dentro := cor = vermelho; fora := (media < 0) or (media >= 10); z := y / x; {Atribuio invlida pois a diviso resulta um dado Real e z Inteiro} cor := fora; {Atribuio invlida pois a cor String e fora Boolean} End.

Operadores de Aritmticos:
A tabela seguinte mostra os Operadores Aritmticos fundamentais da linguagem Pascal com suas prioridades de execuo, quando agrupados em uma expresso aritmtica. Seus operandos devem ser obrigatoriamente numricos. Operador * / div mod + Operao Multiplicao Diviso real Diviso inteira Resto da diviso inteira Adio Subtrao Prioridade 1 1 1 1 2 2

Exemplos: (para a e b sendo variveis numricas inteiras ou reais) r1 r2 r3 r3 r4 := := := := := a / b; a div b; a mod b; 2*a+b; Sqr(a)+b; => => => => => Resulta o valor real do quociente de a b. Resulta o valor inteiro do quociente de a b. Resulta o valor inteiro do resto da diviso a b. Resulta o valor inteiro ou real da equao 2.a+b. 2 Resulta o valor inteiro ou real da equao a +b. Onde Sqr uma funo predefinida do Pascal que retorna o quadrado de um nmero. => Resulta o valor real da equao a+b. Onde Sqrt uma funo predefinida do Pascal que retorna a raiz-quadrada de um nmero.

r5 := a+Sqrt(b);

Ateno: Quando em uma nica expresso existir mais de um operador de mesma prioridade, o Pascal executa-os em pares de operandos da esquerda para direita, e pode-se quebrar a prioridade natural das operaes com a utilizao de parnteses.

Prof. Mrcio A. S. Torrente

Introduo Programao em Linguagem Pascal Parte 1

Exemplos: (Para a = 7, b = 2, c = 4; neste caso n1, n2 e n8 devem ser variveis do tipo Real) n1 n2 n3 n4 := := := := a*b/c*b; a+b/c+b; a+b*c; (a+b)*c; {n1 {n2 {n3 {n4 = = = = 7.0} 9.5} 15} 36} n5 n6 n7 n8 := := := := (3*c+b) div c; (3*c+b) mod c; Sqr(b+c)-a; c-Sqrt(a+b);
n

{n5 {n6 {n7 {n8

= = = =
2

3} 2} 29} 1.0}

Observe: Note que o Pascal no oferece operadores de potenciao do tipo x que no seja x , nem de radiciao que no seja raiz-quadrada () atravs de funes predefinidas. No entanto utiliza-se uma alternativa matemtica na qual nos leva ao mesmo resultado. Veja a seguir: p := Exp(n * Ln(b)); r := Exp(1/n * Ln(b)); Onde Exp e Ln so funes predefinidas do Pascal que retornam respectivamente o Exponencial e o Logaritmo Natural de um nmero. No caso da potncia n, para calcular o Exponencial necessrio primeiro calcular o produto entre o expoente n e o Logaritmo Natural da base. Exemplos: p := Exp(8 * Ln(2)); r := Exp(1/3 * Ln(125));

p = 256 r=5

Operadores de Relacionais:
Uma relao uma comparao realizada entre dois operandos de mesmo tipo que resulta sempre em um valor lgico, predefinido em Pascal pelos termos TRUE (verdadeiro) ou FALSE (falso). Estes operandos so representados por constantes, variveis ou expresses. A natureza da comparao indicada pelos Operadores Relacionais representados em Pascal pelos seguintes smbolos, sem prioridades entre eles: Operador = > < >= <= <> In Exemplos: a <> b => o contedo da varivel a diferente do contedo da varivel b? b >= 3 => o contedo da varivel b maior ou igual ao nmero 3? nome = Maria => o contedo da varivel nome igual string Maria? 2 * x + 5 * y < 0 => o resultado da expresso 2x+5y menor do que zero? letra in ['a','e','i','o','u'] => o contedo da varivel letra est contido no conjunto de caracteres vogais? Igual a Maior que Menor que Maior ou igual a Menor ou igual a Diferente de Contido em (conjunto) Operao

Prof. Mrcio A. S. Torrente

Introduo Programao em Linguagem Pascal Parte 1

Operadores Lgicos:
A Negao (no), a Conjuno (e) e a Disjuno (ou) so consideradas as trs operaes fundamentais da lgica computacional que o Pascal implementa atravs dos trs operadores: NOT, AND e OR com as seguintes prioridades entre eles: Operador Not And Or Operao Negao (no) Conjuno (e) Disjuno (ou) Prioridade 1 2 3

A partir de uma tabela de entradas e sadas lgicas finitas para cada um desses operadores, denominada Tabela-Verdade, se obtm o valor resultante tambm lgico, ou seja, verdadeiro (TRUE) ou falso (FALSE), como a seguir:
Tabela-Verdade do Operador NOT: Tabela-Verdade do Operador AND: Tabela-Verdade do Operador OR:

Entradas A False True

Operao not A True False

Entradas A False False True True B False True False True

Operao A and B False False False True

Entradas A False False True True B False True False True

Operao A or B False True True True

Este operador unrio atua como uma chave inversora, alterando a entrada falsa para verdadeira e vice-versa.

Neste operador de duas entradas, observa-se que basta uma entrada falsa para que o resultado seja falso.

Neste operador tambm de duas entradas, observa-se que, ao contrrio do anterior, basta uma entrada verdadeira para que o resultado seja verdadeiro.

Funes Predefinidas:
Uma Funo parte de um programa, como uma rotina de instrues, que executa uma tarefa e retorna ao programa um determinado valor. Uma funo predefinida quando j vem pr-programada a partir do distribuidor da linguagem, reconhecida pelo compilador e ligada ao seu programa pelo linkeditor. Dessa forma as funes so ferramentas essenciais para o programador. Em Pascal existem diversos tipos de Funes Predefinidas: Numricas, Lgicas e Alfanumricas. So Numricas quando retornam valores numricos resultantes de clculos matemticos teis para o processamento de expresses aritmticas mais complexas, como uma calculadora cientfica; Lgicas quando retornam um valor lgico TRUE ou FALSE e Alfanumricas quando retornam valores teis para o tratamento de cadeias de caracteres (strings). Para que as Funes Pascal retornem um resultado vlido, necessrio enviar um dado de requisito especfico para cada Funo, que chamamos de Parmetro. As Funes do Pascal tm sempre maior prioridade de execuo sobre quaisquer outros operadores numa expresso. Veja a tabela de Funes Numricas e Lgica, onde Z qualquer nmero inteiro; R qualquer nmero real e B qualquer valor booleano (lgico): Funo Abs(x) Arctan(x) Cos(x)
Prof. Mrcio A. S. Torrente

Retorna O valor absoluto de x. O arco tangente de x. O coseno de x.

Parmetro x Z ou R R R

Retorno Z ou R R R
10

Introduo Programao em Linguagem Pascal Parte 1

Dec(x,i) Exp(x) Frac(x) Inc(x,i) Ln(x) Odd(x) PI Random(x) Round(x) Sin(x) Sqr(x) Sqrt(x) Trunc(x)

O valor de x decrementado de i. O nmero e elevado a um expoente x. A parte fracionria de x. O valor de x incrementado de i. O logaritmo natural de x. O valor TRUE se x for mpar. O valor constante de (3,141592653). Um valor aleatrio entre 0 e x. O valor arredondado de x. O seno de x. O quadrado de x. A raz quadrada de x. O valor truncado de x.

Z R R Z R Z --Z R R Z ou R R R

Z R Z Z R B R Z Z R Z ou R R Z

Exemplos: (Expresses aritmticas com uso de funes e suas equivalentes equaes matemticas) q := Sqr(x); t := Arctan(-Sqrt(x)/x); z := Round(3*(Cos(5*Pi/6)+Sin(5*Pi/6)));

x1 := (-b+Sqrt(Sqr(b)-4*a*c))/(2*a); y := 1/(d/dt*Ln(x)); Veja a seguir, a tabela de Funes Alfanumricas, onde Z, P, Q e N representam qualquer nmero inteiro; S, S1, S2 e Sn, qualquer string; e C qualquer caracter: Funo Concat(S1,S2,...,Sn) Copy(S,P,Q) Length(S) Pos(S1,S2) Ord(C) Chr(N) Succ(C) Pred(C) UpCase(C) Retorna Uma nica string formada pela juno das strings S1, S2 at Sn. Uma substring da string S, a partir da posio P, de comprimento Q. O comprimento de uma string S. A posio em que a string S1 se encontra dentro da string S2. O cdigo ASCII do caracter C. O caracter equivalente ao cdigo ASCII de N. O caracter sucessor do caracter C. O caracter predecessor do caracter C. O caracter maisculo equivalente ao caracter C. Parmetros S SeZ S S C Z C C C Retorno S S Z Z Z C C C C

Prof. Mrcio A. S. Torrente

11

Introduo Programao em Linguagem Pascal Parte 1

Procedimentos Predefinidos:
Um Procedimento, semelhante a uma funo, como uma rotina de instrues parte do programa, que apenas executa uma tarefa sem assumir um valor especfico. Um procedimento predefinido quando j vem pr-programado pelo distribuidor da linguagem. Um procedimento tambm pode necessitar de parmetros e pode retornar ao programa com novos valores em seus parmetros. A tabela a seguir lista os Procedimentos Predefinidos do Pascal, onde Z, P e Q representam qualquer nmero inteiro; R, qualquer nmero real; S, S1 e S2, qualquer string: Procedimento Insert(S1,S2,P) Delete(S,P,Q) Str(R,S) Descrio Insere a string S1, na string S2, a partir da posio P. Elimina da string S, a partir da posio P, uma substring de comprimento Q Converte um nmero inteiro ou real N para uma string S do tipo Alfanumrico. Converte uma string S para um dado numrico N inteiro ou real de mesmo valor. Caso a string S no possua apenas nmeros, ocorrer um erro de converso onde Z ser diferente de 0.

Val(S,R,Z)

Exemplos: (Para S1 = computador, S2 = cabealho e L1 = a) Delete(S2,7,3); S3 := Estou +Copy(S1,1,3)+ uma +Copy(S1,8,3)+ de +S2+...; t := Length(S1); p := Pos(alho;S2); c := Ord(L1); L2 := UpCase(L1); L3 := Chr(77); Insert('micro',S1,1); Aps executar estas linhas de programa, as variveis contero os seguintes valores, lembrando que S1, S2 e S3 devem ser do tipo String; L1, L2 e L3 do tipo Char; t, p e c do tipo Byte: S2 = cabea S3 = Estou com uma dor de cabea... t = 10 p=6 c = 97 L2 = A L3 = M S1 = microcomputador

Prof. Mrcio A. S. Torrente

12

Introduo Programao em Linguagem Pascal Parte 1

Comandos de Entrada e Sada:


Os comandos de maior importncia dentro de um programa so os de entrada e sada de dados, que possibilitam a interface entre o seu programa e o usurio. a maneira pela qual um usurio insere os dados atravs do teclado ao seu programa e o programa exibe na tela as informaes resultantes do processamento.

O Comando READ:
Os termos READ e READLN so os comandos de entrada de dados usados em Pascal. Veja na sintaxe abaixo que lista-de-identificadores so os nomes das variveis receptoras de qualquer tipo predefinido, cujos valores sero lidos dos dispositivos de entrada (teclado ou drives de disco). Quando mais do que um, os identificadores contidos na lista, devem estar separados por vrgula. A diferena entre estes os dois comandos de entrada que o comando READ l registros de arquivos em disco e o comando READLN l informaes enviadas do teclado. Os valores de entrada, ao serem digitados no teclado, devero estar separados por espaos ou seguidos da tecla ENTER para que o READLN capture corretamente os dados e armazene-os nas respectivas variveis. Sintaxe do comando READ: Read[ln](<lista-de-identicadores>);

O Comando WRITE:
Os termos WRITE e WRITELN so os comandos de sada de dados usados em Pascal. A lista-deidentificadores representa os nomes das variveis de qualquer tipo predefinido, qualquer constante ou qualquer expresso. Os identificadores contidos na lista, devem estar separados por vrgula. Constantes e expresses de tipos distintos podem aparecer num mesmo comando de sada. A diferena entre estes dois comandos que o comando WRITE imprime os valores sempre numa mesma linha de vdeo at o seu trmino. Ao contrrio, o comando WRITELN imprime os valores e incrementa uma linha de vdeo, proporcionando a cada impresso, um CR e LF (Retorno do Cursor e Avano de Linha). Esses comandos READ e WRITE so considerados Comandos Simples. Sintaxe do comando WRITE: Write[ln](<lista-de-identicadores>|<constantes>|<expresses>); Exemplos: Read(arq,reg); {L do arquivo arq, o registro reg} Write(Entre com o nome: ); {Exibe na tela o texto entre apstrofos} Readln(nome); {L do teclado um contedo e armazena-o na varivel nome} Writeln(nome); {Exibe na tela o contedo da varivel nome} Writeln(Cdigo: , cod); {Exibe na tela um texto, seguido do contedo da varivel cod} Writeln(2*x+y); {Exibe o resultado da expresso aritmtica}

Formatao da Sada de Dados:


A formatao definida somente no comando Write atravs de dois pontos (:) aps sua expresso.

Write(E:P1:P2);

ou

Writeln(E:P1:P2);

Onde o parmetro E representa o valor a ser escrito na tela, demonstrado na sintaxe do comando Write como sendo uma constante, uma varivel ou uma expresso de qualquer tipo de dado predefinido. O parmetro P1 representa um valor inteiro positivo e indica o nmero mnimo de caracteres a ser escrito na tela. Se P1 for insuficiente para representar o valor escrito, ento ser locado mais espao na tela. Se P1 for excessivo, o espao excedente ser preenchido com brancos. O parmetro P2 s aplica-se somente se o parmetro E for do tipo REAL. P2 um valor inteiro positivo e especifica o nmero de casas decimais, ou
Prof. Mrcio A. S. Torrente 13

Introduo Programao em Linguagem Pascal Parte 1

seja, a quantidade de dgitos que devem ser escritos na tela aps o ponto decimal. Se E2 for omitido, ento o valor real ser escrito na forma de ponto flutuante ou exponencial. Exemplo: Program FormatandoDados; Uses Crt; Var n : Byte; a, b : Real; s : Char; Begin n := 10; a := 4.1; b := 7.8; s := *; Writeln(------------------------------------------------------------); Writeln(n, + , a, + , b, = , n+a+b, s); Writeln(n:3, + , a:3, + , b:3, = , n+a+b:3, s:1); Writeln(n:5:2, + , a:5:2, + , b:5:2, = , n+a+b:5:2, s:2); Writeln(n:1:4, + , a:1:4, + , b:1:4, = , n+a+b:1:4, s:5); Writeln(------------------------------------------------------------); End. Sada em vdeo: -----------------------------------------------------------10 + 4.1000000000E+00 + 7.8000000000E+00 = 2.1900000000E+01* 10 + 4.1E+00 + 7.8E+00 = 2.2E+01* 10 + 4.10 + 7.80 = 21.90 * 10 + 4.1000 + 7.8000 = 11.9000 * ------------------------------------------------------------

Referncias Bibliogrficas: REENG/FEC, Apostila de Introduo ao Pascal; UNICAMP, Campinas-SP, 2000. RINALDI, Roberto; Turbo Pascal 7.0 Comandos e Funes; Editora rica, So Paulo-SP, 1993. ASCENCIO, A.F.G.. Lgica de programao com Pascal. So Paulo: Makron Books, 1999. MANZANO, J.A.N.G., YAMATUMI, W.Y., Free Pascal: Programao de Computadores, ed.1, So Paulo: rica, 2007. SCHIMITZ, Eder e TELES, Antnio; Pascal e Tcnicas de Programao; Editora LTC, Rio de Janeiro-RJ, 1999. SALIBA, Walter; Tcnicas de Programao uma Abordagem Estruturada; Ed. Makron Books, So Paulo-SP, 1992. SWAN, Tom; Mastering Turbo Pascal 5.0; Editora Hayden Books, SanDiego California, USA, 1990. Prof. Mrcio A. S. Torrente 14

Você também pode gostar