02.08.2013 Views

ENGENHARIA DE PRODUÇÃO

ENGENHARIA DE PRODUÇÃO

ENGENHARIA DE PRODUÇÃO

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!