57
Projeto e Desenvolvimento de Projeto e Desenvolvimento de Algoritmos Algoritmos Procedimentos Procedimentos Adriano Cruz e Jonas Adriano Cruz e Jonas Knopman Knopman

Peteqs Senai

Embed Size (px)

DESCRIPTION

Peteqs Senai

Citation preview

Projeto e Desenvolvimento de Projeto e Desenvolvimento de AlgoritmosAlgoritmos

ProcedimentosProcedimentos

Adriano Cruz e JonasAdriano Cruz e Jonas KnopmanKnopman

ObjetivosObjetivos

�� DefiniçãoDefinição

�� NecessidadeNecessidade ee vantagens da utilizaçãovantagens da utilização

�� Variáveis locaisVariáveis locais ee variáveis públicasvariáveis públicas

�� EscopoEscopo dede variáveisvariáveis

�� ExemplosExemplos

Filé de peixe ao molho brancoFilé de peixe ao molho branco

{preparo dos peixes}{preparo dos peixes}Lave os filLave os filéés e tempere com o suco dos lims e tempere com o suco dos limõões, sal, es, sal, pimenta e salsinha ...pimenta e salsinha ...

{preparo do molho branco}{preparo do molho branco}Coloque numa panela a manteiga, a farinha e o leite e Coloque numa panela a manteiga, a farinha e o leite e misture bem. Em fogo mmisture bem. Em fogo méédio, cozinhe atdio, cozinhe atéé engrossar. engrossar. Adicione o sal, ...Adicione o sal, ...

{juntando os dois}{juntando os dois}Adicione queijo parmesAdicione queijo parmesãão ralado e queijo o ralado e queijo gruygruyèèrere. Misture . Misture e ponha sobre os file ponha sobre os filéés. s.

Alface ao molho brancoAlface ao molho branco

{preparo da alface}{preparo da alface}Derreta a manteiga. Junte a alface cortada. Salpique o Derreta a manteiga. Junte a alface cortada. Salpique o sal e deixe cozinhar por uns 5 a 10 minutos ou atsal e deixe cozinhar por uns 5 a 10 minutos ou atéé a a alface ficar tenra, ou o lalface ficar tenra, ou o lííquido da panela secar. quido da panela secar.

{preparo do molho branco}{preparo do molho branco}Coloque numa panela a manteiga, a farinha e o leite Coloque numa panela a manteiga, a farinha e o leite e misture bem. Eme misture bem. Em fogo mfogo méédio, cozinhe atdio, cozinhe atééengrossar. Adicione o sal ...engrossar. Adicione o sal ...

{juntando os dois}{juntando os dois}Junte ao molho branco e ao suco de limJunte ao molho branco e ao suco de limãão. Coloque o. Coloque numa travessa e enfeite em volta com pnuma travessa e enfeite em volta com pãão torrado o torrado cortado em tricortado em triâângulos.ngulos.

ProcedimentosProcedimentos

�� AA receitareceita dede molho brancomolho branco éé replicada juntoreplicada junto aatoda receita que faz usotoda receita que faz uso dede molho brancomolho branco..

VantagemVantagem

�� OO acessoacesso àà receitareceita dede molho brancomolho branco éé muito muito rápidorápido..

DesvantagemDesvantagem

�� OO livro fica maiorlivro fica maior

Outra desvantagemOutra desvantagem

�� SeSe amanhã descubro que uma pitadaamanhã descubro que uma pitada dedepimenta dápimenta dá umum saborsabor especialespecial ao molho brancoao molho branco,,tenhotenho dede alteraralterar aa receita em vários pontosreceita em vários pontos dodolivrolivro..

Outra alternativaOutra alternativa

��FilFiléé de peixe ao molho brancode peixe ao molho branco

{preparo dos peixes}{preparo dos peixes}Lave os filLave os filéés e tempere com o suco dos lims e tempere com o suco dos limõões, sal, es, sal, pimenta e salsinha ...pimenta e salsinha ...

{preparo do molho branco}{preparo do molho branco}Prepare a receita bPrepare a receita báásica de molho branco (psica de molho branco (páág.25)g.25)

{juntando os dois}{juntando os dois}Adicione queijo parmesAdicione queijo parmesãão ralado e queijo o ralado e queijo gruygruyèèrere. . Misture e ponha sobre os filMisture e ponha sobre os filéés. s.

Alface ao molho brancoAlface ao molho branco

{preparo da alface}{preparo da alface}Derreta a manteiga. Junte a alface cortada. Salpique o Derreta a manteiga. Junte a alface cortada. Salpique o sal e deixe cozinhar por uns 5 a 10 minutos ou atsal e deixe cozinhar por uns 5 a 10 minutos ou atéé a a alface ficar tenra, ou o lalface ficar tenra, ou o lííquido da panela secar. quido da panela secar.

{preparo do molho branco}{preparo do molho branco}Prepare a receita bPrepare a receita báásica de molho branco (psica de molho branco (páág.25)g.25)

{juntando os dois}{juntando os dois}Junte ao molho branco e ao suco de limJunte ao molho branco e ao suco de limãão. Coloque o. Coloque numa travessa e enfeite em volta com pnuma travessa e enfeite em volta com pãão torrado o torrado cortado em tricortado em triâângulos.ngulos.

NaNa páginapágina 25...25...

Molho brancoMolho brancoColoque numa panela a manteiga, a farinha e o leite e Coloque numa panela a manteiga, a farinha e o leite e misture bem. Em fogo mmisture bem. Em fogo méédio, cozinhe atdio, cozinhe atéé engrossar. engrossar. Adicione o sal, a pimenta e o queijo. Continue com a panela Adicione o sal, a pimenta e o queijo. Continue com a panela no fogo, cozinhando atno fogo, cozinhando atéé que o queijo derreta, mexendo que o queijo derreta, mexendo constantemente.constantemente.

Vantagens daVantagens da formaforma alternativaalternativa

EconomiaEconomia dede códigocódigoOO livrolivro ((programaprograma)) vai ficar menorvai ficar menor

ModularidadeModularidadeSeSe amanhã descubro queamanhã descubro que um dente deum dente de alho dáalho dáumum saborsabor especialespecial ao molho brancoao molho branco,, basta alterarbasta alteraroo livrolivro dede receitas emreceitas em umum único lugarúnico lugar..

Mais vantagensMais vantagens:: divisãodivisão dede trabalhotrabalho

OO livrolivro dede receitas podereceitas pode serser escrito porescrito por 22 autoresautores..Basta queBasta que um delesum deles aprendaaprenda aa prepararpreparar oo peixepeixe e e oo outrooutro aa prepararpreparar oo molho brancomolho branco..

Mais vantagensMais vantagens:: utilizaçãoutilização dede componentes componentes prontosprontos

�� FilFiléé de peixe com molho brancode peixe com molho branco{preparo dos peixes}{preparo dos peixes}Lave os filLave os filéés e tempere com o suco dos lims e tempere com o suco dos limõões, sal, es, sal, pimenta e salsinha ...pimenta e salsinha ...

{preparo do molho branco}{preparo do molho branco}VVáá atatéé o supermercado e compre molho branco o supermercado e compre molho branco Parmalat (pronto)Parmalat (pronto)

{juntando os dois}{juntando os dois}Adicione queijo parmesAdicione queijo parmesãão ralado e queijo o ralado e queijo gruygruyèèrere. . Misture e ponha sobre os filMisture e ponha sobre os filéés. s.

Mais vantagensMais vantagens:: reaproveitamentoreaproveitamento dedecódigocódigo

�� FilFiléé de peixe com molho brancode peixe com molho branco{preparo dos peixes}{preparo dos peixes}Lave os filLave os filéés e tempere com o suco dos lims e tempere com o suco dos limõões, sal, es, sal, pimenta e salsinha ...pimenta e salsinha ...

{preparo do molho branco}{preparo do molho branco}Prepare o molho branco segundo receita do meu livro Prepare o molho branco segundo receita do meu livro anterior, panterior, páágina 35gina 35

{juntando os dois}{juntando os dois}Adicione queijo parmesAdicione queijo parmesãão ralado e queijo o ralado e queijo gruygruyèèrere. . Misture e ponha sobre os filMisture e ponha sobre os filéés. s.

Mais vantagensMais vantagens:: parametrizaçãoparametrização dosdosprocedimentosprocedimentos

MACARRMACARRÃÃOO COMCOM OVOSOVOS BATIDOSBATIDOS

MODO DE FAZER:MODO DE FAZER:CozinheCozinhe oo macarrmacarrãão em o em áágua abundantegua abundante,, ferventefervente, com, com

salsal.. EscorraEscorra.. ColoqueColoque aa manteiga numa panelamanteiga numa panela ee leve ao leve ao fogofogo.. DepoisDepois dede derretidaderretida,, juntejunte oo macarrmacarrãão jo jáá cozidocozido e,e,em seguidaem seguida,, os ovos batidosos ovos batidos.. Misturando bemMisturando bem ee abaixeabaixe oofogofogo.. Levante devagarLevante devagar, com a, com a pontaponta dede uma facauma faca, o, omacarrmacarrããoo,, atatéé que cozinhe os ovosque cozinhe os ovos.. Despeje em uma Despeje em uma travessatravessa ee polvilhepolvilhe com ocom o queijo raladoqueijo ralado..

ParametrizaçãoParametrização dosdos procedimentosprocedimentos

�� AA receita não faz referência ao tiporeceita não faz referência ao tipo dedemacarrãomacarrão......

ParametrizaçãoParametrização dosdos procedimentosprocedimentos

�� Cálculo da áreaCálculo da área dede umauma mesamesa

Mede oMede o comprimento dacomprimento da mesamesaMede aMede a largura dalargura da mesamesaMultiplicaMultiplica oo comprimento dacomprimento da mesamesa pela largura dapela largura da

mesamesaDizDiz oo resultadoresultado

ParametrizaçãoParametrização dosdos procedimentosprocedimentos

�� Cálculo da área da toalha sobreCálculo da área da toalha sobre a mesaa mesa

Mede oMede o comprimento da comprimento da toalhatoalhaMede aMede a largura da largura da toalhatoalhaMultiplicaMultiplica oo comprimento da comprimento da toalhatoalha pela largura pela largura

da da toalhatoalhaDizDiz oo resultadoresultado

ParametrizaçãoParametrização dosdos procedimentosprocedimentos

�� Procedimento paraProcedimento para oo cálculocálculo dede objeto objeto retangularretangular

ProcedimentoProcedimento area (area (coisacoisa))inicioinicio

Mede oMede o comprimento da comprimento da coisacoisaMede aMede a largura da largura da coisacoisaMultiplicaMultiplica oo comprimento da comprimento da coisacoisa

pela largura da pela largura da coisacoisaDizDiz oo resultadoresultado

fimfim

ParametrizaçãoParametrização dosdos procedimentosprocedimentos

ParaPara calcularcalcular aa área daárea da mesamesaarea (area (mesamesa))

ParaPara calcularcalcular aa área da toalhaárea da toalhaarea (area (toalhatoalha))

coisacoisa éé umum objetoobjeto virtual.virtual. coisacoisa sese materializa emmaterializa emmesamesa ou toalha na hora em que mando calcularou toalha na hora em que mando calcular aaáárearea →→ mesmo procedimento atuando sobre mesmo procedimento atuando sobre diferentesdiferentes dados.dados.

NecessidadeNecessidade dodo usouso

�� Procedimentos sãoProcedimentos são a base dasa base das linguagens linguagens visuaisvisuais

NecessidadeNecessidade dodo usouso

TratamentosTratamentos dede eventos escritos naeventos escritos na forma deforma deprocedimentosprocedimentosSub Botao_Click()

MsgBox "Eu disse em caso de incêndio!!!"

End Sub

NecessidadeNecessidade dodo usouso

ProcedimentosProcedimentos ((métodosmétodos)) são tambémsão também a basea baseda orientaçãoda orientação aa objetoobjeto

TMesaTMesa = class= class

larguralargura : real;: real;

comprimentocomprimento : real;: real;

functionfunction CalculaAreaCalculaArea : real;: real;

end;end;

AbordagemAbordagem OOOO

PropriedadesPropriedades ee métodos são encapsuladosmétodos são encapsulados nonoobjetoobjeto →→→→→→→→ oo objeto sabe como lidarobjeto sabe como lidar comcom suas suas propriedadespropriedades..

mesa.mesa.CalculaAreaCalculaArea

Mas qualMas qual é aé a vantagem na utilizaçãovantagem na utilizaçãode OO?de OO?

MuitasMuitas.. Posso porPosso por ""inteligênciainteligência"" nana mesamesavisandovisando aa proteçãoproteção ee integridadeintegridade dos dadosdos dados

mesa.mesa.comprimentocomprimento := := --2.22.2;;

EmEm Delphi:Delphi:procedureprocedure TMesaTMesa..SetComprimentoSetComprimento(Value: real);(Value: real);

beginbegin

if Value <=0 then if Value <=0 then

raise Exception.Create('Valorraise Exception.Create('Valor Inválido'Inválido'););

comprimentocomprimento := Value;:= Value;

end;end;

ClasseClasse?????? OrientaçãoOrientação aa ObjetoObjeto??????

Mas para queMas para que serveserve issoisso??

Jogo da BolinhaJogo da Bolinha

ComoComo implementarimplementar??

Abordagem tradicional (PETEQS)Abordagem tradicional (PETEQS)

acabou acabou ←←←←←←←← falsofalso

enquanto nãoenquanto não acabou acabou façafaça

parapara i i ←←←←←←←← 1 1 atéaté 2 2 façafaça

anda (bolinha[i])anda (bolinha[i])

tratacolisaotratacolisao (bolinha[i])(bolinha[i])

próximopróximo ii

fimfim enquantoenquanto

ConclusãoConclusão

�� AA utilizaçãoutilização dede procedimentos está naprocedimentos está na basebase da da construçãoconstrução dede bons padrõesbons padrões dede programaçãoprogramação..

�� AA utilizaçãoutilização dede procedimentosprocedimentos éé essencial ao essencial ao usouso dasdas chamadas linguagens visuaischamadas linguagens visuais

�� AA utilizaçãoutilização dede procedimentosprocedimentos éé essencialessencial ààprogramação orientadaprogramação orientada aa objetosobjetos..

Forma geral de um programaForma geral de um programaemem PETEQSPETEQS contendo procedimentoscontendo procedimentos

procedimento A

início

{ Comandos }

Fim

programa teste

início{ Comandos }

fim

ChamadaChamada dede ProcedimentosProcedimentos

A chamada a um procedimento é feita A chamada a um procedimento é feita simplesmente escrevendosimplesmente escrevendo--se o nome do se o nome do procedimento no corpo do módulo (programa procedimento no corpo do módulo (programa principal ou outro procedimento) que efetuou a principal ou outro procedimento) que efetuou a chamada.chamada.

Exemplo de uso de procedimentosExemplo de uso de procedimentos

procedimento Escreva_uma_mensageminício

imprima 'O contador vale:', ifim

início

para i ←←←← 1 até 5 façaEscreva_uma_mensagem

próximo i

fim

Exemplo de uso de procedimentosExemplo de uso de procedimentos

�� Saída:Saída:

O contador vale: 1O contador vale: 2O contador vale: 3O contador vale: 4O contador vale: 5

EscopoEscopo dede variáveisvariáveis

�� SeSe dois módulosdois módulos dede programa cooperamprograma cooperam de de forma aforma a resolverresolver umum problemaproblema,, eles têmeles têm dedetrocartrocar dados dedados de algumaalguma formaforma

�� OO mecanismo mais imediatomecanismo mais imediato (e(e mais perigosomais perigoso))parapara aa trocatroca de dados é ade dados é a utilizaçãoutilização dedevariáveis públicasvariáveis públicas

ConversãoConversão de de temperaturastemperaturas

ProceProcedimentodimento ConvertConvertee

// // entradaentrada:: temperaturatemperatura Fahrenheit (Far)Fahrenheit (Far)

// // saídasaída:: temperaturatemperatura Celsius (Celsius (CelCel))

inícioinício

CelCel ←← (Far (Far -- 32) / 1.832) / 1.8

fimfim

Variáveis PúblicasVariáveis Públicas

ConverteConverte

FarFar

CelCel

ConversãoConversão de de temperaturastemperaturas

variáveis públicasvariáveis públicas

Far, Far, CelCel

programaprograma testeteste

inícioinício

imprimaimprima 'Temperatura em Fahrenheit: ''Temperatura em Fahrenheit: '

leialeia FarFar

ConvertConvertee

imprimaimprima 'Celsius: ', Cel'Celsius: ', Cel

fimfim

ConversãoConversão dede temperaturastemperaturas

�� Saída:Saída:

Temperatura em Fahrenheit: 212

Celsius: 100.00

Variáveis PúblicasVariáveis Públicas

�� As variáveis As variáveis públicaspúblicas são vistas por todos os são vistas por todos os módulos do programa (procedimentos e módulos do programa (procedimentos e funções), incluindo o programa principal.funções), incluindo o programa principal.

Variáveis PúblicasVariáveis Públicas

�� VantagensVantagens

Facilidade de Uso – Por serem públicas, tais variáveis servem para a troca de informações entre 2 módulos quaisquer do programa.

Variáveis PúblicasVariáveis Públicas

�� DesvantagensDesvantagensJustamente por serem acessíveis a qualquer módulo, as variáveis públicas apresentam um riscode que outros módulos não envolvidos na troca de dados alterem (inadvertidamente ou não) os dadoscompartilhados.

Falta de proteção dos dados compartilhados. Não há como evitar que mesmo os módulos envolvidos na comunicação alterem equivocadamente dados que ainda seriam necessários a outros módulos

Variáveis PúblicasVariáveis Públicas

�� DesvantagensDesvantagens

Os módulos envolvidos na comunicação têm de usar os mesmos nomes para as variáveis compartilhadas.

EscopoEscopo dede variáveisvariáveis

O O que aconteceque acontece sese eu não declarareu não declarar asas variáveisvariáveisdede entradaentrada//saída como públicassaída como públicas??

Conversão Conversão de de TemperaturasTemperaturas

ProceProcedimentodimento ConvertConvertee// // entradaentrada:: temperaturatemperatura Fahrenheit (Far)Fahrenheit (Far)// // saídasaída:: temperaturatemperatura Celsius (Celsius (CelCel))inicioinicio

CelCel ←← (Far (Far -- 32) / 1.832) / 1.8FimFim

programaprograma testetesteinicioinicio

imprimaimprima 'Temperatura em Fahrenheit: ''Temperatura em Fahrenheit: 'leialeia FarFarConvertConverteeimprimaimprima 'Celsius: ', Cel'Celsius: ', Cel

fimfim

Esquema Esquema de de alocação alocação de de memóriamemória

????

Far:teste

Cel:teste

Antes de Antes de iniciariniciar--se a se a execução execução do do programaprograma: O : O sistema operacional aloca emsistema operacional aloca em memóriamemória espaçoespaçoparapara as as variáveis utilizadasvariáveis utilizadas pelopelo programaprogramaprincipalprincipal

EsquemaEsquema dede alocaçãoalocação dede memóriamemória

Começa Começa a a execução execução do do programa programa principalprincipal

leialeia FarFar

212212??

Far:teste

Cel:teste

EsquemaEsquema dede alocaçãoalocação dede memóriamemória

ConverteConverte

Antes de Antes de começar começar a a executar executar o o procedimento procedimento ConverteConverte, o SO , o SO aloca aloca as as variáveis variáveis de de ConverteConverte

??

212212????

Far:teste

Cel:teste

Far:Converte

Cel:Converte

EsquemaEsquema dede alocaçãoalocação dede memóriamemória

Começa Começa a a execução execução de de ConverteConverte

CelCel ←← (Far (Far -- 32) / 1.832) / 1.8

??

212212????

Far:teste

Cel:teste

Far:Converte

Cel:Converte

EsquemaEsquema dede alocaçãoalocação dede memóriamemória

TerminaTermina a a execução execução de de ConverteConverte

212212??

Far:teste

Cel:teste

EsquemaEsquema dede alocaçãoalocação dede memóriamemória

Prossegue Prossegue a a execução execução do do programa programa principalprincipal

imprimaimprima 'Celsius: ', Cel'Celsius: ', Cel

212212??

Far:teste

Cel:teste

Um Um exemploexemplo

Escreva Escreva uum procedimento que calcule o peso m procedimento que calcule o peso ideal de uma pessoaideal de uma pessoa::

homenshomens::pesopeso = = 72.7*altura 72.7*altura –– 5858

mulheresmulherespeso = peso = 62.1*altura 62.1*altura –– 44.744.7

Procedimento CalculaPesoProcedimento CalculaPeso

�� Vamos determinar Vamos determinar o o conjunto conjunto de de entradas entradas e e saídas saídas do do procedimento CalculaPesoprocedimento CalculaPeso

CalculaPesoCalculaPesoEntradasEntradas SaídasSaídas

Procedimento CalculaPesoProcedimento CalculaPeso

�� EntradasEntradassexoaltura

�� SaídaSaídapeso

Procedimento CalculaPesoProcedimento CalculaPeso

Variáveis públicasVariáveis públicassexosexo, , alturaaltura, peso, peso

procedimentoprocedimento CalculaPesoCalculaPeso

inícioiníciosese sexo sexo = 'M' = 'M' entãoentão

peso peso ←← 72.7*altura 72.7*altura –– 5858

senãosenãopeso peso ←← 62.1*altura 62.1*altura –– 44.744.7

fimfim sesefimfim

Um Um programa que programa que use use CalculaPesoCalculaPeso

programaprograma testeteste

inícioinício

imprimaimprima 'Entre 'Entre com a com a alturaaltura: ': '

leialeia alturaaltura

imprimaimprima 'Entre 'Entre com o com o sexosexo: ': '

leialeia sexosexo

CalculaPesoCalculaPeso

imprimaimprima 'Peso ideal: ', peso'Peso ideal: ', peso

fimfim

CalculaPesoCalculaPeso

�� SaidaSaida::

EntreEntre com acom a alturaaltura: 1.62: 1.62

EntreEntre com ocom o sexosexo: F: F

Peso ideal: 55.9Peso ideal: 55.9