MODULARIZAÇÃO
• Técnica utilizada e tida como vantajosa na confecção de
programas.
• Consiste em dividir o programa em diversos módulos
ou sub-programas, de certa forma independentes uns dos
outros.
• Existe um módulo principal, a partir do qual é iniciado a
chamada dos outros módulos.
• Existem dois tipos de sub-programas
– Procedures (procedimentos). Não retorna valores
– Functions (funçöes).
Retorna valores
Exemplo de MODULARIZAÇÃO
Program <nome_programa>;
Var <declaração de variáveis>
Procedures <nome_da_procedure>
begin
<comandos>;
end;
Functions <nome_da_funcao>
begin
<comandos>;
end;
Sub-programa 1
Sub-programa 2
BEGIN
<comandos>;
<chamada da Procedure declarada acima>;
<comandos>;
<chamada da Function declarada acima>;
<comandos>;
END.
Programa
Principal
Exemplo Gráfico de uma (modularização)
Programa aaaa;
_____________________________
Procedure Primeiro;
_____________________________
____________________________
Function Segundo;
_____________________________
_____________________
INICIO
______________
PRIMEIRO
-------------SEGUNDO
________
FIM.
Procedure Primeiro;
____________________
________________
_____________
Function Segundo;
_________________
_____________
Procedures (Procedimentos)
Definição:
• A procedure é como se fosse um programa.
• Estrutura praticamente igual a de um programa.
• A procedure deve ser ativada(chamada) pelo
programa principal ou por uma outra Procedure, por
ela mesma ou por uma função.
• Não retorna valor.
O ESCOPO DE OBJETOS NUM PROGRAMA
Program Exemplo;
Uses CRT;
Var i,x,y : Integer;
Procedure Linha;
Function Fat(x:integer) : integer;
BEGIN (*inicio do programa principal*)
Comandos;
END.
Procedures (Procedimentos)
Forma Padrão:
Procedure <nome_do_procedimento>
(parâmetros : tipo_do_parâmetro);
Var
<nomes das variáveis local>;
Begin
<Comandos a serem executados>;
End;
(opcional)
Procedures sem passagem de PARÂMETRO
Procedure
LINHA
Program Exemplo_1;
Uses CRT;
Procedure linha;
Var i : integer;
Begin
for i:=1 to 80 do write('-');
End;
BEGIN
ClrScr;
linha; (*CHAMANDO A PROCEDURE*)
writeln('teste');
linha;
END.
Procedures com passagem de PARÂMETRO
Procedure
SOMA
Program Exemplo_2;
Var i, j : integer;
Procedure soma(x, y : integer);
Begin
writeln(x+y);
Parâmetros
end;
passados
BEGIN
ClrScr;
soma(3 , 4);
i:=45;
j:=34;
soma(i , j);
END.
Procedures com passagem de PARÂMETRO (por valor)
Program Exemplo_3;
Var i, j : integer;
Procedure proc1(i, j : integer);
Begin
i:= 10; j:= 20;
write(i , j);
end;
BEGIN
ClrScr;
i:=45;
j:=34;
proc1(i,j);
write(i , j);
END.
Procedures com passagem de PARÂMETRO (por referência)
Program Exemplo_4;
Var i, j : integer;
Procedure proc1(var i, j : integer);
Begin
i:= 10; j:= 20;
write(i , j);
end;
BEGIN
ClrScr;
i:=45;
j:=34;
write(i , j);
proc1(i , j);
write(i , j);
END.
Procedures com passagem de PARÂMETROS DE DIFENTES TIPOS
Program Exemplo_5;
Procedure soma(x : real; y : string; z, w : integer);
Begin
writeln(x, y, z, w);
end;
BEGIN
ClrScr;
soma(3.7 , “jose” , 4, 9);
END.
Exemplo de um programa
MODULARIZADO (em módulos)
Exemplo
Faça um programa em Pascal para
Cadastrar o sexo de um número
indeterminado de pessoas. Como
resultado este programa deverá
imprimir: o total de pessoas do sexo
masculino e o total de pessoas do sexo
feminino.
Program Sem_Modulos;
uses crt;
Var Sexo : char;
i, n, contM, contF : integer;
begin
contF:=0;
write(‘Número de pessoas’);
readln(n);
for i:=1 to n do
begin
write(‘Sexo’); readln(sexo);
if (sexo = ‘F’) then
contF := contF + 1;
end;
ContM := n - contF
Writeln(‘Número de femininos = ’ , ContF );
Writeln(‘Número de masculinos = ’ , ContM );
end.
Program Em_Modulo;
BEGIN
write(‘Número de pessoas’);
readln(n);
Geral(n);
Writeln(‘**Fim Programa**’);
Var n : integer;
Procedure Geral (w : integer);
Var Sexo : char;
i, contM, contF : integer;
begin
contF:=0;
for i:=1 to w do
begin
write(‘Sexo’); readln(sexo);
if (sexo = ‘F’) then
contF:=contF+1;
end;
ContM := w – contF;
Write(‘Número de feminino = ’ , ContF );
Write(‘Número de masculino = ’ , ContM );
End;
END.
Download

01_Modularizacao_1Procedimentos