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

Propaganda
ENGENHARIA DE PRODUÇÃO
ICC 1 – TÉCNICAS DE PROGRAMAÇÃO
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
do tipo lógico, ocupa 1 byte, só pode ter os valores True ou False (Verdadeiro ou
Boolean
Falso)
do tipo inteiro e numérico, ocupa 2 bytes, seus valores vão de -32768 até 32767,
Integer
do tipo inteiro
do tipo inteiro e numérico, ocupa 4 bytes, valores vão de -2147483648 a
Longint
2147483647
do tipo fracionário e numérico, ocupa 6 bytes, seus valores vão de 1E-38 até
Real
1E+38 .... tem vírgula
Shortint
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
do tipo caracter, ocupa 1 byte, tipo alfanumérico, seu conteúdo é qualquer valor
Char
da tabela ASCII
do tipo literal e alfanumérico, ocupa de 2 a 256 bytes, seu conteúdo é qualquer
String
valor da tabela ASCII
Obs: Em azul os tiposs primitivos utilizados no PascalZim!
3.2 - Outros tipos de VARIÁVEIS
Single
Double
Extended
Comp
tipo real com 7 digitos
tipo real com 15 digitos
tipo real com 19 digitos
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
CRT
DOS
GRAPH
PRINTER
UNIT para corrigir "bug" do Turbo Pascal 7.
rotinas de vídeo e som
controles do SO
rotinas gráficas
define LST como arquivo de texto direcionado para impressora
5. COMANDOS BÁSICOS DE ENTRADA E SAÍDA
Comandos básicos:
escreve algo num dispositivo de saída. Se o dispositivo não for
WRITE ou WRITELN especificado o default será a tela do micro.
Ex: WriteLn('Isto é uma string e sairá na tela');
Permite a entrada de dados via teclado
READ ou READLN
Ex: Write('Digite um valor para X: '); Readln(x);
Permite limpar a tela, posicionando o cursor no canto superior
CLRSCR (Clear Screen)
esquerdo --- posição (0,0).
Posiciona o cursor em qualque parte da tela
GOTOXY
Sintaxe: GOTOXY(coluna,linha);
Possibilita a visualização do resultado do processamento, quando
inserida da última instrução END. do programa.
READKEY
Sintaxe: READKEY
END.
Permite uma pausa no programa em milisegundos. (Este comando
funciona conforme o clock do computador, sendo diferente em
DELAY
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.
Solução 2 : Utilizando a estrutura REPEAT... UNTIL ...
Página 8 de 10
ICC1 - TÉCNICAS DE PROGRAMAÇÃO – PASCALZIM!
====================================================================================================
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.
Solução 5 : Utilizando a estrutura WHILE... DO ... e FOR … TO …
Página 9 de 10
ICC1 - TÉCNICAS DE PROGRAMAÇÃO – PASCALZIM!
====================================================================================================
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