1. 06/09/2016 16:31:57C:UserselainDocumentsAlgoritmos2. Modularizaçãoexemplo.pas
1: {
2: PROGRAMA EXEMPLO DE MODULARIZAÇÃO
3: - FUNÇÕES
4: - PROCEDIMENTOS
5: - VARIÁVEIS LOCAIS
6: - VARIÁVEIS GLOBAIS
7: - PASSAGEM DE PARÂMETROS POR VALOR
8: - PASSAGEM DE PARÂMETROS POR REFERÊNCIA
9:
10: ELAINE CECÍLIA GATTO
11: 06/09/2016
12: }
13:
14: program exemplo;
15: uses wincrt, crt;
16:
17: //DECLARAÇÃO DE VARIÁVEIS GLOBAIS
18: var
19: a, b, s, opcao : integer;
20:
21: //PROCEDIMENTO SEM PASSAGEM DE PARAMETROS
22: procedure lerNumeros();
23: begin
24: write(' Digite o primeiro numero: ');
25: readln(a);
26: write(' Digite o segundo numero: ' );
27: readln(b);
28: end;
29:
30: //FUNÇÃO SEM PASSAGEM DE PARAMETRO - VERSÃO 1
31: function somar1 : integer;
32: begin
33: somar1 := a + b;
34: end;
35:
36: //FUNÇÃO SEM PASSAGEM DE PARAMETRO - VERSÃO 2
37: function somar2 : integer;
38: begin
39: lerNumeros();
40: somar2 := a + b;
41: end;
42:
43: //FUNÇÃO COM PASSAGEM DE PARAMETRO POR VALOR
44: function somar3(x, y : integer) : integer;
45: begin
46: somar3 := x + y;
47: end;
48:
49: //FUNÇÃO COM PASSAGEM DE PARAMETRO POR REFERENCIA
50: function somar4(var x, y : integer) : integer;
51: begin
52: somar4 := x + y;
53: end;
54:
55: //PROCEDIMENTO SEM PASSAGEM DE PARAMETRO - VERSÃO 1
56: procedure somar5;
57: begin
58: s := a + b;
59: end;
60:
61: //PROCEDIMENTO SEM PASSAGEM DE PARAMETRO - VERSÃO 2
62: procedure somar6;
63: var
64: a, b, s : integer;
65: begin
66: write(' Digite o primeiro numero: ');
1/3
2. 06/09/2016 16:31:57C:UserselainDocumentsAlgoritmos2. Modularizaçãoexemplo.pas
67: readln(a);
68: write(' Digite o segundo numero: ' );
69: readln(b);
70: s := a + b;
71: writeln(' A soma e: ', s);
72: end;
73:
74: {PROCEDIMENTO COM PASSAGEM DE PARAMETRO POR VALOR
75: OS VALORES DOS PARÂMETROS NÃO PODEM SER ALTERADOS}
76: procedure somar7(x, y : integer);
77: var
78: s : integer;
79: begin
80: s := x + y;
81: writeln(' A soma e: ', s);
82: end;
83:
84: {PROCEDIMENTO COM PASSAGEM DE PARAMETRO POR REFERENCIA
85: OS VALORES DOS PARÂMETROS PODEM SER ALTERADOS}
86: procedure somar8(var x, y : integer);
87: var
88: s : integer;
89: begin
90: s := x + y;
91: writeln( ' A soma e: ', s);
92: end;
93:
94: {
95: Nos parâmetros passados por referência, qualquer alteração nos valores de X
96: ou de Y, serão também refletidas nas variáveis A e B, respectivamente.
97:
98: As variáveis declaradas localmente, em uma FUNÇÃO ou em um PROCEDIMENTO, só
99: existem dentro desse bloco de código! São destruídos os espaços de memória
100: após o uso.
101:
102: VARIÁVEIS GLOBAIS --> existe e é válida para todo o programa
103: VARIÁVEIS LOCAIS --> existe e é válida no bloco específico de programa
104: onde foi declarada
105:
106: FUNÇÃO --> RETORNA UM ÚNICO VALOR E TEM UM TIPO ESPECÍFICO
107: PROCEDIMENTO --> NÃO RETORNA UM VALOR ÚNICO E NÃO TEM UM TIPO ESPECÍFICO
108: }
109:
110: //PROGRAMA PRINCIPAL
111: procedure menu;
112: begin
113: repeat
114: writeln ((' |
=================================================================== |');
115: writeln ((' | MENU
| ');
116: writeln ((' |
=================================================================== |');
117: writeln ((' | 1. Funcao sem parametro - versao 1
| ');
118: writeln ((' | 2. Funcao sem parametro - versao 2
| ');
119: writeln ((' | 3. Funcao com passagem de parametro por valor
| ');
120: writeln ((' | 4. Funcao com pasagem de parametro por referencia
| ');
121: writeln ((' | 5. Procedimento sem parametro - versao 1
| ');
122: writeln ((' | 6. Procedimento sem parametro - versao 2
| ');
123: writeln ((' | 7. Procedimento com passagem de parametro por valor
| ');
2/3
3. 06/09/2016 16:31:57C:UserselainDocumentsAlgoritmos2. Modularizaçãoexemplo.pas
124: writeln ((' | 8. Procedimento com pasagem de parametro por referencia
| ');
125: writeln ((' | 0. SAIR
| ');
126: writeln ((' |
=================================================================== |');
127: writeln('');
128: write(' Digite a opcao desejada: ');
129: readln(opcao);
130: writeln('');
131:
132: Case opcao Of
133: 1 : Begin
134: lerNumeros();
135: s := somar1;
136: writeln(' A soma e: ', s);
137: writeln('');
138: end;
139: 2 : Begin
140: s := somar2;
141: writeln(' A soma e: ', s);
142: writeln('');
143: end;
144: 3 : Begin
145: lerNumeros();
146: s := somar3(a, b);
147: writeln(' A soma e: ', s);
148: writeln('');
149: end;
150: 4 : Begin
151: lerNumeros();
152: s := somar4(a, b);
153: writeln(' A soma e: ', s);
154: writeln('');
155: end;
156: 5 : Begin
157: lerNumeros();
158: somar5;
159: writeln(' A soma e: ', s);
160: writeln('');
161: end;
162: 6 : Begin
163: somar6;
164: writeln('');
165: end;
166: 7 : Begin
167: lerNumeros();
168: somar7(a, b);
169: writeln('');
170: end;
171: 8 : Begin
172: lerNumeros();
173: somar8(a, b);
174: writeln('');
175: end;
176: Else Writeln (' invalido ');
177: End;
178: until opcao = 0;
179: writeln('');
180: end;
181:
182: //PROGRAMA PRINCIPAL
183: begin
184: menu();
185: end.
3/3