Pascal/Turbo Pascal - ayuda programa, me sale 1 error

 
Vista:

ayuda programa, me sale 1 error

Publicado por kristian (7 intervenciones) el 18/11/2012 17:46:02
El programa deberia de mostar:
Introduza los precios
Cuadro 1: 457
Cuadro 2: 480
Cuadro 3: 650
Cuadro 4: 400
> Precio cuadro 1: 457.00
> Precio cuadro 2: 480.00
> Precio cuadro 3: 650.00
> Precio cuadro 4: 400.00
El maximo es 650.0 en la posicion 3
El minimo es 175.0 en la posicion 2
Hasta ahora he conseguido esto pero me sale 1 error y no consigo localizarlo



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
Program galeria;
 
Const
tamcolection= 4;
 
Type
coleccion= array[1..tamcolection] of integer;
 
Procedure lee_tabla(var precios:coleccion;tamcolection:integer);
 
Var
i:integer;
Begin
Writeln('Introduzca el precio de los cuadros:');
for i:= 1 to tamcolection do
begin
write('cuadro ',i,':');
readln(precios[i]);
end;
end;
 
Procedure imprime_tabla(precios:coleccion;tamcolection:integer);
 
Var
i:integer;
Begin
for i:= 1 to tamcolection do
begin
Writeln('> El Cuadro',i,':',precios[i]);
end;
end;
 
Function suma_coleccion(precios:coleccion;tamcolection:integer):integer;
 
Var
i:integer;
suma1:integer;
Begin
suma1:=0;
for i:= 1 to tamcolection do
suma1:=suma1+precios[i];
suma_coleccion:=suma1;
end;
 
Procedure limites(Var precios1:coleccion; Var minimo:integer;Var maximo:integer;
tamcolection: integer);
 
Var
i: integer;
 
Begin
minimo:=1;
For i:=2 to tamcolection do
if(precios1[i]<precios1[minimo])then
minimo:=i;
 
maximo:=1;
For i:=2 to tamcolection do
if (precios1[i]>precios1[maximo]) then
maximo:=i;
End;
 
Var
precios: coleccion;
suma:integer;
Begin
lee_tabla(precios,tamcolection);
imprime_tabla(precios,tamcolection);
suma:=suma_coleccion(precios,tamcolection);
writeln('> Valor de la coleccion:',suma);
limites(precios,tamcolection);
readln;
end.




Y habria un segundo ejercico que no sabria por donde empezar ni como hacer. Partiendo del programa anterior, sin modificar los procedimientos y funciones ya codificados, deberá añadir un procedimiento de nombre busca_precio para un cliente que desea gastar una cantidad exacta (ni más ni menos).
Este procedimiento recibe como parámetro (entre otros) la cantidad a buscar en la tabla. Es decir que esta cantidad deberá ser pedida al usuario fuera del procedimiento, en este caso en el módulo principal.
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.
Además deberá incluir en el módulo principal, la petición de búsqueda en un bucle que solicite la petición del precio a buscar hasta que el usuario introduzca el valor cero.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda programa, me sale 1 error

Publicado por romon (2158 intervenciones) el 18/11/2012 21:33:03
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
{A ver si esto te encamina}
 
Program galeria;
 uses
    crt;
 Const
  tamcolection = 4;
 
 Type
 coleccion= array[1..tamcolection] of integer;
 
Var
precios: coleccion;
 minimo, maximo, v, suma : integer;
precios1 : coleccion;
 
Procedure lee_tabla(var precios:coleccion;tamcolection:integer);
 
Var
i:integer;
Begin
Writeln('Introduzca el precio de los cuadros:');
for i:= 1 to tamcolection do
begin
write('cuadro ',i,' : ');
readln(precios[i]);
end;
end;
 
Procedure imprime_tabla(precios:coleccion;tamcolection:integer);
 
Var
i:integer;
Begin
for i:= 1 to tamcolection do
begin
Writeln('> El Cuadro',i,' : ',precios[i]);
end;
end;
 
Function suma_coleccion(precios:coleccion;tamcolection:integer):integer;
 
Var
i:integer;
suma1:integer;
 
Begin
suma1:=0;
for i:= 1 to tamcolection do
suma1:=suma1+precios[i];
suma_coleccion:=suma1;
end;
 
Procedure limites(Var precios1:coleccion; Var minimo:integer;Var maximo:integer;
tamcolection: integer);
 
Var
i: integer;
 
Begin
minimo:=1;
For i:=2 to tamcolection do
if(precios1[i]<precios1[minimo])then
minimo:=i;
 
maximo:=1;
For i:=2 to tamcolection do
if (precios1[i]>precios1[maximo]) then
maximo:=i;
End;
 
 procedure busca_precio(pecio : integer);
 var
   y : integer;
   encon : boolean;
 begin
     y := 1;
     encon := false;
     repeat
        if precios[y] = pecio then
        encon := true
     else
       y := y + 1;
     until (y > tamcolection) or (encon = true);
     if encon = true then
     writeln('   El precio es : ',precios[y])
  else
     writeln('  Precio No Encontrado ');
 end;
 
 procedure peticion_de_busqueda;
 var
   prec : integer;
 begin
  repeat
     write('  Entre Precio : ');
     readln(prec);
     if prec <> 0 then
     begin
        busca_precio(prec);
     end;
  until prec = 0;
 end;
 
Begin
clrscr;
lee_tabla(precios,tamcolection);
imprime_tabla(precios,tamcolection);
suma:=suma_coleccion(precios,tamcolection);
writeln('> Valor de la coleccion:',suma);
limites(precios,minimo,maximo,v);
writeln;
writeln(' Entre El Importe a Buscar ');
writeln;
peticion_de_busqueda;
writeln;
writeln(' Pulse [Enter]');
readln;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Gracias

Publicado por kristian (7 intervenciones) el 19/11/2012 00:14:37
Muchas gracias, Eres un crack. Me vale mucho para comprender lo que estoy estudiando y tomarlo de ejemplo y de base para poder hacer codigos similires. De nuevo gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar