ICC1 - TÉCNICAS DE PROGRAMAÇÃO – PASCALZIM

Propaganda
ENGENHARIA DE PRODUÇÃO
ICC 1 – TÉCNICAS DE PROGRAMAÇÃO – 04/06/2009
1. INTRODUÇÃO
O que é um programa? Programa constitui uma seqüência lógica de passos para solução de um
problema.
Um programa pode ser codificado em linguagem de baixo nível (ex: assembly) ou em linguagens de
alto nível (ex: Pascal, C, ...).
Por exemplo:
 a linguagem de programação Pascal foi criada por Niklaus With de Technical University em
Zurich, para ser uma ferramenta educacional.
 Programas escritos em Turbo Pascal 7 têm código-fonte com extensão .PAS e devem ser
salvos no diretório \BIN.
 Uma alternativa é utilizar o PascalZim! Neste caso, não é necessário usar a instrução
uses fdelay, crt;
A execução de programas pode ser feita por dois processos: pela interpretação e pela compilação.
Pela interpretação, a avaliação da sintaxe e a execução são feita no mesmo momento ... quando se
submete o prgrama para execução. Na compilação, os programas são executados por meio do seguinte
esquema:
2. ESTRUTURA DO PROGRAMA
program NOME_DO_PROGRAMA;
uses fdelay, crt;
var
{ definição de variáveis
procedure
begin
}
NOME_DA_PROCEDURE;
{ se houver ...
}
.......................................
end;
{ fim da procedure
function
begin
end;
begin
}
NOME_DA_FUNCTION;
{ se houver ...
.......................................
{ fim da function
}
}
{ corpo principal do programa }
CLRSCR;
................................
aqui se codifica o algoritmo ...
aqui se usam comandos FOR, WHILE, REPEAT, READ/READLN, WRITE/WRITELN, IF, CASE ...
................................
READKEY
end.
{ fim do programa
}
Página 1 de 10
ICC1 - TÉCNICAS DE PROGRAMAÇÃO – PASCALZIM!
====================================================================================================
Comentários:






Todo programa começa com a declaração PROGRAM seguido de um nome do programa.
Após deve-se declarar as units por meio do comando uses .
Declarar as variáveis.
O algorítmo em si começa com BEGIN e termina com END.
Em princípio, todas as instruções terminam com ;
Não se esqueça, para todo BEGIN deverá sempre ter um END.
Exemplo:
Program example;
Uses fdelay, crt; ……………….. Só usado no Turbo Pascal 7
Var x : integer;
y : real;
Begin
{Aqui vai o algorítmo}
End.
3. VARIÁVEIS
3.1 - Tipos de VARIÁVEIS
Boolean
do tipo lógico, ocupa 1 byte, só pode ter os valores True ou False (Verdadeiro
ou Falso)
Integer
do tipo inteiro e numérico, ocupa 2 bytes, seus valores vão de -32768 até 32767,
do tipo inteiro
Longint
do tipo inteiro e numérico, ocupa 4 bytes, valores vão de -2147483648 a
2147483647
Real
Shortint
do tipo fracionário e numérico, ocupa 6 bytes, seus valores vão de 1E-38 até
1E+38 .... tem vírgula
do tipo inteiro e numérico, inteiros de -128 a 127
Word
do tipo inteiro e numérico, ocupa 2 bytes, inteiro de 0 a 65535
Byte
do tipo inteiro e numérico, ocupa 1 byte, tipo inteiro de 0 a 255
Char
do tipo caracter, ocupa 1 byte, tipo alfanumérico, seu conteúdo é qualquer valor
da tabela ASCII
String
do tipo literal e alfanumérico, ocupa de 2 a 256 bytes, seu conteúdo é qualquer
valor da tabela ASCII
Obs: Em azul os tiposs primitivos utilizados no PascalZim!
3.2 - Outros tipos de VARIÁVEIS
Single
tipo real com 7 digitos
Double
tipo real com 15 digitos
Extended
tipo real com 19 digitos
Comp
inteiros de -10E18 até 10E18
3.3 - Atribuição de valores às VARIÁVEIS

é feita por meio de
Ex:
K:=0;
:=
Página 2 de 10
ICC1 - TÉCNICAS DE PROGRAMAÇÃO – PASCALZIM!
====================================================================================================
4. UNITs

As units são rotinas separadas do programa principal. Para usar uma unit deve se declarar
Uses.
FDELAY UNIT para corrigir "bug" do Turbo Pascal 7.
CRT
rotinas de vídeo e som
DOS
controles do SO
GRAPH rotinas gráficas
PRINTER define LST como arquivo de texto direcionado para impressora
5. COMANDOS BÁSICOS DE ENTRADA E SAÍDA
Comandos básicos:
WRITE ou WRITELN
READ ou READLN
CLRSCR (Clear Screen)
GOTOXY
READKEY
DELAY
escreve algo num dispositivo de saída. Se o dispositivo não for
especificado o default será a tela do micro.
Ex: WriteLn('Isto é uma string e sairá na tela');
Permite a entrada de dados via teclado
Ex: Write('Digite um valor para X: '); Readln(x);
Permite limpar a tela, posicionando o cursor no canto superior
esquerdo --- posição (0,0).
Posiciona o cursor em qualque parte da tela
Sintaxe: GOTOXY(coluna,linha);
Possibilita a visualização do resultado do processamento,
quando inserida da última instrução END. do programa.
Sintaxe: READKEY
END.
Permite uma pausa no programa em milisegundos. (Este
comando funciona conforme o clock do computador, sendo
diferente em cada tipo de computador).
Sintaxe: DELAY(3000);
6. ESTRUTURAS DE CONTROLE
6.1 – SEQÜÊNCIA
Página 3 de 10
ICC1 - TÉCNICAS DE PROGRAMAÇÃO – PASCALZIM!
====================================================================================================
6.2 - ESTRUTURAS CONDICIONAIS
As estruturas condicionais imnpõem uma condição para que uma tarefa seja realizada.
6.2.1 - Seleção a um ramo ------ IF.. Then.. (Se.. Então.. )
A instrução só é executada se a condição for satisfeita.

ou, quando a condição sendo verdadeira, cabe executar mais de uma instrução (C1 e C2)
6.2.2 - Seleção a dois ramos ------ IF.. Then.. Else (Se.. Então.. Senão)

A instrução C1 é excutada se a a condição for satisfeita. Caso contrário, a instrução C2 é
executada.

ou, quando a condição sendo verdadeira, cabe executar mais de uma instrução (C1 e C2) e
quando a condição sendo falsa, cabe executar mais de uma instrução (C3 e C4).
Página 4 de 10
ICC1 - TÉCNICAS DE PROGRAMAÇÃO – PASCALZIM!
====================================================================================================
6.2.3 - Estrutura CASE .... substitui um ninho de IF´s

CASE constitui um seletor de opções, executando a opção que for igual a expressão.
6.3 - ESTRUTURAS DE REPETIÇÃO - LOOP

Uma estrutura de repetição repete um bloco até que a condição seja satisfeita.
6.3.1 - FOR ... DO ...
6.3.1.1 – FOR ... TO ... DO
Exemplo:
Página 5 de 10
ICC1 - TÉCNICAS DE PROGRAMAÇÃO – PASCALZIM!
====================================================================================================
6.3.1.2 – FOR ... DOWNTO ... DO
Exemplo:
6.3.2 - REPEAT ... UNTIL ...
6.3.3 - WHILE ... DO ...
Página 6 de 10
ICC1 - TÉCNICAS DE PROGRAMAÇÃO – PASCALZIM!
====================================================================================================
7. EXERCÍCIOS
1. Analise o quadro abaixo, referente às estruturas de controle repeat ... until e while ... do.
NÚMERO
I
II
III
IV
V
VI
DESCRIÇÃO
O teste de controle é realizado no início da estrutura de controle.
O teste de controle é realizado no fim da estrutura de controle.
A condição de saída do loop ocorre quando o teste é FALSE.
A condição de saída do loop ocorre quando o teste é TRUE.
Se o resultado do teste for TRUE, a execução do programa permanece no
loop.
Se o resultado do teste for FALSE, a execução do programa permanece
no loop.
a. Quando se trata da estrutura de controle repeat ... until ..., são afirmativas verdadeiras as de
números: ____, _____ e _____.
b. Quando se trata da estrutura de controle while ... do ..., são afirmativas verdadeiras as de
números: ____, _____ e _____.
2. Analise o programa abaixo:
program prg71;
uses fdelay, crt;
var
B : boolean;
S : string;
begin
{ corpo do programa }
CLRSCR;
B:=FALSE;
S:=’ENGENHARIA DE PRODUÇÃO’;
repeat
writeln(S);
B:=NOT B;
until( NOT B );
READKEY
end.
A variável S será impressa uma
quantidade de vezes igual a ______
3. Observe o programa abaixo.
program ENGPROD;
uses fdelay, crt;
var
N, K, Y : integer;
begin
clrscr;
N:=4;
Y:=10;
for K:=2 to N do Y:=Y * K;
writeln(Y);
readkey;
end.
Ao final do processamento, será impresso para a variável Y o seguinte valor: _________
Página 7 de 10
ICC1 - TÉCNICAS DE PROGRAMAÇÃO – PASCALZIM!
====================================================================================================
4. Analise o programa abaixo:
program prg72;
uses fdelay, crt;
var
X, I : integer;
B : boolean;
begin
{ corpo do programa }
CLRSCR;
X:=1;
for I:=0 to 7 do
begin
X:=X+1;
if (X MOD 2) = 0 then B:=TRUE
else B:=FALSE;
end;
S:='UNIVERSO';
writeln(X:3,I:3,S:20);
READKEY
end.
5. Analise o programa abaixo:
program prg73;
uses fdelay, crt;
var
A, B, X, Y : integer;
begin
{ corpo do programa }
CLRSCR;
write('Digite dois números : ');
readln(X,Y);
A:=X; B:=Y;
while A < > B do
if A > B then A:=A - B
else B:=B - A;
writeln('O valor de A e igual a ',A:3);
READKEY
end.
Ao final do processamento,
as variáveis X, I e B
serão iguais, respectivamente,
a ___, ___ e __________
Ao final do processamento,
as variáveis X, I e B
serão iguais, respectivamente,
a ___, ___ e __________
6. Elaborar um programa em Turbo Pascal que imprima o fatorial de todos os números inteiros entre 0 e 5,
inclusive, conforme abaixo:
NUMERO
FATORIAL
1
1
2
2
3
6
4
24
5
120
Solução 1 : Utilizando a estrutura for ... to ...
PROGRAM FATORIAL_FOR;
USES FDELAY, CRT;
VAR
K, N, FAT : INTEGER;
BEGIN
CLRSCR;
WRITELN('NUMERO FATORIAL');
FOR N:=1 TO 5 DO
BEGIN
FAT:=1;
FOR K:=2 TO N DO FAT:=FAT * N;
WRITELN(N:3,FAT:10);
END;
READKEY;
END.
Página 8 de 10
ICC1 - TÉCNICAS DE PROGRAMAÇÃO – PASCALZIM!
====================================================================================================
Solução 2 : Utilizando a estrutura REPEAT... UNTIL ...
PROGRAM FATORIAL_REPEAT;
USES FDELAY, CRT;
VAR
K, N, FAT : INTEGER;
BEGIN
CLRSCR;
WRITELN('NUMERO FATORIAL');
N:=0;
REPEAT
N:=N+1;
FAT:=1;
K:=0;
REPEAT
K:=K+1;
IF K > 1 DO FAT:=FAT * K;
UNTIL K = N;
WRITELN(N:3,FAT:10);
UNTIL N = 5;
READKEY
END.
Solução 3 : Utilizando a estrutura REPEAT... UNTIL ... e FOR … TO …
PROGRAM FATORIAL_REPEAT;
USES FDELAY, CRT;
VAR
K, N, FAT : INTEGER;
BEGIN
CLRSCR;
WRITELN('NUMERO FATORIAL');
N:=0;
REPEAT
N:=N+1;
FAT:=1;
FOR K:=2 TO N DO FAT:=FAT * N;
WRITELN(N:3,FAT:10);
UNTIL N = 5;
READKEY
END.
Solução 4 : Utilizando a estrutura WHILE ... DO...
PROGRAM FATORIAL_WHILE;
USES FDELAY, CRT;
VAR
K, N, FAT : INTEGER;
BEGIN
CLRSCR;
WRITELN('NUMERO FATORIAL');
N:=0;
WHILE N < 5 DO
BEGIN
N:=N+1;
FAT:=1;
K:=0;
WHILE K < N DO
BEGIN
K:=K+1;
IF K > 1 DO FAT:=FAT * K;
END;
WRITELN(N:3,FAT:10);
END;
READKEY
END.
Página 9 de 10
ICC1 - TÉCNICAS DE PROGRAMAÇÃO – PASCALZIM!
====================================================================================================
Solução 5 : Utilizando a estrutura WHILE... DO ... e FOR … TO …
PROGRAM FATORIAL_WHILE;
USES FDELAY, CRT;
VAR
K, N, FAT : INTEGER;
BEGIN
CLRSCR;
WRITELN('NUMERO FATORIAL');
N:=0;
WHILE N< 5 DO
BEGIN
N:=N+1;
FAT:=1;
FOR K:=2 TO N DO FAT:=FAT * N;
WRITELN(N:3,FAT:10);
END;
READKEY
END.
FIM
Página 10 de 10
Download