Pascal/Turbo Pascal - Problemilla

 
Vista:

Problemilla

Publicado por Juan (7 intervenciones) el 28/04/2010 23:26:46
Un problemilla facil de la uni...no encuentro que error puedo tener...
Me dan...
En la variable t de tipo vector se almacenan las temperaturas que se alcanzan en un determinado lugar en cada una de las horas de un día. La hora del día coincide con el índice del elemento.
Completar el siguiente programa para que asigne a la variable hora el índice del elemento de mayor valor de la variable t.
Nota: si se alcanzara exactamente la misma temperatura máxima en dos o más horas diferentes, debe asignarse a la variable hora el menor de los índices.
Ahora nos dan una parte que no podemos tocar:
const N=24;
type indice=0..N;
vector=array[indice] of real;
{ Declaracion de variables }
var t:vector; max:real; i,hora:indice;
begin
for i:=0 to N do t[i]:=20*random;

A partir de aquí mi código:
max:= t[0];
for i:= 0 to N do begin
if t[i] > max then
max:= t[i] end;
hora:=i;
writeln('La hora de mayor temperatura es: ',hora)
end.

No encuentro el fallo...Además el enunciado nos da un subrango de 25, cuando solo tenemos 24 horas...no se cual puede ser el problema.
Gracias de antemano
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

RE:Problemilla

Publicado por Pakito (4 intervenciones) el 29/04/2010 09:02:44
El día tiene 24 horas, numéralas de 0 a 23, la hora 24 es lo mismo que la hora 0 del día siguiente.

En cuanto a lo que indicas como tu código, la búsqueda del valor máximo es correcta, pero no guardas bien la hora a la que corresponde ese máximo. Prueba con:

max := t(0);
for i=0 to N do begin
if t(i) > max then begin
max := t(i);
hora := i;
end;
end;
writeln(...);
end.

donde he supuesto que se ha corregido adecuadamente la declaración de N ó el rango de índice (aunque, según dices, no se puede tocar). El error básico era, pues, que la asignación hora:=i debías hacerla dentro del bucle.

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

RE:Problemilla

Publicado por Juan (7 intervenciones) el 29/04/2010 21:59:53
Estaba mal su código. Era muy confuso lo de la posibilidad de 25 horas.
Muchas gracias Pakito
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