Buscar

Introdução à Linguagem Pascal

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PDF gerado usando o pacote de ferramentas em código aberto mwlib. Veja http://code.pediapress.com/ para mais informações.
PDF generated at: Fri, 06 Dec 2013 10:35:56 UTC
Pascal
Conteúdo
Páginas
Introdução 1
Declarações 4
Comandos de Entrada e Saída 8
Expressões Aritméticas 10
Expressões Lógicas 11
Prioridades 12
Comandos de Atribuição 12
Estrutura Condicional 14
Estrutura de Repetição 22
Estrutura de Dados 29
Procedures 30
Functions 31
Arquivos texto 32
Referências
Fontes e Editores da Página 34
Licenças das páginas
Licença 35
Introdução 1
Introdução
Introdução
O que vem a ser linguagem de Programação
Antes 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) para
a realização de uma tarefa.
Existem diversas formas de escrever um programa para o computador. Podemos fazê-lo diretamente em código de
máquina (codificado em binário [1]) com o uso de mnemônicos e montadores (linguagens de baixo nível, como, por
exemplo, assembly) ou com o uso de uma linguagem corrente, normalmente o inglês, e o uso de um interpretador
que 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ão
de todo o programa escrito em alto nível em um programa contendo o código objeto que, uma vez compilado, pode
ser executado várias vezes sem depender mais do uso do programa compilador.
Algoritmo
Algoritmo é uma seqüência de procedimentos que são executados seqüencialmente com o objetivo de resolver um
problema 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 desenvolvendo
seqüências lógicas, em seguida são traduzidos para alguma linguagem de programação,
Introdução 2
A linguagem Pascal
Em cursos básicos de programação utilizamos a linguagem Pascal para praticar e executar algoritmos, pois esta
linguagem foi criada com esta finalidade.
História do Pascal
Ano de 1971. O professor Niklaus Wirth projeta uma linguagem como trabalho escolar para estudantes de
programação da Universidade Técnica de Zurique, Suíça. Essa linguagem vem a se chamar Pascal, homenageando o
filó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ía
ambiente para digitação e depuração do código fonte, e fazia a compilação e linkedição do código em um único
processo. Outra característica dos compiladores Turbo Pascal: são extremamente rápidos e geram executáveis
enxutos, e com código nativo.
Turbo Pascal 2 e 3: Foram acrescentadas algumas funcionalidades nessas versões, como o acesso a diretórios através
do 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 de
arquivos; 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 com
que um mesmo código fosse compartilhado entre vários programas fonte, e sem a necessidade da recompilação; esta
versão ainda foi responsável pela implementação de novos tipos de dados e finalmente, a possibilidade de deixar o
programa residente.
Turbo Pascal 5: Ocorreu uma importante evolução no compilador - a depuração. O programa agora pode ser
executado 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 primeira
implementação do Object Pascal.
Comandos
Conjunto de palavras-chave de uma linguagem de programação que tem por finalidade dizer ao computador como
ele deve executar uma tarefa. No exemplo de algoritmo descrito acima (receita de bolo), os comandos eram
palavras-chaves representados por verbos da língua portuguesa, em computadores os comandos são usualmente
palavras originária da língua inglesa. Exemplo: write, read, do, ...
Compiladores
Para 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).
Introdução 3
Bibliotecas
Bibliotecas são um conjunto de funções e procedimentos chamadas por comandos nos programas. Por exemplo a
biblioteca CRT responde ao comando clrscr (limpar a tela). No caso do compilador Turbo Pascal acessamos a
biblioteca 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 Pascal
O 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 de
máquina), para depois ser executado. Nos compiladores de hoje já é possível executar direto pulando todas estas
etapas.
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 detalhes
Exemplo 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.
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ções
Informação é a matéria prima que faz com que seja necessária a existência dos computadores, pois eles são capazes
de manipular e armazenar um grande volume de dados que vão gerar asinformaçõ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.
Identificadores
Sã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
Declarações 5
Palavra reservada
Identifica 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ção
A declaração de variáveis e constantes consiste em reservar um espaço na memória do micro para armazenar um
certo tipo de informações, associando a este espaço um tipo de dados e uma identificação (nome da
variável/constante).
Constantes
Valor que não é modificado durante toda a execução do programa. Ele é armazenado na memória para ser usado em
cá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, media2
Booleano sexo String Nome5, p
Declarações 6
Variáveis
Valor 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 dados
No programa em Pascal temos três tipos de dados principais: Numéricos (inteiros e reais), caracteres (letras e
sí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éricos
Podem 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);
Declarações 7
 readln;
END.
Caracteres
Podem 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 ser
delimitados entre aspas e seu conteúdo é lido e/ou escrito literalmente. Usa-se char para um caractere e string para
uma 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ógicos
Podem armazenar apenas um valor: verdadeiro(True) ou Falso(False). Este tipo de dados é usado em expressões
ló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;
Comandos de Entrada e Saída 8
Comandos de Entrada e Saída
Entrada de Dados
O comando de entrada é utilizado para receber dados digitados pelo usuário. Os dados recebidos são armazenados
em 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 Readln
Read e Readln desempenham a mesma função, a unica diferença é que após a entrada de dados com Read o cursor
fica na mesma linha, e no caso do Readln o curso vai para a linha de baixo.
Saída de Dados
O comando de saída de dados é utilizado para mostrar dados na tela. Esse comando é representado pelas palavras
Write 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;
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 Writeln
A diferença entre esses comandos é que o comando Writeln mostra o seu conteúdo e passa o cursor para a linha de
baixo, enquanto o comando Write mantém o cursor na mesma linha.
Exercícios
1. Desenvolva um programa em Pascal que escreva pedindo para o usuário digitar um nome, em seguida faça que o
programa 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. 
Expressões Aritméticas 10
Expressões Aritméticas
EXPRESSÕES MATEMÁTICAS
Chamamos de operadores matemáticos ou aritméticos o conjunto de símbolos que representa as operações básicas da
matemá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('Digiteas 4 notas');
 readln( N1, N2, N3, N4 );
 writeln('A média do aluno é: ',(N1+N2+N3+N4)/4);
 readkey;
end. 
FUNÇÕES MATEMÁTICAS
Existem 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');
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 retorna
positivo.
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ógicas
Estes operadores são usados para comparar valores e retornam um true (verdadeiro) ou false (falso)
= ( igual a )
# ou <> (diferente)
> ( maior )
< ( menor )
Operadores lógicos
Sã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}
Prioridades 12
Prioridades
Prioridades
Na 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 valores
Podemos atribuir valores a variáveis e constantes que serão manipulados pelo programa.
Atribuindo valores em constantes
Uma 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
Comandos de Atribuição 13
Atribuindo valores em variáveis
Variá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 com
a 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.
Estrutura Condicional 14
Estrutura Condicional
Estrutura Condicional
Essa estrutura é conhecida também como estrutura de decisão ou de seleção, ela se caracteriza por execução de
determinados códigos de programação dependendo da veracidade de uma condição. Neste tópico será apresentado as
estruturas de condição simples, composta, aninhada (uma dentro da outra) e a estrutura Case.
Estrutura Condicional - Simples
Sintaxe:
 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 possui
dois 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 exemplos
acima é que, quando o número de instruções a serem executadas forem maior que um, então é necessário colocar as
instruções dentro de blocos (Begin = INICIO e End = FIM).
•• SE = IF
•• ENTÃO = THEN
•• INÍCIO = BEGIN
•• FIM = END
Exemplo 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;
 
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 forem
verdadeiras. 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');
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 uma
das 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 de
0 (zero).
Estrutura Condicional - Composta
Sintaxe:
 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 = END
Exemplo 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); 
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 Aninhada
O if aninhado é simplesmente um if dentro da declaração de um outro if externo. É necessário saber exatamente a
qual 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:
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 ELSE
perfence a qual IF. Os programas acima para compilá-los é necessários tirar todos os caracteres "|" (pipe), que foi
utilizado para mostrar a inter-relação entre BEGIN's - END's e IF's - ELSE's.
Else Pendente
Else 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
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 Case
O 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 ele
uma 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, 
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ícios
01- 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; 
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 para
aprovaçã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('Notasinválidas, digite notas de 0 a 10!');
 readln(n1,n2,n3);
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ção
Toda vez que precisamos repetir determinado número de vezes uma determinada seqüência de comandos, usamos
um laço de repetição, que corresponderia repetir o mesmo trecho um número X de vezes sem ter de escrever o
mesmo trecho X vezes
Exemplo: 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;
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.
Contador
Utilizamos 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 repetir
No exemplo acima, como queremos 50 alunos, contaríamos 50 repetições
Sintaxe:
 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ógicos
Usamos testes lógicos para saber quando parar a repetição, ou seja, estabelecemos uma condição para a repetição
continuar, caso contrário o programa ficaria preso na repetição eternamente Por exemplo, usando o contador, a cada
repetição testamos o número do contador até que ele alcance quantidade desejada, caso o contador atinja a
quantidade de vezes que queremos repetir, o loop (repetição) pára
Exemplo: programa para fazer a tabuada de multiplicação do número 7:
 program tabuada;
 uses CRT;
 var
 contad:integer;
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ção
Em 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 verdadeira
Sintaxe
 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);
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 seja
verdadeira
Sintaxe:
 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ção
Exemplo: Faça um programa para pedir um número, em seguida escrever uma tabuada de multiplicação deste
nú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!');
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 comandos
seja executada um número definido de vezes A variável usada para contador já recebe um valor inicial e é
incrementada pelo comando
Sintaxe:
 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.
Estrutura de Repetição 27
Crítica
Usamos uma crítica para conferir se foi digitado um valor correto, usando para isso um teste lógico, dentro de uma
repetição (laço), de onde só sairá quando for digitado um valor desejado, ou seja, obrigando que seja digitado um
valor válido
Exemplo: 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ícios
01 Construa um programa que leia um conjunto de dados contendo altura e sexo (MASCULINO ou FEMININO) de
N 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ário
Resoluçã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}
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}
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.
Procedures 30
Procedures
uses 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
Functions 31
Functions
Define-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 do
procedure(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;
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;
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.
Fontes e Editores da Página 34
Fontes e Editores da Página
Introdução  Fonte: http://pt.wikibooks.org/w/index.php?oldid=233456  Contribuidores: Ajraddatz, Albmont, Aniel bispo, Helder.wiki, Jocile, Jorge Morais, Marcos Antônio Nunes de Moura,
SallesNeto BR, 16 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=257847  Contribuidores: Alciderlopes, Helder.wiki, Igna, Jocile, Jorge Morais, Kalvinklim, Marcos Antônio Nunes de
Moura, Simeondahl, 11 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
Fontes, Licenças e Editores da Imagem 35
Licença
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/

Continue navegando