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