ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual...

84
CETEP – Santo Antônio de Pádua ALGORITMO Um Algoritmo é uma seqüência de instruções ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema. ALGORITMO NÃO COMPUTACIONAL Abaixo é apresentado um Algoritmo não computacional cujo objetivo é usar um telefone público. Início 1. Tirar o fone do gancho; 2. Ouvir o sinal de linha; 3. Introduzir o cartão; 4. Teclar o número desejado; 5. Se der o sinal de chamar 5.1 Conversar; 5.2 Desligar; 5.3 Retirar o cartão; 6. Senão 6.1 Repetir; Fim. PROGRAMA Um programa é um Algoritmo escrito em uma linguagem computacional. LINGUAGENS DE PROGRAMAÇÃO São Softwares que permitem o desenvolvimento de programas. Possuem um poder de criação ilimitado, desde jogos, editores de texto, sistemas empresariais até sistemas operacionais. Existem várias linguagens de programação, cada uma com suas características próprias. Exemplos: Pascal Clipper C Visual Basic Delphi e etc. SEQUÊNCIAL DESVIO

Transcript of ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual...

Page 1: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

ALGORITMO

Um Algoritmo é uma seqüência de instruçõesordenadasde forma lógicaparaa resolução deuma determinada tarefaou problema.

ALGORITMO NÃO COMPUTACIONAL

Abaixo é apresentado um Algoritmo não computacional cujo objetivo é usar um telefonepúblico.

Início

1. Tirar o fone do gancho;

2. Ouvir o sinal de linha;

3. Introduzir o cartão;

4. Teclar o número desejado;

5. Se der o sinal de chamar

5.1 Conversar;

5.2 Desligar;

5.3 Retirar o cartão;

6. Senão

6.1 Repetir;

Fim.

PROGRAMA

Um programa é um Algoritmo escrito em uma linguagem computacional.

LINGUAGENS DE PROGRAMAÇÃO

São Softwares que permitem o desenvolvimento de programas. Possuem um poder decriação ilimitado, desde jogos, editoresde texto, sistemasempresariaisaté sistemasoperacionais.

Existem várias linguagens de programação, cada uma com suas características próprias.Exemplos:

• Pascal

• Clipper

• C

• Visual Basic

• Delphi e etc.

SE

QU

ÊN

CI

AL

DESVI O

Page 2: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

2

TÉCNICAS ATUAIS DE PROGRAMAÇÃO

• Programação Seqüencial

• Programação Estruturada

• Programação Orientada a EventoseObjetos

ALGORITMOS EM “ PORTUGOL”

Durante nosso curso iremos aprender a desenvolver nossos Algoritmos em uma pseudo-linguagem conhecida como “Portugol” ou PortuguêsEstruturado.

“Portugol” é derivado da aglutinação de Português + Algol. Algol é o nome de umalinguagem de programação estruturada usada no final da década de 50.

OPERADORES ARITMÉTICOS

+�

Adição

-�

Subtração

*�

Multiplicação

/�

Divisão

OPERADORES RELACIONAIS

>�

Maior que

<�

Menor que

>=�

Maior ou Igual

<=�

Menor ou Igual

=�

Igual

<>�

Diferente

LINEARIZAÇÃO DE EXPRESSÕES

Para a construção de Algoritmos todas as expressões aritméticas devem ser linearizadas, ouseja, colocadasem linhas.

É importante também ressalvar o uso dos operadores correspondentes da aritméticatradicional para a computacional.

Exemplo:

( ) =+������ −+ 135

3

2 (2/3+(5-3))+1=

Tr adi c i onal Comput aci onal

Page 3: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

3

MODULARIZAÇÃO DE EXPRESSÕES

A modularização é a divisão da expressão em partes, proporcionando maior compreensão edefinindo prioridadespara resolução da mesma.

Como pode ser observado no exemplo anterior, em expressões computacionais usamossomente parênteses “( )” paramodularização.

Na informática podemos ter parêntesesdentro de parênteses.

Exemplosde prioridades:

(2+2)/2=2

2+2/2=3

OPERADORES ESPECIAIS (MOD e DIV)

MOD�

Retornao resto da divisão entre 2 números inteiros.

DIV�

Retorna o valor inteiro que resulta da divisão entre 2 números inteiros.

Exemplo:

FUNÇÕES

Uma função é um instrumento (Sub–algoritmo) que tem como objetivo retornar um valor ouuma informação.

A chamada de uma função é feita através da citação do seu nome seguido opcionalmente deseu argumento inicial entre parênteses.

As funções podem ser predefinidas pela linguagem ou criadas pelo programador de acordocom o seu interesse.

Exemplos:

13 2

61

MOD DIV

13 DI V 2 = 6

13 MOD 2 = 1

Val or Fi nal Y

Val or I ni c i al X

Pr ocessament o

X=9

Y=3

x

Page 4: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

4

BIBLIOTECAS DE FUNÇÕES

Armazenam um conjunto de funçõesquepodem ser usadaspelosprogramas.

FUNÇÕES PRÉ-DEFINIDAS

ABS( ) VALOR ABSOLUTO

SQRT( ) RAIZ QUADRADA

SQR( ) ELEVA AO QUADRADO

TRUNC( ) VALOR TRUNCADO

ROUND( ) VALOR ARREDONDADO

LOG( ) LOGARITMO

SIN( ) SENO

COS( ) COSENO

TAN( ) TANGENTE

As funções acima são as mais comuns e importantes para nosso desenvolvimento lógico,entretanto, cada linguagem possui suas funções própias. As funções podem ser aritméticas,temporais, de texto e etc.

OPERADORES LÓGICOS

Atuam sobreexpressões retornando sempre valores lógicos como Falso ou Verdadeiro.

E RETORNA VERDADEIRO SE AMBAS AS PARTES FOREMVERDADEIRAS.

OU BASTA QUE UMA PARTE SEJA VERDADEIRA PARA RETORNARVERDADEIRO.

NÃO INVERTE O ESTADO, DE VERDADEIRO PASSA PARA FALSO E VICE-VERSA.

TABELA VERDADE

A B A E B A OU B NÃO (A)

V V V V F

V F F V F

F V F V V

F F F F V

Page 5: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

5

EXPRESSÕES LÓGICAS

Asexpressõescompostasde relaçõessempre retornam um valor lógico.

Exemplos:

2+5>4�

Verdadeiro 3<>3�

Falso

De acordo com a necessidade, asexpressões podem ser unidas pelosoperadores lógicos.

Exemplos:

2+5>4 E 3<>3�

Falso 2+5>4 OU 3<>3�

Verdadeiro NÃO(3<>3)�

Verdadeiro

VARIÁVEIS

Variáveissão endereçosde memória destinadosa armazenar informações temporariamente.

* Todo Algoritmo ou programa deve possuir variáveis!

VARIÁVEIS DE ENTRADA E SAÍDA

Variáveis de Entrada armazenam informações fornecidas por um meio externo,normalmente usuáriosou discos.

Variáveisde Saída armazenam dadosprocessadoscomo resultados.

Exemplo:

De acordo com a figuraacima A e B são Variáveisde Entrada e C é uma Variável de Saída.

V F

F

E

F

V

NÃO

A B C=A+B

752

V F

V

OU

Page 6: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

6

CONSTANTES

Constantes são endereços de memória destinados a armazenar informações fixas,inalteráveisdurante aexecução do programa.

Exemplo:

PI = 3.1416

IDENTIFICADORES

São osnomesdadosa variáveis, constantese programas.

RegrasPara construção de Identificadores:

• Não podem ter nomesde palavras reservadas (comandosda linguagem);

• Devem possuir como 1º caractere uma letra ou Underscore ( _ );

• Ter como demais caracteres letras, númerosou Underscore;

• Ter no máximo 127 caracteres;

• Não possuir espaçosem branco;

• A escolha de letrasmaiúsculasou minúsculasé indiferente.

Exemplos:

NOME TELEFONE IDADE_FILHO

NOTA1 SALARIO PI

UMNOMEMUITOCOMPRIDOEDIFICILDELER

UM_NOME_MUITO_COMPRIDO_E_FACIL_DE_LER

TIPOS DE DADOS

Todas asVariáveisdevem assumir um determinado tipo de informação.

O tipo de dado pode ser:

• Primitivo�

Pré-definido pela linguagem;

• Sub-Faixa�

É uma parte de um tipo já existente;

• Escalar�

Definidospelo programador.

Exemplos:

A : INTEIRO

TIPO NOTA=[1..10] DE INTEIRO

TIPO SEMANA = (Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira,Sábado, Domingo)

PRIMITIVO

SUB - FAIXA

ESCALAR

Page 7: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

7

TIPOS PRIMITIVOS DE DADOS

INTEIRO ADMITE SOMENTE NÚMEROS INTEIROS. GERALMENTE ÉUTILIZADO PARA REPRESENTAR UMA CONTAGEM(QUANTIDADE).

REAL ADMITE NÚMEROS REAIS (COM OU SEM CASAS DECIMAIS).GERALMENTE É UTILIZADO PARA REPRESENTAR UMA MEDIÇÃO.

CARACTERE ADMITE CARACTERES ALFANUMÉRICOS. OS NÚMEROS QUANDODECLARADOS COMO CARACTERES TORNAM SEREPRESENTATIVOS E PERDEM A ATRIBUIÇÃO DE VALOR.

LÓGICO ADMITE SOMENTE VALORES LÓGICOS(VERDADEIRO/FALSO).

COMANDOS DE I/O (INPUT/OUTPUT)

LER�

Comando de entrada que permite a leiturade Variáveisde Entrada.

ESCREVER � Comando de saída que exibe uma informação na tela do monitor.

IMPRIMIR�

Comando de saída queenviaumainformação para a impressora.

SINAL DE ATRIBUIÇÃO

Uma Variável nunca é eternamente igual a um valor, seu conteúdo pode ser alterado aqualquer momento. Portanto para atribuir valoresa variáveisdevemosusar o sinal de “ :=” .

Exemplos:

A := 2;

B := 3;

C := A + B;

SINAL DE IGUALDADE

As constantes são eternamente iguais a determinados valores, portanto usamos o sinal de“=”.

Exemplos:

PI = 3.1416;

Empresa= ‘Colégio de InformáticaL.T.D.A.’

V = Verdadeiro

Page 8: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

8

CORPO GERAL DE UM PROGRAMA

PROGRAMA <<identificador>>;

CONST

<<identificador>> = <<dado>>

VAR

<<identificador>> : <<tipo>>;

ÍNICIO

{ COMANDOS DE ENTRADA,PROCESSAMENTO E SAÍDA

<<comando1>>;

<<comandoN>>}

FIM.

ESTRUTURAS SEQÜÊNCIAIS

Como pode ser analisado no tópico anterior, todo programa possui uma estrutura seqüencialdeterminada por um ÍNICIO e FIM.

; PONTO E VÍRGULA ;

O sinal de ponto e vírgula “;” indica a existência de um próximo comando (passa para opróximo).

Na estrutura ÍNICIO e no comando que antecede a estrutura FIM não se usa “ ;” .

{L INHAS DE COMENTÁRIO}

Podemos inserir em um Algoritmo comentários para aumentar a compreensão do mesmo,para isso basta que o texto fique entre Chaves “{ } ”.

Exemplo:

LER (RAIO); { ENTRADA}

‘ASPAS SIMPLES’

Quando queremos exibir uma mensagem para a tela ou impressora ela deve estar contidaentre aspas simples, caso contrário, o computador irá identificar a mensagem como VariávelIndefinida.

Exemplo:

ESCREVER (‘AREA OBTIDA =’ , AREA) {COMANDO DE SAÍDA}

AREA OBTIDA = X.XX { RESULTADO GERADO NA TELA}

Page 9: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

9

ESTRUTURAS DE DECISÃO

Executa uma seqüência de comandosdeacordo com o resultado deum teste.

A estruturade decisão pode ser Simplesou Composta, baseada em um resultado lógico.

Simples:

SE <<CONDIÇÃO>>

ENTÃO <<COMANDO1>>

Composta 1:

SE <<CONDIÇÃO>>

ENTÃO <<COMANDO1>>

SENÃO <<COMANDO1>>

Composta 2:

SE <<CONDIÇÃO>>

ENTÃO INICIO

<<COMANDO1>>;

<<COMANDON>>

FIM;

SENÃO INICIO

<<COMANDO1>>; <<COMANDON>>

FIM;

NINHOS DE SE

Usadospara tomadasde decisõespara maisde 2 opções.

Forma Geral:

SE <<CONDIÇÃO>>

ENTÃO <<COMANDO1>>

SENÃO SE <<CONDIÇÃO>>

ENTÃO <<COMANDO1>>

SENÃO <<COMANDO1>>

Page 10: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

10

ESTRUTURAS DE CONDIÇÃO

A estruturade condição eqüivale a um ninho deSE’S.

Forma Geral:

FACA CASO

CASO <<CONDIÇÃO1>>

<<COMANDO1>>;

CASO <<CONDIÇÃON>>

<<COMANDO1>>;

OUTROS CASOS

<<COMANDO1>>;

FIM DE CASO

ESTRUTURA DE REPETIÇÃO DETERMINADA

Quando uma seqüência de comandos deve ser executada repetidas vezes, tem-se umaestrutura de repetição.

A estrutura de repetição, assim como a de decisão, envolve sempre a avaliação de umacondição.

Na repetição determinada o algoritmo apresenta previamente a quantidade de repetições.

Forma Geral 1:

PARA <<VARIAVEL DE TIPO INTEIRO>>:=<<VALOR INICIAL>> ATE <<VALORFINAL>> FAÇA

<<COMANDO1>>;

Forma Geral 2:

PARA <<VARIAVEL DE TIPO INTEIRO>>:=<<VALOR INICIAL>> ATE <<VALORFINAL>> FAÇA

ÍNICIO

<<COMANDO1>>;

<<COMANDON>>

FIM;

A repetição por padrão determina o passo do valor inicial até o valor final como sendo 1.Determinadas linguagenspossuem passo –1 ou permitem que o programador defina o passo.

Page 11: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

11

ESTRUTURA DE REPETIÇÃO INDETERMINADACOM VALIDAÇÃO INICIAL

É usada para repetir N vezes uma ou mais instruções. Tendo como vantagem o fato de nãoser necessário o conhecimento prévio do número derepetições.

Forma Geral 1:

ENQUANTO <<CONDIÇÃO>> FACA

<<COMANDO1>>;

Forma Geral 2:

ENQUANTO <<CONDIÇÃO>> FACA

ÍNICIO

<<COMANDO1>>;

<<COMANDON>>

FIM;

VALIDAÇÃO INICIAL

TODAS AS VARIÁVEIS QUE ACUMULAM VALORES DEVEMRECEBER UM VALOR INICIAL.

Page 12: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

12

ESTRUTURA DE REPETIÇÃO INDETERMINADA

COM VALIDAÇÃO FINAL

Assim como a estrutura ENQUANTO É usada para repetir N vezesuma ou mais instruções.

Suavalidação é final fazendo com que a repetição seja executada pelo menosuma vez.

Forma Geral;

REPITA

<<COMANDO1>>;

<<COMANDON>>

ATE <<CONDIÇÃO>>

Page 13: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

13

EXERCÍCIOS

Obser vação, ant es de t udo:Os t er mos " Ler " são r ef er ent es à l i nguagem Pascal e t r abal har emos com al i nguagem Obj ect Pascal .Fi ca sub- ent endi do ent ão, que o Del phi sabe " Ler " ou em Pascal " Read" .

Ler o nome e as 4 not as de um al uno, cal cul ar a médi a e apr esent ar o nome e amédi a:

pr ocedi ment o Medi a;var

Nome: Text o;A, B, C, D: I nt ei r o;Medi a: Real ;

i ni c i oLer ( Nome) ;Ler ( A, B, C, D) ;Medi a: =( A+B+C+D) / 4;Most r ar Mensagem( Nome, Medi a) ;

f i m;

Cal cul ar a ár ea de um cí r cul o:

pr ocedi ment o Cal cul ar _Ar ea;var

Rai o, Ar ea: Real ;i ni c i o

Ler ( Rai o) ;Ar ea: =3. 14* Rai o* Rai o;Most r ar Mensagem( Ar ea) ;

end;

Ler 2 númer os e most r ar o mai or del es:

pr ocedi ment o Mai or _de_doi s;var

A, B: I nt ei r o;i ni c i o

Ler ( A, B) ;se A>B ent ão Most r ar Mensagem( ' A' ) senão Most r ar Mensagem( ' B' ) ;

f i m;

Ler o nome e as 4 not as de um al uno, cal cul ar a médi a, se est a f or mai or oui gual a 6, apr esent ar que o mesmo passou, senão que f oi r epr ovado:pr ocedi ment ovar

Not a1, Not a2, Not a3, Not a4: I nt ei r o;Medi a: Real ;Nome: Text o;

i ni c i oLer ( Nome) ;Ler ( Not a1, Not a2, Not a3, Not a4) ;Medi a: =( Not a1+Not a2+Not a3+Not a4) / 4;se Medi a>=6 ent ão Most r ar Mensagem( ' Par abéns, você f oi apr ovado! ' ) senão

Most r ar Mensagem( ' Não consegui , est ude mai s! ' ) ;f i m;

Page 14: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

14

Ler 3 númer os e most r ar o mai or del es:pr ocedi ment o Mai or _de_t r es;var

A, B, C: I nt ei r o;i ni c i o

Ler ( A, B, C) ;se ( A>B) e ( A>C) ent ão Most r ar Mensagem( ' A' )

senão se B>C ent ão Most r ar Mensagem( ' B' )senão Most r ar Mensagem( ' A' ) ;

f i m;

. . . ou poder i a ser escr i t o de out r a f or ma t ambém, poi s o pont o e ví r gul a quei ndi ca o f i nal da f r ase soment e.

pr ocedi ment o Mai or _de_t r es;var

A, B, C: I nt ei r o;i ni c i o

Ler ( A, B, C) ;se ( A>B) e ( A>C) ent ão Most r ar Mensagem( ' A' ) senão se B>C ent ão

Most r ar Mensagem( ' B' ) senão Most r ar Mensagem( ' A' ) ;f i m;

. . . ou

pr ocedi ment o Mai or _de_t r es;var

A, B, C: I nt ei r o;i ni c i o

Ler ( A, B, C) ;se ( A>B) e ( A>C) ent ão Most r ar Mensagem( ' A' ) ;se ( B>A) e ( B>C) ent ão Most r ar Mensagem( ' B' ) ;se ( C>A) e ( C>B) ent ão Most r ar Mensagem( ' C' ) ;

f i m;

Escr ever 10 vezes a pal avr a FLUMI NENSE ( 2 sol uções) :

pr ocedi ment o Fl umi nense;i ni c i ovar

X: I nt ei r o;i ni c i o

X: =0;enquant o x<10 f aça

i ni c i oMost r ar Mensagem( ' FLUMI NENSE' ) ;I ncr ement ar ( X) ;

f i m.f i m;

pr ocedi ment o Fl umi nense;i ni c i ovar

X: I nt ei r o;i ni c i o

par a X: =1 at é 10 f aça Most r ar Mensagem( ' FLUMI NENSE' ) ;f i m;

Page 15: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

15

Escr ever os 100 pr i mei r os númer os par es:

pr ocedi ment o Par es;var

X, Par : I nt ei r o;i ni c i o

Par : =0;par a X: =1 at é 100 f aça

i ni c i oMost r ar Mensagem( Par ) ;I ncr ement ar ( Par , 2) ;

f i m;f i m;

. . . ou

pr ocedi ment o Par es;var

X, Par : I nt ei r o;i ni c i o

Par : =0;par a X: =1 at é 100 f aça

i ni c i oMost r ar Mensagem( Par ) ;Par : =Par +2;

f i m;f i m;

Ler e somar t odos os sal ár i os de uma empr esa at é que se ent r e com o val or zer o:

pr ocedi ment o Somat or i o;var

Tot al , Sal ar i o: Real ;i ni c i o

Tot al : =0;Sal ar i o: =1; / / ou qual quer númer o di f er ent e de zer oenquant o Sal ar i o<>0 f aça

i ni c i oLer ( Sal ar i o) ;Tot al : =Tot al +Sal ar i o;

f i m;Most r ar Mensagem( Tot al ) ;

f i m;

. . . ou

pr ocedi ment o Somat or i o;var

Tot al , Sal ar i o: Real ;i ni c i o

Tot al : =0;Sal ar i o: =1;enquant o Sal ar i o<>0 f aça

i ni c i oLer ( Sal ar i o) ;I ncr ement ar ( Tot al , Sal ar i o) ;

f i n;Most r ar Mensagem( Tot al ) ;

f i m;

. . . ou

Page 16: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

16

pr ocedi ment o Somat or i o;var

Tot al , Sal ar i o: Real ;i ni c i o

Tot al : =0;r epi t a

Ler ( Sal ar i o) ;Tot al : =Tot al +Sal ar i o;

at é Sal ár i o=0;Most r ar Mensagem( Tot al ) ;

f i m;

Ler o nome e as 4 not as de um al uno, t endo a 1ª peso 1, a 2ª peso 2, a 3ª peso 3e a 4ª peso 4, cal cul ar a médi a ponder ada e apr esent ar o nome e a médi a:

pr ocedi ment o Medi a;var

Nome: Text o;A, B, C, D: I nt ei r o;Medi a: Real ;

i ni c i oLer ( Nome) ;Ler ( A, B, C, D) ;Medi a: =( A* 1+B* 2+C* 3+D* 4) / 10; / / 10=1+2+3+4Most r ar Mensagem( Nome, Medi a) ;

f i m;

Page 17: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

17

O que é Delphi?

O Delphi é um ambiente de desenvolvimento de aplicações, orientado a objeto, que permiteo desenvolvimento de aplicações para os Sistemas Operacionais Windows 3.11, Windows95/98/Me e Windows2000, “com pouca codificação”.

Como é formado uma Aplicação em Dephi

Quando você abre um projeto no Delphi, ele já mostra uma Unit com várias linhas de código.Este texto tem como objetivo explicar um pouco desta estrutura que o Delphi usa. Um projetoDelphi tem, inicialmente, duas divisórias: uma Unit, que é associada a um Form, e outra Project,queengloba todososFORM e UNITsda aplicação.

Em Delphi temos: o Project, osFormse asUnits. Para todo Form temospelo menosumaUnit(Código do Form), mas temosUnits sem Form (códigosdeprocedures, funções, etc.).

.DPR

TESTE

.EXE

UNIT 1

.PAS

FORM 1

.DFM

FORM 1

.DCU

UNIT 2

.PAS

FORM 2

.DFM

FORM 2

.DCU

UNIT N

.PAS

FORM N

.DFM

FORM N

.DCU

ROTINAS

.PAS

Page 18: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

18

Arquivos Gerados no Desenvolvimento

Extensão Definição Função.DPR Arquivo do Projeto Código fonte em Pascal do arquivo principal do projeto.

Lista todosos formulários eunitsno projeto, e contémcódigo de inicialização da aplicação. Criado quando oprojeto é salvo.

.PAS Código fonte da Unit(Object Pascal)

Um arquivo .PAS égerado por cada formulário que oprojeto contém. Seu projeto pode conter um ou maisarquivos .PAS associadoscom algum formulário.Contem todasasdeclaraçõese procedimentos incluindoeventosdeum formulário.

.DFM Arquivo gráfico doformulário

Arquivo que contém aspropriedadesdo desenho de umformulário contido em um projeto. Um .DFM é geradoem companhia de um arquivo .PAS para cada formuláriodo projeto.

.OPT Arquivo de opçõesdoprojeto

Arquivo texto que contém a situação corrente dasopçõesdo projeto. Gerado com o primeiro salvamento eatualizado em subsequentesalterações feitaspara asopçõesdo projeto.

.RES Arquivo de Recursos doCompilador

Arquivo que contém o ícone, mensagensda aplicação eoutros recursosusados pelo projeto.

.~DP Arquivo de Backup doProjeto

Gerado quando o projeto é salvo pela segunda vez.

.~PA Arquivo de Backup daUnit

Se um .PAS é alterado, este arquivo égerado.

.~DF Backup do Arquivográfico do formulário

Se você abrir um .DFM no editor de código e fizeralgumaalteração, este arquivo é gerando quando vocêsalva o arquivo.

.DSK Situação da ÁreadeTrabalho

Este arquivo armazena informaçõessobre a situação daárea de trabalho especifica para o projeto em opçõesdeambiente (OptionsEnvironment).

Obs.: .~DF, .~PA , .~DP são arquivos de backup (Menu Options, Enviroment, GuiaEditor Display,Caixa de Grupo Display and file options, opção Create Backup Files, desativa o seu salvamento).

Devido a grande quantidade de arquivosdeumaaplicação, cada projeto deve ser montado emum diretório específico.

Arquivos Gerados pela Compilação

Extensão Definição Função.EXE Arquivo compilado

executávelEste é um arquivo executável distribuível de suaaplicação. Este arquivo incorpora todososarquivos.DCU geradosquando sua aplicação é compilada.

.DCU Código objeto da Unit A compilação cria um arquivo .DCU para cada .PAS noprojeto.

Page 19: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

19

Neste arquivo está escrito o código de criação da aplicação e seus formulários. O arquivoProject tem apenasuma seção.

Esta seção é formada pelo seguinte código:

PROGRAM - Define o Projeto;USES Cláusula que inicia uma lista de outrasunidades.

Forms= É a unidade do Delphi que define a forma eoscomponentesdo aplicativoin = A clausula indica ao compilador onde encontrar o arquivo Unit.

Unit1 = A unidade que você criou{$R * .RES} - Diretivacompiladora que inclui o arquivo de recursos.

Abaixo vejacomo fica o Project quando você abre um projeto novo:

pr ogr am Pr oj ect 1;

usesFor ms,Uni t 1 i n ' UNI T1. PAS' { For m1} ;

{ $R * . RES}

begi nAppl i cat i on. Cr eat eFor m( TFor m1, For m1) ;Appl i cat i on. Run;

end.

Nesta divisória serão escritos os códigos dos seus respectivos forms (Unit1 = Form1). Aquiserão definidososcódigosde cada procedimento doscomponentesque você colocar no form.

Seção UnitDeclara o nome da unit.

Seção Uses

Cont ém as uni t s acessadas por est e ar qui vo.

Page 20: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

20

Seção Interface

Nesta seção estão asdeclarações de constantes, tiposde variáveis, funçõese proceduresgeraisda Unit/Form.

INTERFACEPalavraque inicia a seção;USES Cláusula que inicia uma lista de outrasunidadescompiladas (units) em que sebasea:

SysUtils= utilitáriosdo sistema (strings, data/hora, gerar arquivos)WinProcs= acesso a GDI, USER e KERNEL do WindowsWintypes= tiposde dadose valoresconstantesMessages= constantescom os númerosdas mensagensdo Windowse tiposde dados

dasMensagensClasses= elementosde baixo nível do sistema de componentesGraphics= elementosgráficosControls= elementos de nível médio do sistema de componentesForms= componentesde forma e componentes invisíveisdeaplicativosDialogs= componentesde diálogo comuns

Seção Type

Declara os tipos definidos pelo usuário. Subseções: Private, declarações privativas da Unit.Public, declaraçõespublicasda Unit.

Seção Var

Declara asvariáveisprivadasutilizadas.

Seção Implementation

Contém o corpo das funções e procedures declaradas nas seções Inter face e Type. Nestaseção também estão definidos todos os procedimentos dos componentes que estão incluídos noForm. As declarações desta seção são visíveis apenas por ela mesma. Esta seção é formada peloseguinte código:

{$R* .DFM} - Diretiva compiladora que inclui toda a inter face, propriedades da forma ecomponentesdo arquivo *.DFM

Seção uses adicional

Serve para declarar Unitsque ativam esta.

Inicialization

Nesta seção, que é opcional, pode ser definido um código para proceder as tarefas deinicialização da Unit quando o programa começa. Ela consiste na palavra reservada inicializationseguida por uma ou mais declaraçõespara serem executadasem ordem.

Page 21: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

21

Abai xo vej a como f i ca a uni t quando você abr e um pr oj et o novo:

uni t Uni t 1;

i nt er f ace

usesSysUt i l s , Wi nTypes, Wi nPr ocs , Messages, Cl asses, Gr aphi cs,

Cont r ol s, For ms, Di al ogs;

t ypeTFor m1 = cl ass( TFor m)pr i vat e

{ Pr i vat e decl ar at i ons }publ i c

{ Publ i c decl ar at i ons }end;

varFor m1: TFor m1;

i mpl ement at i on

{ $R * . DFM}

{ Uses Adi c i onal }

{ I ni t i al i zat i on}

end.

Page 22: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

22

Janelas

O Code Editor funciona como um arquivo texto qualquer, onde serão implementadas osprocedimentose eventosdo programa. O próprio Delphi efetuaasmudançasde formatação na fonte(negrito, cores, etc.), exceto maiúsculase minúsculas.

Page 23: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

23

Formulários

Você usa formulários para fazer interface com o usuário, nele são inseridos oscomponentes. O formulário é uma janela, e portanto, possui os atributos de uma janela (menu decontrole, botõesde maximizar e minimizar, barra de título, bordas redimensionáveis).

Page 24: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

24

Object Inspector

É uma ferramenta composta deduaspáginas: Properties (Propriedades) e Events (Eventos).

A página Properties (Propriedades) permite quevocê estabeleçaparâmetrosde formuláriosecomponentes. Estes parâmetros especificam os valores iniciais de características como nome docomponente e sua posição no formulário.

A páginasEvents (Eventos) permite associar oscomponentescom açõesdo usuário.

Component Palette

É composta de várias páginas contendo cada uma grupos de componentes. Para mudar depágina napalheta decomponentes, clique sobre aguia da página que você quiser acessar.

Page 25: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

25

Orientação a Objetos

Por ser baseado no Pascal Object, o Delphi permite que se construa aplicações orientadas aobjetos. Em linhas gerais, aplicações orientadasa objetosse baseiam no conceito de classe. A classeé um tipo de dados, contendo atributos e serviços. O objeto é uma variável de determinada classe.Por exemplo, um formulário nada mais é do que um objeto da classe Formulário (Tform). Contématributose serviços.

Os programas feitos em Delphi são orientados a eventos. Eventos são ações normalmentegeradas pelo usuário. Ex.: Clicar o mouse, pressionar uma tecla, mover o mouse, etc. Os eventospodem ser também geradospelo Windows.

Existem eventos associadosao formulário ecada componente inserido neste.

Exemplos

Ao formulário está ligado on create, que ocorre quando mostramoso formulário na tela.Ao componente botão está ligado o evento on click, que ocorrequando damosum click como mouse sobreo botão.

Rotinas que Respondem a Eventos

Cada evento gera uma procedure, aonde você deve inserir as linhas de código queenvolvem este evento. Por exemplo, o evento OnClick, que é gerado ao clicarmos em um botãochamado BTNSair, criaa procedure:

pr ocedur e TFor m1. BTNSai r Cl i ck( Sender : Tobj ect ) ;

Onde TFor m1 é o obj et o Tf or m que cont ém o bot ão BTNSai r , eSender é um obj et o Tobj ect que r epr esent a o component e que deuor i gem ao event o.

Se você quiser inserir uma rotina que trate um determinado evento de um componente, façao seguinte:

• clique sobre o componente;• no Object Inspector, seleciona a página Events;• dê um duplo clique sobre o evento para o qual quer inserir o código;• entre no editor de código e escreva as linhasde código.

pr ocedur e TFor m1. BTNSai r Cl i ck( Sender : Tobj ect ) ;begi n

For m1. Cl ose;end;

Obs.: Escreva seu código entre o begin e o end, se por acaso você quiser retirar o evento e ocomponente, retire primeiro os eventos do componente removendo somente o código que vocêcolocou e depoiso componente; os resto dos procedimentoso Delphi retira para você.

Page 26: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

26

Como vimos, eventos podem estar associados a modificações em propriedade decomponente e formulário, ou seja, você pode modificar propriedadesde formuláriosecomponentesdurante a execução do sistema. Para isto você deverá usar a sintaxe:

<componente>.<propriedade>;

Por exemplo, para modificar a propriedade text de uma caixa de edição Edit1 para “BomDia” faça:

Edit1.Text := ‘Bom Dia’ ;

Se a propriedade do componente tiver subpropriedades, para acessa-lá, utilize a seguintesintaxe:

<componente>.<propriedade>.<subpropriedade>

Por exemplo, para modificar a subpropriedade Name referente a propriedade fonte, de umacaixa de edição Edit1, para ‘Script’ , faça:

Edit1.Font.name := ‘Script’ ;

Obs.: Verifique o tipo da propriedade para antes de mandar o valor, consultando no ObjetcInspector.

Mét odos

São procedures ou funções embutidas nos componentes e formulários, previamentedefinidaspelo Delphi.

Alguns métodossão descritosa seguir:

• Show : Mostra um formulário;• Hide : Esconde um formulário maisnão o descarrega;• Print : Imprime um formulário na impressora;• SetFocus : Estabelece o foco para um formulário ou componente;• BringtoFront: Envia para frente.

Chamado de métodos como resposta a eventos

Um evento pode gerar a chamada para um método, ou seja, uma subrotina previamentedefinida para um componente.

No código, use a seguinte sintaxe: <nome do objeto>.<método>

Por exemplo, clicar em um botão pode dar origem ao evento Show de um outro formulário,mostrando este novo formulário na tela: Form2.show;

Page 27: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

27

Trabalhando com Banco de Dados

O Borland Database Engine é o coração do Delphi e suas aplicações com banco de dadosusando o mesmo database engine usado pelo Paradox e dBase. Paradox e dBase é claro trazemcapacidades adicionais além do database engine (como o Delphi também o faz), mas isso é longe dedizer que o valor agregado destes recursos adicionais é maior de 2 % das capacidades - os outros98% são providospelo database enginee estão disponíveispara todososusuáriosdeste engine.

O Borland Database Engine (BDE) é uma coleção de DLLs que as aplicações de banco dedados irão fazer chamadas. Cada estação de trabalho que tiver a aplicação de banco de dadosinstalada deverá ter, também, o BDE instalado (o Delphi vem com a instalação do BDE para vocêadicionar a sua aplicação).

O BDE permite a você usar tabelas dBase, Paradox ou ODBC em modo multi-usuário. Aversão Cliente/Servidor do Delphi também vem com links para servidores de banco de dados comoOracle, Sybase, MS SQL Server, Informix, e InterBase.

Page 28: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

28

A Linguagem SQL

A linguagem SQL (Structured Query Language - Linguagem Estruturada de Pesquisa) foicriada para ser uma linguagem padrão para consulta, atualização e manipulação de banco de dadosem um banco de dados relacional.

Comercialmente implementada pela IBM, se tornou um padrão de linguagem de acesso adados em vários bancos de dados relacionais, como Oracle, DB2, SQL Server, Sybase, Interbase,etc.

Usar emos as Decl ar ações em SQL par a ext r ai r / at ual i zarr egi s t r os de uma ou mai s t abel as que at endam as condi çõesespec i f i cadas, mani pul ando, ass i m, soment e os dados que sej am denosso i nt er esse.

Por exemplo, a declaração permitequesomenteosregistroscujo o campo Nomecomeçandopela letra A da tabela de Clientessejam exibidosna tela:

Sel ect *Fr om Cl i ent esWher e Nome=“ A* ”

Podemosdividir os comandos da linguagem SQL em trêscategoriasdistintas:• Comandos de Definição de Dados: permitem definir ou alterar tabelas em um banco de

dados.• Comandos de Controle de Dados: servem para gerenciar o acesso dos usuários a

determinadas tabelas.• Comandos para a Manipulação de Dados: servem para manipular os dados contidos nas

tabelas.Exempl os

1) Sel ect *Fr om Cl i ent es

Seleciona todos(*) oscamposde todos registrosda tabelaclientes.

2) Sel ect Codi go, NomeFr om Cl i ent esWher e Codi go > 10 And Codi go < 200

Seleciona oscamposCódigo e Nome databela Clientespara os registrosque tenham oscampo Código > (Maior) que 10 e <(Menor) que 200.

3) Sel ect *Fr om Cl i ent esGr oup By Ci dade

Seleciona todososcampose registrosda tabela Clientes agrupada pelo campo Cidade.

4) Sel ect *Fr om Cl i ent esOr der By Codi go

Seleciona todososcampose registrosda tabela Clientesordenada pelo campo Codigo.

5) Sel ect *Fr om For necedor es, Pr odut os

Page 29: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

29

Wher e For necedor es. Codi go = Pr odut os. Codi go

Seleciona todososcampose registrosdas tabelasde Fornecedorese Produtosque tenham ocampo codigo de Fornecedores igual ao campo Codigo de Produtos.

6) Sel ect *Fr om Cl i ent esWher e Nome Li ke “ S* ”

Seleciona todososcampose registrosda tabela de Clientescujo o campo Nomecomecepela letra S.

7) Updat e Funci onar i osSet Sal ar i o = Sal ar i o * 1. 2

Atualiza o campo Salario de todosos registrosda tabela de Funcionariospara o conteúdoatual multiplicado por 1.2 (aumento de 20%).

8) Updat e Funci onar i osSet Sal ar i o = Sal ar i o * 1. 2Wher e Car go = “ Di r et or ”

Atualiza o campo Salario de todosos registrosda tabela de Funcinariosque campo Cargoseja igual a “Diretor” parao conteúdo atual multiplicado por 1.2 (aumento de 20%).

9) Del et e Fr om Pr odut osWher e Codi go > 5 And Codi go < 20

Apagatodosos registrosda tabelaProdutosparaCodigo >(maior) que5 e< (menor) que20.

Const r ui ndo uma Consul t a Di nami cament e

Procedimento para criar construir umaconsulta em SQL dinamicamente.

Quer y1. Cl ose; { Fecha a quer y}Quer y1. SQL. Cl ear ; { Li mpa o cont eúdo da pr opr i edade SQL}Quer y1. SQL. Add( ‘ Sel ect * Fr om Count r y Wher e Name = “ Ar gent i na” ’ ) ;Quer y1. Open; { Abr e e execut a a Quer y}

Page 30: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

30

QuickReport

O Presente trabalho tem como objetivo demostrar os procedimentos para criar relatórios emprogramas feitos em Delphi utilizando o QuickReport. O Delphi 1.0 já possui um gerador derelatórios o ReportSmith que perde em desempenho e desenvoltura em relação ao QuickReport,além de necessitar de sua instalação prévia quando da sua utilização. Por ser um programa a partetorna-se muito lento em relação a o QuickReport que é uma biblioteca de componentes que passaafazer parte daaplicação quando da sua utilização apósa compilação.

O QuickReport é um gerador de relatóriospor banda. Seu relatório é construído em cima devários tipos de banda, onde são colocados componentes visíveis como campos de banco de dados,rótulos, imagense outros componentes imprimíveis.

QuickReport pode criar vários tipos de relatórios, de fato com um breve conhecimento deDelphi e um pouco de criatividade podeser usado para criar qualquer tipo de relatório.

Lembrar ainda que se os relatórios são criados como as forms, mas não com a intenção deser mostrado na tela como forms. Em uma Form relatório deve ser incluído um componenteTQuickReport, e você usa neste componente os métodos PRINT e PREVIEW para criar seurelatório. Não tente usar em um relatório os métodos de Form SHOW ou SHOWMODAL. UmaForm relatório nuncadeverá ser em sua aplicação o Form principal.

Page 31: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

31

Exceções

A Est r ut ur a Tr y…Fi nal l y…End

Seu código precisa garantir que, mesmo ocorrendo um erro, os recursosalocadossejamdesalocados. Entre estes recursosestão: arquivos, memória, recursosdo Windows, objetos.

Para garantir a desalocação dos recursos, usamosa estrutura abaixo:

{ Al oca os r ecur sos}t r y

{ Comandos que usam os r ecur sos}f i nal l y

{ Li ber a os r ecur sos}end;

A aplicação sempre executará os comandos inseridos na parte Finally do bloco, mesmo queuma execeção ocorra. Quando um erro ocorre no bloco protegido, o programa pula para a partefinally, chamada de código limpo, que é executado. Mesmo que não ocorra um erro, estescomandossão executados.

No código a seguir, alocamos memória e geramos um erro, ao tentarmosuma divisão por 0.Apesar do erro o programa liberaa memória alocada:

pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ;var

Apoi nt er : Poi nt er ;AnI nt eger , Adi vi dend : I nt eger ;

begi nAdi vi dend : = 0;Get Mem( Apoi nt er , 1024) ;t r y

Ani nt eger : = 10 Di v Adi v i dend;f i nal l y

Fr eeMem( Apoi nt er , 1024) ;end;

end;

A Est r ut ur a Tr y…Except …End

Um tratamento de exceção é um código que trata erros que ocorrem dentro de blocosprotegidos. Para definir um tratamento de exceção, utilize a seguinte construção:

t r y{ Comandos que você desej a pr ot eger }

except{ Comandos de t r at ament o de er r os}

end;

A aplicação irá executar os comandos na parte except somente se ocorrer um erro. Se naparte try você chamar uma rotina que não trata erros, e um erro ocorrer, ao voltar para este bloco aparte except será executada. Uma vez que aaplicação localizaum tratamento paraexceção ocorrida,os comandos são executados, e o objeto exceção é destruído. A execução continua até o fim dobloco.

Dentro da parte except definimos um código a ser executado para manipular tiposespecíficos de exceção. Por exemplo, o código abaixo trata o erro de divisão por zero, através daexceção EDivByZero:

Page 32: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

32

f unct i on Di vi são ( Soma, Numer o : I nt eger ) : I nt eger ;begi n

t r yResul t : = Soma di v Numer o;

excepton EDi vByZer o do Resul t 0;

end;end;

A palavra reservada on define respostaspara uma exceção. On está sempre junto de do, paramanipular a exceção.

Para ler informações específicas sobre o erro ocorrido, você usa uma variação da estruturaon…do, que provê uma variável temporária que engloba a exceção. Nesse caso, você poderá criarseu próprio quadro de mensagem contendo a string da mensagem daexceção:

t r y{ Comandos}

excepton E: EI nval i dOper at i on do

MessageDl g( ‘ Í gnor ando a exceção : ‘ +E. Message,mt i nf or mat i on, [ mbOk] , 0) ;end;

Onde avariável temporáriaE é do tipo EInvalidOperation.Você pode prover um tratamento padrão de erro para tratar exceções que não tem

tratamentosespecificados. Para isto, adicione uma parte else na parte except do bloco:

t r y{ Comandos}

excepton EPr i mei r oTi po do

{ Códi go especi f i co par a o pr i mei r o t i po de er r o]on ESegundoTi po do

{ Códi go especí f i co par a o segundo t i po de er r o}el se

{ Códi go padr ão de t r at ament o de er r os}end;

Além disso, você pode utilizar as exceções genéricas para tratar um erro, em vez de umaexceção específica. Por exemplo, se você quer tratar um erro relacionado a uma operação cominteiros, mas não sabe exatamente o erro, poderá utilizar a exceção EIntError, que é a exceçãogenérica da qual derivam outrasexceções relacionadasa inteiros:

t r y{ Comandos}

excepton EI nt Er r or do{ Códi go de t r at ament o de er r os}

end;Exceções Si l enci osas

Você pode definir exceções que não mostram um quadro de mensagem para o usuáriosquando aparecem. São chamadasexceçõessileciosas.

Page 33: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

33

O caminho mais curto paracriar esta exceção é atravésdaprocedureAbort. Estaprocedureautomaticamente gera uma exceção do tipo EAbort, que abortará a operação sem mostrar umamensagem.

O exemplo abaixo aborta a operação de inclusão de itens em um ListBox quando tentamosinserir o terceiro elemento:

begi nf or i : = 1 t o 10 do

begi nLi st Box1. i t ems. Add( I nt ToSt r ( i ) ) ;i f i = 3 t hen Abor t ;

end;end;

Page 34: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

34

Algoritmo – Prova

1ª Fase

pr ocedi ment o Passar _em_Del phi ;i ni c i o

Fazer Pr ova;se Not a>=7 ent ão Apr ovado senão Recuper acao;

f i m;

pr ocedi ment o Fazer Pr ova;i ni c i o

Not a: =0;Per gunt a1;se Respost a=Cer t a ent ão I ncr ement ar ( Not a) ;Per gunt a2;se Respost a=Cer t a ent ão I ncr ement ar ( Not a) ;Per gunt a3;se Respost a=Cer t a ent ão I ncr ement ar ( Not a) ;Per gunt a4;se Respost a=Cer t a ent ão I ncr ement ar ( Not a) ;Per gunt a5;se Respost a=Cer t a ent ão I ncr ement ar ( Not a) ;Per gunt a6;se Respost a=Cer t a ent ão I ncr ement ar ( Not a) ;Per gunt a7;se Respost a=Cer t a ent ão I ncr ement ar ( Not a) ;Per gunt a8;se Respost a=Cer t a ent ão I ncr ement ar ( Not a) ;Per gunt a9;se Respost a=Cer t a ent ão I ncr ement ar ( Not a) ;Per gunt a10;se Respost a=Cer t a ent ão I ncr ement ar ( Not a) ;

f i m;

pr ocedi ment o Apr ovado;i ni c i o

Most r ar Mensagem( ' Par abéns, você f oi apr ovado! ) ;f i m;

pr ocedi ment o Recuper acao;i ni c i o

Fazer Pr ova;se Not a>=7 ent ão Apr ovado senão Repr ovado;

f i m;

pr ocedi ment o Repr ovado;i ni c i o

Most r ar Mensagem( ' Você não consegui u, est ude mai s! ) ;f i m;

Page 35: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

35

2ª Fase

pr ocedi ment o Passar _em_Del phi ;i ni c i o

Fazer Pr ova;se Not a>=7 ent ão Apr ovado senão Recuper acao;

f i m;

pr ocedi ment o Fazer Pr ova;i ni c i o

Not a: =0;Fazer Per gunt a( ' 1 + 1 é i gual a 2?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' Um t r i ângul o t em 4 l ados?' ) ;se Respost a=' NÃO' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' O MSWor d é um si st ema oper aci onal ?' ) ;se Respost a=' NÃO' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' A água do mar é sal gada?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' A l et r a A é uma vogal ?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' Usamos cr ase ant es de subst ant i vo mascul i no?' ) ;se Respost a=' NÃO' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' Em St o A de Pádua t emos CETEP?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' Um quadr ado possui l ados i guai s?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' 5 * 3 = 16?' ) ;se Respost a=' NÃO' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' O ano t em 12 meses?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;

f i m;

pr ocedi ment o Apr ovado;i ni c i o

Most r ar Mensagem( ' Par abéns, você f oi apr ovado! ) ;f i m;

pr ocedi ment o Recuper acao;i ni c i o

Fazer Pr ova;se Not a>=7 ent ão Apr ovado senão Repr ovado;

f i m;

pr ocedi ment o Repr ovado;i ni c i o

Most r ar Mensagem( ' Você não consegui u, est ude mai s! ) ;f i m;

Page 36: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

36

3ª Fase

varNot a: I nt ei r o;Respost a: Text o;

pr ocedi ment o Passar _em_Del phi ;i ni c i o

Fazer Pr ova;se Not a>=7 ent ão Apr ovado senão Recuper acao;

f i m;

pr ocedi ment o Fazer Pr ova;i ni c i o

Not a: =0;Fazer Per gunt a( ' 1 + 1 é i gual a 2?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' Um t r i ângul o t em 4 l ados?' ) ;se Respost a=' NÃO' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' O MSWor d é um si st ema oper aci onal ?' ) ;se Respost a=' NÃO' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' A água do mar é sal gada?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' A l et r a A é uma vogal ?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' Usamos cr ase ant es de subst ant i vo mascul i no?' ) ;se Respost a=' NÃO' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' Em St o A de Pádua t emos CETEP?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' Um quadr ado possui l ados i guai s?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' 5 * 3 = 16?' ) ;se Respost a=' NÃO' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' O ano t em 12 meses?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;

f i m;

pr ocedi ment o Apr ovado;i ni c i o

Most r ar Mensagem( ' Par abéns, você f oi apr ovado! ) ;f i m;

pr ocedi ment o Recuper acao;i ni c i o

Fazer Pr ova;se Not a>=7 ent ão Apr ovado senão Repr ovado;

f i m;

pr ocedi ment o Repr ovado;i ni c i o

Most r ar Mensagem( ' Você não consegui u, est ude mai s! ) ;f i m;

Page 37: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

37

4ª Fase

varNot a: I nt ei r o;Respost a: Text o;

pr ocedi ment o Passar _em_Del phi ;i ni c i o

Fazer Pr ova;se Not a>=7 ent ão Apr ovado senão Recuper acao;

f i m;

pr ocedi ment o Fazer Pr ova;i ni c i o

Not a: =0;Fazer Per gunt a( ' 1 + 1 é i gual a 2?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' Um t r i ângul o t em 4 l ados?' ) ;se Respost a=' NÃO' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' O MSWor d é um si st ema oper aci onal ?' ) ;se Respost a=' NÃO' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' A água do mar é sal gada?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' A l et r a A é uma vogal ?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' Usamos cr ase ant es de subst ant i vo mascul i no?' ) ;se Respost a=' NÃO' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' Em St o A de Pádua t emos CETEP?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' Um quadr ado possui l ados i guai s?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' 5 * 3 = 16?' ) ;se Respost a=' NÃO' ent ão I ncr ement ar ( Not a) ;Fazer Per gunt a( ' O ano t em 12 meses?' ) ;se Respost a=' SI M' ent ão I ncr ement ar ( Not a) ;

f i m;

pr ocedi ment o Apr ovado;i ni c i o

Most r ar Mensagem( ' Par abéns, você f oi apr ovado! ) ;f i m;

pr ocedi ment o Recuper acao;i ni c i o

Fazer Pr ova;se Not a>=7 ent ão Apr ovado senão Repr ovado;

f i m;

pr ocedi ment o Repr ovado;i ni c i o

Most r ar Mensagem( ' Você não consegui u, est ude mai s! ) ;f i m;

pr ocedi ment o Fazer Per gunt a( Quest ao: Text o) ;i ni c i o

Most r ar _For mul ar i o; / / Com 2 bot ões, um SI M e um NÃO, aguar dar i mpl ement ação emDel phi .f i m;

Page 38: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

38

5ª Fase

varNot a: I nt eger ;Respost a: St r i ng;

pr ocedur e Passar _em_Del phi ;begi n

Fazer Pr ova;i f Not a>=7 t hen Apr ovado el se Recuper acao;

end;

pr ocedur e Fazer Pr ova;begi n

Not a: =0;Fazer Per gunt a( ' 1 + 1 é i gual a 2?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' Um t r i ângul o t em 4 l ados?' ) ;i f Respost a=' NÃO' t hen I nc( Not a) ;Fazer Per gunt a( ' O MSWor d é um si st ema oper aci onal ?' ) ;i f Respost a=' NÃO' t hen I nc( Not a) ;Fazer Per gunt a( ' A água do mar é sal gada?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' A l et r a A é uma vogal ?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' Usamos cr ai f ant es de subst ant i vo mascul i no?' ) ;i f Respost a=' NÃO' t hen I nc( Not a) ;Fazer Per gunt a( ' Em St o A de Pádua t emos CETEP?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' Um quadr ado possui l ados i guai s?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' 5 * 3 = 16?' ) ;i f Respost a=' NÃO' t hen I nc( Not a) ;Fazer Per gunt a( ' O ano t em 12 mei f s?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;

end;

pr ocedur e Apr ovado;begi n

ShowMessage( ' Par abéns, você f oi apr ovado! ) ;end;

pr ocedur e Recuper acao;begi n

Fazer Pr ova;i f Not a>=7 t hen Apr ovado el se Repr ovado;

end;

pr ocedur e Repr ovado;begi n

ShowMessage( ' Você não consi gui u, est ude mai s! ) ;end;

pr ocedur e Fazer Per gunt a( Quest ao: St r i ng) ;begi n

For m2. ShowModal ;end;

Compl ement ação par a f or mul ár i o de r espost as ( For m2) :

Acr escent ar 2 bot ões, ao cl i car no bot ão SI M: Respost a: =' SI M' e f echa, ao cl i carno bot ão NÃO: Respost a: =' NÃO' e f echa;

Page 39: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

39

pr ocedur e Bot ao_Si mCl i ck;begi n

Respost a: =' SI M' ;Cl ose;

end;

pr ocedur e Bot ao_NaoCl i ck;begi n

Respost a: =NÃO' ;Cl ose;

end;

Page 40: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

40

Projeto – Prova

1ª Fase

uni t Pr ovaU;

/ / 1ª Fase/ / I ni c i a a pr ova/ / Faz 10 per gunt as/ / Ver i f i ca not a e r esul t ado

i nt er f ace

usesWi ndows, Messages, SysUt i l s, Var i ant s, Cl asses, Gr aphi cs, Cont r ol s , For ms,Di al ogs, St dCt r l s, Menus, ComCt r l s , Ext Ct r l s , But t ons, Ext Dl gs;

t ypeTFor m1 = cl ass( TFor m)

But t on1: TBut t on;pr ocedur e But t on1Cl i ck( Sender : TObj ect ) ;

pr i vat e{ Pr i vat e decl ar at i ons }

publ i c{ Publ i c decl ar at i ons }

end;

varFor m1: TFor m1;Not a: I nt eger ;Respost a: St r i ng;

i mpl ement at i on

uses Per gunt aU;

{ $R * . df m}

pr ocedur e Fazer Per gunt a( Quest ao: St r i ng) ; / / Abr e o f or mul ár i o com aper gunt abegi n

For m2. Label 1. Capt i on: =Quest ao;For m2. ShowModal ;

end;

pr ocedur e Fazer Pr ova;begi n

For m1. Hi de;Not a: =0;Fazer Per gunt a( ' 1 + 1 é i gual a 2?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ; / / Ver i f i ca se a r espost a est á

cor r et a ou não, se est i ver , i ncr ement a a not aFazer Per gunt a( ' Um t r i ângul o t em 4 l ados?' ) ;i f Respost a=' NÃO' t hen I nc( Not a) ;Fazer Per gunt a( ' O MSWor d é um si st ema oper aci onal ?' ) ;i f Respost a=' NÃO' t hen I nc( Not a) ;Fazer Per gunt a( ' A água do mar é sal gada?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' A l et r a A é uma vogal ?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' Usamos cr ase ant es de subst ant i vo mascul i no?' ) ;i f Respost a=' NÃO' t hen I nc( Not a) ;

Page 41: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

41

Fazer Per gunt a( ' Em St o A de Pádua t emos CETEP?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' Um quadr ado possui l ados i guai s?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' 5 * 3 = 16?' ) ;i f Respost a=' NÃO' t hen I nc( Not a) ;Fazer Per gunt a( ' O ano t em 12 meses?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;For m1. Show;

end;

pr ocedur e Apr ovado;begi n

ShowMessage( ' Par abéns, você f oi apr ovado com not a ' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Repr ovado;begi n

ShowMessage( ' Você não consegui u, est ude mai s! Sua not a f oi' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Recuper acao; / / Ref az a pr ovabegi n

ShowMessage( ' At enção, você f oi par a a r ecuper ação com not a' +I nt ToSt r ( Not a) +' . ' ) ;

Fazer Pr ova;i f Not a>=7 t hen Apr ovado el se Repr ovado;

end;

pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ; / / I ní ci obegi n

Fazer Pr ova;i f Not a>=7 t hen Apr ovado el se Recuper acao;

end;

end.

Page 42: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

42

2ª Fase

uni t Pr ovaU;

/ / 2ª Fase/ / Rel ógi o/ / Bot ão DESI STI R/ / I magem/ / Menus

i nt er f ace

usesWi ndows, Messages, SysUt i l s, Var i ant s, Cl asses, Gr aphi cs, Cont r ol s , For ms,Di al ogs, St dCt r l s, Menus, ComCt r l s , Ext Ct r l s , But t ons, Ext Dl gs;

t ypeTFor m1 = cl ass( TFor m)

But t on1: TBut t on;St at usBar 1: TSt at usBar ;Mai nMenu1: TMai nMenu;Ar qui vo1: TMenuI t em;Sai r 1: TMenuI t em;Ti mer 1: TTi mer ;Bi t Bt n2: TBi t Bt n;I mage1: TI mage;Conf i gur ao1: TMenuI t em;Sobr e1: TMenuI t em;OpenPi ct ur eDi al og1: TOpenPi ct ur eDi al og;I magem: TMenuI t em;Tr ocar 1: TMenuI t em;Nor mal 1: TMenuI t em;Est i car 1: TMenuI t em;Sal var 1: TMenuI t em;pr ocedur e But t on1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sai r 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Ti mer 1Ti mer ( Sender : TObj ect ) ;pr ocedur e Bi t Bt n2MouseMove( Sender : TObj ect ; Shi f t : TShi f t St at e; X, Y:

I nt eger ) ;pr ocedur e Bi t Bt n2Cl i ck( Sender : TObj ect ) ;pr ocedur e Tr ocar 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Nor mal 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Est i car 1Cl i ck( Sender : TObj ect ) ;

pr i vat e{ Pr i vat e decl ar at i ons }

publ i c{ Publ i c decl ar at i ons }

end;

varFor m1: TFor m1;Not a: I nt eger ;Respost a: St r i ng;

i mpl ement at i on

uses Per gunt aU;

{ $R * . df m}

pr ocedur e Fazer Per gunt a( Quest ao: St r i ng) ; / / Abr e o f or mul ár i obegi n

For m2. Label 1. Capt i on: =Quest ao;

Page 43: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

43

For m2. ShowModal ;end;

pr ocedur e Fazer Pr ova;begi n

For m1. Hi de;Not a: =0;Fazer Per gunt a( ' 1 + 1 é i gual a 2?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ; / / Ver i f i ca se a r espost a est á

cor r et a ou não, se est i ver , i ncr ement a a not aFazer Per gunt a( ' Um t r i ângul o t em 4 l ados?' ) ;i f Respost a=' NÃO' t hen I nc( Not a) ;Fazer Per gunt a( ' O MSWor d é um si st ema oper aci onal ?' ) ;i f Respost a=' NÃO' t hen I nc( Not a) ;Fazer Per gunt a( ' A água do mar é sal gada?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' A l et r a A é uma vogal ?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' Usamos cr ase ant es de subst ant i vo mascul i no?' ) ;i f Respost a=' NÃO' t hen I nc( Not a) ;Fazer Per gunt a( ' Em St o A de Pádua t emos CETEP?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' Um quadr ado possui l ados i guai s?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;Fazer Per gunt a( ' 5 * 3 = 16?' ) ;i f Respost a=' NÃO' t hen I nc( Not a) ;Fazer Per gunt a( ' O ano t em 12 meses?' ) ;i f Respost a=' SI M' t hen I nc( Not a) ;For m1. Show;

end;

pr ocedur e Apr ovado;begi n

ShowMessage( ' Par abéns, você f oi apr ovado com not a ' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Repr ovado;begi n

ShowMessage( ' Você não consegui u, est ude mai s! Sua not a f oi' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Recuper acao; / / Ref az a pr ovabegi n

ShowMessage( ' At enção, você f oi par a a r ecuper ação com not a' +I nt ToSt r ( Not a) +' . ' ) ;

Fazer Pr ova;i f Not a>=7 t hen Apr ovado el se Repr ovado;

end;

pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ; / / I ní ci obegi n

Fazer Pr ova;i f Not a>=7 t hen Apr ovado el se Recuper acao;

end;

pr ocedur e TFor m1. Ti mer 1Ti mer ( Sender : TObj ect ) ; / / Most r a as hor as, de um em umsegundobegi n

St at usBar 1. Panel s[ 0] . Text : =For mat Dat eTI me( ' DD/ MM/ YYYY HH: MM: SS' , Now) ;end;

pr ocedur e TFor m1. Bi t Bt n2MouseMove( Sender : TObj ect ; Shi f t : TShi f t St at e; X, Y:I nt eger ) ; / / Bot ão desi st i r

Page 44: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

44

begi ni f Bi t Bt n2. Lef t =184 t hen Bi t Bt n2. Lef t : =284 el se Bi t Bt n2. Lef t : =184;

end;

pr ocedur e TFor m1. Bi t Bt n2Cl i ck( Sender : TObj ect ) ;begi n

ShowMessage( ' Desi s t e não! ' ) ;end;

pr ocedur e TFor m1. Sai r 1Cl i ck( Sender : TObj ect ) ; / / Fecha o pr ogr amabegi n

Appl i cat i on. Ter mi nat e;end;

pr ocedur e TFor m1. Tr ocar 1Cl i ck( Sender : TObj ect ) ; / / Tr oca a i magembegi n

i f OpenPi ct ur eDi al og1. Execut e t henI mage1. Pi c t ur e. LoadFr omFi l e( OpenPi ct ur eDi al og1. Fi l eName) ;end;

pr ocedur e TFor m1. Nor mal 1Cl i ck( Sender : TObj ect ) ; / / I magem nor malbegi n

I mage1. St r et ch: =Fal se;end;

pr ocedur e TFor m1. Est i car 1Cl i ck( Sender : TObj ect ) ; / / I magem est i cadabegi n

I mage1. St r et ch: =Tr ue;end;

end.

Page 45: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

45

3ª Fase

uni t Pr ovaU;

/ / 3ª Fase/ / Rot i nas par a chamar Cal cul ador a, Pai nt e Wor dPad/ / Concei t o de mat r i z :

/ / Mat r i z é uma var i ável que possui vár i as posi ções, nest e caso, 15posi ções

/ / Tot al de 15 per gunt as e 15 r espost as cer t as, cada per gunt a t em suapr ópr i a r espost a

i nt er f ace

usesWi ndows, Messages, SysUt i l s, Var i ant s, Cl asses, Gr aphi cs, Cont r ol s , For ms,Di al ogs, St dCt r l s, Menus, ComCt r l s , Ext Ct r l s , But t ons, Ext Dl gs;

t ypeTFor m1 = cl ass( TFor m)

But t on1: TBut t on;St at usBar 1: TSt at usBar ;Mai nMenu1: TMai nMenu;Ar qui vo1: TMenuI t em;Sai r 1: TMenuI t em;Ti mer 1: TTi mer ;I mage1: TI mage;Conf i gur ao1: TMenuI t em;OpenPi ct ur eDi al og1: TOpenPi ct ur eDi al og;I magem: TMenuI t em;Tr ocar 1: TMenuI t em;Nor mal 1: TMenuI t em;Est i car 1: TMenuI t em;Sal var 1: TMenuI t em;Fer r ament as1: TMenuI t em;Aj uda1: TMenuI t em;Sobr e1: TMenuI t em;Cal cul ador a1: TMenuI t em;Pai nt 1: TMenuI t em;Wor dPad1: TMenuI t em;pr ocedur e But t on1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sai r 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Ti mer 1Ti mer ( Sender : TObj ect ) ;pr ocedur e Tr ocar 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Nor mal 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Est i car 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Cal cul ador a1Cl i ck( Sender : TObj ect ) ;pr ocedur e Pai nt 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Wor dPad1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sobr e1Cl i ck( Sender : TObj ect ) ;

pr i vat e{ Pr i vat e decl ar at i ons }

publ i c{ Publ i c decl ar at i ons }

end;

varFor m1: TFor m1;Not a: I nt eger ;Respost a: St r i ng;Per gunt as, Respost as: ar r ay [ 1. . 15] of St r i ng; / / As per gunt as e r espost as

agor a est ão em mat r i zes de 15 posi ções

Page 46: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

46

i mpl ement at i on

uses Per gunt aU, Sobr eU;

{ $R * . df m}

pr ocedur e Fazer Per gunt a( Quest ao: St r i ng) ; / / Abr e o f or mul ár i obegi n

For m2. Label 1. Capt i on: =Quest ao;For m2. ShowModal ;

end;

pr ocedur e Fazer Pr ova;var

X: I nt eger ;begi n

For m1. Hi de;Not a: =0;f or X: =1 t o 15 do / / Loop par a f azer as 15

per gunt as, da 1ª a 15ªbegi n

Fazer Per gunt a( Per gunt as[ X] ) ;i f Respost a=Respost as[ X] t hen I nc( Not a) ; / / Ver i f i ca se a r espost a est á

cor r et a ou não, se est i ver , i ncr ement a a not aend;

For m1. Show;end;

pr ocedur e Apr ovado;begi n

ShowMessage( ' Par abéns, você f oi apr ovado com not a ' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Repr ovado;begi n

ShowMessage( ' Você não consegui u, est ude mai s! Sua not a f oi' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Recuper acao; / / Ref az a pr ovabegi n

ShowMessage( ' At enção, você f oi par a a r ecuper ação com not a' +I nt ToSt r ( Not a) +' . ' ) ;

Fazer Pr ova;i f Not a>=7 t hen Apr ovado el se Repr ovado;

end;

pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ; / / I ní ci obegi n

/ / Aqui car r aga- se a mat r i z com as 15 per gunt as, da 1ª a 15ªPer gunt as[ 1] : =' O Cor el Dr aw t r abal ha com desenhos vet or i ai s?' ;Respost as[ 1] : =' SI M' ;Per gunt as[ 2] : =' A f er r r ament a Mão- Li vr e cr i a l i nhas e cur vas?' ;Respost as[ 2] : =' SI M' ;Per gunt as[ 3] : =' A f er r ament a El i pse move os nós de um obj et o?' ;Respost as[ 3] : =' NÃO' ;Per gunt as[ 4] : =' Mudamos a cor do cont or no de um obj et o com o dupl o cl i que

nest e?' ;Respost as[ 4] : =' NÃO' ;Per gunt as[ 5] : =' O t ec l a de at al ho F4 cor r esponde ao Zoom?' ;Respost as[ 5] : =' SI M' ;Per gunt as[ 6] : =' Par a col ocar um t ext o em um cami nho, di gi t amos di r et ament e

nest e cami nho?' ;

Page 47: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

47

Respost as[ 6] : =' SI M' ;Per gunt as[ 7] : =' O at al ho da f er r ament a For ma é a t ecl a F11?' ;Respost as[ 7] : =' NÃO' ;Per gunt as[ 8] : =' Par a apagar par t e de um obj et o usamos a f er r ament a Faca?' ;Respost as[ 8] : = ' NÃO' ;Per gunt as[ 9] : =' Par a t r abal har cor r et ament e com l i nhas- gui a devemos aci onar o

bot ão " Al i nhar pel as l i nhas- gui a" ?' ;Respost as[ 9] : =' SI M' ;Per gunt as[ 10] : =' A t ecl a CTRL auxi l i a a cr i ar obj et os per f ei t os?' ;Respost as[ 10] : =' SI M' ;Per gunt as[ 11] : =' Com o ef ei t o Gr adi ent e col or i mos um obj et o sel ec i onado?' ;Respost as[ 11] : =' SI M' ;Per gunt as[ 12] : =' Par a gi r ar um obj et o usamos a f er r ament a Mi st ur a I nt er at i va?' ;Respost as[ 12] : =' NÃO' ;Per gunt as[ 13] : =' O comando desf azer vol t a ações ef et uadas?' ;Respost as[ 13] : =' SI M' ;Per gunt as[ 14] : =' Um model o de papel t i po A4 dei t ado é t i po pai sagem?' ;Respost as[ 14] : =' SI M' ;Per gunt as[ 15] : =' Usamos o Text o Ar t í s t i co par a di gi t ar gr andes quant i dades de

t ext o?' ;Respost as[ 15] : =' NÃO' ;/ / Fi m da mat r i zFazer Pr ova;i f Not a>=7 t hen Apr ovado el se Recuper acao;

end;

pr ocedur e TFor m1. Ti mer 1Ti mer ( Sender : TObj ect ) ; / / Most r a as hor as, de um em umsegundobegi n

St at usBar 1. Panel s[ 0] . Text : =For mat Dat eTI me( ' DD/ MM/ YYYY HH: MM: SS' , Now) ;end;

pr ocedur e TFor m1. Sai r 1Cl i ck( Sender : TObj ect ) ; / / Fecha o pr ogr amabegi n

Appl i cat i on. Ter mi nat e;end;

pr ocedur e TFor m1. Tr ocar 1Cl i ck( Sender : TObj ect ) ; / / Tr oca a i magembegi n

i f OpenPi ct ur eDi al og1. Execut e t henI mage1. Pi c t ur e. LoadFr omFi l e( OpenPi ct ur eDi al og1. Fi l eName) ;end;

pr ocedur e TFor m1. Nor mal 1Cl i ck( Sender : TObj ect ) ; / / I magem nor malbegi n

I mage1. St r et ch: =Fal se;end;

pr ocedur e TFor m1. Est i car 1Cl i ck( Sender : TObj ect ) ; / / I magem est i cadabegi n

I mage1. St r et ch: =Tr ue;end;

pr ocedur e TFor m1. Cal cul ador a1Cl i ck( Sender : TObj ect ) ; / / Chama a cal cul ador a doWi ndowsbegi n

Wi nExec( ' C: \ Wi ndows\ Cal c. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Pai nt 1Cl i ck( Sender : TObj ect ) ; / / Chama o Pai ntbegi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ MSPai nt . exe' , SW_NORMAL) ;end;

Page 48: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

48

pr ocedur e TFor m1. Wor dPad1Cl i ck( Sender : TObj ect ) ; / / Chama o Wor dPadbegi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ Wor dPad. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Sobr e1Cl i ck( Sender : TObj ect ) ; / / Most r a o f or mul ár i o SOBREbegi n

For m3. ShowModal ;end;

end.

Page 49: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

49

4ª Fase

uni t Pr ovaU;

/ / 4ª Fase/ / Acer t o das var i ávei s , par a f ac i l i t ar o ent endi ment o/ / Mudança nas per gunt as:

/ / Cada per gunt a agor a possui 3 opções de r espost as ( ant es er a SI M ouNÃO)

/ / Mant eve a mat r i z de per gunt as/ / Cr i ou- se 3 mat r i zes com as opções, de 1 a 15, poi s são 15 per gunt as/ / A mat r i z de r espost a não possui mai s SI M ou NÃO, possui a opção

cor r et a agor a, A, B ou C./ / Ret i r ado os bot ões de SI M e NÃO do For m2 e acr escent ado 3 Radi oBut t on, par ar eceber as opções

i nt er f ace

usesWi ndows, Messages, SysUt i l s, Var i ant s, Cl asses, Gr aphi cs, Cont r ol s , For ms,Di al ogs, St dCt r l s, Menus, ComCt r l s , Ext Ct r l s , But t ons, Ext Dl gs;

t ypeTFor m1 = cl ass( TFor m)

But t on1: TBut t on;St at usBar 1: TSt at usBar ;Mai nMenu1: TMai nMenu;Ar qui vo1: TMenuI t em;Sai r 1: TMenuI t em;Ti mer 1: TTi mer ;I mage1: TI mage;Conf i gur ao1: TMenuI t em;OpenPi ct ur eDi al og1: TOpenPi ct ur eDi al og;I magem: TMenuI t em;Tr ocar 1: TMenuI t em;Nor mal 1: TMenuI t em;Est i car 1: TMenuI t em;Sal var 1: TMenuI t em;Fer r ament as1: TMenuI t em;Aj uda1: TMenuI t em;Sobr e1: TMenuI t em;Cal cul ador a1: TMenuI t em;Pai nt 1: TMenuI t em;Wor dPad1: TMenuI t em;pr ocedur e But t on1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sai r 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Ti mer 1Ti mer ( Sender : TObj ect ) ;pr ocedur e Tr ocar 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Nor mal 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Est i car 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Cal cul ador a1Cl i ck( Sender : TObj ect ) ;pr ocedur e Pai nt 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Wor dPad1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sobr e1Cl i ck( Sender : TObj ect ) ;

pr i vat e{ Pr i vat e decl ar at i ons }

publ i c{ Publ i c decl ar at i ons }

end;

varFor m1: TFor m1;Not a: I nt eger ;

Page 50: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

50

Mi nha_Respost a: St r i ng;Per gunt as, Respost a_Cer t a, Opcao_A, Opcao_B, Opcao_C: ar r ay [ 1. . 15] of St r i ng;

/ / As per gunt as e r espost as agor a est ão em mat r i zes de 15 posi ções, sendo queexi s t e 3 opções de r espost as

i mpl ement at i on

uses Per gunt aU, Sobr eU;

{ $R * . df m}

pr ocedur e Fazer Per gunt a( Quest ao, Pr i mei r a_Opcao, Segunda_Opcao, Ter cei r a_Opcao:St r i ng) ; / / Most r a a per gunt a e 3 opções de r espost abegi n

For m2. Label 1. Capt i on: =Quest ao;For m2. Radi oBut t on1. Capt i on: =Pr i mei r a_Opcao;For m2. Radi oBut t on2. Capt i on: =Segunda_Opcao;For m2. Radi oBut t on3. Capt i on: =Ter cei r a_Opcao;For m2. ShowModal ;

end;

pr ocedur e Fazer Pr ova;var

X: I nt eger ;begi n

For m1. Hi de;Not a: =0;f or X: =1 t o 15 do / / As per gunt as e r espost as

agor a est ão em mat r i zes de 15 posi çõesbegi n

Fazer Per gunt a( Per gunt as[ X] , Opcao_A[ X] , Opcao_B[ X] , Opcao_C[ X] ) ;i f Mi nha_Respost a=Respost a_Cer t a[ X] t hen I nc( Not a) ; / / Ver i f i ca se a

r espost a est á cor r et a ou não, se est i ver , i ncr ement a a not aend;

For m1. Show;end;

pr ocedur e Apr ovado;begi n

ShowMessage( ' Par abéns, você f oi apr ovado com not a ' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Repr ovado;begi n

ShowMessage( ' Você não consegui u, est ude mai s! Sua not a f oi' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Recuper acao; / / Ref az a pr ovabegi n

ShowMessage( ' At enção, você f oi par a a r ecuper ação com not a' +I nt ToSt r ( Not a) +' . ' ) ;

Fazer Pr ova;i f Not a>=7 t hen Apr ovado el se Repr ovado;

end;

pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ; / / I ní ci obegi n

/ / Aqui car r aga- se a mat r i z com as 15 per gunt as, da 1ª a 15ª/ / Par a cada per gunt a exi st em 3 opções de r espost as/ / Par a cada per gunt a e 3 opções, exi st e a opção cor r et a/ / Temos agor a 5 mat r i zes, t odas de 1 a 15, com per gunt a, 3 opções e r espost aPer gunt as[ 1] : =' O Cor el Dr aw t r abal ha pr i nci pal ment e com?' ;Opcao_A[ 1] : =' Desenhos vet or i ai s e gr áf i cos. ' ;

Page 51: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

51

Opcao_B[ 1] : =' I magens. ' ;Opcao_C[ 1] : =' Fot os. ' ;Respost a_Cer t a[ 1] : =' A' ;

Per gunt as[ 2] : =' A f er r r ament a Mão- Li vr e, cr i a r api dament e?' ;Opcao_A[ 2] : =' El i pses per f ei t as. ' ;Opcao_B[ 2] : =' Ret ângul os per f ei t os. ' ;Opcao_C[ 2] : =' Li nhas e cur vas. ' ;Respost a_Cer t a[ 2] : =' C' ;

Per gunt as[ 3] : =' Qual f er r ament a é usada par a cr i ar , apagar ou mover os nós dosobj et o?' ;

Opcao_A[ 3] : =' El i pse. ' ;Opcao_B[ 3] : =' Ret ângul o. ' ;Opcao_C[ 3] : =' For ma. ' ;Respost a_Cer t a[ 3] : =' C' ;

Per gunt as[ 4] : =' Como mudamos a cor do cont or no de um obj et o sel ec i onado?' ;Opcao_A[ 4] : =' Cl i cando com o bot ão esquer do do mouse na cor desej ada. ' ;Opcao_B[ 4] : =' Cl i cando com o bot ão di r ei t o do mouse na cor desej ada. ' ;Opcao_C[ 4] : =' Ef et uando um dupl o cl í que no obj et o. ' ;Respost a_Cer t a[ 4] : =' B' ;

Per gunt as[ 5] : =' Par a que ser vem os at al hos CTRL+D, CTRL+G e F4,r espect i vament e?' ;

Opcao_A[ 5] : =' Dupl i car , agr upar e zoom par a t odos. ' ;Opcao_B[ 5] : =' Agr upar , dupl i car e zoom par a t odos. ' ;Opcao_C[ 5] : =' Zoom par a t odos, agr upar e dupl i car . ' ;Respost a_Cer t a[ 5] : =' A' ;

Per gunt as[ 6] : =' Qual a manei r a mai s f ác i l de col ocar um t ext o a um cami nho?' ;Opcao_A[ 6] : =' Ut i l i zando a f er r ament a For ma. ' ;Opcao_B[ 6] : =' Di gi t ando o t ext o di r et ament e ao cami nho. ' ;Opcao_C[ 6] : =' Agr upando o t ext o ao cami nho. ' ;Respost a_Cer t a[ 6] : =' B' ;

Per gunt as[ 7] : =' Qual o at al ho da f er r ament a For ma?' ;Opcao_A[ 7] : =' F10. ' ;Opcao_B[ 7] : =' F11. ' ;Opcao_C[ 7] : =' F12. ' ;Respost a_Cer t a[ 7] : =' A' ;

Per gunt as[ 8] : =' Par a apagar par t e de um obj et o devemos ut i l i zar a f er r ament a?' ;Opcao_A[ 8] : =' Faca. ' ;Opcao_B[ 8] : =' Bor r acha. ' ;Opcao_C[ 8] : =' Sel ecão. ' ;Respost a_Cer t a[ 8] : =' B' ;

Per gunt as[ 9] : =' Par a t r abal har cor r et ament e com l i nhas- gui a, f az- se necessár i oaci onar o bot ão " Al i nhar pel as l i nhas- gui a" ?' ;

Opcao_A[ 9] : =' Si m. ' ;Opcao_B[ 9] : =' Não. ' ;Opcao_C[ 9] : =' Qual quer uma das al t er nat i va é cor r et a. ' ;Respost a_Cer t a[ 9] : =' A' ;

Per gunt as[ 10] : =' Qual a t ec l a que auxi l i a a cr i acão de obj et os per f ei t os?' ;Opcao_A[ 10] : =' SHI FT. ' ;Opcao_B[ 10] : =' CTRL. ' ;Opcao_C[ 10] : =' ENTER. ' ;Respost a_Cer t a[ 10] : =' B' ;

Per gunt as[ 11] : =' Os ef ei t os de cor como pr eenchi ment o Gr adi ent e e a Text ur a sãof ei t os com as f er r ament as?' ;

Opcao_A[ 11] : =' Mi st ur a i nt er at i va. ' ;

Page 52: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

52

Opcao_B[ 11] : =' Pr eenchi ment o i nt er at i vo. ' ;Opcao_C[ 11] : =' Ext r usão i nt er at i va. ' ;Respost a_Cer t a[ 11] : =' B' ;

Per gunt as[ 12] : =' Par a gi r ar um obj et o, usamos qual f er r ament a par a sel eci oná-l o?' ;

Opcao_A[ 12] : =' For ma. ' ;Opcao_B[ 12] : =' Sel ecão. ' ;Opcao_C[ 12] : =' Mi st ur a. ' ;Respost a_Cer t a[ 12] : =' B' ;

Per gunt as[ 13] : =' O comando desf azer ser ve par a?' ;Opcao_A[ 13] : =' Cr i ar novos obj et os. ' ;Opcao_B[ 13] : =' Vol t ar as ações. ' ;Opcao_C[ 13] : =' Nehuma das opções. ' ;Respost a_Cer t a[ 13] : =' B' ;

Per gunt as[ 14] : =' Quando quer mos usar uma f ol ha de papel model o A4 dei t ada, porexempl o, devemos mudar ?' ;

Opcao_A[ 14] : =' A or i ent ação da f ol ha par a r et r at o. ' ;Opcao_B[ 14] : =' A or i ent ação da f ol ha par a pai sagem. ' ;Opcao_C[ 14] : =' Nenhuma das opções. ' ;Respost a_Cer t a[ 14] : =' B' ;

Per gunt as[ 15] : =' O t i po de t ext o de par ágr af o e mai s ut i l i zado par a?' ;Opcao_A[ 15] : =' Di gi t ar gr andes quant i dades de t ext o. ' ;Opcao_B[ 15] : =' Di gi t ar pequenas quant i dades de t ext o. ' ;Opcao_C[ 15] : =' Nenhuma das opções. ' ;Respost a_Cer t a[ 15] : =' A' ;/ / Fi m da mat r i z

Fazer Pr ova;i f Not a>=7 t hen Apr ovado el se Recuper acao;

end;

pr ocedur e TFor m1. Ti mer 1Ti mer ( Sender : TObj ect ) ; / / Most r a as hor as, de um em umsegundobegi n

St at usBar 1. Panel s[ 0] . Text : =For mat Dat eTI me( ' DD/ MM/ YYYY HH: MM: SS' , Now) ;end;

pr ocedur e TFor m1. Sai r 1Cl i ck( Sender : TObj ect ) ; / / Fecha o pr ogr amabegi n

Appl i cat i on. Ter mi nat e;end;

pr ocedur e TFor m1. Tr ocar 1Cl i ck( Sender : TObj ect ) ; / / Tr oca a i magembegi n

i f OpenPi ct ur eDi al og1. Execut e t henI mage1. Pi c t ur e. LoadFr omFi l e( OpenPi ct ur eDi al og1. Fi l eName) ;end;

pr ocedur e TFor m1. Nor mal 1Cl i ck( Sender : TObj ect ) ; / / I magem nor malbegi n

I mage1. St r et ch: =Fal se;end;

pr ocedur e TFor m1. Est i car 1Cl i ck( Sender : TObj ect ) ; / / I magem est i cadabegi n

I mage1. St r et ch: =Tr ue;end;

pr ocedur e TFor m1. Cal cul ador a1Cl i ck( Sender : TObj ect ) ; / / Chama a cal cul ador a doWi ndows

Page 53: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

53

begi nWi nExec( ' C: \ Wi ndows\ Cal c. exe' , SW_NORMAL) ;

end;

pr ocedur e TFor m1. Pai nt 1Cl i ck( Sender : TObj ect ) ; / / Chama o Pai ntbegi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ MSPai nt . exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Wor dPad1Cl i ck( Sender : TObj ect ) ; / / Chama o Wor dPadbegi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ Wor dPad. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Sobr e1Cl i ck( Sender : TObj ect ) ; / / Most r a o f or mul ár i o SOBREbegi n

For m3. ShowModal ;end;

end.

Page 54: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

54

5ª Fase

uni t Pr ovaU;

/ / 5ª Fase/ / Acr escent ada a opção par a escol her o númer o de per gunt as, var i ávelQuant _Per gunt as r ecebe o val or de Spi nEdi t 1/ / A not a par a passar agor a não é mai s 7 e si m a f ór mul a 7* Quant _Per gunt as/ 100,que cor r esponde a 70% de acer t os/ / Mel hor as no For m2

i nt er f ace

usesWi ndows, Messages, SysUt i l s, Var i ant s, Cl asses, Gr aphi cs, Cont r ol s , For ms,Di al ogs, St dCt r l s, Menus, ComCt r l s , Ext Ct r l s , But t ons, Ext Dl gs, Spi n;

t ypeTFor m1 = cl ass( TFor m)

But t on1: TBut t on;St at usBar 1: TSt at usBar ;Mai nMenu1: TMai nMenu;Ar qui vo1: TMenuI t em;Sai r 1: TMenuI t em;Ti mer 1: TTi mer ;I mage1: TI mage;Conf i gur ao1: TMenuI t em;OpenPi ct ur eDi al og1: TOpenPi ct ur eDi al og;I magem: TMenuI t em;Tr ocar 1: TMenuI t em;Nor mal 1: TMenuI t em;Est i car 1: TMenuI t em;Sal var 1: TMenuI t em;Fer r ament as1: TMenuI t em;Aj uda1: TMenuI t em;Sobr e1: TMenuI t em;Cal cul ador a1: TMenuI t em;Pai nt 1: TMenuI t em;Wor dPad1: TMenuI t em;Spi nEdi t 1: TSpi nEdi t ;pr ocedur e But t on1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sai r 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Ti mer 1Ti mer ( Sender : TObj ect ) ;pr ocedur e Tr ocar 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Nor mal 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Est i car 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Cal cul ador a1Cl i ck( Sender : TObj ect ) ;pr ocedur e Pai nt 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Wor dPad1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sobr e1Cl i ck( Sender : TObj ect ) ;

pr i vat e{ Pr i vat e decl ar at i ons }

publ i c{ Publ i c decl ar at i ons }

end;

varFor m1: TFor m1;Mi nha_Respost a: St r i ng;Quant _Per gunt as, Not a: I nt eger ;Per gunt as, Respost a_Cer t a, Opcao_A, Opcao_B, Opcao_C: ar r ay [ 1. . 15] of St r i ng;

Page 55: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

55

i mpl ement at i on

uses Per gunt aU, Sobr eU;

{ $R * . df m}

pr ocedur e Fazer Per gunt a( Quest ao, Pr i mei r a_Opcao, Segunda_Opcao, Ter cei r a_Opcao:St r i ng) ;begi n

For m2. Label 1. Capt i on: =Quest ao;For m2. Radi oBut t on1. Capt i on: =Pr i mei r a_Opcao;For m2. Radi oBut t on2. Capt i on: =Segunda_Opcao;For m2. Radi oBut t on3. Capt i on: =Ter cei r a_Opcao;For m2. ShowModal ;

end;

pr ocedur e Fazer Pr ova;var

X: I nt eger ;begi n

For m1. Hi de;Not a: =0;f or X: =1 t o Quant _Per gunt as do

begi nFazer Per gunt a( Per gunt as[ X] , Opcao_A[ X] , Opcao_B[ X] , Opcao_C[ X] ) ;i f Mi nha_Respost a=Respost a_Cer t a[ X] t hen I nc( Not a) ;

end;For m1. Show;

end;

pr ocedur e Apr ovado;begi n

ShowMessage( ' Par abéns, você f oi apr ovado com not a ' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Repr ovado;begi n

ShowMessage( ' Você não consegui u, est ude mai s! Sua not a f oi' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Recuper acao;begi n

ShowMessage( ' At enção, você f oi par a a r ecuper ação com not a' +I nt ToSt r ( Not a) +' . ' ) ;

Fazer Pr ova;i f Not a>=7* Quant _Per gunt as/ 100 t hen Apr ovado el se Repr ovado;

end;

pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ;begi n

Quant _Per gunt as: =Spi nEdi t 1. Val ue;Per gunt as[ 1] : =' O Cor el Dr aw t r abal ha pr i nci pal ment e com?' ;Opcao_A[ 1] : =' Desenhos vet or i ai s e gr áf i cos. ' ;Opcao_B[ 1] : =' I magens. ' ;Opcao_C[ 1] : =' Fot os. ' ;Respost a_Cer t a[ 1] : =' A' ;

Per gunt as[ 2] : =' A f er r r ament a Mão- Li vr e, cr i a r api dament e?' ;Opcao_A[ 2] : =' El i pses per f ei t as. ' ;Opcao_B[ 2] : =' Ret ângul os per f ei t os. ' ;Opcao_C[ 2] : =' Li nhas e cur vas. ' ;Respost a_Cer t a[ 2] : =' C' ;

Page 56: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

56

Per gunt as[ 3] : =' Qual f er r ament a é usada par a cr i ar , apagar ou mover os nós dosobj et o?' ;

Opcao_A[ 3] : =' El i pse. ' ;Opcao_B[ 3] : =' Ret ângul o. ' ;Opcao_C[ 3] : =' For ma. ' ;Respost a_Cer t a[ 3] : =' C' ;

Per gunt as[ 4] : =' Como mudamos a cor do cont or no de um obj et o sel ec i onado?' ;Opcao_A[ 4] : =' Cl i cando com o bot ão esquer do do mouse na cor desej ada. ' ;Opcao_B[ 4] : =' Cl i cando com o bot ão di r ei t o do mouse na cor desej ada. ' ;Opcao_C[ 4] : =' Ef et uando um dupl o cl í que no obj et o. ' ;Respost a_Cer t a[ 4] : =' B' ;

Per gunt as[ 5] : =' Par a que ser vem os at al hos CTRL+D, CTRL+G e F4,r espect i vament e?' ;

Opcao_A[ 5] : =' Dupl i car , agr upar e zoom par a t odos. ' ;Opcao_B[ 5] : =' Agr upar , dupl i car e zoom par a t odos. ' ;Opcao_C[ 5] : =' Zoom par a t odos, agr upar e dupl i car . ' ;Respost a_Cer t a[ 5] : =' A' ;

Per gunt as[ 6] : =' Qual a manei r a mai s f ác i l de col ocar um t ext o a um cami nho?' ;Opcao_A[ 6] : =' Ut i l i zando a f er r ament a For ma. ' ;Opcao_B[ 6] : =' Di gi t ando o t ext o di r et ament e ao cami nho. ' ;Opcao_C[ 6] : =' Agr upando o t ext o ao cami nho. ' ;Respost a_Cer t a[ 6] : =' B' ;

Per gunt as[ 7] : =' Qual o at al ho da f er r ament a For ma?' ;Opcao_A[ 7] : =' F10. ' ;Opcao_B[ 7] : =' F11. ' ;Opcao_C[ 7] : =' F12. ' ;Respost a_Cer t a[ 7] : =' A' ;

Per gunt as[ 8] : =' Par a apagar par t e de um obj et o devemos ut i l i zar a f er r ament a?' ;Opcao_A[ 8] : =' Faca. ' ;Opcao_B[ 8] : =' Bor r acha. ' ;Opcao_C[ 8] : =' Sel ecão. ' ;Respost a_Cer t a[ 8] : =' B' ;

Per gunt as[ 9] : =' Par a t r abal har cor r et ament e com l i nhas- gui a, f az- se necessár i oaci onar o bot ão " Al i nhar pel as l i nhas- gui a" ?' ;

Opcao_A[ 9] : =' Si m. ' ;Opcao_B[ 9] : =' Não. ' ;Opcao_C[ 9] : =' Qual quer uma das al t er nat i va é cor r et a. ' ;Respost a_Cer t a[ 9] : =' A' ;

Per gunt as[ 10] : =' Qual a t ec l a que auxi l i a a cr i acão de obj et os per f ei t os?' ;Opcao_A[ 10] : =' SHI FT. ' ;Opcao_B[ 10] : =' CTRL. ' ;Opcao_C[ 10] : =' ENTER. ' ;Respost a_Cer t a[ 10] : =' B' ;

Per gunt as[ 11] : =' Os ef ei t os de cor como pr eenchi ment o Gr adi ent e e a Text ur a sãof ei t os com as f er r ament as?' ;

Opcao_A[ 11] : =' Mi st ur a i nt er at i va. ' ;Opcao_B[ 11] : =' Pr eenchi ment o i nt er at i vo. ' ;Opcao_C[ 11] : =' Ext r usão i nt er at i va. ' ;Respost a_Cer t a[ 11] : =' B' ;

Per gunt as[ 12] : =' Par a gi r ar um obj et o, usamos qual f er r ament a par a sel eci oná-l o?' ;

Opcao_A[ 12] : =' For ma. ' ;Opcao_B[ 12] : =' Sel ecão. ' ;Opcao_C[ 12] : =' Mi st ur a. ' ;Respost a_Cer t a[ 12] : =' B' ;

Page 57: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

57

Per gunt as[ 13] : =' O comando desf azer ser ve par a?' ;Opcao_A[ 13] : =' Cr i ar novos obj et os. ' ;Opcao_B[ 13] : =' Vol t ar as ações. ' ;Opcao_C[ 13] : =' Nehuma das opções. ' ;Respost a_Cer t a[ 13] : =' B' ;

Per gunt as[ 14] : =' Quando quer mos usar uma f ol ha de papel model o A4 dei t ada, porexempl o, devemos mudar ?' ;

Opcao_A[ 14] : =' A or i ent ação da f ol ha par a r et r at o. ' ;Opcao_B[ 14] : =' A or i ent ação da f ol ha par a pai sagem. ' ;Opcao_C[ 14] : =' Nenhuma das opções. ' ;Respost a_Cer t a[ 14] : =' B' ;

Per gunt as[ 15] : =' O t i po de t ext o de par ágr af o e mai s ut i l i zado par a?' ;Opcao_A[ 15] : =' Di gi t ar gr andes quant i dades de t ext o. ' ;Opcao_B[ 15] : =' Di gi t ar pequenas quant i dades de t ext o. ' ;Opcao_C[ 15] : =' Nenhuma das opções. ' ;Respost a_Cer t a[ 15] : =' A' ;

Fazer Pr ova;i f Not a>=70* Quant _Per gunt as/ 100 t hen Apr ovado el se Recuper acao;

end;

pr ocedur e TFor m1. Ti mer 1Ti mer ( Sender : TObj ect ) ;begi n

St at usBar 1. Panel s[ 0] . Text : =For mat Dat eTI me( ' DD/ MM/ YYYY HH: MM: SS' , Now) ;end;

pr ocedur e TFor m1. Sai r 1Cl i ck( Sender : TObj ect ) ;begi n

Appl i cat i on. Ter mi nat e;end;

pr ocedur e TFor m1. Tr ocar 1Cl i ck( Sender : TObj ect ) ;begi n

i f OpenPi ct ur eDi al og1. Execut e t henI mage1. Pi c t ur e. LoadFr omFi l e( OpenPi ct ur eDi al og1. Fi l eName) ;end;

pr ocedur e TFor m1. Nor mal 1Cl i ck( Sender : TObj ect ) ;begi n

I mage1. St r et ch: =Fal se;end;

pr ocedur e TFor m1. Est i car 1Cl i ck( Sender : TObj ect ) ;begi n

I mage1. St r et ch: =Tr ue;end;

pr ocedur e TFor m1. Cal cul ador a1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Wi ndows\ Cal c. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Pai nt 1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ MSPai nt . exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Wor dPad1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ Wor dPad. exe' , SW_NORMAL) ;end;

Page 58: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

58

pr ocedur e TFor m1. Sobr e1Cl i ck( Sender : TObj ect ) ;begi n

For m3. ShowModal ;end;

end.

Page 59: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

59

6ª Fase

uni t Pr ovaU;

/ / 6ª Fase – Fase não necessár i a/ / Acr escent ado 2 Pr ogr essBar no For m2, uma par a as per gunt as e out r o par a ot empo de pr ova

i nt er f ace

usesWi ndows, Messages, SysUt i l s, Var i ant s, Cl asses, Gr aphi cs, Cont r ol s , For ms,Di al ogs, St dCt r l s, Menus, ComCt r l s , Ext Ct r l s , But t ons, Ext Dl gs, Spi n;

t ypeTFor m1 = cl ass( TFor m)

But t on1: TBut t on;St at usBar 1: TSt at usBar ;Mai nMenu1: TMai nMenu;Ar qui vo1: TMenuI t em;Sai r 1: TMenuI t em;Ti mer 1: TTi mer ;I mage1: TI mage;Conf i gur ao1: TMenuI t em;OpenPi ct ur eDi al og1: TOpenPi ct ur eDi al og;I magem: TMenuI t em;Tr ocar 1: TMenuI t em;Nor mal 1: TMenuI t em;Est i car 1: TMenuI t em;Sal var 1: TMenuI t em;Fer r ament as1: TMenuI t em;Aj uda1: TMenuI t em;Sobr e1: TMenuI t em;Cal cul ador a1: TMenuI t em;Pai nt 1: TMenuI t em;Wor dPad1: TMenuI t em;Spi nEdi t 1: TSpi nEdi t ;pr ocedur e But t on1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sai r 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Ti mer 1Ti mer ( Sender : TObj ect ) ;pr ocedur e Tr ocar 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Nor mal 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Est i car 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Cal cul ador a1Cl i ck( Sender : TObj ect ) ;pr ocedur e Pai nt 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Wor dPad1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sobr e1Cl i ck( Sender : TObj ect ) ;

pr i vat e{ Pr i vat e decl ar at i ons }

publ i c{ Publ i c decl ar at i ons }

end;

varFor m1: TFor m1;Mi nha_Respost a: St r i ng;Tempo_Tot al , Quant _Per gunt as, Not a: I nt eger ;Per gunt as, Respost a_Cer t a, Opcao_A, Opcao_B, Opcao_C: ar r ay [ 1. . 15] of St r i ng;

i mpl ement at i on

uses Per gunt aU, Sobr eU;

Page 60: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

60

{ $R * . df m}

pr ocedur e Fazer Per gunt a( Quest ao, Pr i mei r a_Opcao, Segunda_Opcao, Ter cei r a_Opcao:St r i ng) ;begi n

For m2. Label 1. Capt i on: =Quest ao;For m2. Radi oBut t on1. Capt i on: =Pr i mei r a_Opcao;For m2. Radi oBut t on2. Capt i on: =Segunda_Opcao;For m2. Radi oBut t on3. Capt i on: =Ter cei r a_Opcao;For m2. ShowModal ;

end;

pr ocedur e Fazer Pr ova;var

X: I nt eger ;begi n

For m1. Hi de;Not a: =0;For m2. Ti mer 1. Enabl ed: =Tr ue; / / At i va o r el ógi o par a cont ar o

t empo de pr ovaFor m2. Pr ogr essBar 1. Posi t i on: =0; / / A cont agem começa em zer oFor m2. Pr ogr essBar 1. Max: =Tempo_Tot al ; / / E t er mi na no Tempo_Tot alFor m2. Pr ogr essBar 2. Posi t i on: =0; / / As per gunt as começam em zer oFor m2. Pr ogr essBar 2. Max: =Quant _Per gunt as; / / E t er mi nam na Quant _Per gunt asf or X: =1 t o Quant _Per gunt as do

begi nFor m2. Pr ogr essBar 2. Posi t i on: =X; / / A cada per gunt a, aument a uma

posi çãoi f For m2. Pr ogr essBar 1. Posi t i on>=Tempo_Tot al t hen Br eak; / / Sai do Loop se o

t empo acabouFazer Per gunt a( Per gunt as[ X] , Opcao_A[ X] , Opcao_B[ X] , Opcao_C[ X] ) ;i f Mi nha_Respost a=Respost a_Cer t a[ X] t hen I nc( Not a) ;

end;For m2. Ti mer 1. Enabl ed: =Fal se; / / Desl i ga o r el ógi o par a cont ar

o t empo de pr ova, poi s a pr ova acabouFor m1. Show;

end;

pr ocedur e Apr ovado;begi n

ShowMessage( ' Par abéns, você f oi apr ovado com not a ' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Repr ovado;begi n

ShowMessage( ' Você não consegui u, est ude mai s! Sua not a f oi' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Recuper acao;begi n

ShowMessage( ' At enção, você f oi par a a r ecuper ação com not a' +I nt ToSt r ( Not a) +' . ' ) ;

Fazer Pr ova;i f Not a>=7* Quant _Per gunt as/ 100 t hen Apr ovado el se Repr ovado;

end;

pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ;begi n

Quant _Per gunt as: =Spi nEdi t 1. Val ue;Tempo_Tot al : =Quant _Per gunt as* 10; / / Par a cada per gunt a, a al uno

possui 10 segundos: 5 per gunt as = 50 segundos, 10 per gunt as = 100 segundos, et c.Per gunt as[ 1] : =' O Cor el Dr aw t r abal ha pr i nci pal ment e com?' ;Opcao_A[ 1] : =' Desenhos vet or i ai s e gr áf i cos. ' ;

Page 61: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

61

Opcao_B[ 1] : =' I magens. ' ;Opcao_C[ 1] : =' Fot os. ' ;Respost a_Cer t a[ 1] : =' A' ;

Per gunt as[ 2] : =' A f er r r ament a Mão- Li vr e, cr i a r api dament e?' ;Opcao_A[ 2] : =' El i pses per f ei t as. ' ;Opcao_B[ 2] : =' Ret ângul os per f ei t os. ' ;Opcao_C[ 2] : =' Li nhas e cur vas. ' ;Respost a_Cer t a[ 2] : =' C' ;

Per gunt as[ 3] : =' Qual f er r ament a é usada par a cr i ar , apagar ou mover os nós dosobj et o?' ;

Opcao_A[ 3] : =' El i pse. ' ;Opcao_B[ 3] : =' Ret ângul o. ' ;Opcao_C[ 3] : =' For ma. ' ;Respost a_Cer t a[ 3] : =' C' ;

Per gunt as[ 4] : =' Como mudamos a cor do cont or no de um obj et o sel ec i onado?' ;Opcao_A[ 4] : =' Cl i cando com o bot ão esquer do do mouse na cor desej ada. ' ;Opcao_B[ 4] : =' Cl i cando com o bot ão di r ei t o do mouse na cor desej ada. ' ;Opcao_C[ 4] : =' Ef et uando um dupl o cl í que no obj et o. ' ;Respost a_Cer t a[ 4] : =' B' ;

Per gunt as[ 5] : =' Par a que ser vem os at al hos CTRL+D, CTRL+G e F4,r espect i vament e?' ;

Opcao_A[ 5] : =' Dupl i car , agr upar e zoom par a t odos. ' ;Opcao_B[ 5] : =' Agr upar , dupl i car e zoom par a t odos. ' ;Opcao_C[ 5] : =' Zoom par a t odos, agr upar e dupl i car . ' ;Respost a_Cer t a[ 5] : =' A' ;

Per gunt as[ 6] : =' Qual a manei r a mai s f ác i l de col ocar um t ext o a um cami nho?' ;Opcao_A[ 6] : =' Ut i l i zando a f er r ament a For ma. ' ;Opcao_B[ 6] : =' Di gi t ando o t ext o di r et ament e ao cami nho. ' ;Opcao_C[ 6] : =' Agr upando o t ext o ao cami nho. ' ;Respost a_Cer t a[ 6] : =' B' ;

Per gunt as[ 7] : =' Qual o at al ho da f er r ament a For ma?' ;Opcao_A[ 7] : =' F10. ' ;Opcao_B[ 7] : =' F11. ' ;Opcao_C[ 7] : =' F12. ' ;Respost a_Cer t a[ 7] : =' A' ;

Per gunt as[ 8] : =' Par a apagar par t e de um obj et o devemos ut i l i zar a f er r ament a?' ;Opcao_A[ 8] : =' Faca. ' ;Opcao_B[ 8] : =' Bor r acha. ' ;Opcao_C[ 8] : =' Sel ecão. ' ;Respost a_Cer t a[ 8] : =' B' ;

Per gunt as[ 9] : =' Par a t r abal har cor r et ament e com l i nhas- gui a, f az- se necessár i oaci onar o bot ão " Al i nhar pel as l i nhas- gui a" ?' ;

Opcao_A[ 9] : =' Si m. ' ;Opcao_B[ 9] : =' Não. ' ;Opcao_C[ 9] : =' Qual quer uma das al t er nat i va é cor r et a. ' ;Respost a_Cer t a[ 9] : =' A' ;

Per gunt as[ 10] : =' Qual a t ec l a que auxi l i a a cr i acão de obj et os per f ei t os?' ;Opcao_A[ 10] : =' SHI FT. ' ;Opcao_B[ 10] : =' CTRL. ' ;Opcao_C[ 10] : =' ENTER. ' ;Respost a_Cer t a[ 10] : =' B' ;

Per gunt as[ 11] : =' Os ef ei t os de cor como pr eenchi ment o Gr adi ent e e a Text ur a sãof ei t os com as f er r ament as?' ;

Opcao_A[ 11] : =' Mi st ur a i nt er at i va. ' ;

Page 62: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

62

Opcao_B[ 11] : =' Pr eenchi ment o i nt er at i vo. ' ;Opcao_C[ 11] : =' Ext r usão i nt er at i va. ' ;Respost a_Cer t a[ 11] : =' B' ;

Per gunt as[ 12] : =' Par a gi r ar um obj et o, usamos qual f er r ament a par a sel eci oná-l o?' ;

Opcao_A[ 12] : =' For ma. ' ;Opcao_B[ 12] : =' Sel ecão. ' ;Opcao_C[ 12] : =' Mi st ur a. ' ;Respost a_Cer t a[ 12] : =' B' ;

Per gunt as[ 13] : =' O comando desf azer ser ve par a?' ;Opcao_A[ 13] : =' Cr i ar novos obj et os. ' ;Opcao_B[ 13] : =' Vol t ar as ações. ' ;Opcao_C[ 13] : =' Nehuma das opções. ' ;Respost a_Cer t a[ 13] : =' B' ;

Per gunt as[ 14] : =' Quando quer mos usar uma f ol ha de papel model o A4 dei t ada, porexempl o, devemos mudar ?' ;

Opcao_A[ 14] : =' A or i ent ação da f ol ha par a r et r at o. ' ;Opcao_B[ 14] : =' A or i ent ação da f ol ha par a pai sagem. ' ;Opcao_C[ 14] : =' Nenhuma das opções. ' ;Respost a_Cer t a[ 14] : =' B' ;

Per gunt as[ 15] : =' O t i po de t ext o de par ágr af o e mai s ut i l i zado par a?' ;Opcao_A[ 15] : =' Di gi t ar gr andes quant i dades de t ext o. ' ;Opcao_B[ 15] : =' Di gi t ar pequenas quant i dades de t ext o. ' ;Opcao_C[ 15] : =' Nenhuma das opções. ' ;Respost a_Cer t a[ 15] : =' A' ;

Fazer Pr ova;i f Not a>=70* Quant _Per gunt as/ 100 t hen Apr ovado el se Recuper acao;

end;

pr ocedur e TFor m1. Ti mer 1Ti mer ( Sender : TObj ect ) ;begi n

St at usBar 1. Panel s[ 0] . Text : =For mat Dat eTI me( ' DD/ MM/ YYYY HH: MM: SS' , Now) ;end;

pr ocedur e TFor m1. Sai r 1Cl i ck( Sender : TObj ect ) ;begi n

Appl i cat i on. Ter mi nat e;end;

pr ocedur e TFor m1. Tr ocar 1Cl i ck( Sender : TObj ect ) ;begi n

i f OpenPi ct ur eDi al og1. Execut e t henI mage1. Pi c t ur e. LoadFr omFi l e( OpenPi ct ur eDi al og1. Fi l eName) ;end;

pr ocedur e TFor m1. Nor mal 1Cl i ck( Sender : TObj ect ) ;begi n

I mage1. St r et ch: =Fal se;end;

pr ocedur e TFor m1. Est i car 1Cl i ck( Sender : TObj ect ) ;begi n

I mage1. St r et ch: =Tr ue;end;

pr ocedur e TFor m1. Cal cul ador a1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Wi ndows\ Cal c. exe' , SW_NORMAL) ;end;

Page 63: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

63

pr ocedur e TFor m1. Pai nt 1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ MSPai nt . exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Wor dPad1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ Wor dPad. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Sobr e1Cl i ck( Sender : TObj ect ) ;begi n

For m3. ShowModal ;end;

end.

Page 64: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

64

7ª Fase

uni t Pr ovaU;

/ / 7ª Fase/ / Acr escent ada a r ot i na Ef et uar _Sor t ei o

i nt er f ace

usesWi ndows, Messages, SysUt i l s, Var i ant s, Cl asses, Gr aphi cs, Cont r ol s , For ms,Di al ogs, St dCt r l s, Menus, ComCt r l s , Ext Ct r l s , But t ons, Ext Dl gs, Spi n;

t ypeTFor m1 = cl ass( TFor m)

But t on1: TBut t on;St at usBar 1: TSt at usBar ;Mai nMenu1: TMai nMenu;Ar qui vo1: TMenuI t em;Sai r 1: TMenuI t em;Ti mer 1: TTi mer ;I mage1: TI mage;Conf i gur ao1: TMenuI t em;OpenPi ct ur eDi al og1: TOpenPi ct ur eDi al og;I magem: TMenuI t em;Tr ocar 1: TMenuI t em;Nor mal 1: TMenuI t em;Est i car 1: TMenuI t em;Sal var 1: TMenuI t em;Fer r ament as1: TMenuI t em;Aj uda1: TMenuI t em;Sobr e1: TMenuI t em;Cal cul ador a1: TMenuI t em;Pai nt 1: TMenuI t em;Wor dPad1: TMenuI t em;Spi nEdi t 1: TSpi nEdi t ;pr ocedur e But t on1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sai r 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Ti mer 1Ti mer ( Sender : TObj ect ) ;pr ocedur e Tr ocar 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Nor mal 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Est i car 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Cal cul ador a1Cl i ck( Sender : TObj ect ) ;pr ocedur e Pai nt 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Wor dPad1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sobr e1Cl i ck( Sender : TObj ect ) ;

pr i vat e{ Pr i vat e decl ar at i ons }

publ i c{ Publ i c decl ar at i ons }

end;

varFor m1: TFor m1;Mi nha_Respost a: St r i ng;Tempo_Tot al , Quant _Per gunt as, Not a: I nt eger ;Per gunt as, Respost a_Cer t a, Opcao_A, Opcao_B, Opcao_C: ar r ay [ 1. . 15] of St r i ng;Sor t ei o: ar r ay [ 1. . 15] of I nt eger ;

i mpl ement at i on

uses Per gunt aU, Sobr eU;

Page 65: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

65

{ $R * . df m}

pr ocedur e Fazer Per gunt a( Quest ao, Pr i mei r a_Opcao, Segunda_Opcao, Ter cei r a_Opcao:St r i ng) ;begi n

For m2. Label 1. Capt i on: =Quest ao;For m2. Radi oBut t on1. Capt i on: =Pr i mei r a_Opcao;For m2. Radi oBut t on2. Capt i on: =Segunda_Opcao;For m2. Radi oBut t on3. Capt i on: =Ter cei r a_Opcao;For m2. ShowModal ;

end;

/ / Est a r ot i na ger a uma mat r i z de 15 posi ções, cont endo os númer os de 1 a 15/ / Cada númer o cor r esponde a uma per gunt a, o númer o 7 é a 7ª per gunt a, et c./ / Não é per mi t i da a r epet i ção dest e númer os, par a não r epet i r per gunt as na mesmapr ovapr ocedur e Ef et uar _Sor t ei o;var

Sai r : St r i ng;X, Y, Z: I nt eger ;

begi nRandomi ze; / / Li ber a o Randomf or X: = 1 t o 15 do Sor t ei o[ X] : =0; / / Zer a a mat r i z par a a

r ecuper ação, poi s exi s t e novo sor t ei of or X: = 1 t o 15 do / / São 15 per gunt as

begi n/ / Est e l oop per mi t e que a mat r i z t enha os númer os de 1 a 15 sem r epet i çãor epeat / / Loop de Repeat a Unt i l

Sai r : =' Si m' ; / / Var i ável auxi l i ar , começa comSI M

Y: =Random( 15) +1; / / Ger a um númer o al eat ór i oent r e 0 e 14 ( 15 pr i mei r os númer os i nt ei r os) e soma um a est e ( 1 a 15, nest ecaso)

f or Z: = 1 t o 15 do i f Y= Sor t ei o[ Z] t hen Sai r : = ' Não' ; / / Se exi s t e Y namat r i z Sor t ei o, ent ão não sai e sor t ei a de novo, i st o é, se um númer o j á sai u,sor t ei a de novo. I nf or ma que NÃO pode SAI R do l oop

unt i l Sai r = ' Si m' ; / / Só sai do l oop, se SAI R f orSI M

Sor t ei o[ X] : =Y; / / A mat r i z SORTEI O, r ecebe naposi ção X ( de 1 a 15) , um númer o al eat ór i o, que não sai u ant es

end;Sl eep( 1000) ; / / Pausa de um segundo. Est a l i nha não é necessár i a, mas f oi

col ocada aqui par a per mi t i r col ocar um Br eakPoi nt par a est udar a mat r i z SORTEI O.Col oque um Br eakPoi nt nel a ( cl i cando na bar r a ci nza a esquer da) e anal i se.end;

pr ocedur e Fazer Pr ova;var

X, Y: I nt eger ;begi n

For m1. Hi de;Not a: =0;Ef et uar _Sor t ei o; / / Rot i na par a ger ar 15 númer os

al eat ór i os sem r epet i ção, sempr e que uma pr ova f or f ei t a. Di ca: Pr es i one CTRL ecl i que em Ef et uar _Sor t ei o, nest a l i nha

For m2. Ti mer 1. Enabl ed: =Tr ue;For m2. Pr ogr essBar 1. Posi t i on: =0;For m2. Pr ogr essBar 1. Max: =Tempo_Tot al ;For m2. Pr ogr essBar 2. Posi t i on: =0;For m2. Pr ogr essBar 2. Max: =Quant _Per gunt as;f or X: =1 t o Quant _Per gunt as do

begi nFor m2. Pr ogr essBar 2. Posi t i on: =X;

Page 66: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

66

i f For m2. Pr ogr essBar 1. Posi t i on>=Tempo_Tot al t hen Br eak;Y: =Sor t ei o[ X] ;Fazer Per gunt a( Per gunt as[ Y] , Opcao_A[ Y] , Opcao_B[ Y] , Opcao_C[ Y] ) ;i f Mi nha_Respost a=Respost a_Cer t a[ Y] t hen I nc( Not a) ;

end;For m2. Ti mer 1. Enabl ed: =Fal se;For m1. Show;

end;

pr ocedur e Apr ovado;begi n

ShowMessage( ' Par abéns, você f oi apr ovado com not a ' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Repr ovado;begi n

ShowMessage( ' Você não consegui u, est ude mai s! Sua not a f oi' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Recuper acao;begi n

ShowMessage( ' At enção, você f oi par a a r ecuper ação com not a' +I nt ToSt r ( Not a) +' . ' ) ;

Fazer Pr ova;i f Not a>=7* Quant _Per gunt as/ 100 t hen Apr ovado el se Repr ovado;

end;

pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ;begi n

Quant _Per gunt as: =Spi nEdi t 1. Val ue;Tempo_Tot al : =Quant _Per gunt as* 10;Per gunt as[ 1] : =' O Cor el Dr aw t r abal ha pr i nci pal ment e com?' ;Opcao_A[ 1] : =' Desenhos vet or i ai s e gr áf i cos. ' ;Opcao_B[ 1] : =' I magens. ' ;Opcao_C[ 1] : =' Fot os. ' ;Respost a_Cer t a[ 1] : =' A' ;

Per gunt as[ 2] : =' A f er r r ament a Mão- Li vr e, cr i a r api dament e?' ;Opcao_A[ 2] : =' El i pses per f ei t as. ' ;Opcao_B[ 2] : =' Ret ângul os per f ei t os. ' ;Opcao_C[ 2] : =' Li nhas e cur vas. ' ;Respost a_Cer t a[ 2] : =' C' ;

Per gunt as[ 3] : =' Qual f er r ament a é usada par a cr i ar , apagar ou mover os nós dosobj et o?' ;

Opcao_A[ 3] : =' El i pse. ' ;Opcao_B[ 3] : =' Ret ângul o. ' ;Opcao_C[ 3] : =' For ma. ' ;Respost a_Cer t a[ 3] : =' C' ;

Per gunt as[ 4] : =' Como mudamos a cor do cont or no de um obj et o sel ec i onado?' ;Opcao_A[ 4] : =' Cl i cando com o bot ão esquer do do mouse na cor desej ada. ' ;Opcao_B[ 4] : =' Cl i cando com o bot ão di r ei t o do mouse na cor desej ada. ' ;Opcao_C[ 4] : =' Ef et uando um dupl o cl í que no obj et o. ' ;Respost a_Cer t a[ 4] : =' B' ;

Per gunt as[ 5] : =' Par a que ser vem os at al hos CTRL+D, CTRL+G e F4,r espect i vament e?' ;

Opcao_A[ 5] : =' Dupl i car , agr upar e zoom par a t odos. ' ;Opcao_B[ 5] : =' Agr upar , dupl i car e zoom par a t odos. ' ;Opcao_C[ 5] : =' Zoom par a t odos, agr upar e dupl i car . ' ;Respost a_Cer t a[ 5] : =' A' ;

Page 67: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

67

Per gunt as[ 6] : =' Qual a manei r a mai s f ác i l de col ocar um t ext o a um cami nho?' ;Opcao_A[ 6] : =' Ut i l i zando a f er r ament a For ma. ' ;Opcao_B[ 6] : =' Di gi t ando o t ext o di r et ament e ao cami nho. ' ;Opcao_C[ 6] : =' Agr upando o t ext o ao cami nho. ' ;Respost a_Cer t a[ 6] : =' B' ;

Per gunt as[ 7] : =' Qual o at al ho da f er r ament a For ma?' ;Opcao_A[ 7] : =' F10. ' ;Opcao_B[ 7] : =' F11. ' ;Opcao_C[ 7] : =' F12. ' ;Respost a_Cer t a[ 7] : =' A' ;

Per gunt as[ 8] : =' Par a apagar par t e de um obj et o devemos ut i l i zar a f er r ament a?' ;Opcao_A[ 8] : =' Faca. ' ;Opcao_B[ 8] : =' Bor r acha. ' ;Opcao_C[ 8] : =' Sel ecão. ' ;Respost a_Cer t a[ 8] : =' B' ;

Per gunt as[ 9] : =' Par a t r abal har cor r et ament e com l i nhas- gui a, f az- se necessár i oaci onar o bot ão " Al i nhar pel as l i nhas- gui a" ?' ;

Opcao_A[ 9] : =' Si m. ' ;Opcao_B[ 9] : =' Não. ' ;Opcao_C[ 9] : =' Qual quer uma das al t er nat i va é cor r et a. ' ;Respost a_Cer t a[ 9] : =' A' ;

Per gunt as[ 10] : =' Qual a t ec l a que auxi l i a a cr i acão de obj et os per f ei t os?' ;Opcao_A[ 10] : =' SHI FT. ' ;Opcao_B[ 10] : =' CTRL. ' ;Opcao_C[ 10] : =' ENTER. ' ;Respost a_Cer t a[ 10] : =' B' ;

Per gunt as[ 11] : =' Os ef ei t os de cor como pr eenchi ment o Gr adi ent e e a Text ur a sãof ei t os com as f er r ament as?' ;

Opcao_A[ 11] : =' Mi st ur a i nt er at i va. ' ;Opcao_B[ 11] : =' Pr eenchi ment o i nt er at i vo. ' ;Opcao_C[ 11] : =' Ext r usão i nt er at i va. ' ;Respost a_Cer t a[ 11] : =' B' ;

Per gunt as[ 12] : =' Par a gi r ar um obj et o, usamos qual f er r ament a par a sel eci oná-l o?' ;

Opcao_A[ 12] : =' For ma. ' ;Opcao_B[ 12] : =' Sel ecão. ' ;Opcao_C[ 12] : =' Mi st ur a. ' ;Respost a_Cer t a[ 12] : =' B' ;

Per gunt as[ 13] : =' O comando desf azer ser ve par a?' ;Opcao_A[ 13] : =' Cr i ar novos obj et os. ' ;Opcao_B[ 13] : =' Vol t ar as ações. ' ;Opcao_C[ 13] : =' Nehuma das opções. ' ;Respost a_Cer t a[ 13] : =' B' ;

Per gunt as[ 14] : =' Quando quer mos usar uma f ol ha de papel model o A4 dei t ada, porexempl o, devemos mudar ?' ;

Opcao_A[ 14] : =' A or i ent ação da f ol ha par a r et r at o. ' ;Opcao_B[ 14] : =' A or i ent ação da f ol ha par a pai sagem. ' ;Opcao_C[ 14] : =' Nenhuma das opções. ' ;Respost a_Cer t a[ 14] : =' B' ;

Per gunt as[ 15] : =' O t i po de t ext o de par ágr af o e mai s ut i l i zado par a?' ;Opcao_A[ 15] : =' Di gi t ar gr andes quant i dades de t ext o. ' ;Opcao_B[ 15] : =' Di gi t ar pequenas quant i dades de t ext o. ' ;Opcao_C[ 15] : =' Nenhuma das opções. ' ;Respost a_Cer t a[ 15] : =' A' ;

Page 68: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

68

Fazer Pr ova;i f Not a>=70* Quant _Per gunt as/ 100 t hen Apr ovado el se Recuper acao;

end;

pr ocedur e TFor m1. Ti mer 1Ti mer ( Sender : TObj ect ) ;begi n

St at usBar 1. Panel s[ 0] . Text : =For mat Dat eTI me( ' DD/ MM/ YYYY HH: MM: SS' , Now) ;end;

pr ocedur e TFor m1. Sai r 1Cl i ck( Sender : TObj ect ) ;begi n

Appl i cat i on. Ter mi nat e;end;

pr ocedur e TFor m1. Tr ocar 1Cl i ck( Sender : TObj ect ) ;begi n

i f OpenPi ct ur eDi al og1. Execut e t henI mage1. Pi c t ur e. LoadFr omFi l e( OpenPi ct ur eDi al og1. Fi l eName) ;end;

pr ocedur e TFor m1. Nor mal 1Cl i ck( Sender : TObj ect ) ;begi n

I mage1. St r et ch: =Fal se;end;

pr ocedur e TFor m1. Est i car 1Cl i ck( Sender : TObj ect ) ;begi n

I mage1. St r et ch: =Tr ue;end;

pr ocedur e TFor m1. Cal cul ador a1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Wi ndows\ Cal c. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Pai nt 1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ MSPai nt . exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Wor dPad1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ Wor dPad. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Sobr e1Cl i ck( Sender : TObj ect ) ;begi n

For m3. ShowModal ;end;

end.

Page 69: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

69

8ª Fase

uni t Pr ovaU;

/ / 8ª Fase/ / Uso de banco de dados, el i mi nando as mat r i zes de per gunt as, opções e r espost as/ / O banco de dados é vi ncul ado ao component e Tabl e, no For m4/ / Pr ocedi ment os:/ / Após cr i ar o banco de dados no Dat abase Deskt op, use um component e Tabl e,al t er ando no sua pr opr i edade Dat abaseName par a o di r et ór i o da apl i cação ( se est aest i ver no mesmo di r et ór i o do banco de dados, não é necessár i o) . Em Tabl eName,sel eci one o banco de dados;/ / Ef et ue um dupl o cl i que no Tabl e e com o bot ão di r ei t o Add Al l Fi el ds;/ / Acr escent e um component e Dat aSour ce e vi ncul e est e ao Tabl e em Dat aSet ;/ / Acr escent e um DBGr i d e vi ncul e est e ao Dat aSour se./ / Pode- se t ambém após ef et uar um dupl o c l i que no Tabl e, ar r ast ar t odos os campospar a o f or mul ár i o, cr i ando os DBEdi t e Dat aSour ce aut omat i cament e.

i nt er f ace

usesWi ndows, Messages, SysUt i l s, Var i ant s, Cl asses, Gr aphi cs, Cont r ol s , For ms,Di al ogs, St dCt r l s, Menus, ComCt r l s , Ext Ct r l s , But t ons, Ext Dl gs, Spi n;

t ypeTFor m1 = cl ass( TFor m)

But t on1: TBut t on;St at usBar 1: TSt at usBar ;Mai nMenu1: TMai nMenu;Ar qui vo1: TMenuI t em;Sai r 1: TMenuI t em;Ti mer 1: TTi mer ;I mage1: TI mage;Conf i gur ao1: TMenuI t em;OpenPi ct ur eDi al og1: TOpenPi ct ur eDi al og;I magem: TMenuI t em;Tr ocar 1: TMenuI t em;Nor mal 1: TMenuI t em;Est i car 1: TMenuI t em;Sal var 1: TMenuI t em;Fer r ament as1: TMenuI t em;Aj uda1: TMenuI t em;Sobr e1: TMenuI t em;Cal cul ador a1: TMenuI t em;Pai nt 1: TMenuI t em;Wor dPad1: TMenuI t em;Spi nEdi t 1: TSpi nEdi t ;Edi t or 1: TMenuI t em;pr ocedur e But t on1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sai r 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Ti mer 1Ti mer ( Sender : TObj ect ) ;pr ocedur e Tr ocar 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Nor mal 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Est i car 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Cal cul ador a1Cl i ck( Sender : TObj ect ) ;pr ocedur e Pai nt 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Wor dPad1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sobr e1Cl i ck( Sender : TObj ect ) ;pr ocedur e Edi t or 1Cl i ck( Sender : TObj ect ) ;

pr i vat e{ Pr i vat e decl ar at i ons }

publ i c{ Publ i c decl ar at i ons }

Page 70: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

70

end;

varFor m1: TFor m1;Mi nha_Respost a: St r i ng;Tempo_Tot al , Quant _Per gunt as, Not a: I nt eger ;Sor t ei o: ar r ay [ 1. . 15] of I nt eger ;

i mpl ement at i on

uses Per gunt aU, Sobr eU, Edi t or U;

{ $R * . df m}

pr ocedur e Fazer Per gunt a( Quest ao, Pr i mei r a_Opcao, Segunda_Opcao, Ter cei r a_Opcao:St r i ng) ;begi n

For m2. Label 1. Capt i on: =Quest ao;For m2. Radi oBut t on1. Capt i on: =Pr i mei r a_Opcao;For m2. Radi oBut t on2. Capt i on: =Segunda_Opcao;For m2. Radi oBut t on3. Capt i on: =Ter cei r a_Opcao;For m2. ShowModal ;

end;

/ / Est a r ot i na ger a uma mat r i z de 15 posi ções, cont endo os númer os de 1 a 15/ / Cada númer o cor r esponde a uma per gunt a, o númer o 7 é a 7ª per gunt a, et c./ / Não é per mi t i da a r epet i ção dest e númer os, par a não r epet i r per gunt as na mesmapr ovapr ocedur e Ef et uar _Sor t ei o;var

Sai r : St r i ng;X, Y, Z: I nt eger ;

begi nRandomi ze; / / Li ber a o Randomf or X: = 1 t o 15 do Sor t ei o[ X] : =0; / / Zer a a mat r i z par a a

r ecuper ação, poi s exi s t e novo sor t ei of or X: = 1 t o 15 do / / São 15 per gunt as

begi n/ / Est e l oop per mi t e que a mat r i z t enha os númer os de 1 a 15 sem r epet i çãor epeat / / Loop de Repeat a Unt i l

Sai r : =' Si m' ; / / Var i ável auxi l i ar , começa comSI M

Y: =Random( 15) +1; / / Ger a um númer o al eat ór i oent r e 0 e 14 ( 15 pr i mei r os númer os i nt ei r os) e soma um a est e ( 1 a 15, nest ecaso)

f or Z: =1 t o 15 do i f Y= Sor t ei o[ Z] t hen Sai r : = ' Não' ; / / Se exi st e Y namat r i z Sor t ei o, ent ão não sai e sor t ei a de novo, i st o é, se um númer o j á sai u,sor t ei a de novo. I nf or ma que NÃO pode SAI R do l oop

unt i l Sai r = ' Si m' ; / / Só sai do l oop, se SAI R f orSI M

Sor t ei o[ X] : =Y; / / A mat r i z SORTEI O, r ecebe naposi ção X ( de 1 a 15) , um númer o al eat ór i o, que não sai u ant es

end;Sl eep( 1000) ; / / Pausa de um segundo. Est a l i nha não é necessár i a, mas f oi

col ocada aqui par a per mi t i r col ocar um Br eakPoi nt par a est udar a mat r i z SORTEI O.Col oque um Br eakPoi nt nel a ( cl i cando na bar r a ci nza a esquer da) e anal i se.end;

pr ocedur e Fazer Pr ova;var

X, Y, Z: I nt eger ;begi n

For m1. Hi de;Not a: =0;

Page 71: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

71

Ef et uar _Sor t ei o; / / Rot i na par a ger ar 15 númer osal eat ór i os sem r epet i ção, sempr e que uma pr ova f or f ei t a. Di ca: Pr es i one CTRL ecl i que em Ef et uar _Sor t ei o, nest a l i nha

For m2. Ti mer 1. Enabl ed: =Tr ue;For m2. Pr ogr essBar 1. Posi t i on: =0;For m2. Pr ogr essBar 1. Max: =Tempo_Tot al ;For m2. Pr ogr essBar 2. Posi t i on: =0;For m2. Pr ogr essBar 2. Max: =Quant _Per gunt as;f or X: =1 t o Quant _Per gunt as do

begi nFor m2. Pr ogr essBar 2. Posi t i on: =X;i f For m2. Pr ogr essBar 1. Posi t i on>=Tempo_Tot al t hen Br eak;Y: =Sor t ei o[ X] ;For m4. Tabl e1. Fi r st ; / / Pul a par a a 1ª per gunt af or Z: =1 t o Y- 1 do For m4. Tabl e1. Next ; / / Pul a par a a per gunt a Y- 1

( não cont ar a 1ª per gunt a, poi s j á est amos nel a) , que é a mat r i z SORTEI O

Fazer Per gunt a( For m4. Tabl e1Per gunt a. AsSt r i ng, For m4. Tabl e1OpcaoA. AsSt r i ng, For m4. Tabl e1OpcaoB. AsSt r i ng, For m4. Tabl e1OpcaoC. AsSt r i ng) ;

i f Mi nha_Respost a=For m4. Tabl e1Respost a. AsSt r i ng t hen I nc( Not a) ;end;

For m2. Ti mer 1. Enabl ed: =Fal se;For m1. Show;

end;

pr ocedur e Apr ovado;begi n

ShowMessage( ' Par abéns, você f oi apr ovado com not a ' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Repr ovado;begi n

ShowMessage( ' Você não consegui u, est ude mai s! Sua not a f oi' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Recuper acao;begi n

ShowMessage( ' At enção, você f oi par a a r ecuper ação com not a' +I nt ToSt r ( Not a) +' . ' ) ;

Fazer Pr ova;i f Not a>=7* Quant _Per gunt as/ 100 t hen Apr ovado el se Repr ovado;

end;

pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ;begi n

Quant _Per gunt as: =Spi nEdi t 1. Val ue;Tempo_Tot al : =Quant _Per gunt as* 10;Fazer Pr ova;i f Not a>=70* Quant _Per gunt as/ 100 t hen Apr ovado el se Recuper acao;

end;

pr ocedur e TFor m1. Ti mer 1Ti mer ( Sender : TObj ect ) ;begi n

St at usBar 1. Panel s[ 0] . Text : =For mat Dat eTI me( ' DD/ MM/ YYYY HH: MM: SS' , Now) ;end;

pr ocedur e TFor m1. Sai r 1Cl i ck( Sender : TObj ect ) ;begi n

Appl i cat i on. Ter mi nat e;end;

pr ocedur e TFor m1. Tr ocar 1Cl i ck( Sender : TObj ect ) ;begi n

Page 72: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

72

i f OpenPi ct ur eDi al og1. Execut e t henI mage1. Pi c t ur e. LoadFr omFi l e( OpenPi ct ur eDi al og1. Fi l eName) ;end;

pr ocedur e TFor m1. Nor mal 1Cl i ck( Sender : TObj ect ) ;begi n

I mage1. St r et ch: =Fal se;end;

pr ocedur e TFor m1. Est i car 1Cl i ck( Sender : TObj ect ) ;begi n

I mage1. St r et ch: =Tr ue;end;

pr ocedur e TFor m1. Cal cul ador a1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Wi ndows\ Cal c. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Pai nt 1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ MSPai nt . exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Wor dPad1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ Wor dPad. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Sobr e1Cl i ck( Sender : TObj ect ) ;begi n

For m3. ShowModal ;end;

pr ocedur e TFor m1. Edi t or 1Cl i ck( Sender : TObj ect ) ;begi n

For m4. Show;end;

end.

Page 73: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

73

9ª Fase

uni t Pr ovaU;

/ / 9ª Fase/ / Tr oca da mat r i z SORTEI O est át i ca por di nâmi ca, i st o é, sem t amanho f i xo/ / Est a mat r i z ocasi ona um pr obl ema, el a não começa em 1 e si m em 0, necessi t andoal guns aj ust es./ / Exempl o: a mat r i z de 15 posi ções ser i a de 0 a 14/ / Li ber ado o t ot al de per gunt as

i nt er f ace

usesWi ndows, Messages, SysUt i l s, Var i ant s, Cl asses, Gr aphi cs, Cont r ol s , For ms,Di al ogs, St dCt r l s, Menus, ComCt r l s , Ext Ct r l s , But t ons, Ext Dl gs, Spi n;

t ypeTFor m1 = cl ass( TFor m)

But t on1: TBut t on;St at usBar 1: TSt at usBar ;Mai nMenu1: TMai nMenu;Ar qui vo1: TMenuI t em;Sai r 1: TMenuI t em;Ti mer 1: TTi mer ;I mage1: TI mage;Conf i gur ao1: TMenuI t em;OpenPi ct ur eDi al og1: TOpenPi ct ur eDi al og;I magem: TMenuI t em;Tr ocar 1: TMenuI t em;Nor mal 1: TMenuI t em;Est i car 1: TMenuI t em;Sal var 1: TMenuI t em;Fer r ament as1: TMenuI t em;Aj uda1: TMenuI t em;Sobr e1: TMenuI t em;Cal cul ador a1: TMenuI t em;Pai nt 1: TMenuI t em;Wor dPad1: TMenuI t em;Spi nEdi t 1: TSpi nEdi t ;Edi t or 1: TMenuI t em;pr ocedur e But t on1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sai r 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Ti mer 1Ti mer ( Sender : TObj ect ) ;pr ocedur e Tr ocar 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Nor mal 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Est i car 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Cal cul ador a1Cl i ck( Sender : TObj ect ) ;pr ocedur e Pai nt 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Wor dPad1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sobr e1Cl i ck( Sender : TObj ect ) ;pr ocedur e Edi t or 1Cl i ck( Sender : TObj ect ) ;

pr i vat e{ Pr i vat e decl ar at i ons }

publ i c{ Publ i c decl ar at i ons }

end;

varFor m1: TFor m1;Mi nha_Respost a: St r i ng;Tempo_Tot al , Quant _Per gunt as, Not a, Tot al _Per gunt as: I nt eger ;Sor t ei o: ar r ay of I nt eger ;

Page 74: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

74

i mpl ement at i on

uses Per gunt aU, Sobr eU, Edi t or U;

{ $R * . df m}

pr ocedur e Fazer Per gunt a( Quest ao, Pr i mei r a_Opcao, Segunda_Opcao, Ter cei r a_Opcao:St r i ng) ;begi n

For m2. Label 1. Capt i on: =Quest ao;For m2. Radi oBut t on1. Capt i on: =Pr i mei r a_Opcao;For m2. Radi oBut t on2. Capt i on: =Segunda_Opcao;For m2. Radi oBut t on3. Capt i on: =Ter cei r a_Opcao;For m2. ShowModal ;

end;

/ / Est a r ot i na ger a uma mat r i z de 15 posi ções, cont endo os númer os de 1 a 15/ / Cada númer o cor r esponde a uma per gunt a, o númer o 7 é a 7ª per gunt a, et c./ / Não é per mi t i da a r epet i ção dest e númer os, par a não r epet i r per gunt as na mesmapr ovapr ocedur e Ef et uar _Sor t ei o;var

Sai r : St r i ng;X, Y, Z: I nt eger ;

begi nRandomi ze; / / Li ber a o Randomf or X: =0 t o Tot al _Per gunt as- 1 do Sor t ei o[ X] : =0; / / Zer a a mat r i z par a a

r ecuper ação, poi s exi s t e novo sor t ei of or X: =0 t o Tot al _Per gunt as- 1 do / / São 15 per gunt as

begi nr epeat / / Loop de Repeat a Unt i l

Sai r : =' Si m' ; / / Var i ável auxi l i ar , começa comSI M

Y: =Random( Tot al _Per gunt as) +1; / / Ger a um númer o al eat ór i oent r e 1 e Tot al _Per gut as

f or Z: =0 t o Tot al _Per gunt as- 1 do i f Y= Sor t ei o[ Z] t hen Sai r : = ' Não' ;/ / Se exi st e Y na mat r i z Sor t ei o, ent ão não sai e sor t ei a de novo, i s t o é, se umnúmer o j á sai u, sor t ei a de novo. I nf or ma que NÃO pode SAI R do l oop

unt i l Sai r = ' Si m' ; / / Só sai do l oop, se SAI R f orSI M

Sor t ei o[ X] : =Y; / / A mat r i z SORTEI O, r ecebe naposi ção X ( de 1 a 15) , um númer o al eat ór i o, que não sai u ant es

end;Sl eep( 1000) ; / / Pausa de um segundo. Est a l i nha não é necessár i a, mas f oi

col ocada aqui par a per mi t i r col ocar um Br eakPoi nt par a est udar a mat r i z SORTEI O.Col oque um Br eakPoi nt nel a ( cl i cando na bar r a ci nza a esquer da) e anal i se.end;

pr ocedur e Fazer Pr ova;var

X, Y, Z: I nt eger ;begi n

For m1. Hi de;Not a: =0;Ef et uar _Sor t ei o; / / Rot i na par a ger ar númer os

al eat ór i os sem r epet i ção, sempr e que uma pr ova f or f ei t a. Di ca: Pr es i one CTRL ecl i que em Ef et uar _Sor t ei o, nest a l i nha

For m2. Ti mer 1. Enabl ed: =Tr ue;For m2. Pr ogr essBar 1. Posi t i on: =0;For m2. Pr ogr essBar 1. Max: =Tempo_Tot al ;For m2. Pr ogr essBar 2. Posi t i on: =0;For m2. Pr ogr essBar 2. Max: =Quant _Per gunt as;f or X: =0 t o Quant _Per gunt as- 1 do

Page 75: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

75

begi nFor m2. Pr ogr essBar 2. Posi t i on: =X;i f For m2. Pr ogr essBar 1. Posi t i on>=Tempo_Tot al t hen Br eak;Y: =Sor t ei o[ X] ;For m4. Tabl e1. Fi r st ; / / Pul a par a a 1ª per gunt af or Z: =1 t o Y- 1 do For m4. Tabl e1. Next ; / / Pul a par a a per gunt a Y- 1

( não cont ar a 1ª per gunt a, poi s j á est amos nel a) , que é a mat r i z SORTEI O

Fazer Per gunt a( For m4. Tabl e1Per gunt a. AsSt r i ng, For m4. Tabl e1OpcaoA. AsSt r i ng, For m4. Tabl e1OpcaoB. AsSt r i ng, For m4. Tabl e1OpcaoC. AsSt r i ng) ;

i f Mi nha_Respost a=For m4. Tabl e1Respost a. AsSt r i ng t hen I nc( Not a) ;end;

For m2. Ti mer 1. Enabl ed: =Fal se;For m1. Show;

end;

pr ocedur e Apr ovado;begi n

ShowMessage( ' Par abéns, você f oi apr ovado com not a ' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Repr ovado;begi n

ShowMessage( ' Você não consegui u, est ude mai s! Sua not a f oi' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Recuper acao;begi n

ShowMessage( ' At enção, você f oi par a a r ecuper ação com not a' +I nt ToSt r ( Not a) +' . ' ) ;

Fazer Pr ova;i f Not a>=7* Quant _Per gunt as/ 100 t hen Apr ovado el se Repr ovado;

end;

pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ;begi n

Tot al _Per gunt as: =For m4. Tabl e1. Recor dCount ;Set Lengt h( Sor t ei o, Tot al _Per gunt as) ;Quant _Per gunt as: =Spi nEdi t 1. Val ue;Tempo_Tot al : =Quant _Per gunt as* 10;Fazer Pr ova;i f Not a>=70* Quant _Per gunt as/ 100 t hen Apr ovado el se Recuper acao;

end;

pr ocedur e TFor m1. Ti mer 1Ti mer ( Sender : TObj ect ) ;begi n

St at usBar 1. Panel s[ 0] . Text : =For mat Dat eTI me( ' DD/ MM/ YYYY HH: MM: SS' , Now) ;end;

pr ocedur e TFor m1. Sai r 1Cl i ck( Sender : TObj ect ) ;begi n

Appl i cat i on. Ter mi nat e;end;

pr ocedur e TFor m1. Tr ocar 1Cl i ck( Sender : TObj ect ) ;begi n

i f OpenPi ct ur eDi al og1. Execut e t henI mage1. Pi c t ur e. LoadFr omFi l e( OpenPi ct ur eDi al og1. Fi l eName) ;end;

pr ocedur e TFor m1. Nor mal 1Cl i ck( Sender : TObj ect ) ;begi n

I mage1. St r et ch: =Fal se;

Page 76: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

76

end;

pr ocedur e TFor m1. Est i car 1Cl i ck( Sender : TObj ect ) ;begi n

I mage1. St r et ch: =Tr ue;end;

pr ocedur e TFor m1. Cal cul ador a1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Wi ndows\ Cal c. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Pai nt 1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ MSPai nt . exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Wor dPad1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ Wor dPad. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Sobr e1Cl i ck( Sender : TObj ect ) ;begi n

For m3. ShowModal ;end;

pr ocedur e TFor m1. Edi t or 1Cl i ck( Sender : TObj ect ) ;begi n

For m4. Show;end;

end.

Page 77: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

77

10ª e 11ª Fase

uni t Pr ovaU;

/ / 10ª Fase/ / I ncl usão de mai s 2 opções nas r espost as ( D e E) e mat ér i a, no Banco de Dados eaj ust es necessár i os: mai s 2 Raddi oBut t ons no For m2 e Fazer Per gunt a./ / I ncl usão de um ComboBox no For m1 par a sel eci onar e f i l t r ar a mat ér i a./ / I ncl usão de bot ões par a i ncl usão de mat ér i as. . .

/ / 11ª Fase/ / DBGr i d r et i r ado do For m4 e col ocado no novo For m5./ / No For m4 ef et uado dupl o cl i que no Tabl e, sel ec i onado t odos os campos ( f i el ds)e ar r at ando- os par a o f or mul ár i o. I ncl usão de um DBNavi gat or v i ncul ado aoDat aSour ce.

i nt er f ace

usesWi ndows, Messages, SysUt i l s, Var i ant s, Cl asses, Gr aphi cs, Cont r ol s , For ms,Di al ogs, St dCt r l s, Menus, ComCt r l s , Ext Ct r l s , But t ons, Ext Dl gs, Spi n;

t ypeTFor m1 = cl ass( TFor m)

But t on1: TBut t on;St at usBar 1: TSt at usBar ;Mai nMenu1: TMai nMenu;Ar qui vo1: TMenuI t em;Sai r 1: TMenuI t em;Ti mer 1: TTi mer ;I mage1: TI mage;Conf i gur ao1: TMenuI t em;OpenPi ct ur eDi al og1: TOpenPi ct ur eDi al og;I magem: TMenuI t em;Tr ocar 1: TMenuI t em;Nor mal 1: TMenuI t em;Est i car 1: TMenuI t em;Sal var 1: TMenuI t em;Fer r ament as1: TMenuI t em;Aj uda1: TMenuI t em;Sobr e1: TMenuI t em;Cal cul ador a1: TMenuI t em;Pai nt 1: TMenuI t em;Wor dPad1: TMenuI t em;Spi nEdi t 1: TSpi nEdi t ;Edi t or 1: TMenuI t em;ComboBox1: TComboBox;pr ocedur e But t on1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sai r 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Ti mer 1Ti mer ( Sender : TObj ect ) ;pr ocedur e Tr ocar 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Nor mal 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Est i car 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Cal cul ador a1Cl i ck( Sender : TObj ect ) ;pr ocedur e Pai nt 1Cl i ck( Sender : TObj ect ) ;pr ocedur e Wor dPad1Cl i ck( Sender : TObj ect ) ;pr ocedur e Sobr e1Cl i ck( Sender : TObj ect ) ;pr ocedur e Edi t or 1Cl i ck( Sender : TObj ect ) ;pr ocedur e ComboBox1Change( Sender : TObj ect ) ;

pr i vat e{ Pr i vat e decl ar at i ons }

publ i c{ Publ i c decl ar at i ons }

Page 78: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

78

end;

varFor m1: TFor m1;Mi nha_Respost a: St r i ng;Tempo_Tot al , Quant _Per gunt as, Not a, Tot al _Per gunt as: I nt eger ;Sor t ei o: ar r ay of I nt eger ;

i mpl ement at i on

uses Per gunt aU, Sobr eU, Edi t or U;

{ $R * . df m}

pr ocedur eFazer Per gunt a( Quest ao, Pr i mei r a_Opcao, Segunda_Opcao, Ter cei r a_Opcao, Quar t a_Opcao, Qui nt a_Opcao: St r i ng) ;begi n

For m2. Label 1. Capt i on: =Quest ao;For m2. Radi oBut t on1. Capt i on: =Pr i mei r a_Opcao;For m2. Radi oBut t on2. Capt i on: =Segunda_Opcao;For m2. Radi oBut t on3. Capt i on: =Ter cei r a_Opcao;For m2. Radi oBut t on4. Capt i on: =Quar t a_Opcao;For m2. Radi oBut t on5. Capt i on: =Qui nt a_Opcao;For m2. ShowModal ;

end;

/ / Est a r ot i na ger a uma mat r i z de 15 posi ções, cont endo os númer os de 1 a 15/ / Cada númer o cor r esponde a uma per gunt a, o númer o 7 é a 7ª per gunt a, et c./ / Não é per mi t i da a r epet i ção dest e númer os, par a não r epet i r per gunt as na mesmapr ovapr ocedur e Ef et uar _Sor t ei o;var

Sai r : St r i ng;X, Y, Z: I nt eger ;

begi nRandomi ze; / / Li ber a o Randomf or X: =0 t o Tot al _Per gunt as- 1 do Sor t ei o[ X] : =0; / / Zer a a mat r i z par a a

r ecuper ação, poi s exi s t e novo sor t ei of or X: =0 t o Tot al _Per gunt as- 1 do / / São 15 per gunt as

begi nr epeat / / Loop de Repeat a Unt i l

Sai r : =' Si m' ; / / Var i ável auxi l i ar , começa comSI M

Y: =Random( Tot al _Per gunt as) +1; / / Ger a um númer o al eat ór i oent r e 1 e Tot al _Per gut as

f or Z: =0 t o Tot al _Per gunt as- 1 do i f Y= Sor t ei o[ Z] t hen Sai r : = ' Não' ;/ / Se exi st e Y na mat r i z Sor t ei o, ent ão não sai e sor t ei a de novo, i s t o é, se umnúmer o j á sai u, sor t ei a de novo. I nf or ma que NÃO pode SAI R do l oop

unt i l Sai r = ' Si m' ; / / Só sai do l oop, se SAI R f orSI M

Sor t ei o[ X] : =Y; / / A mat r i z SORTEI O, r ecebe naposi ção X ( de 1 a 15) , um númer o al eat ór i o, que não sai u ant es

end;Sl eep( 1000) ; / / Pausa de um segundo. Est a l i nha não é necessár i a, mas f oi

col ocada aqui par a per mi t i r col ocar um Br eakPoi nt par a est udar a mat r i z SORTEI O.Col oque um Br eakPoi nt nel a ( cl i cando na bar r a ci nza a esquer da) e anal i se.end;

pr ocedur e Fazer Pr ova;var

X, Y, Z: I nt eger ;begi n

For m1. Hi de;

Page 79: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

79

Not a: =0;Ef et uar _Sor t ei o; / / Rot i na par a ger ar númer os

al eat ór i os sem r epet i ção, sempr e que uma pr ova f or f ei t a. Di ca: Pr es i one CTRL ecl i que em Ef et uar _Sor t ei o, nest a l i nha

For m2. Ti mer 1. Enabl ed: =Tr ue;For m2. Pr ogr essBar 1. Posi t i on: =0;For m2. Pr ogr essBar 1. Max: =Tempo_Tot al ;For m2. Pr ogr essBar 2. Posi t i on: =0;For m2. Pr ogr essBar 2. Max: =Quant _Per gunt as;f or X: =0 t o Quant _Per gunt as- 1 do

begi nFor m2. Pr ogr essBar 2. Posi t i on: =X;i f For m2. Pr ogr essBar 1. Posi t i on>=Tempo_Tot al t hen Br eak;Y: =Sor t ei o[ X] ;For m4. Tabl e1. Fi r st ; / / Pul a par a a 1ª per gunt af or Z: =1 t o Y- 1 do For m4. Tabl e1. Next ; / / Pul a par a a per gunt a Y- 1

( não cont ar a 1ª per gunt a, poi s j á est amos nel a) , que é a mat r i z SORTEI O

Fazer Per gunt a( For m4. Tabl e1Per gunt a. AsSt r i ng, For m4. Tabl e1OpcaoA. AsSt r i ng, For m4. Tabl e1OpcaoB. AsSt r i ng, For m4. Tabl e1OpcaoC. AsSt r i ng, For m4. Tabl e1OpcaoD. AsSt r i ng, For m4. Tabl e1OpcaoE. AsSt r i ng) ;

i f Mi nha_Respost a=For m4. Tabl e1Respost a. AsSt r i ng t hen I nc( Not a) ;end;

For m2. Ti mer 1. Enabl ed: =Fal se;For m1. Show;

end;

pr ocedur e Apr ovado;begi n

ShowMessage( ' Par abéns, você f oi apr ovado com not a ' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Repr ovado;begi n

ShowMessage( ' Você não consegui u, est ude mai s! Sua not a f oi' +I nt ToSt r ( Not a) +' . ' ) ;end;

pr ocedur e Recuper acao;begi n

ShowMessage( ' At enção, você f oi par a a r ecuper ação com not a' +I nt ToSt r ( Not a) +' . ' ) ;

Fazer Pr ova;i f Not a>=7* Quant _Per gunt as/ 100 t hen Apr ovado el se Repr ovado;

end;

pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ;begi n

Tot al _Per gunt as: =For m4. Tabl e1. Recor dCount ;Set Lengt h( Sor t ei o, Tot al _Per gunt as) ;Quant _Per gunt as: =Spi nEdi t 1. Val ue;Tempo_Tot al : =Quant _Per gunt as* 10;Fazer Pr ova;i f Not a>=70* Quant _Per gunt as/ 100 t hen Apr ovado el se Recuper acao;

end;

pr ocedur e TFor m1. Ti mer 1Ti mer ( Sender : TObj ect ) ;begi n

St at usBar 1. Panel s[ 0] . Text : =For mat Dat eTI me( ' DD/ MM/ YYYY HH: MM: SS' , Now) ;end;

pr ocedur e TFor m1. Sai r 1Cl i ck( Sender : TObj ect ) ;begi n

Appl i cat i on. Ter mi nat e;

Page 80: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

80

end;

pr ocedur e TFor m1. Tr ocar 1Cl i ck( Sender : TObj ect ) ;begi n

i f OpenPi ct ur eDi al og1. Execut e t henI mage1. Pi c t ur e. LoadFr omFi l e( OpenPi ct ur eDi al og1. Fi l eName) ;end;

pr ocedur e TFor m1. Nor mal 1Cl i ck( Sender : TObj ect ) ;begi n

I mage1. St r et ch: =Fal se;end;

pr ocedur e TFor m1. Est i car 1Cl i ck( Sender : TObj ect ) ;begi n

I mage1. St r et ch: =Tr ue;end;

pr ocedur e TFor m1. Cal cul ador a1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Wi ndows\ Cal c. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Pai nt 1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ MSPai nt . exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Wor dPad1Cl i ck( Sender : TObj ect ) ;begi n

Wi nExec( ' C: \ Ar qui vos de Pr ogr amas\ Acessór i os\ Wor dPad. exe' , SW_NORMAL) ;end;

pr ocedur e TFor m1. Sobr e1Cl i ck( Sender : TObj ect ) ;begi n

For m3. ShowModal ;end;

pr ocedur e TFor m1. Edi t or 1Cl i ck( Sender : TObj ect ) ;begi n

For m4. Show;end;

pr ocedur e TFor m1. ComboBox1Change( Sender : TObj ect ) ;begi n

i f ComboBox1. Text <>' ' t henbegi n

For m4. Tabl e1. Fi l t er : =' Mat er i a = ' +Quot edSt r ( ComboBox1. Text ) ; / / Fi l t r a asper gi nt as de acor do com a mat ér i a sel eci onada no ComboBox. Quot edSt r col ocaaspas na mat ér i a, que é obr i gado no Del phi

For m4. Tabl e1. Fi l t er ed: =Tr ue; / / Li ga of i l t r o

endel se For m4. Tabl e1. Fi l t er ed: =Fal se; / / Desl i ga o

f i l t r o se ComboBox em br ancoend;

pr ocedur e TFor m1. But t on2Cl i ck( Sender : TObj ect ) ;begi n

ComboBox1. I t ems. Add( ComboBox1. Text ) ; / / Adi ci ona o t ext o do ComboBoxnos i t ens do ComboBox

ComboBox1. I t ems. SaveToFi l e( ' Mat ér i a. t x t ' ) ; / / Sal va os i t ens do ComboBox noar qui vo Mat ér i a. t x tend;

Page 81: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

81

pr ocedur e TFor m1. For mCr eat e( Sender : TObj ect ) ;begi n / / Ao cr i ar o For m1

i f Fi l eExi st s( ' Mat ér i a. t xt ' ) t hen / / Se o ar qui vo Mat ér i a. t x tex i s t i r

ComboBox1. I t ems. LoadFr omFi l e( ' Mat ér i a. t x t ' ) ; / / Car r egue est e par a o ComboBoxend;

pr ocedur e TFor m1. But t on3Cl i ck( Sender : TObj ect ) ;begi n

Del et eFi l e( ' Mat ér i a. t x t ' ) ; / / Apaga o ar qui vo Mat ér i a. t xtend;

end.

Page 82: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

82

Anexo

E a l ógi ca, como vai ?

Exi st e a i l usão de que apenas conhecer uma boa l i nguagem cr edenci a a bomdesenvol vedor de si s t ema. Todavi a, a Lógi ca de Pr ogr amação t em papel f undament alna qual i dade do pr ogr ama.

Qual é a mel hor l i nguagem?" Qual é a l i nguagem do moment o?" " Qual é o sof t war e mai s usado no mer cado hoj e?"" Qual sof t war e você acha que devo apr ender par a est ar at ual i zado em r el ação aomer cado?" " Qual é a Li nguagem que mai s t em f ut ur o?"É comum ouvi r mos per gunt as dest e t i po de pessoas que desej am est ar na vanguar dada I nf or mát i ca. Exi s t e uma gr ande pr eocupação de at ual i zar - se em t er mos domel hor sof t war e de pr ogr amação. Todavi a, al guns, ent us i asmados pel o sof t war e,esquecem daqui l o que os move: a Lógi ca Comput aci onal .

Bal ance Li ne?Você j á f ez um " Bal ance Li ne" ? Sabe o que é? Est e t er mo ( em desuso) si gni f i caf azer a consol i dação de um ou mai s ar qui vos seqüenci ai s, pr é- or denados, ger andoum novo ar qui vo. Est e er a um pr obl ema t í pi co a ser r esol vi do por um pr ogr amadorde Mai n Fr ame, quando o pr ocessament o Bat ch - em l ot es - er a l ar gament eut i l i zado.Pr ogr amas como est e exi gi am do pr ogr amador mui t o mai s de sua l ógi ca do que deseu conheci ment o da l i nguagem de pr ogr amação, ou sej a, o mai or esf or ço f i cavapor cont a do r aci ocí ni o l ógi co par a r esol ver o pr obl ema do que a codi f i cação dasol ução em uma l i nguagem de pr ogr amação.

O Ret r abal ho

Quando ef et uamos um t r abal ho e est e não est á bem f ei t o, nat ur al ment e ser ápr ec i so r ef azê- l o. Um pr ogr ama mal const r uí do, que não at i nge o pr opósi t o a quef oi concebi do, est á cr edenci ado a ser r ef ei t o, mesmo que cont enha r equi nt es dal i nguagem. Pr ogr amar " boni t o" , expl or ando bem os r ecur sos que a l i nguagempr opor ci ona não é gar ant i a de que o pr ogr ama desempenhar á o papel esper ado.

O que é um pr ogr ama?Uma das def i ni ções de pr ogr ama é: " uma seqüênci a de i nst r uções l ogi cament eor denadas a f i m de sol uc i onar um pr obl ema" .I s t o s i gni f i ca que, se desej amos r esol ver um pr obl ema, é pr eci so est abel ecerquai s passos pr eci samos ef et uar e, depoi s di st o, or dená- l os de f or ma l ógi ca af i m de que desempenhem o que del es se esper a.

El abor ar Regr asNa ver dade, o r aci ocí ni o Lógi co ut i l i zado par a r esol ver um pr obl ema deveel abor ar uma r egr a ( ou vár i as r egr as) a ser segui da a f i m de que o pr obl ema sej ar esol v i do. A( s) r egr a( s) deve i ndi car por qual cami nho a sol ução ser á al cançada.

E o Sof t war e?Uma vez com a r egr a pr ont a, sabendo como chegar à sol ução, a pr óxi ma et apa é" t r aduzi r " a r egr a em códi go, ou sej a, pr ogr amar a sol ução ut i l i zando umal i nguagem de pr ogr amação.

E quem pr ogr ama " di r et o" ?Você pode est ar se per gunt ando: " mas e quem começa di r et o pel a pr ogr amação?"Or a, i st o é comum nos pr ogr amador es com mai or exper i ênci a, mas, ment al ment e, asol ução f oi ar qui t et ada. Não há i mpedi t i vo a i st o, mas é i mpor t ant e t er - se asol ução ant es da pr ogr amação. Qual i dade do Pr ogr amaPar a que um pr ogr ama t enha qual i dade, são necessár i os al guns i t ens:

Page 83: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

83

a) Requer i ment o:def i ni ção cl ar a ( e pr ef er enci al ment e document ada) do que se esper a que opr ogr ama r eal i ze;b) Est r at égi a de Sol ução:A el abor ação da Regr a par a sol ução do pr obl ema a r esol ver , ou sej a, a Lógi ca doPr ogr ama;c) Desenvol v i ment o Est r ut ur ado:desenvol ver o al gor i t mo que sol uci onar á o pr obl ema / ef et uar á o t r abal ho;d) Test e da Sol ução:Val i dar a sol ução const r uí da ( el abor ar e ef et uar casos de t est e, ver i f i cando seo pr ogr ama pr oduz os r esul t ados esper ados) .

Est r at égi a de Sol ução ( Regr a)

A sol ução l ógi ca do pr obl ema, sej a el a el abor ada vi a um di agr ama de bl ocos oumesmo ar qui t et ada ment al ment e, const i t ui f at or pr i mor di al par a a boa qual i dadedo pr ogr ama.

Exempl o de Lógi caPar a i l ust r ar mos, i magi ne a segui nt e necessi dade: t emos a var i ável de memór i ames, numér i ca, com val or es var i ando de 1 a 12, e pr eci samos encont r ar as 3pr i mei r as l et r as do mês cor r espondent e ( " JAN" , " FEV" , " MAR" , . . . ) , ar mazenando-as na var i ável s t r i ng st r .Obvi ament e, há vár i as f or mas de r esol ver - se est e pr obl ema, ou sej a, não há umaf or ma l ógi ca úni ca de r esol ver - se. Por ém, dependendo da sol ução l ógi ca adot ada,a pr ogr amação ser á bem di f er ent e.Nat ur al ment e, pr i v i l egi ando o r euso, deve ser const r uí da uma f unção ( ou r ot i na)que possa ser ut i l i zada em vár i as opor t uni dades. Coment ar emos 3 al t er nat i vaspar a const r ução dest a f unção:

Pr i mei r a For ma – Ni nho de I F’ s

I F mes = 1 t hen

st r : = " JAN"

el se

i f mes = 2 t henst r : = " FEV"el se

i f mes = 3 t henst r : = " MAR" el se . . .

Obvi ament e est e sol ução é l onga e não é a mai s adequada.

Segunda For ma - Vet orCr i a- se um vet or com 12 ocor r ênci as, cont endo as 3 pr i mei r as l et r as dos 12 mesespossí vei s:

aMES [ 1] : = " JAN"aMES [ 2] : = " FEV"aMES [ 3] : = " MAR"

.

.

.aMES [ 12] : = " DEZ"st r : = aMES[ mes]

Est a é uma sol ução bem mai s cur t a e de f ác i l ent endi ment o par a quem l ê opr ogr ama.

Page 84: ALGORITMO NÃO COMPUTACIONAL - saviocler.com.brsaviocler.com.br/files/basico.pdf · • Visual Basic • Delphi e etc. S E Q ... Para a construção de Algoritmos todas as expressões

CCEETTEEPP –– SSaannttoo AAnnttôônniioo ddee PPáádduuaa

84

Ter cei r a For ma - Subst r i ng de St r i ng

Cr i a- se um St r i ng cont endo os 12 meses possí vei s , enf i l ei r ando- seconsecut i vament e as 3 l et r as i ni ci ai s de cada mês e l ocal i za- se o subst r i ngdesej ado por uma f ór mul a.

cMES = " JANFEVMARABRMAI JUN. . . DEZ" ;st r : = copy( cMES, ( mes- 1) * 3+1, 3) ;

Nos doi s pr i mei r os exempl os, f i ca f áci l ver i f i car que f unci ona, embor a sej apr ec i so escr ever bem mai s. No t er cei r o exempl o, a escr i t a de pr ogr amação éot i mi zada, sendo bem menor , por ém o cont eúdo de l ógi ca é mai s r ebuscado.

Como saber se f unci ona? É aqui que ent r a o t est e da sol ução. . .

Test e de MesaEst e t est e não pr eci sa ser f ei t o r odando- se o pr ogr ama vár i as vezes. Bast a acr i ação de uma pequena t abel a ( f ei t a em Pl ani l ha El et r ôni ca, por exempl o) :Vej a que o r esul t ado da f ór mul a coi nci de com a pr i mei r a posi ção das 3 l et r as decada mês!I s t o nos cer t i f i ca de que o pr ogr ama r eal i zar á exat ament e o que del e se esper a.

Concl usãoConhecer bem uma boa l i nguagem de pr ogr amação é i mpor t ant e mas não é t udo. Par at er mos pr ogr amas com qual i dade, que al ém de ef et uar o t r abal ho desej ado,f aci l i t em a pr ogr amação e a manut enção dos mesmos, é f undament al t er mos uma boasol ução l ógi ca do pr obl ema.

Meses Possí vei sFór mul a( mes- 1) * 3+1

1 12 43 74 105 136 167 198 229 2510 2811 3112 34

Paul o Ser gi o Bor ba, 33 anos, é Anal i st a de Si st emas há 13 anos e Pr of essor daFacul dade Radi al São Paul o, onde l ec i ona Li nguagem e Técni cas de Pr ogr amação nocur so de Pr ocessament o de Dados.