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
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
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

Modularização

  • 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