
5.2 tema 7 (3)
Publicado por Erik (73 intervenciones) el 09/04/2014 15:22:56
hola tengo que corregir lo siguiente, aqui dejo lo que tengo que corregir.
Has olvidado llamar a suma y a límites en el principal
procedure busca_precio(cant : real; cl : coleccion); te falta pasarle la dimensión del array.
Mira, leemos otra vez los requerimientos "
Presentará por pantalla un mensaje cada vez que al recorrer la tabla encuentre un cuadro con el precio buscado, indicando su precio y su número. Si no encuentra ningún libro, deberá presentar un único mensaje al final del procedimiento indicando tal circunstancia."
Es decir debes recorrer todo el array desde la posición 1 hasta el final. Usando un for. Y nos pide que cada vez que encuentre un cuadro con el precio cantidad lo muestre en pantalla. Mira será así:
aqui esta el programa en cuestion que hay que corregir:
gracias de antemano.
Has olvidado llamar a suma y a límites en el principal
procedure busca_precio(cant : real; cl : coleccion); te falta pasarle la dimensión del array.
Mira, leemos otra vez los requerimientos "
Presentará por pantalla un mensaje cada vez que al recorrer la tabla encuentre un cuadro con el precio buscado, indicando su precio y su número. Si no encuentra ningún libro, deberá presentar un único mensaje al final del procedimiento indicando tal circunstancia."
Es decir debes recorrer todo el array desde la posición 1 hasta el final. Usando un for. Y nos pide que cada vez que encuentre un cuadro con el precio cantidad lo muestre en pantalla. Mira será así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Procedure busca_precio(cuadros:coleccion;tamano: integer; presupuesto:real);
var
i:integer;
encontrado: integer
Begin
encontrado:=0;
for i:=1 to tamano do
if (cuadros[i] = presupuesto) then
begin
writeln('El precio del cuadro numero ',i,' coincide con el precio a buscar.');
readln;
encontrado:=1;
end;
if (encontrado=0) then writeln('No se encontraron coincidencias');
writeln('******************************');
end;
aqui esta el programa en cuestion que hay que corregir:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Program Galeria;
uses
crt;
(*-- Constantes globales al programa -- *)
Const
TAMCOLECCION = 4;
(*-- Tipos globales al programa -- *)
Type
coleccion = array[1..tamcoleccion] of real;
(*-- Variables del módulo principal -- *)
Var
precios : Coleccion;
prec : real;
(*-- Funciones y procedimientos -- *)
procedure lee_tabla(var t : coleccion; n : integer);
var
i : integer;
begin
i := 1;
writeln(' Entre Precio Cuadro ');
while i < n + 1 do
begin
write(' Numero ',i,' : ');
readln(t[i]);
i := i + 1;
end;
end;
procedure imprime_tabla(t : coleccion; n : integer);
var
i : integer;
begin
i := 1;
writeln(' Los Resultados Son ');
writeln;
while i < n + 1 do
begin
writeln(' Num. : ',i,' Precio : ',t[i]:0:2);
i := i + 1;
end;
end;
function sumar_arreglo( var arreglo : coleccion) : real;
var
indice : integer;
acumulador : real;
begin
for indice := 1 to TAMCOLECCION do
begin
acumulador := acumulador + arreglo[indice];
end;
sumar_arreglo := acumulador;
end;
procedure limites( var arreglo : coleccion;
var min: real;
var max : real;
var posMax: integer;
var posMin : integer);
var
indice : integer;
begin
max := -20;
min := 99999;
posMax := -1; (*se inicializan con un valor que no podría
ser para una verificación; de ser necesaria*)
posMin := -1;
for indice := 1 to TAMCOLECCION do
begin
if (arreglo[indice] > max) then
begin
max := arreglo[indice];
posMax := indice;
end;
if (arreglo[indice] < min) then
begin
min := arreglo[indice];
posMin := indice;
end;
end;
end;
procedure busca_precio(cant : real; cl : coleccion);
var
d : integer;
nn : integer;
pre : real;
as : boolean;
begin
d := 1;
as := false;
while d < TAMCOLECCION + 1 do
begin
if cant = cl[d] then
begin
nn := d;
pre := cl[d];
as := true;
break;
end
else
d := d + 1;
end;
writeln;
if as = true then
writeln(' Numero = ',nn,' Precio = ',pre:0:2)
else
writeln(' Precio Igual No Encontrado');
writeln;
writeln(' Pulse Una Tecla ');
end;
(*-- Programa Principal -- *)
Begin
clrscr;
lee_tabla(precios, TAMCOLECCION);
clrscr;
imprime_tabla(precios, TAMCOLECCION);
prec := 1;
while prec > 0 do
begin
writeln;
write(' Entre Precio A Buscar : ');
readln(prec);
busca_precio(prec,precios);
end;
readkey;
End.
gracias de antemano.
Valora esta pregunta


0