Escolar Documentos
Profissional Documentos
Cultura Documentos
Notas de Aulas - LTP - Parte I PDF
Notas de Aulas - LTP - Parte I PDF
Programao I
Autor:
Josiane Alves de Sousa
Tcnicas de Programao I
fevereiro/2003
1. Linguagens de Programao:
1.1. Conceito
1.2. Objetivo
2. Introduo a Programao
2.1. Conhecimentos bsicos necessrios
2.2. Prticas de um bom programador
2.3. Programao Estruturada
2.4. Processo de desenvolvimento de programas
3. Introduo a Linguagem Pascal
3.1. Histrico
3.2. Estrutura de um programa Pascal
3.3. Smbolos especiais
3.4. Comentrios em um programa
4. Tipos de Dados Bsicos
4.1. Inteiros
4.2. Reais
4.3. Caracteres
4.4. Lgicos
4.5. Enumerado (ENUMERATED)
4.6. Subintervalo
4.7. Literais (Tipo estruturado bsico)
5. Variveis
5.1. Declarao de Variveis
5.2. Inicializao de Variveis.
6. Constantes:
6.1. Sem tipo definido (Constantes verdadeiras)
6.2. Com tipo definido (Parecidas com variveis)
6.3. Constantes predefinidas
7. Expresses e Operadores
7.1. Tipos de Operadores
7.2. Operadores Atribuio (:=)
7.3. Operadores Aritmticos
7.3.1. Binrios e Unrios
7.3.2. Aritmtica de Inteiros e Aritmtica de Reais
7.4. Manipulao de Bits
7.5. Concatenao (+)
7.6. Operadores Relacionais
7.7. Operadores Lgicos
7.8. Operadores de Ponteiros
7.9. Operadores de Conjuntos
7.10. Operadores de Tipe-Cast
7.11. Tipos de expresses
7.12. Hierarquia dos Operadores Aritmticos, Relacionais e Lgicos
8. Comandos
8.1. Estruturas de Controles (Deciso e Repetio)
8.2. Comandos bsicos e funes pr-definidas.
9. Estruturas de Deciso
9.1. If-Then/If-Then-Else/extenso Else-if /If-Then aninhadas
9.2. Case (Desvio Condicional)
10. Estruturas de Repetio
10.1. While-Do
10.2. Repeat-Until
10.3. For-Do
10.4. Desvio Incondicional(Goto, Continue, Break, Halt)
Por Josiane Alves de Sousa (3/2001-2003)
03
03
03
02
03
04
04
05
06
06
06
08
09
09
10
11
11
11
11
12
12
12
12
13
13
13
13
14
14
14
14
15
15
15
16
16
16
17
18
18
18
19
19
19
19
20
22
22
23
25
25
25
26
27
3
1. Linguagens de Programao:
1.1. Conceito
Organizao das formas de se manipular o comportamento fsico do computador,
atravs da utilizao de termos e sintaxes humanamente representveis e conversveis para um
sistema eletrnico com representao eltrica.
1.2. Objetivo.
Tem como objetivo a formalizao de algoritmos para ter como resultado final um
programa fonte, que aps se envolver em um processo de interpretao ou compilao se
transforma em um programa em que os computadores entendam, ou seja, programa puro de
linguagem de mquina.
2. Introduo a Programao:
2.1. Conhecimentos bsicos necessrios
a) ALGORITMO X PROGRAMA
Algoritmo: uma seqncia lgica de aes executadas para se resolver uma determinada
tarefa.
Programa: a formalizao de um algoritmo em uma determinada linguagem de
programao, segundo suas regras de sintaxe e semntica, de forma a permitir que o
computador possa entender a seqncia de aes.
b) LINGUAGEM DE PROGRAMAO
No comeo para se controlar um computador era preciso muita tcnica na configurao de
circuitos, pois o computador s compreende as instrues em binrio, e assim para se
converter de forma eficaz a representao do pensamento humano era necessrio muito esforo
e pacincia. S que, na busca da evoluo do processo, concebeu-se formas facilitadoras de se
comunicar com as mquinas.
Temos que uma linguagem de programao um conjunto de smbolos (comandos,
identificadores, caracteres ASCII, etc.) e regras de sintaxe que permitem a construo de
sentenas que descrevem de forma precisa aes compreensveis e executveis para o
computador.
LINGUAGEM DE PROGRAMAO = SMBOLOS + REGRAS DE SINTAXE
Uma linguagem de programao uma notao formal para descrio de algoritmos que
sero executados por um computador. Como todas as notaes formais, uma linguagem de
programao tem dois componentes: Sintaxe e Semntica. A sintaxe consiste em um conjunto
de regras formais, que especificam a composio de programas a partir de letras, dgitos, e
outros smbolos. Por exemplo, regras de sintaxe podem especificar que cada parntese aberto
em uma expresso aritmtica deve corresponder a um parntese fechado, e que dois comandos
quaisquer devem ser separados por um ponto-e-vrgula. As regras de semntica especificam o
significado de qualquer programa, sintaticamente vlido, escrito na linguagem.
Existem diversas linguagens de programao, cada uma com suas caractersticas especficas
e com nveis de complexidade e objetivos diferentes:
Linguagem de Mquina
EDIO
COMPILAO
LINK-EDIO
ALGORITMO CDIGO-FONTE CDIGO-OBJETO PROGRAMA EXECUTVEL
{ Cabealho }
]
]
]
]
]
]
{ Seo de Declaraes }
{ Corpo do Programa }
a) Cabealho do Programa
O cabealho consiste da palavra reservada Program seguida de um identificador que
corresponde ao nome do programa, terminando com um ponto e vrgula.
Exemplos: Program Circulo;
Program Relatrio;
b) Seo de Declaraes
A sintaxe do pascal requer que todos os identificadores usados no programa sejam
predefinidos ou que sejam declarados antes que voc possa us-los.
A declarao de identificadores feita na seo de declarao onde so associados
nomes aos objetos que sero usados no programa, tais como tipos de dados, variveis e subprogramas.
c) Corpo do Programa
Onde so especificados s aes do programa atravs dos comandos da linguagem.
a onde fica lgica do programa.
d) O Turbo Pascal
O Turbo Pascal mais que um simples compilador da linguagem Pascal, ele um
Ambiente Integrado de Desenvolvimento (IDE - Integrated Development Environment),
consistindo de um conjunto de ferramentas de desenvolvimento integradas. Entre as
ferramentas que compem o Turbo Pascal temos:
Editor de Cdigo-Fonte
Compilador
Link-Editor
Depurador
Ajuda On-Line da Linguagem e do prprio IDE
f) Programa exemplo:
program Exemplo;
begin
writeln(Programa Teste);
repeat until keypressed;
end.
O smbolo % no permitido
No pode comear com um nmero
No pode ter espaos entre as letras
downto
else
end
file
for
forward
function
goto
if
implementation
In
inline
interface
label
mod
Nil
Not
object
of
or
packed
procedure
program
record
repeat
set
shl
shr
string
then
to
type
unit
until
until
uses
var
while
with
xor
10
Integer
Real
Boolean
Char
Enumerado
Subintervalo
Nmeros inteiros
Nmeros reais
Valores lgicos TRUE ou FALSE
Caracteres da Tabela ASCII
Relao de Valores em ordem
Faixa de valores ordenados
TIPO ESTRUTURADO:
Representa uma coleo de itens de dados Ex.:
String
Array
Record
Set
File
Text
Cadeia de caracteres
Conjunto de elementos de mesmo tipo
Conjunto de elementos de tipos diferentes
Conjunto de elementos
Arquivos de registro
Arquivos texto
TIPO APONTADOR:
Representa uma pea de dados que referencia ou aponta para outra pea de dados
Pointer
O programador tambm pode criar seus prprios tipos, como ser visto
posteriormente. No entanto o Pascal j oferece um conjunto de tipos predefinidos.
4.1. Inteiros
O tipo INTEGER representa os nmeros inteiros. O Turbo Pascal permite cinco tipos
predefinidos de nmeros inteiros, cada um abrange um subconjunto dos nmeros inteiros.
Todos os tipos inteiros so ordinais (ordenados).
TIPO
Shortint
Integer
Longint
Byte
Word
FAIXA DE VALORES
No. De BYTES
-128..127
Com sinal 8-bits
-32768..32767
Com sinal 16-bits
-2147483648..2147483647
Com sinal 32-bits
0..255
Sem sinal 8-bits
0..65535
Sem sinal 16-bits
Ex.:
var
NumAlunos : integer;
Cont
: integer;
11
4.2. Reais
O tipo REAL representa os reais. O Turbo Pascal permite cinco tipos predefinidos de
nmeros reais, cada um com um faixa de valores e precises especficas. Todos os tipos reais
no so ordinais.
TIPO
Real
single
double
extended
comp
FAIXA
DE
VALORES
2.9e-39..1.7e38
1.5e-45..3.4e38
5.0e-324..1.7e308
3.4e-4932..1.1e4932
-9.2e18..9.2e18
DGITOS
SIGNIFICATIVOS
11-12
7-8
15-16
19-20
19-20
No. De
BYTES
6
4
8
10
8
var
Nota
: real;
Salario : real;
4.3. Caracteres
O tipo CHAR representa um nico caracter pertencente tabela ASCII.
var
Sexo: char;
4.4. Lgicos
O tipo BOOLEAN representa os valores lgicos TRUE e FALSE. O tipo BOOLEAN
ordinal, onde: FALSE < TRUE.
var
Aprovado : boolean;
Confirma : boolean;
12
Ex.:
program Totaliza_Horas_De_Trabalho;
var
Dias :(Domingo,Segunda,Terca,Quarta,Quinta,Sexta,Sabado);
Meses:(Jan,Fev,Mar,Abr,Mai,Jun,Jul,Ago,Set,Out,Nov,Dez);
TotalHoras, HorasDeTrabalho : integer;
begin
TotalHoras := 0;
for Dias:=Segunda to Sabado do
begin
readln( HorasDeTrabalho );
TotalHoras := TotalHoras + HorasDeTrabalho;
end;
. . .
end.
4.6. Subintervalo
O Pascal admite tambm um tipo denominado subintervalo (subrange) que representa
um subconjunto de valores de tipos escalares ordenados.
Uma varivel do tipo subintervalo declarada da seguinte forma :
var
NumDiadoMes
LetrasMaiusculas
DiaDoAno
: 1..31;
: A..Z;
: 1..365;
5. Variveis
5.1. Declarao de Variveis
Uma varivel um valor que pode ser alterado dentro de um programa. Todas as variveis
usadas num programa devem ser declaradas usando a clusula VAR, dentro da seo de
declaraes. Nesse comando, alm de indicar o nome que deseja para as variveis, indica-se
tambm qual o tipo que as mesmas esto associadas.
Sintaxe:
var
identif [ , identif ]... : tipo-do-dado;
[ identif [ , identif ]. : tipo-do-dado; ] ...
O tipo do dado um dos tipos predefinidos ou um tipo definido pelo usurio:
var
Soma, Total, Salario : real;
Por Josiane Alves de Sousa (3/2001-2003)
13
Idade, Contador
: integer;
INTEIRAS
REAIS
LITERAIS
ARRAY
RECORD
Ex:
const
NumDias
NumAulas
PI
Esporte
FatorCalculo
AulasDia
=
=
=
=
=
=
7;
14;
3.141519265;
Futebol de Campo;
( PI * 13.5 ) + 9;
NumAulas / NumDias;
{
{
{
{
{
{
tipo
tipo
tipo
tipo
tipo
tipo
integer
integer
real
literal
real
real
}
}
}
}
}
}
{tipo integer}
{tipo integer}
{tipo real}
{tipo literal}
14
{tipo real}
{tipo real}
Correto
Const
S: string[4]=Text;
Begin
S:=AAAA;
End.
Incorreto
Const
S=Text;
Begin
S:=AAAA;
End.
6.3. Constantes prdefinidas
O Pascal Padro possui trs identificadores que representam constantes, so eles:
Ex:
MAXINT - Representa o maior inteiro possvel.
TRUE e FALSE - Representam os valores de uma varivel do tipo boolean.
7. Expresses e Operadores
Uma expresso um conjunto de operandos unidos por operadores, de forma a
computar um valor ou resultado.
Os operandos podem ser variveis, constantes ou valores gerados por funes.
Os operadores identificam as operaes a serem efetuadas sobre os operandos. Cada tipo de
dados possui um conjunto de operadores relacionados. Os operadores classificam-se em
Unrios e Binrios, conforme tenham um ou dois operandos, respectivamente.
Ex: var1+var2, ento as variveis var1 e var2 so operandos e o sinal de + um
operador.
7.1. Tipos de Operadores
Atribuio (atribuir o valor de uma expresso a uma varivel)
Aritmticos (efetuar operaes aritmticas com nmero inteiros e reais)
Manipulao de Bits (efetuar a manipulao dos bits de uma varivel)
Concatenao (Efetua a juno de duas variveis ou constantes do tipo string)
Relacionais (efetuar a comparao entre dados de mesmo tipo)
Lgicos (analisar duas ou mais expresses interrelacionadas)
Operadores de Ponteiros (manipulao de variveis dinmicas e apontadores)
Operadores de Conjuntos (manipulao de variveis do tipo conjunto)
Operador Type-Cast (Usados para alterar o tipo de uma expresso)
15
Subtrao
Adio
Multiplicao
Diviso Real
Diviso Inteira (truncada )
Resto da Diviso Inteira
Inverte Sinal
Mantm Sinal
+
*
/
div
mod
+
Exemplo:
var
A, B : integer;
C, D : real;
begin
A := 1;
B := 3;
C := 5;
D := 10;
A := 1 + B;
A := B + D; {errado,D real} A:=B+trunc(D) ou A:=B+round(D)
B := 10 div 3;
A := 10 mod 3;
C := D / C;
D := 10 div C; { errado, o operado div s para inteiros }
A := -1;
B := 5 + A;
B := -A;
C := D * A;
B := C * B; {errado, C real} B:=trunc(C) * B
end.
16
E binrio
Deslocamento de bits ( Shift Left )
Deslocamento de bits ( Shift Right )
OU binrio
XOR binrio
NOT binrio
and
shl
shr
or
xor
not
Maior que
Menor que
Maior ou igual
Menor ou igual
Igual
Diferente
>
<
>=
<=
=
<>
Exemplo:
Por Josiane Alves de Sousa (3/2001-2003)
17
var
Nota1, Nota2 : real;
NomeAluno1, NomeAluno2 : string[ 30 ];
A, B, C : integer;
BEGIN
A := 2;
B := 3;
C := 1;
if B = A + C then
writeln( B );
Nota1 := 5.0;
Nota2 := 10.0;
if Nota1 < Nota2 then
writeln( Nota1 );
NomeAluno1 := Maria Jose;
NomeAluno2 := MariaJose;
if NomeAluno1 < NomeAluno2 then
writeln( NomeAluno1 );
END.
E
OU
NO
And
Or
Not
Exemplo:
var
Nota1, Nota2 : real;
NomeAluno1, NomeAluno2 : string[ 30 ];
A, B, C : integer;
BEGIN
A := 2;
B := 3;
C := 1;
NomeAluno1 := Maria Jose;
NomeAluno2 := MariaJose;
if ( B = A + C ) and ( NomeAluno1 <> NomeAluno2 ) then
writeln( NomeAluno1, B );
if ( A = C ) or ( NomeAluno1 = NomeAluno2 ) then
writeln( NomeAluno1 );
if not( A = C ) then
writeln( NomeAluno1 );
END.
TABELAS VERDADE
OPERADOR AND
OPERANDO 1
TRUE
TRUE
FALSE
FALSE
OPERANDO 1
TRUE
FALSE
TRUE
FALSE
RESULTADO
TRUE
FALSE
FALSE
FALSE
18
OPERADOR OR
OPERANDO 1
TRUE
TRUE
FALSE
FALSE
OPERANDO 1
TRUE
FALSE
TRUE
FALSE
RESULTADO
TRUE
TRUE
TRUE
FALSE
OPERADOR NOT
OPERANDO
TRUE
FALSE
RESULTADO
FALSE
TRUE
Endereo
Referncia
@
^
Unio
Complemento
Interseco
Igualdade
Desigualdade
Subconjunto
Pertinncia
Acesso a campos
+
*
=
<>
<= , >=
in
Exemplo:
type
TDias = ( Dom, Seg, Ter, Qua, Qui, Sex, Sab );
var
Dia
: TDias;
NumDia : 0..6;
TudoOk : boolean;
Opcao : char;
NumOp : byte;
BEGIN
readln( NumDia );
Dia := TDias( NumDia );
TudoOk := boolean( 1 );
NumOp := byte( opcao );
END.
19
Operadores
( )
@, not, sinal de adio e
subtrao unrios
*, /, div, mod
And, shl, shr, +, -, or, xor
=, <>, <, >, <=, >=, in
Categoria
Parntesis
Operadores Unrios
Operadores Multiplicativos
Operadores Aditivos
Operadores Relacionais
8. Comandos:
8.1. Estruturas de Controles (Deciso e Repetio)
Deciso: So aqueles que permite efetuarmos um desvio bidirecional ou
multidirecional na lgica do programa, segundo uma determinada condio booleana.
Repetio: So aqueles que fazem com que um ou vrios comandos sejam executados
repetidas vezes.
Por Josiane Alves de Sousa (3/2001-2003)
20
Nome
da Objetivo
Funo
Abs( x )
Calcula o valor absoluto de x.
arctan( x )
Calcula o arco-tangente de x
em radianos
Cs( x )
Calcula o coseno de x em
radianos
Exp( x )
Calcula
ex ,
em
que
do Tipo do Retorno
o mesmo que x
real
inteiro ou real
real
inteiro ou real
real
real
e=2.7182818
natural
de
neperianos.
ln( x )
Tipo
Parmetro
inteiro ou real
inteiro ou real
sistema
logaritmos
21
Exp(ln(x)*y)
Sin( x )
Sqr( x )
sqrt( x )
odd( x )
randomize
Random( x )
Pi
Retorna x elevado a y
{utilizando
regras
de
logaritmos}.
Calcula o seno de x em
radianos
Calcula o quadrado de x
Calcula a raiz quadrada de x
(x>=0)
Determina se x par ou impar
TRUE, X par / FALSE, X
impar
Inicia o gerador de nmeros
aleatrios coma hora do
Sistema Operacional
Retorna um nmero pseudoaleatrio entre 0 e x. Se x no
for especificado retorna um
valor entre 0.0 e 1.0
Retorna o valor de PI
(3.1415...)
Inteiro ou real
real
inteiro ou real
real
inteiro ou real
inteiro ou real
o mesmo que x
real
inteiro
boolean
nenhum
nenhum
inteiro
real
Nenhum
real
Funes Literais
Nome Funo
Objetivo
Length( x )
Determina o nmero
caracteres de x
Concatena duas ou mais
strings (mx 255 caracteres)
Retorna uma subcadeia da
cadeia x, com z caracteres,
comeando no caracter y.
Retorna a posio da cadeia x
dentro da cadeia y, se no for
encontrada retorna 0.
Remove z caracteres da
cadeia x a partir da posio y
Insere a cadeia de caracteres x
na cadeia y a partir da posio
z (max 255 )
Retorna x convertido para
maiscula
pos( x, y )
Delete( x, y, z )
Insert( x, y, z )
UpCase( x )
Tipo
do Tipo
do
Parmetro
Retorno
de string
inteiro
string
string
inteiro
char
Nome Funo
trunc( x )
Tipo do
Parmetro
Trunca x para um nmero real
inteiro
Objetivo
Tipo do
Retorno
inteiro
22
int( x )
frac( x )
round( x )
chr( x )
ord( x )
tipo( x )
real
real
real
real
real
inteiro
inteiro
char
char
inteiro
qualquer
tipo
Nome
Funo
pred( x )
succ( x )
Sizeof( x )
inc (x,[y])
GotoXY(x,y)
Objetivo
Determina o predecessor de x
Determina o sucessor de x
Retorna o nmero de byte de x
Incrementa x de y unidade
Move o curso para a coluna x e linha y
Tipo do
Parmetro
tipo ordenado
tipo ordenado
qualquer tipo
tipo ordenado
inteiro
Tipo do
Retorno
o mesmo de x
o mesmo de x
inteiro
Comando Composto
Consiste de um ou vrios comandos que devam ser executados sequencialmente, sendo
usado em situaes onde a sintaxe de alguns comandos do Pascal permite apenas um nico
comando.
Os comandos que fazem parte do comando composto so separados por ponto-e-vrgula,
devendo comear e terminar pelas palavras reservadas begin e end;, respectivamente, de
acordo com a sintaxe :
begin
B then
:= A;
:= B;
:= Temp;
9. Estruturas de Deciso:
9.1. If-Then/If-Then-Else/extenso Else-if /If-Then aninhadas;
O comando IF-THEN-ELSE permite efetuarmos um desvio bidirecional na lgica do
programa, segundo uma determinada condio booleana.
Sintaxe:
23
if exp-booleana
then
comandos
[else
comandos];
Exemplo:
if A <= B then
A := ( A + 1 ) / 2
if odd( I ) then
J := J + 1
else
J := J div 2 + 1;
if Nome1 = Jose then
begin
J := J div 2 + 1;
writeln( J * 2 );
end;
if Media >= 5 then
begin
writeln( Aluno Aprovovado );
writeln( Parabns !!! );
end
else
writeln( Aluno Reprovado );
if Sexo = MASCULINO then
if Idade > 18 then
begin
writeln(Jovem, aliste-se ba Aeronautica!);
writeln( Sirva sua ptria, venha fazer uma carreira );
end
else
writeln( Voc ainda muito jovem para o servio militar );
if Sexo = MASCULINO then
begin
if Idade > 18 then
begin
writeln( Jovem, aliste-se no Exrcito! );
writeln( Sirva sua ptria, venha fazer uma carreira);
end
else
writeln( Voc ainda muito jovem para o servio militar );
writeln( Qual o seu Nome ? );
end;
Sintaxe :
case expresso of
rotulo-case : comando;
Por Josiane Alves de Sousa (3/2001-2003)
24
[rotulo-case : comando;]
[else]
comando [; comando ].
end;
Exemplo:
program Figuras;
type
TFigura = ( Triangulo, Retangulo, Quadrado, Circulo );
var
Figura : TFigura;
Tipo
: integer;
begin
writeln( Qual o tipo da figura ? );
writeln( 0-Triangulo );
writeln( 1-Retangulo );
writeln( 2-Quadrado );
writeln( 3-Circulo
);
readln( Tipo );
Figura := TFigura( Tipo );
case Figura of
Triangulo : writeln( Voc
Retangulo : writeln( Voc
Quadrado : writeln( Voc
Circulo
: writeln( Voc
end;
end.
escolheu
escolheu
escolheu
escolheu
a
a
a
a
figura
figura
figura
figura
Triangulo
Retangulo
Quadrado
Circulo
);
);
);
);
program TestaTecla;
{ Programa para testar a tecla pressionada }
var
Tecla : char;
begin
writeln( Pressione uma Tecla : );
readln( Tecla );
case Tecla of
A..Z, a..z: writeln(Voc pressionou uma Letra);
0..9:
writeln(Voc pressionou um Numero);
+, -, *, /: writeln(Voc pressionou um Sinal Aritm.);
else
writeln( Voc pressionou uma outra tecla qualquer );
end;
end.
program TestaIdade;
{ Programa para testar a idade de servio militar }
var
Idade: integer;
begin
writeln( Qual a sua Idade ? );
readln( Idade );
Por Josiane Alves de Sousa (3/2001-2003)
25
Sintaxe :
while expressao do
comando;
A expresso que controla a repetio dever ser do tipo boolean, sendo a mesma avaliada
antes que o comando do lao seja executado. Isto quer dizer que, se logo no incio o resultado da
expresso for FALSE, o lao no ser executado nenhuma vez.
Exemplo:
program TesteWhile;
var
I,J: integer;
begin
I := 0;
while I < 5 do
I := I + 1;
writeln( I );
J := 0;
while J < 5 do
begin
J := J + 1;
writeln( J );
end;
end.
10.2. Repeat-Until
O comando REPEAT faz com que um comando seja executado enquanto a expresso de
controle permanecer falsa ( FALSE ). O teste da condio feito ao final do lao, dessa forma o
lao sempre executado pelo menos uma vez.
Sintaxe :
repeat
comando [;comando]
until expressao;
26
A expresso que controla a repetio dever ser do tipo boolean, sendo a mesma avaliada
antes que o comando do lao seja executado. Isto quer dizer que, se logo no incio o resultado da
expresso for FALSE, o lao no ser executado nenhuma vez.
Exemplo:
program TesteRepeat;
var
I,J: integer;
begin
I := 0;
repeat
I := I + 1;
until I >= 5;
writeln( I );
J := 0;
repeat
J := J + 1;
writeln( J );
until J >= 5;
END.
10.3. For-Do
O comando FOR executa repetitivamente um comando enquanto atribudo uma srie de
valores a uma varivel de controle (contador do FOR).
Sintaxe :
for variavel := expressao1 to/downto expressao2 do
comando;
Onde :
variavel = uma varivel de controle cujo valor ser incrementado (se usado o to) ou
decrementado (se usado o downto) de uma unidade.
Expressao1 = o valor inicial da varivel de controle
Expressao2 = o valor final da varivel de controle
A varivel de controle poder ser de qualquer tipo escalar ordenado e as expresses de
um tipo compatvel com ela.
O comando FOR funciona da seguinte maneira :
Inicialmente, a varivel de controle recebe o valor da primeira expresso
(expresso1).
Antes de comear a execuo do lao, a varivel de controle testada para verificar
se ela menor ou igual (se for usado o TO) ou se maior ou igual (se for usado o
DOWNTO) segunda expresso.
Se o resultado do teste for verdadeiro, o comando do lao executado.
Ao terminar a execuo do comando do lao, a varivel de controle testada para
verificar se ela igual ao valor final.
Se a varivel de controle for igual ao valor final, a repetio termina.
Se no for igual, ela incrementada ou decrementada de uma unidade.
27
Exemplo :
for I := 1 to 100 do
Soma := Soma + I;
for I := 1 to 100 do
begin
readln( x );
Soma := Soma + x;
end;
for I := 100 downto 1 do
writeln( I );
Program Exemplo;
Uses crt;
type
TDias = ( Dom, Seg, Ter, Qua, Qui, Sex, Sab );
var
Dia: Tdias
Vendas, VendasToal : real;
begin
for Dia := Seg to Sex do
begin
readln( Vendas );
VendasTotal := VendasTotal + Vendas;
end;
end.
28
begin
SOMA:=SOMA+NUM;
end
else
begin
goto FIM;
end;
I:=I+1;
end;
FIM:
writeln ('SOMA DOS NMEROS=', SOMA);
end.
Comando CONTINUE
O comando CONTINUE causa o desvio para o final do lao mais interno de um comando
de repetio.
Exemplo:
while expressao do
begin
...
continue;
...
{ o comando continue desvia para aqui }
end;
for I := expressao1 to expressao2 do
begin
...
continue;
...
{ o comando continue desvia para aqui }
end;
repeat
...
continue;
...
{o comando continue desvia para aqui}
until expressao;
OBS.: O comando CONTINUE no faz parte do Pascal Padro.
Comando BREAK
O comando BREAK causa a sada incondicional do lao mais interno de um comando de
repetio.
Exemplo:
while expressao do
begin
...
break;
...
end;
{o comando break desvia para aqui }
for I := expressao1 to expressao2 do
begin
Por Josiane Alves de Sousa (3/2001-2003)
29
...
break;
...
end;
{ o comando break desvia para aqui }
repeat
...
break;
...
until expressao;
{o comando break desvia para aqui }
OBS.: O comando BREAK no faz parte do Pascal Padro.
Comando HALT
O comando HALT causa o trmino imediato do programa.
Program teste;
begin
...
if Opcao = F then
halt; {O programa terminar, aqui se a condio do IF for
satisfeita}
...
end.
{O programa terminar, aqui se a condio do IF no for
satisfeita}
BIBLIOGRAFIA
OBRIEN, Stephen: Turbo Pascal 6 Completo e Total, So Paulo, Ed. Makron Books, 1994.
MANZANO, Jos Augusto N. G. e YAMATUMI, Wilson Y.: Programando em Turbo Pascal 7.0,
So Paulo, Ed. rica, 1996.
RINALDI, Roberto: Turbo Pascal. So Paulo, Ed. rica, 1990.
WIRTH, Niklaus: Algoritmos e Estruturas de Dados. Rio de Janeiro, Ed. Prentice/Hall do Brasil
PHB, 1986.
FERNANDES, Luiz Antnio B.: Linguagem de Programao: Ambiente Integrado Pascal, Rio de
Janeiro, Ed. Senac Nacional, 1998.
30