Linguagens de Programação II



1) Módulos de Programas












1.1) Procedimento (ou Comando)






  1. cabeçalho, onde se define o identificador do comando (e os parâmetros do procedimento)


  1. corpo do procedimento, onde podem ser definidas as variáveis locais e as instruções que farão parte do procedimento.



  1. Fortran: usar o termo CALL e o nome do procedimento


  1. Ada, C, Pascal, Java, C++: basta usar o identificador do procedimento


1.2) Parâmetros





Define a,b,c,delta,x1,x2 como reais

Define sai_fora como caracter

(1a.Parte)

bloco_principal

faz

apresentacao

Repete

Escreve(“Digite a: ”); Lê(a)

Escreve(“Digite b: ”); Lê(b)

Escreve(“Digite c: ”); Lê(c)

delta:= b*b – 4*a*c

Se delta >= 0 então

x1:= (-b + sqrt(delta) )/2*a

x2:= (-b + sqrt(delta) )/2*a

fim

Escreve(“1a.raiz= ”); Escreve(x1)

Escreve(“2a.raiz= ”); Escreve(x2)

Escreve(“Quer de novo?(s/n)”)

Lê(sai_fora)

Até_que sai_fora = ‘s’

Escreve(“Tchau!”)

fim

Define a,b,c,delta,x1,x2 como reais

Define sai_fora como caracter

(2a.Parte)

bloco_principal

começa

apresentacao

Repete

Escreve(“Digite a: ”); Lê(a)

Escreve(“Digite b: ”); Lê(b)

Escreve(“Digite c: ”); Lê(c)

calcula_raizes

Escreve(“1a.raiz= ”); Escreve(x1)

Escreve(“2a.raiz= ”); Escreve(x2)

Escreve(“Quer de novo?(s/n)”)

Lê(sai_fora)

Até_que sai_fora = ‘s’

Escreve(“Tchau!”)

termina


calcula_raizes

faz

delta:= b*b – 4*a*c

Se delta >= 0 então

x1:= (-b + sqrt(delta) )/2*a

x2:= (-b + sqrt(delta) )/2*a

fim

fim


Define a,b,c,x1,x2 como reais

Define sai_fora como caracter

(3a.Parte)

bloco_principal

começa

apresentacao

Repete

Escreve(“Digite a: ”); Lê(a)

Escreve(“Digite b: ”); Lê(b)

Escreve(“Digite c: ”); Lê(c)

calcula_raizes(a,b,c,x1,x2)

Escreve(“1a.raiz= ”); Escreve(x1)

Escreve(“2a.raiz= ”); Escreve(x2)

Escreve(“Quer de novo?(s/n)”)

Lê(sai_fora)

Até_que sai_fora = ‘s’

Escreve(“Tchau!”)

termina


calcula_raizes(define i,j,k,r1,r2 como reais)

Define variável local delta como real

faz

delta:= j*j – 4*i*k

Se delta >= 0 então

r1:= (-j + sqrt(delta) )/2*i

r2:= (-j + sqrt(delta) )/2*i

fim

fim


Define a,b,c,x1,x2 como reais

Define sai_fora como caracter

(4a.Parte)

bloco_principal

começa

apresentacao

Repete

Lê_parâmetros(a,b,c)

calcula_raizes(a,b,c,x1,x2)

Mostra_raizes(x1,x2)

Escreve(“Quer de novo?(s/n)”)

Lê(sai_fora)

Até_que sai_fora = ‘s’

Escreve(“Tchau!”)

termina


calcula_raizes(define i,j,k,r1,r2 como reais)

Define variável local delta como real

faz

delta:= j*j – 4*i*k

Se delta >= 0 então

r1:= (-j + sqrt(delta) )/2*i

r2:= (-j + sqrt(delta) )/2*i

fim

fim


Lê_parâmetros(define w,y,z como reais)

faz

Escreve(“Digite a: ”); Lê(a)

Escreve(“Digite b: ”); Lê(b)

Escreve(“Digite c: ”); Lê(c)

fim


Mostra_raizes(define raiz1,raiz2 como reais)

faz

Escreve(“1a.raiz= ”); Escreve(x1)

Escreve(“2a.raiz= ”); Escreve(x2)

fim





procedure Maior(i,j:in INTEGER; k:out INTEGER) is

do

if i < j then k:=j

else k:=i

end Maior;


. . . (outras definições não mostradas aqui)


bloco_principal is

do

Maior(Num1,Num2,L);

...

Maior(40,30,M);

Maior(X+Y,Z-10,L);

end.



  1. parâmetro formal identificador do parâmetro, que é definido no cabeçalho do procedimento

  2. argumento valor que é de fato passado para o parâmetro formal

  3. parâmetro corrente é o parâmetro utilizado para passar um certo argumento para o procedimento

2.3) Função



  1. Obtenção de um valor absoluto (módulo): ABS(-1.5)

  2. Obtenção do maior de dois números: Maior(a,b)