Apostila Linguagem Pascal

37
PDF gerado usando o pacote de ferramentas em código aberto mwlib. Veja http://code.pediapress.com/ para mais informações. PDF generated at: Wed, 07 May 2014 18:54:19 UTC Pascal

Transcript of Apostila Linguagem Pascal

Page 1: Apostila Linguagem Pascal

PDF gerado usando o pacote de ferramentas em código aberto mwlib. Veja http://code.pediapress.com/ para mais informações.PDF generated at: Wed, 07 May 2014 18:54:19 UTC

Pascal

Page 2: Apostila Linguagem Pascal

ConteúdoPáginas

Introdução 1Declarações 4Comandos de Entrada e Saída 8Expressões Aritméticas 10Expressões Lógicas 11Prioridades 12Comandos de Atribuição 12Estrutura Condicional 14Estrutura de Repetição 22Estrutura de Dados 29Procedures 30Functions 31Arquivos texto 32

ReferênciasFontes e Editores da Página 34

Licenças das páginasLicença 35

Page 3: Apostila Linguagem Pascal

Introdução 1

Introdução

Introdução

O que vem a ser linguagem de ProgramaçãoAntes de falarmos em linguagem de programação, vamos falar primeiramente sobre o que é um programa.Chamamos de programas as sequências de instruções a serem seguidas (neste caso específico, pelo computador) paraa realização de uma tarefa.Existem diversas formas de escrever um programa para o computador. Podemos fazê-lo diretamente em código demáquina (codificado em binário [1]) com o uso de mnemônicos e montadores (linguagens de baixo nível, como, porexemplo, assembly) ou com o uso de uma linguagem corrente, normalmente o inglês, e o uso de um interpretadorque se encarrega de convertê-la em linguagem de máquina, o que é feito a cada comando quando ele for executado (exemplo BASIC ).Um programa ainda pode ser feito por compilador (exemplo: COBOL, FORTRAN, PASCAL) que fará a conversãode todo o programa escrito em alto nível em um programa contendo o código objeto que, uma vez compilado, podeser executado várias vezes sem depender mais do uso do programa compilador.

AlgoritmoAlgoritmo é uma sequência de procedimentos que são executados sequencialmente com o objetivo de resolver umproblema específico. Basicamente é um programa em linguagem mais próxima à nossa (alto nível).Exemplo de algoritmo: "Como fazer um bolo"

Pegar Farinha 1 xícara

Pegar Ovos ½ dúzia {ENTRADA}

Pegar Leite 100 ml

Pegar Fermento 1 colher pequena

Misturar a farinha ao leite

Bater os ovos {PROCESSAMENTO}

Misturar os demais ingredientes

Colocar no forno durante 20 minutos

Retirar, Esfriar e comer {SAÍDA}

Linguagem usada: Português (linguagem de alto nível) Elementos manipulados: ingredientes (ovos, leite, farinha, ...)Algoritmos são usados para rascunhos de programas, como forma de idealizar, organizando e desenvolvendosequências lógicas, em seguida são traduzidos para alguma linguagem de programação,

Page 4: Apostila Linguagem Pascal

Introdução 2

A linguagem PascalEm cursos básicos de programação utilizamos a linguagem Pascal para praticar e executar algoritmos, pois estalinguagem foi criada com esta finalidade.História do Pascal

Ano de 1971. O professor Niklaus Wirth projeta uma linguagem como trabalho escolar para estudantes deprogramação da Universidade Técnica de Zurique, Suíça. Essa linguagem vem a se chamar Pascal, homenageando ofilósofo e matemático do século XVII, Blaise Pascal.A partir dessa época, diversas versões de Pascal foram implementadas, com destaque especial a Borland / Inprise,que construiu os melhores e mais populares compiladores Pascal.Turbo Pascal 1: Desde a sua primeira versão, o compilador pascal da Borland (chamado de Turbo Pascal) já possuíaambiente para digitação e depuração do código fonte, e fazia a compilação e linkedição do código em um únicoprocesso. Outra característica dos compiladores Turbo Pascal: são extremamente rápidos e geram executáveisenxutos, e com código nativo.Turbo Pascal 2 e 3: Foram acrescentadas algumas funcionalidades nessas versões, como o acesso a diretórios atravésdo ambiente de programação, para a localização de arquivos. Foi incluído novos procedimentos e funções.Turbo Pascal 4: Foram introduzidas rotinas do DOS para leitura de diretórios, leitura e escrita de atributos dearquivos; ferramentas para acesso à memória e portas de hardware; facilidades para a construção de rotinas gráficas,com estilo de contornos e preenchimentos; foi implementado na versão 4 o conceito de unidade (Unit), fazendo comque um mesmo código fosse compartilhado entre vários programas fonte, e sem a necessidade da recompilação; estaversão ainda foi responsável pela implementação de novos tipos de dados e finalmente, a possibilidade de deixar oprograma residente.Turbo Pascal 5: Ocorreu uma importante evolução no compilador - a depuração. O programa agora pode serexecutado passo a passo, inclusive com o acompanhamento do conteúdo das variáveis.Turbo Pascal 5.5: Esta versão foi a responsável pela estréia do Pascal Orientado a Objetos, dando origem a primeiraimplementação do Object Pascal.

ComandosConjunto de palavras-chave de uma linguagem de programação que tem por finalidade dizer ao computador comoele deve executar uma tarefa. No exemplo de algoritmo descrito acima (receita de bolo), os comandos erampalavras-chaves representados por verbos da língua portuguesa, em computadores os comandos são usualmentepalavras originária da língua inglesa. Exemplo: write, read, do, ...

CompiladoresPara que o computador execute o programa escrito em Pascal, é necessário traduzi-lo para a linguagem de máquina.Compiladores são estes tradutores, que além disso, ainda testam o código mostrando os erros.Principais compiladores usados:• Turbo Pascal 7 [2] - Clássico compilador de Pascal, Utiliza interface DOS;• Pascalzim [3] - Desenvolvido no Departamento de Ciências da Computação da Universidade de Brasília,Utiliza interface Windows, e tem como principal recurso a procura e substituição de palavras.• Free Pascal [4] - Compilador gratuito, compatível com Pascal e Object Pascal (linguagem usada no Delphi). É

muito compatível com a linguagem usada no Turbo Pascal 7, e possui versões para sistemas Windows,GNU/Linux, Mac, DOS, OS/2, Haiku, e GNU/BSD. É um projeto de código livre (open source).

Page 5: Apostila Linguagem Pascal

Introdução 3

BibliotecasBibliotecas são um conjunto de funções e procedimentos chamadas por comandos nos programas. Por exemplo abiblioteca CRT responde ao comando clrscr (limpar a tela). No caso do compilador Turbo Pascal acessamos abiblioteca da seguinte forma:

program teste;

uses crt;

var

Observação: o compilador Pascalzim já acessa a biblioteca CRT, não sendo necessário acessá-la.

Construção do programa em PascalO programa se constitui num texto, que pode ser editado em qualquer editor de texto ou diretamente no compilador,sendo necessário ser salvo com a terminação .pas de pascal, em seguida compilado (traduzido para linguagem demáquina), para depois ser executado. Nos compiladores de hoje já é possível executar direto pulando todas estasetapas.O programa em Pascal se constitui basicamente de:

{comentários entre chaves não são lidos pelo compilador}

program Nome_do_programa; {identificação do programa}

uses CRT; {acessar uma biblioteca,necessário no Turbo Pascal}

var {declaramos as variáveis}

a,b,c:real; {variáveis:tipo}

begin {início do corpo do programa}

read(a); {comandos dentro do corpo}

c:=a; {comandos terminam com ponto e vírgula}

end. {fim do corpo do programa com ponto}

No decorrer do livro serão apresentados mais detalhesExemplo de programa em Pascal:

program nomey;

uses wincrt;

var

nome:string;

begin

clrscr;

write('Escreva um nome ');

read(nome);

writeln('O nome que voce escreveu foi: ',nome);

readkey;

end.

Page 6: Apostila Linguagem Pascal

Introdução 4

Referências[1] http:/ / Eletr%C3%B4nica_Digital/ Sistemas_de_Numera%C3%A7%C3%A3o#Sistema_bin. C3. A1rio[2] http:/ / gabriel. sg. urcamp. tche. br/ beraldo/ Documentos/ Tp7. zip[3] http:/ / pascalzim. tripod. com/[4] http:/ / www. freepascal. eti. br/

Declarações

InformaçõesInformação é a matéria prima que faz com que seja necessária a existência dos computadores, pois eles são capazesde manipular e armazenar um grande volume de dados que vão gerar as informações.• INFORMAÇÃO CONSTANTE – É aquela que não sofre nenhuma variação em seu conteúdo no decorrer do

tempo.• INFORMAÇÃO VARIÁVEL – É aquela que pode sofrer variação no seu conteúdo no decorrer do tempo.As informações são divididas em quatro tipos primitivos:•• informação inteira. 15, 0, 9, -3•• informação real. 1.67, 0.00, -2.45• informação caractere. Formada por conjunto de caracteres alfanuméricos. “O menino disse não.”•• Informação lógica. Pode assumir somente duas informações. Verdadeira ou falsa.

IdentificadoresSão os nomes atribuídos para as constantes e variáveis que receberão as informações.Um identificador válido na linguagem Pascal é qualquer seqüência de caracteres que obedeça às seguintes regras:1.1. Devem começar por um caractere alfabético( a, b, ..., z ) ;2.2. Podem ser seguidos por mais caracteres e/ou numéricos, ou o caractere _ ;3.3. Não é permitido o uso de caracteres especiais;4.4. Têm que ser diferentes das palavras reservadas do Pascal, como os comandos, funções, etc.Exemplo:Identificadores válidos na linguagem Pascal:

A

Nota

P1

Meu_Identificador

Identificadores inválidos na linguagem Pascal:

1A

E(13)

A:B

Page 7: Apostila Linguagem Pascal

Declarações 5

Palavra reservadaIdentifica uma função determinada.Exemplo: (consulte a ajuda do seu compilador)

APPEND TEXTCOLOR

ARRAY CHR

ASSIGN RED

STRING AND

THEN <

TO BLUE

TRUE CYAN

TYPE )

UNTIL LIGHTRED

VAR WHITE

WHILE DIV

WRITE ]

WRITELN EOF

DeclaraçãoA declaração de variáveis e constantes consiste em reservar um espaço na memória do micro para armazenar umcerto tipo de informações, associando a este espaço um tipo de dados e uma identificação (nome davariável/constante).

ConstantesValor que não é modificado durante toda a execução do programa. Ele é armazenado na memória para ser usado emcálculos e processamentos, mas não é modificado.Exemplo: o valor do PI, a nota mínima necessária para ser aprovado no semestre,etc.Declaramos as constantes da seguinte forma:

CONST

nome_da_constante = valor_da_constante ;

Exemplos:

CONST

PI = 3.1415926;

obs.: o ponto e vírgula finaliza o comando.Declaração de variáveis DECLARE Inteiro a Real x,y Real nota1, nota2, media1, notaRecuperacao, media2Booleano sexo String Nome5, p

Page 8: Apostila Linguagem Pascal

Declarações 6

VariáveisValor que pode ser alterado durante a execução do programa.Exemplo: salário, média final do aluno, etc.Declaramos as variáveis da seguinte forma:

VAR

nome_da_variável : tipo_da_variável ;

Exemplos:

VAR

Idade: INTEGER;

Salario: REAL;

Sexo: CHAR;

Nome: STRING;

Tipos de dadosNo programa em Pascal temos três tipos de dados principais: Numéricos (inteiros e reais), caracteres (letras esímbolos) e lógicos (verdadeiro ou falso). Os tipos devem ser declarados no início do programa.Sintaxe:

variável:tipo;

variável_a,variável_b:tipo2;

Exemplo:

program exemplo;

var

nome:string;

num,cont:integer;

begin

{corpo do programa}

end;

NuméricosPodem ser integer (inteiros) ou real (reais).Exemplo:

PROGRAM exemplo;

CONST { Declaração de constantes }

PI = 3.1415926;

VAR { Declaração de Variáveis }

Raio,Area_da_Circunferencia : REAL;

BEGIN { Comandos do Programa }

write(‘Forneça o raio: ‘); readln (Raio);

Area_da_Circunferencia := PI * ( Raio * Raio ); { Area = PI * R2 = PI * R * R }

writeln(‘Área = ‘,Area_da_Circunferencia);

Page 9: Apostila Linguagem Pascal

Declarações 7

readln;

END.

CaracteresPodem armazenar letras (‘a’..‘z’; ‘A’..‘Z’), números (‘0’..’9’) ou outros caracteres especiais ( ‘@’,’#’, ‘$’, ‘%’, ‘*’, ‘\’, ...).Eles podem aparecer isolados (tipo char), ou agrupados formando palavras/frases (tipo string). Devem serdelimitados entre aspas e seu conteúdo é lido e/ou escrito literalmente. Usa-se char para um caractere e string parauma cadeia de caracteres.Sintaxe:

letra:char;

nome:string;

Exemplos:

‘Nome’ (string) é diferente de Nome (variável)‘1999’ (string) é diferente de 1999 (número)‘1’ (char) é diferente de 1 (número)‘begin’ (string) é diferente de BEGIN (comando Pascal)

LógicosPodem armazenar apenas um valor: verdadeiro(True) ou Falso(False). Este tipo de dados é usado em expressõeslógicas, onde servem para testar ou indicar a resposta de alguma condição.Sintaxe:

var

variável1:boolean;

Exemplo:

program nota; {comentário entre chaves não é lido pelo programa}

VAR {aqui são declaradas as variáveis}

Aprovado, Reprovado : Boolean;

BEGIN {corpo do programa}

Aprovado := true; {a variável recebe um valor}

Reprovado := False;

END;

Page 10: Apostila Linguagem Pascal

Comandos de Entrada e Saída 8

Comandos de Entrada e Saída

Entrada de DadosO comando de entrada é utilizado para receber dados digitados pelo usuário. Os dados recebidos são armazenadosem variáveis. Esse comando é representado pela palavra-chave Read ou Readln.Sintaxe :

Readln (Nome-da-variavel);

Readln (Nome-da-variavel1, Nome-da-variavel2);

Exemplo:

Var X, Y : Integer;

Begin

Readln (X);

Readln (Y);

{As linhas acima tem a mesma função que as linhas abaixo, com apenas uma diferença que será explicado a seguir}

Read (X);

Read (Y);

End.

Exemplo:

Var X, Y : Integer;

Begin

Readln (X, Y);

{A linha acima tem a mesma função que a linha abaixo, com apenas uma diferença que será explicado a seguir}

Read (X, Y);

End.

Diferença entre Read e ReadlnRead e Readln desempenham a mesma função, a unica diferença é que após a entrada de dados com Read o cursorfica na mesma linha, e no caso do Readln o curso vai para a linha de baixo.

Saída de DadosO comando de saída de dados é utilizado para mostrar dados na tela. Esse comando é representado pelas palavrasWrite ou Writeln e os dados podem ser conteúdos de variáveis e/ou mensagens.Sintaxe:

Write (Nome-da-Variavel);

Writeln (Nome-da-Variavel);

Writeln ('Mensagem');

Writeln ('Mensagem', Nome-da-variavel);

Exemplo:

Var X : Integer;

Page 11: Apostila Linguagem Pascal

Comandos de Entrada e Saída 9

Begin

X := 12;

Writeln ('Bem Vindo ao GNOIA');

Writeln ('O Valor de X é = ', X);

{Podemos usar o comando Write Também, tem a mesma função do Writeln, com uma diferença que será explicada a seguir}

Write ('O Valor de X é = ', X);

End.

Diferença entre Write e WritelnA diferença entre esses comandos é que o comando Writeln mostra o seu conteúdo e passa o cursor para a linha debaixo, enquanto o comando Write mantém o cursor na mesma linha.

Exercícios1. Desenvolva um programa em Pascal que escreva pedindo para o usuário digitar um nome, em seguida faça que oprograma leia este nome, depois escreva este nome.Resolução:

Program nome ;

uses crt;

var

nome:string;

Begin

clrscr; {limpa a tela}

write('Digite um nome ');

read(nome);

writeln(nome);

readkey; {espera o usuário digitar alguma tecla}

End.

2. Desenvolva um programa que leia 2 números inteiros, em seguida some esses números e escreva o resultado.Resolução:

program somaacomb;

uses crt;

var

a,b,c:integer;

begin

clrscr;

write('Digite dois números inteiros ');

read(a);

read(b);

c:=a+b;

writeln(a,' + ',b,' = ',c);

readkey;

end.

Page 12: Apostila Linguagem Pascal

Expressões Aritméticas 10

Expressões Aritméticas

EXPRESSÕES MATEMÁTICASChamamos de operadores matemáticos ou aritméticos o conjunto de símbolos que representa as operações básicas damatemática, a saber:

+ adição ; - subtração ;

* multiplicação ; / divisão ;

Exemplos:

-2 + 2 ; ABC / 5 ; aula * ABC + XPTO – 8.

Construa um algoritmo que calcule a média aritmética entre quatro notas quaisquer fornecidas pelo usuário.

Program media;

uses crt;

var

N1, N2, N3, N4: real;

begin

clrscr;

writeln('Digite as 4 notas');

readln( N1, N2, N3, N4 );

writeln('A média do aluno é: ',(N1+N2+N3+N4)/4);

readkey;

end.

FUNÇÕES MATEMÁTICASExistem comandos que executam funções matemáticas. Consulte a ajuda do compilador para uma lista detalhada.Dentre os principais temos:DIV Retorna o quociente inteiro da divisão.Sintaxe:

num_inteiro:=(num1)DIV(num2);

MOD Retorna o resto da divisão.Sintaxe:

resto:=(num1)MOD(num2);

Exemplo: Faça um programa para ler 2 números inteiros, dividi-los e escrever o resto de sua divisão.

program resto;

uses crt;

var

a,b,c:integer;

begin

clrscr;

writeln('Digite 2 números inteiros');

Page 13: Apostila Linguagem Pascal

Expressões Aritméticas 11

readln(a,b);

c:=(a)mod(b);

writeln('O resto da divisão do número ',a,' pelo número ',b,' é ',c);

readkey;

end.

INT(x) – resulta a parte inteira de um número X.FRAC(x) – resulta a parte fracionária de X.ABS(x) – resulta o valor absoluto de X. Não importa se o número é negativo ou positivo, com ABS sempre retornapositivo.SQR(x) – resulta no quadrado de X.SQRT(x) – resulta na raiz quadrada de X (para X real não negativo)Exemplos

(15)DIV(7) resulta 2

(15)MOD(7) resulta 1

INT(34.567) resulta 34

FRAC(546.34) resulta 34

ABS(-34) resulta 34

SQR(4) resulta 16

SQRT(64) resulta 8

Expressões Lógicas

Operadores relacionais com expressões lógicasEstes operadores são usados para comparar valores e retornam um true (verdadeiro) ou false (falso)

= ( igual a )

# ou <> (diferente)

> ( maior )

< ( menor )

Operadores lógicosSão usados em expressões lógicas adicionando mais opções

NOT (NÃO) negação

AND (E) conjunção

OR (OU) disjunção

Exemplo -

if (num=10) or (num>10) then {condição lógica será executada se a variável num for >=10}

Page 14: Apostila Linguagem Pascal

Prioridades 12

Prioridades

PrioridadesNa resolução das expressões aritméticas, as operações e funções matemáticas guardam entre si uma hierarquia.

1- Parênteses mais internos.

2- Funções matemáticas.

3- * /

4- + -

5- Operadores relacionais; ( # - = - > - < )

6- Operadores lógicos.( NÃO - E – OU )

Exemplo:

Resolvendo passo a passo a expressão:

- 4 / 2 + ABS( 5 – 3 * 5 ) / 2 – 4 / 2 + ABS( 5 – 15 ) / 2 {1- Parênteses mais internos, 3- multiplicação} – 4 / 2 + ABS( -10 ) / 2 {1- Parênteses mais internos} – 4 / 2 + 10 / 2 {2- Funções matemáticas} -2 + 5 {3- a divisão}

3 {resultado final}

Comandos de Atribuição

Atribuição de valoresPodemos atribuir valores a variáveis e constantes que serão manipulados pelo programa.

Atribuindo valores em constantesUma constante recebe um valor no início do programa, e este valor não muda na execução deste programa.Ex:

program test;

const

PI=3.14;

nota_max=10;

var

Page 15: Apostila Linguagem Pascal

Comandos de Atribuição 13

Atribuindo valores em variáveisVariáveis podem receber valor de uma expressão aritmética, de outra variável, ou ainda pelo comando read.Para atribuir valor a uma variável em Pascal usamos ":="Exemplo:

num:=2+2; {a variável num recebe o valor 4}

a:=num*2; {a variável a recebe o valor 8}

read(b); {a variável b recebe um valor digitado}

Lembrando que a variável só pode receber um valor de acordo com o seu tipo declarado no início do programa coma palavra-chave var.No exemplo anterior

program test;

const

PI=3.14;

nota_max=10;

var

num,a:integer;

b:real;

begin

num:=2+2; {a variável num recebe o valor 4}

a:=num*2; {a variável a recebe o valor 8}

read(b);

writeln('Os números são PI=',PI,' a nota máxima é',nota_max);

writeln('2 + 2 = ',num,' que multiplicado por 2 dá ',a);

writeln('O número digitado foi ',b);

end.

Page 16: Apostila Linguagem Pascal

Estrutura Condicional 14

Estrutura Condicional

Estrutura CondicionalEssa estrutura é conhecida também como estrutura de decisão ou de seleção, ela se caracteriza por execução dedeterminados códigos de programação dependendo da veracidade de uma condição. Neste tópico será apresentado asestruturas de condição simples, composta, aninhada (uma dentro da outra) e a estrutura Case.

Estrutura Condicional - SimplesSintaxe:

SE condição

ENTÃO comando

Notas: O comando só será executado se a condição for verdadeira. Uma condição é uma comparação que possuidois valores possíveis, verdadeiro ou falso.Sintaxe:

SE condição

ENTÃO INÍCIO

comando1

comando2

comando3

FIM

Notas: Aqui o comando também só será executado se a condição for verdadeira, a diferença dos dois exemplosacima é que, quando o número de instruções a serem executadas forem maior que um, então é necessário colocar asinstruções dentro de blocos (Begin = INICIO e End = FIM).•• SE = IF•• ENTÃO = THEN•• INÍCIO = BEGIN•• FIM = ENDExemplo com apenas uma instrução:

Uses Crt;

var X, Y : Integer;

begin

Writeln ('Entre com dois Números:'); { Mostra na tela a mensagem}

Readln (X, Y); { Lê os dois números }

If (X > Y) Then {Condição - SE X for maior que Y}

Writeln ('X é Maior que Y, e seu valor é = ', X);

end.

Exemplo com mais de uma instrução:

uses Crt;

Page 17: Apostila Linguagem Pascal

Estrutura Condicional 15

var X, Y : Integer;

begin

Writeln ('Entre com dois Números:'); { Mostra na tela a mensagem}

Readln (X, Y); { Lê os dois números }

If (X = Y) Then {Condição - SE X for igual a Y}

Begin {INICIO - Repare abaixo que existe duas instruções, dois

comandos Writeln, por isso estão entre BEGIN e END}

Writeln ('X é igual que Y');

Writeln ('O Valor de X é =', X);

End; {FIM}

end.

Exemplo utilizando operadores Lógicos:

uses Crt;

var X, Y : Integer;

begin

Writeln ('Entre com dois Números:'); { Mostra na tela a mensagem}

Readln (X, Y); { Lê os dois números }

If ((X > Y) And (Y <> 0)) Then {Condição - SE X for maior que Y E Y

diferente de 0 - Repare no And}

Begin {INICIO - Repare abaixo que existe três instruções, três

comandos Writeln, por isso estão entre BEGIN = INICIO e END = FIM}

Writeln ('X é Maior que Y');

Writeln ('Y é diferente de 0');

Writeln ('O Valor de X é =', X);

End; {FIM}

end.

Notas: Repare no operador Lógico AND, só serão executados os comandos Writeln, se as duas condições foremverdadeiras. Se a variável X for maior que a variável Y e se a variável Y for diferente de 0 (zero).Exemplo utilizando operadores Lógicos:

uses Crt;

var X, Y : Integer;

begin

Writeln ('Entre com dois Números:'); { Mostra na tela a mensagem}

Readln (X, Y); { Lê os dois números }

If ((X > Y) Or (Y <> 0)) Then {Condição - SE X for maior que Y OU Y

diferente de 0 (zero)- Repare no Or}

Begin {INICIO - Repare abaixo que existe três instruções, três

comandos Writeln, por isso estão entre BEGIN = INICIO e END = FIM}

Writeln ('X é Maior que Y');

Writeln ('Y é diferente de 0');

Page 18: Apostila Linguagem Pascal

Estrutura Condicional 16

Writeln ('O Valor de X é =', X);

End; {FIM}

end.

Notas: Nesse caso acima utilizando o Operador Lógico OR (OU), serão executados os comandos Writeln, se umadas duas condições forem verdadeira. Se a variável X for maior que a variável Y OU Se a variável Y for diferente de0 (zero).

Estrutura Condicional - CompostaSintaxe:

SE condição

ENTÃO comando1

SENÃO comando2

Notas: O comando1 só será executado se a condição for verdadeira, caso contrário, se a condição for falsa, seráexecutado o comando2.

Sintaxe:

SE condição

ENTÃO INÍCIO

comando1

comando2

comando3

FIM

SENÃO INÍCIO

comando4

comando5

FIM

•• SE = IF•• ENTÃO = THEN•• SENÃO = ELSE•• INÍCIO = BEGIN•• FIM = ENDExemplo com apenas uma instrução:

Uses Crt;

var X, Y : Integer;

begin

Writeln ('Entre com dois Números:'); { Mostra na tela a mensagem}

Readln (X, Y); { Lê os dois números }

If (X > Y) {Condição - SE X for maior que Y}

Then Writeln ('X é Maior que Y, e seu valor é = ', X) {Entra

nesse comando apenas se X for maior que Y - Repare que antes de ELSE

não vai ";"}

Else Writeln ('Y é maior ou igual a X, seu valor é = ',Y);

Page 19: Apostila Linguagem Pascal

Estrutura Condicional 17

{Entra nesse comando se Y for maior ou igual a X}

end.

Exemplo com mais de uma instrução:

Uses Crt;

var X, Y : Integer;

begin

Writeln ('Entre com dois Números:'); { Mostra na tela a mensagem}

Readln (X, Y); { Lê os dois números }

If (X > Y) {Condição - SE X for maior que Y}

Then Begin

Writeln ('X é Maior que Y');

Writeln ('O valor de X é =', X);

End { Repare que não tem ponto e vírgula por que "End"

está antes do "Else"}

Else Begin

Writeln ('Y é Maior ou Igual a X');

Writeln ('O valor de Y é =', Y);

End;

end. { Sempre no "End" do programa principal vai ponto final

".", e não ponto e virgula ";"}

Estrutura Condicional AninhadaO if aninhado é simplesmente um if dentro da declaração de um outro if externo. É necessário saber exatamente aqual if um determinado else está ligado, para não ocasionar erro na lógica do programa.Exemplos de IF's aninhados:

Uses Crt;

Var X, Y, A, B : Integer;

Begin

Readln (X,Y,A,B);

If (X > Y) Then { Entrará no Próximo If apenas se a variável X for

maior que a variavel Y }

| If (A > B)

| | Then Writeln ('X é maior que Y e A é maior que B') {Sem ";"}

| Else Writeln ('A não é Maior que B') {Sem ";"}

Else Writeln ('X não é maior que Y');

End.

{ O caracter "|" serve para indicar qual IF pertence a qual ELSE}

{ Repare que antes do ELSE nao tem ";"}

Exemplo de IF's aninhados:

Page 20: Apostila Linguagem Pascal

Estrutura Condicional 18

Uses Crt;

Var X, Y, A, B : Integer;

Begin

Readln (X,Y,A,B);

If (X > Y) Then

| If (A > B)

| Then Begin

| | | Writeln ('X é maior que Y e A é maior que B');

| | | Writeln ('O Valor de X é = ', X);

| | | Writeln ('O Valor de A é = ', A);

| | End

| Else Begin

| | Writeln ('A não é Maior que B');

| | Writeln ('O Valor de B é = ', B);

| End

Else Writeln ('X não é maior que Y');

End.

Notas: Repare que para cada BEGIN sempre terá um END, e tem que ficar atento sempre em relação a qual ELSEperfence a qual IF. Os programas acima para compilá-los é necessários tirar todos os caracteres "|" (pipe), que foiutilizado para mostrar a inter-relação entre BEGIN's - END's e IF's - ELSE's.

Else PendenteElse pendente acontece quando ele se encontra "perdido" dentro do código, ou seja, ele não sabe a qual If pertence.Exemplo de Else pendente:

Uses Crt;

Var X, Y, A, B : Integer;

Begin

Readln (X,Y,A,B);

If (X > Y) Then

If (A > B) Then

Writeln ('A é maior que B')

Else Writeln ('A não é Maior que B');

End.

Notas: O compilador adota que o Else sempre será do If mais interno.Exemplo de como resolver o problema do Else pendente:

Uses Crt;

Var X, Y, A, B : Integer;

Begin

Page 21: Apostila Linguagem Pascal

Estrutura Condicional 19

Readln (X,Y,A,B);

If (X > Y) Then

Begin

If (A > B) Then

Writeln ('A é maior que B')

Else Writeln ('A não é Maior que B');

End;

End.

Notas: Para que não haja duvidas a qual If o Else pertence utilize os delimitadores BEGIN - END.

Estrutura CaseO comando CASE é importante para a estruturação de um programa que possua diversas opções de execução,tornando-o bem legivel e estruturado, evitando o uso do IF de forma repetida. O comando CASE trás junto com eleuma restrição, onde, seletor tem que ser do tipo char, integer ou boolean.Sintaxe:

CASE seletor OF

alvo1 : comando1;

alvo2 : comando2;

alvo3 : comando3;

END;

Sintaxe:

CASE seletor OF

alvo1 : BEGIN

... instruções ...

END;

alvo2 : comando2;

alvo3 : BEGIN

... instruções ...

END;

ELSE comando4;

END;

Exemplo:

{ Um simples exemplo de como se trabalha com a Estrutura Case }

Uses Crt;

Var X : Integer;

Begin

Readln (X);

Case X Of

1 : Writeln ('Ola Mundo'); { E o valor de X for igual a 1,

Page 22: Apostila Linguagem Pascal

Estrutura Condicional 20

irá executar essa linha }

2 : Writeln ('GNOIA'); { X = 2, essa linha será executada

}

3 : Writeln ('Software Livre'); { X = 3 - essa linha será

executada }

End;

End.

Exemplo:

Uses Crt;

Var Y, X : Integer;

Begin

Readln (X, Y);

Case X Of

1 : Begin

Y := 4;

Writeln ('Entrou no Primeiro alvo');

End;

2 : Begin

Y := 3;

Writeln ('Entrou no Segundo alvo');

End;

3 : Writeln ('Entrou no Terceiro alvo');

Else Writeln ('Entrou no Else');

End;

End.

Exercícios01- Faça um programa para ler três números e escrever se estes podem ou não formar um triângulo. Observação –Para formar os lados de um triângulo cada um dos valores tem que ser menor que a soma dos outros dois.Resolução:

Program triangulo ;

var

l1,l2,l3:integer;

Begin

clrscr;

writeln('Digite os lados do triângulo');

readln(l1,l2,l3);

if (l1<l2+l3) and (l2<l1+l3) and (l3<l1+l2) then

writeln('Os números formam os lados de um triângulo')

else writeln('Os números não formam os lados de um triângulo');

readkey;

Page 23: Apostila Linguagem Pascal

Estrutura Condicional 21

End.

02- Faça um programa para ler três números e se estes poderem formar um triângulo dizer se o triângulo é“EQUILÁTERO”, “ISÓCELES” OU “ESCALENO”.Resolução:

Program triangulo ;

var

A,B,C:integer;

Begin

| clrscr;

| writeln('Digite os lados do triângulo');

| readln(A,B,C);

| if (A<B+C) and (B<A+C) and (C<A+B) then

| | begin

| | | write('Os números formam os lados de um triângulo ');

| | | if (A=B) and (B=C)and (C=A) then

| | | | write('equilátero ')

| | | else

| | | | if (A=B) and (A<>C)or (B=C)and (C<>A)or(A=C)and (A<>B)then

| | | | | write('isósceles')

| | | | else

| | | | | write('escaleno');

| | end

| else write('Os números não formam os lados de um triângulo');

| readkey;

End.

03- Faça um programa que leia as três notas, as faltas e o nome de um aluno e imprima sua situação. (“APROVADO”, “REPROVADO POR FALTA” ou “REPROVADO POR MÉDIA” ) Observação – A média paraaprovação é 5.0 e o limite de faltas é 17.Resolução:

Program aluno;

var

nome:string;

n1,n2,n3,media:real;

f:integer;

Begin

clrscr;

writeln('Digite os dados do aluno');

write('Nome: ');

readln(nome);

write('3 notas: ');

readln(n1,n2,n3);

if (n1<0) or (n1>10) or (n2<0) or (n2>10) or (n3<0) or (n3>10) then

begin

write('Notas inválidas, digite notas de 0 a 10!');

readln(n1,n2,n3);

Page 24: Apostila Linguagem Pascal

Estrutura Condicional 22

end;

media:=(n1+n2+n3)/3;

write('Quantidade de faltas :');

readln(f);

if f<0 then

begin

write('Faltas inválidas! digite um número maior ou igual a

0!');

readln(f);

end;

write('O aluno ',nome,' está ');

if (media>=5) and (f<18) then write('aprovado com média: ',media:2:2);

if media<5 then write('reprovado por média: ',media:2:2);

if f>17 then write('reprovado por falta: ',f:2);

readkey;

End.

Estrutura de RepetiçãoToda vez que precisamos repetir determinado número de vezes uma determinada seqüência de comandos, usamosum laço de repetição, que corresponderia repetir o mesmo trecho um número X de vezes sem ter de escrever omesmo trecho X vezesExemplo: Calcular a média de 50 alunos (sem repetição)

program media_notas;

var

NOME: string;

N1, N2, N3, MEDIA: real;

begin

{1º ALUNO}

read(NOME,N1,N2,N3);

if (N1>=0) and (N2>=0) and (N3>=0) and (N1<=10) and (N2<=10) and (N3<=10) then

begin

MEDIA :=(N1+N2+N3)/3;

writeln( 'O aluno de nome ',NOME,' tem a média

',MEDIA,' em suas notas ');

end

else

begin

writeln('Não são aceites notas negativas ');

end;

{2º ALUNO}

read(NOME,N1,N2,N3);

if (N1>=0) and (N2>=0) and (N3>=0) and (N1<=10) and (N2<=10) and (N3<=10) then

begin

MEDIA :=(N1+N2+N3)/3;

Page 25: Apostila Linguagem Pascal

Estrutura de Repetição 23

writeln( 'O aluno de nome ',NOME,' tem a média

',MEDIA', em suas notas ');

end

else

begin

writeln('Não são aceitas notas negativas ');

end;

{3º ALUNO}

{50º ALUNO}

read(NOME,N1,N2,N3);

if (N1>=0) and (N2>=0) and (N3>=0) and (N1<=10) and (N2<=10) and (N3<=10) then

begin

MEDIA :=(N1+N2+N3)/3;

writeln( 'O aluno de nome ',NOME,' tem a média

',MEDIA,' em suas notas ');

end

else

begin

writeln('Não são aceitas notas negativas ');

end;

end.

ContadorUtilizamos uma variável que será incrementada a cada repetição, isto é, a cada repetição contamos +1 na variável,até um valor de acordo com o número de vezes que queremos repetirNo exemplo acima, como queremos 50 alunos, contaríamos 50 repetiçõesSintaxe:

CONT:integer; ( Variável inteira que irá contar o número de repetições

)

CONT:=1; ( Iniciação do contador, ele deve começar com algum valor )

CONT:= CONT+1; ( Incrementar o contador em +1, repare que em cada

repetição ele irá aumentar +1)

Testes lógicosUsamos testes lógicos para saber quando parar a repetição, ou seja, estabelecemos uma condição para a repetiçãocontinuar, caso contrário o programa ficaria preso na repetição eternamente Por exemplo, usando o contador, a cadarepetição testamos o número do contador até que ele alcance quantidade desejada, caso o contador atinja aquantidade de vezes que queremos repetir, o loop (repetição) páraExemplo: programa para fazer a tabuada de multiplicação do número 7:

program tabuada;

uses CRT;

var

contad:integer;

Page 26: Apostila Linguagem Pascal

Estrutura de Repetição 24

begin

clrscr;

contad:=0; {iniciamos o contador declarando seu primeiro valor}

while contad<10 do {Enquanto cont<10, condição é testada a cada repetição}

begin

writeln('7 x ',contad,' = ',7*contad);

contad:=contad+1; {incrementamos o contador a cada repetição}

end;

readkey;

end.

Comandos de repetiçãoEm Pascal os principais comandos de repetição são

While(faça enquanto)

Repeat(repita)

for (para repetir de um número até algum número}

While (enquanto)Usando o while pedimos ao Pascal para repetir "enquanto" a expressão for verdadeiraSintaxe

while <condição> do

begin

<comandos>;

<comandos>;

end;

Veja o exemplo acima usando while:

program media_notas;

uses crt;

var

NOME: string;

N1, N2, N3, MEDIA: real;

CONT: integer;

begin

clrscr;

CONT:=0;

while CONT<=50 do

begin

CONT:=CONT+1;

write ('Digite o nome: ');

read (NOME);

write ('nota 1: ');

read (N1);

write ('nota 2: ');

read (N2);

Page 27: Apostila Linguagem Pascal

Estrutura de Repetição 25

write ('Nota 3: ');

read (N3);

MEDIA:=(N1+N2+N3)/3;

if (MEDIA >= 6) then

begin

writeln('O aluno de nome ',NOME,' tem a média

',MEDIA,' em suas notas ');

end

else

writeln('REPROVADO');

end;

end.

Repeat until (repita até)O comando repeat executa repetidamente uma sequência de comandos "até" (until) que uma dada condição sejaverdadeiraSintaxe:

repeat

<comando1>;

<comando2>;

<comando3>;

until <condição>;

Observação: este comando não precisa de begin (início) e end (fim) para demarcar o corpo da repetiçãoExemplo: Faça um programa para pedir um número, em seguida escrever uma tabuada de multiplicação destenúmero, caso for digitado o número 0, parar o programa

program tabuada;

uses CRT;

var

num:real;

cont:integer;

begin

repeat

clrscr;

write('Digite um número para ver sua tabuada de multiplicação ');

read(num);

cont:=0;

while cont<10 do {temos aqui uma repetição dentro de outra}

begin

writeln(num:4:2,' x ',cont,' = ',(num*cont):6:2);

cont:=cont+1; {a cada repetição o cont aumenta +1}

end;

readkey; {parada para ver o resultado até ser teclado algo}

until num=0; {condição para parar a repetição principal}

clrscr;

write('Foi digitado o número 0! programa encerrado!');

Page 28: Apostila Linguagem Pascal

Estrutura de Repetição 26

readkey;

end.

for to (para de até)O comando for, diferentemente dos comandos de repetição repeat e while, permite que uma sequência de comandosseja executada um número definido de vezes A variável usada para contador já recebe um valor inicial e éincrementada pelo comandoSintaxe:

for contador:=ValorInicial to ValorFinal do

begin

comandos

end;

Exemplo: Programa para calcular a média de 3 notas de 10 alunos:

program media_notas;

var

NOME:string;

N1,N2,N3,MEDIA:real;

CONT:integer;

begin

FOR CONT:=1 to 10 do {para cont de 1 a 10 faça}

begin

write('Digite o nome e as 3 notas do ',cont,'o aluno ');

read(NOME,N1,N2,N3);

if (N1>=0) and (N2>=0) and (N3>=0) and (N1<=10 00) and (N2<=10 00) and (N3<=10 00) then

begin

MEDIA:=(N1+N2+N3)/3;

writeln('O aluno de nome ',NOME,' tem a média ',MEDIA,' em suas

notas ');

end

else

begin

writeln('Notas invalidas!');

end;

end;

end.

Page 29: Apostila Linguagem Pascal

Estrutura de Repetição 27

CríticaUsamos uma crítica para conferir se foi digitado um valor correto, usando para isso um teste lógico, dentro de umarepetição (laço), de onde só sairá quando for digitado um valor desejado, ou seja, obrigando que seja digitado umvalor válidoExemplo: Programa para calcular a média de 3 notas de 10 alunos, criticando a nota digitada:

program media_notas;

var

NOME:string;

N1,N2,N3,MEDIA:real;

CONT:integer;

begin

clrscr;

FOR CONT:=1 to 10 do

begin

write('Digite o nome e as 3 notas do ',cont,'o aluno ');

readln(NOME,N1,N2,N3);

while (N1<0) or (n1>10) or (N2<0) or (N2>10) or (N3<0) or (N3>10) do

begin {repete enquanto as notas forem menores que 0 ou maiores

que 10!}

writeln('Notas inválidas! Digite notas de 0 a 10!');

readln(N1,N2,N3);

end;

MEDIA:=(N1+N2+N3)/3;

writeln('A média do aluno ',NOME,' é: ',MEDIA:2:2);

end;

readkey;

end.

Exercícios01 Construa um programa que leia um conjunto de dados contendo altura e sexo (MASCULINO ou FEMININO) deN pessoas e calcule e escreva:•• a maior e a menor altura do grupo e de quem é esta altura ( Se HOMEM ou MULHER )•• a média de altura entre as mulheres•• O número de homens e a diferença percentual entre estes e as mulheres•• Critique as variáveis onde for necessárioResolução:

program alturamf;

uses CRT;

var

quant,cont,cont_m,cont_f:integer;

sexo,sme_alt,sma_alt:string;

alt,alt_maior,alt_menor,alt_media,soma_alt,dif:real;

begin

{inicializa as variáveis}

Page 30: Apostila Linguagem Pascal

Estrutura de Repetição 28

cont_m := 0;

cont_f := 0;

alt_menor := 10;

alt_maior := 0;

soma_alt := 0;

writeln('Qual a quantidade de pessoas?');

readln(quant);

while quant<1 do {obriga a quantidade de pessoas ser positiva}

begin

writeln('Quantidade inválida! Digite uma quantidade maior que

1!');

readln(quant);

end;

for cont:=1 to quant do

begin

writeln('Qual o sexo da ',cont,'o pessoa?<m> masculino ou <f>

feminino');

readln(sexo);

while (sexo<>'m') and (sexo<>'f') do

begin

writeln('Sexo inválido! Digite <m> para masculino ou <f> para

feminino!');

readln(sexo);

end;

writeln('Qual a altura da ',cont,'o pessoa?');

readln(alt);

while (alt<0 2) or (alt>2 5) do {obriga uma altura válida}

begin {repete até a altura ser válida}

writeln('Altura inválida! Digite uma altura entre 0 2 e 2

5!');

readln(alt);

end;

if alt<alt_menor then {testa a menor altura}

begin

alt_menor:=alt; {guarda a menor altura}

sme_alt:=sexo; {guarda o sexo da menor altura}

end;

if alt>alt_maior then {testa a maior altura}

begin

alt_maior:=alt; {guarda a maior altura}

sma_alt:=sexo; {guarda o sexo da maior altura}

end;

if sexo='m' then {testa se o sexo e m}

cont_m:=cont_m+1; {conta a quantidade de homens}

else

begin

cont_f := cont_f+1; {conta a quantidade de mulheres}

Page 31: Apostila Linguagem Pascal

Estrutura de Repetição 29

soma_alt := soma_alt+alt; {soma a altura feminina}

end;

end ;

clrscr;

writeln('Resultado:');

write('A maior altura é: ',alt_maior:2:2,'m de um');

if sma_alt='m' then writeln(' homem')

else writeln('a mulher');

writeln('A média de alturas entre as mulheres é

:',soma_alt/cont_f:2:2);

writeln('o número de homens é: ',cont_m:3);

write('A diferença percentual entre homens e mulheres é: ');

dif:=(cont_m/quant)*100-(cont_f/quant)*100;

if dif>0 then write(dif:2:2,'% a mais de homens');

else write(abs(dif):2:2,'% a mais de mulheres');

readkey;

end.

Estrutura de Dados Uses Crt;

Var X, Y, A, B : Integer;

Begin

Readln (X,Y,A,B);

If (X > Y) Then

Begin

If (A > B) Then

Writeln ('A é maior que B')

Else Writeln ('A não é Maior que B');

End;

End.

Page 32: Apostila Linguagem Pascal

Procedures 30

Proceduresuses crt;

{ O Procedimento fará a troca dos valores de duas variaveis }

Procedure Troca (Var Valor_1, Valor_2 : Integer);

Var Aux : Integer;

Begin

Aux := Valor_1;

Valor_1 := Valor_2;

Valor_2 := Aux;

End;

Var X, Y : Integer;

Begin

clrscr;

writeln ( 'entre com o valor de x ' );

readln ( x );

writeln (' entre com o valor de y' );

readln ( y );

Troca (X, Y);

Writeln ('Valor de X = ', X);

Writeln ('Valor de Y = ', Y);

readkey;

End.

Notas:

•• A palavra reservada **Var**, será devidamente melhor apresentada na seção passagem de parâmetros.pronto para compilar no pascal

Page 33: Apostila Linguagem Pascal

Functions 31

FunctionsDefine-se, de forma muito parecida com uma função matemática.As funções recebem valores (parâmetros) e retorna um valor como resultado, ao contrario doprocedure(procedimento), uma function(função) pode ser atribuída a uma variável.Ex.: idade:= get_idade(joao);Sintaxe:

function

NomeDaFunção(Parâmetro1: Tipo; ParâmetroN: Tipo): Tipo de retorno;

var

{declaração de variáveis locais á função quando necessárias}

begin

{bloco de instruções}

end;

Código Exemplo:

Function Pergunta(Titulo, Mensagem: String): Boolean;

Var

I: Integer;

F: Tform;

Begin

if (Titulo = ' ') then

Titulo:= Application.Title;

F:= CreateMessageDialog(Mensagem, MtConfirmation,[MbYes,MbNo]);

Try

For I:=0 to F.ComponentCount -1 do

If F.Components[i] is TButton then

With TButton(F.Components[i]) do

Case ModalResult of

MrYes: Caption := 'Sim';

MrNo: Caption := 'Não';

End;

F.Caption:= Titulo;

If (F.ShowModal = MrYes) Then

Pergunta:= True

Else

Pergunta:= False;

Finally

F.Free;

End;

End;

Page 34: Apostila Linguagem Pascal

Arquivos texto 32

Arquivos texto program alturamf;

uses CRT;

var

quant,cont,cont_m,cont_f:integer;

sexo,sme_alt,sma_alt:string;

alt,alt_maior,alt_menor,alt_media,soma_alt,dif:real;

begin

{inicializa as variáveis}

cont_m := 0;

cont_f := 0;

alt_menor := 10;

alt_maior := 0;

soma_alt := 0;

writeln('Qual a quantidade de pessoas?');

readln(quant);

while quant<1 do {obriga a quantidade de pessoas ser positiva}

begin

writeln('Quantidade inválida! Digite uma quantidade maior que

1!');

readln(quant);

end;

for cont:=1 to quant do

begin

writeln('Qual o sexo da ',cont,'o pessoa?<m> masculino ou <f>

feminino');

readln(sexo);

while (sexo<>'m') and (sexo<>'f') do

begin

writeln('Sexo inválido! Digite <m> para masculino ou <f> para

feminino!');

readln(sexo);

end;

writeln('Qual a altura da ',cont,'o pessoa?');

readln(alt);

while (alt<0 2) or (alt>2 5) do {obriga uma altura válida}

begin {repete até a altura ser válida}

writeln('Altura inválida! Digite uma altura entre 0 2

e 2 5!');

readln(alt);

end;

if alt<alt_menor then {testa a menor altura}

begin

alt_menor:=alt; {guarda a menor altura}

sme_alt:=sexo; {guarda o sexo da menor altura}

end;

Page 35: Apostila Linguagem Pascal

Arquivos texto 33

if alt>alt_maior then {testa a maior altura}

begin

alt_maior:=alt; {guarda a maior altura}

sma_alt:=sexo; {guarda o sexo da maior altura}

end;

if sexo='m' then {testa se o sexo e m}

cont_m:=cont_m+1; {conta a quantidade de homens}

else

begin

cont_f := cont_f+1; {conta a quantidade de mulheres}

soma_alt := soma_alt+alt; {soma a altura feminina}

end;

end ;

clrscr;

writeln('Resultado:');

write('A maior altura é: ',alt_maior:2:2,'m de um');

if sma_alt='m' then writeln(' homem')

else writeln('a mulher');

writeln('A média de alturas entre as mulheres é

:',soma_alt/cont_f:2:2);

writeln('o número de homens é: ',cont_m:3);

write('A diferença percentual entre homens e mulheres é: ');

dif:=(cont_m/quant)*100-(cont_f/quant)*100;

if dif>0 then write(dif:2:2,'% a mais de homens');

else write(abs(dif):2:2,'% a mais de mulheres');

readkey;

end.

Page 36: Apostila Linguagem Pascal

Fontes e Editores da Página 34

Fontes e Editores da PáginaIntrodução  Fonte: http://pt.wikibooks.org/w/index.php?oldid=270702  Contribuidores: Ajraddatz, Albmont, Aniel bispo, Defender, Helder.wiki, Jocile, Jorge Morais, Marcos Antônio Nunes deMoura, SallesNeto BR, 18 edições anónimas

Declarações  Fonte: http://pt.wikibooks.org/w/index.php?oldid=231789  Contribuidores: Helder.wiki, Jocile, Marcos Antônio Nunes de Moura, 3 edições anónimas

Comandos de Entrada e Saída  Fonte: http://pt.wikibooks.org/w/index.php?oldid=213700  Contribuidores: Helder.wiki, Jocile, Marcos Antônio Nunes de Moura, 3 edições anónimas

Expressões Aritméticas  Fonte: http://pt.wikibooks.org/w/index.php?oldid=252240  Contribuidores: Jocile, 3 edições anónimas

Expressões Lógicas  Fonte: http://pt.wikibooks.org/w/index.php?oldid=213705  Contribuidores: Jocile

Prioridades  Fonte: http://pt.wikibooks.org/w/index.php?oldid=213706  Contribuidores: Jocile

Comandos de Atribuição  Fonte: http://pt.wikibooks.org/w/index.php?oldid=225962  Contribuidores: Jocile, 1 edições anónimas

Estrutura Condicional  Fonte: http://pt.wikibooks.org/w/index.php?oldid=270086  Contribuidores: Alciderlopes, Helder.wiki, Igna, Jocile, Jorge Morais, Kalvinklim, Marcos Antônio Nunes deMoura, Simeondahl, 13 edições anónimas

Estrutura de Repetição  Fonte: http://pt.wikibooks.org/w/index.php?oldid=263461  Contribuidores: Abacaxi, Alciderlopes, Cristiano Araujo, Defender, Helder.wiki, Jocile, Jorge Morais,Raylton P. Sousa, Voz da Verdade, 24 edições anónimas

Estrutura de Dados  Fonte: http://pt.wikibooks.org/w/index.php?oldid=207685  Contribuidores: 1 edições anónimas

Procedures  Fonte: http://pt.wikibooks.org/w/index.php?oldid=239998  Contribuidores: Marcos Antônio Nunes de Moura, 5 edições anónimas

Functions  Fonte: http://pt.wikibooks.org/w/index.php?oldid=254407  Contribuidores: Abacaxi, 3 edições anónimas

Arquivos texto  Fonte: http://pt.wikibooks.org/w/index.php?oldid=250824  Contribuidores: Abacaxi, 1 edições anónimas

Page 37: Apostila Linguagem Pascal

Fontes, Licenças e Editores da Imagem 35

LicençaCreative Commons Attribution-Share Alike 3.0//creativecommons.org/licenses/by-sa/3.0/