Pascal/Turbo Pascal - recorrer un vector y encontrar el mayor

   
Vista:

recorrer un vector y encontrar el mayor

Publicado por javier (2 intervenciones) el 18/12/2008 15:55:11
HOla, queria saber como se hace un procedimiento que recorra un vector que no esta ordenado y me de el mayor indice. Por ejemplo: Tengo un vector en donde se encuentran los coches en un aparcamiento( todos ellos con sus matriculas) y quiero ver cual es el que lleva mas tiempo estacionado.. Para ello tendria que recorrer todo el vector y encontrar el que mayor tiempo lleve( es decir, el que haya entrado con fecha mas antigua) como se haria??? por favor alguien que me conteste cuanto antes. Un saludo y gracias.
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:recorrer un vector y encontrar el mayor

Publicado por Alexis (44 intervenciones) el 31/12/2008 00:10:22
Hola, buenas tardes.

Puedes hacer lo siguiente

para i=1 hasta max hacer
si vector[i]>mayor entonces
mayor=vector[i];
fin ciclo para ... hasta

donde, max es la cantidad maxima de tu vector y mayor es una variable donde se guardará el mayor número. Puedes iniciarla en 1 siempre y cuando tu datos sean números positivos.

Si lo quieres hacer como lo pusiste en el ejemplo, yo empezaría comparando los años y elijo el año menor (ya que si un carro está desde el 2006 y otro desde el 2007 el que tiene mas tiempo es el del 2006), luego si tienes varios carros con el mismo año menor entonces comparas entre ellos los meses y si tienes algun mes repetido comparas los dias.

Saludos y felices fiestas
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:recorrer un vector y encontrar el mayor

Publicado por alex eduardo chicue (1 intervención) el 17/04/2009 05:31:11
procedure mas_alto();
begin
for i:=1 to n do
if(sueldos[i]>alto)then

begin
alto:=sueldos[i];
pocision_alto:=i;
end
else
end;
procedure mas_bajo();
begin

if(sueldos[i]<10000)then
for i:=1 to n do //este for lo cambie de lugar con if y por lo menos
begin //se acerco mas pero de todos modos no da el
bajo:=sueldos[i]; //numero menor, el mayor si es muy sencillo sacarlo
pocision_bajo:=i; //le agradeceria un metodo para poder sacar el menor
end; //o si no se puede la comparacion tipo burbuja
end;
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