Você está na página 1de 57

Projeto e Desenvolvimento de

Algoritmos
Procedimentos
Adriano Cruz e Jonas Knopman

Objetivos
Definio
Necessidade e vantagens da utilizao
Variveis locais e variveis pblicas
Escopo de variveis
Exemplos

Fil de peixe ao molho branco


{preparo dos peixes}
Lave os fils e tempere com o suco dos limes, sal,
pimenta e salsinha ...
{preparo do molho branco}
Coloque numa panela a manteiga, a farinha e o leite e
misture bem. Em fogo mdio, cozinhe at engrossar.
Adicione o sal, ...
{juntando os dois}
Adicione queijo parmeso ralado e queijo gruyre. Misture
e ponha sobre os fils.

Alface ao molho branco


{preparo da alface}
Derreta a manteiga. Junte a alface cortada. Salpique o
sal e deixe cozinhar por uns 5 a 10 minutos ou at a
alface ficar tenra, ou o lquido da panela secar.
{preparo do molho branco}
Coloque numa panela a manteiga, a farinha e o leite
e misture bem. Em fogo
mdio,
cozinhe
at
engrossar. Adicione o sal ...
{juntando os dois}
Junte ao molho branco e ao suco de limo. Coloque
numa travessa e enfeite em volta com po torrado
cortado em tringulos.

Procedimentos
A receita de molho branco replicada junto a
toda receita que faz uso de molho branco.

Vantagem
O acesso receita de molho branco muito
rpido.

Desvantagem
O livro fica maior

Outra desvantagem
Se amanh descubro que uma pitada de
pimenta d um sabor especial ao molho branco,
tenho de alterar a receita em vrios pontos do
livro.

Outra alternativa
Fil de peixe ao molho branco
{preparo dos peixes}
Lave os fils e tempere com o suco dos limes, sal,
pimenta e salsinha ...
{preparo do molho branco}
Prepare a receita bsica de molho branco (pg.25)
{juntando os dois}
Adicione queijo parmeso ralado e queijo gruyre.
Misture e ponha sobre os fils.

Alface ao molho branco


{preparo da alface}
Derreta a manteiga. Junte a alface cortada. Salpique o
sal e deixe cozinhar por uns 5 a 10 minutos ou at a
alface ficar tenra, ou o lquido da panela secar.
{preparo do molho branco}
Prepare a receita bsica de molho branco (pg.25)
{juntando os dois}
Junte ao molho branco e ao suco de limo. Coloque
numa travessa e enfeite em volta com po torrado
cortado em tringulos.

Na pgina 25...
Molho branco
Coloque numa panela a manteiga, a farinha e o leite e
misture bem. Em fogo mdio, cozinhe at engrossar.
Adicione o sal, a pimenta e o queijo. Continue com a panela
no fogo, cozinhando at que o queijo derreta, mexendo
constantemente.

Vantagens da forma alternativa


Economia de cdigo
O livro (programa) vai ficar menor

Modularidade
Se amanh descubro que um dente de alho d
um sabor especial ao molho branco, basta alterar
o livro de receitas em um nico lugar.

Mais vantagens: diviso de trabalho


O livro de receitas pode ser escrito por 2 autores.
Basta que um deles aprenda a preparar o peixe e
o outro a preparar o molho branco.

Mais vantagens: utilizao de componentes


prontos
Fil de peixe com molho branco
{preparo dos peixes}
Lave os fils e tempere com o suco dos limes, sal,
pimenta e salsinha ...
{preparo do molho branco}
V at o supermercado e compre molho branco
Parmalat (pronto)
{juntando os dois}
Adicione queijo parmeso ralado e queijo gruyre.
Misture e ponha sobre os fils.

Mais vantagens: reaproveitamento de


cdigo
Fil de peixe com molho branco
{preparo dos peixes}
Lave os fils e tempere com o suco dos limes, sal,
pimenta e salsinha ...
{preparo do molho branco}
Prepare o molho branco segundo receita do meu livro
anterior, pgina 35
{juntando os dois}
Adicione queijo parmeso ralado e queijo gruyre.
Misture e ponha sobre os fils.

Mais vantagens: parametrizao dos


procedimentos

MACARRO COM OVOS BATIDOS


MODO DE FAZER:
Cozinhe o macarro em gua abundante, fervente, com
sal. Escorra. Coloque a manteiga numa panela e leve ao
fogo. Depois de derretida, junte o macarro j cozido e,
em seguida, os ovos batidos. Misturando bem e abaixe o
fogo. Levante devagar, com a ponta de uma faca, o
macarro, at que cozinhe os ovos. Despeje em uma
travessa e polvilhe com o queijo ralado.

Parametrizao dos procedimentos


A receita no faz referncia ao tipo de
macarro...

Parametrizao dos procedimentos


Clculo da rea de uma mesa
Mede o comprimento da mesa
Mede a largura da mesa
Multiplica o comprimento da mesa pela largura da
mesa
Diz o resultado

Parametrizao dos procedimentos


Clculo da rea da toalha sobre a mesa
Mede o comprimento da toalha
Mede a largura da toalha
Multiplica o comprimento da toalha pela largura
da toalha
Diz o resultado

Parametrizao dos procedimentos


Procedimento para o clculo de objeto
retangular
Procedimento area (coisa)
inicio
Mede o comprimento da coisa
Mede a largura da coisa
Multiplica o comprimento da coisa
pela largura da coisa
Diz o resultado
fim

Parametrizao dos procedimentos


Para calcular a rea da mesa
area (mesa)
Para calcular a rea da toalha
area (toalha)
coisa um objeto virtual. coisa se materializa em
mesa ou toalha na hora em que mando calcular a
rea mesmo procedimento atuando sobre
diferentes dados.

Necessidade do uso
Procedimentos so a base das linguagens
visuais

Necessidade do uso

Tratamentos de eventos escritos na forma de


procedimentos
Sub Botao_Click()
MsgBox "Eu disse em caso de incndio!!!"
End Sub

Necessidade do uso
Procedimentos (mtodos) so tambm a base
da orientao a objeto
TMesa = class
largura : real;
comprimento : real;
function CalculaArea : real;
end;

Abordagem OO
Propriedades e mtodos so encapsulados no
objeto o objeto sabe como lidar com suas
propriedades.

mesa.CalculaArea

Mas qual a vantagem na utilizao


de OO?
Muitas. Posso por "inteligncia" na mesa
visando a proteo e integridade dos dados
mesa.comprimento := -2.2;

Em Delphi:
procedure TMesa.SetComprimento(Value: real);
begin
if Value <=0 then
raise Exception.Create('Valor Invlido');
comprimento := Value;
end;

Classe??? Orientao a Objeto???


Mas para que serve isso?

Jogo da Bolinha

Como implementar?
Abordagem tradicional (PETEQS)
acabou falso
enquanto no acabou faa
para i 1 at 2 faa
anda (bolinha[i])
tratacolisao (bolinha[i])
prximo i
fim enquanto

Concluso
A utilizao de procedimentos est na base da
construo de bons padres de programao.
A utilizao de procedimentos essencial ao
uso das chamadas linguagens visuais
A utilizao de procedimentos essencial
programao orientada a objetos.

Forma geral de um programa


em PETEQS contendo procedimentos
procedimento A
incio
{ Comandos }
Fim

programa teste
incio
{ Comandos }
fim

Chamada de Procedimentos
A chamada a um procedimento feita
simplesmente escrevendo-se o nome do
procedimento no corpo do mdulo (programa
principal ou outro procedimento) que efetuou a
chamada.

Exemplo de uso de procedimentos


procedimento Escreva_uma_mensagem
incio
imprima 'O contador vale:', i
fim

incio
para i 1 at 5 faa
Escreva_uma_mensagem
prximo i
fim

Exemplo de uso de procedimentos


Sada:
O
O
O
O
O

contador
contador
contador
contador
contador

vale:
vale:
vale:
vale:
vale:

1
2
3
4
5

Escopo de variveis
Se dois mdulos de programa cooperam de
forma a resolver um problema, eles tm de
trocar dados de alguma forma
O mecanismo mais imediato (e mais perigoso)
para a troca de dados a utilizao de
variveis pblicas

Converso de temperaturas

Procedimento Converte
// entrada: temperatura Fahrenheit (Far)
// sada: temperatura Celsius (Cel)
incio
Cel (Far - 32) / 1.8
fim

Variveis Pblicas
Far

Converte

Cel

Converso de temperaturas
variveis pblicas
Far, Cel
programa teste
incio
imprima 'Temperatura em Fahrenheit: '
leia Far
Converte
imprima 'Celsius: ', Cel
fim

Converso de temperaturas
Sada:
Temperatura em Fahrenheit: 212
Celsius: 100.00

Variveis Pblicas
As variveis pblicas so vistas por todos os
mdulos do programa (procedimentos e
funes), incluindo o programa principal.

Variveis Pblicas
Vantagens
Facilidade de Uso Por serem pblicas, tais
variveis servem para a troca de
informaes entre 2 mdulos quaisquer do
programa.

Variveis Pblicas
Desvantagens
Justamente por serem acessveis a qualquer
mdulo, as variveis pblicas apresentam um risco
de que outros mdulos no envolvidos na troca de
dados alterem (inadvertidamente ou no) os dados
compartilhados.

Falta de proteo dos dados compartilhados. No


h como evitar que mesmo os mdulos envolvidos
na comunicao alterem equivocadamente dados
que ainda seriam necessrios a outros mdulos

Variveis Pblicas
Desvantagens
Os mdulos envolvidos na comunicao
tm de usar os mesmos nomes para as
variveis compartilhadas.

Escopo de variveis
O que acontece se eu no declarar as variveis
de entrada/sada como pblicas?

Converso de Temperaturas
Procedimento Converte
// entrada: temperatura Fahrenheit (Far)
// sada: temperatura Celsius (Cel)
inicio
Cel (Far - 32) / 1.8
Fim
programa teste
inicio
imprima 'Temperatura em Fahrenheit: '
leia Far
Converte
imprima 'Celsius: ', Cel
fim

Esquema de alocao de memria


Antes de iniciar-se a execuo do programa: O
sistema operacional aloca em memria espao
para as variveis utilizadas pelo programa
principal

?
?

Cel:teste
Far:teste

Esquema de alocao de memria


Comea a execuo do programa principal
leia Far

?
212

Cel:teste
Far:teste

Esquema de alocao de memria


Converte
Antes de comear a executar o procedimento
Converte, o SO aloca as variveis de Converte

?
?
?
212

Cel:Converte
Far:Converte
Cel:teste
Far:teste

Esquema de alocao de memria


Comea a execuo de Converte
Cel (Far - 32) / 1.8

?
?
?
212

Cel:Converte
Far:Converte
Cel:teste
Far:teste

Esquema de alocao de memria


Termina a execuo de Converte

?
212

Cel:teste
Far:teste

Esquema de alocao de memria


Prossegue a execuo do programa principal
imprima 'Celsius: ', Cel

?
212

Cel:teste
Far:teste

Um exemplo
Escreva um procedimento que calcule o peso
ideal de uma pessoa:
homens:
peso = 72.7*altura 58
mulheres
peso = 62.1*altura 44.7

Procedimento CalculaPeso
Vamos determinar o conjunto de entradas e
sadas do procedimento CalculaPeso
Sadas

Entradas

CalculaPeso

Procedimento CalculaPeso
Entradas
sexo
altura

Sada
peso

Procedimento CalculaPeso
Variveis pblicas
sexo, altura, peso
procedimento CalculaPeso
incio
se sexo = 'M' ento
peso 72.7*altura 58
seno
peso 62.1*altura 44.7
fim se
fim

Um programa que use CalculaPeso


programa teste
incio
imprima 'Entre com a
leia altura
imprima 'Entre com o
leia sexo
CalculaPeso
imprima 'Peso ideal:
fim

altura: '
sexo: '

', peso

CalculaPeso
Saida:
Entre com a altura: 1.62
Entre com o sexo: F
Peso ideal: 55.9

Você também pode gostar