Ver Mensaje Individual
  #5  
Antiguo 14-03-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola gonza22salta.

Ademas de los muy buenos enlaces y código que te proporcionó Nelson, te agrego la interpretación que pude darle al enunciado:
Código Delphi [-]
program Project2; {$APPTYPE CONSOLE}

uses SysUtils;

const
  MAXLST = 50;

var
  v: array[1..MAXLST] of Integer;
  c, i, m: Integer;
  des, has: Integer;
begin
  // Inicializar arreglo con valores aleatorios
  Randomize;
  for i:= 1 to MAXLST do v[i]:= Random(9)+1;

  // Mostrar lista inicializada
  Writeln('Lista:');
  for i:= 1 to MAXLST do Write(v[i],' ');

  // Obtener la mayor sublista ordenada
  m  := 0;
  c  := 0;
  has:= 0;
  des:= 0;
  for i:= 2 to MAXLST do
  begin
    if v[i-1] < v[i] then
    begin
      Inc(c);
      if c > m then  // (*)
      begin
        m  := c;
        des:= c;
        has:= i;
      end
    end
    else
      c:= 0;
  end;

  // Mostrar la mayor sublista ordenada
  Writeln(#10,#10,'Mayor sublista ordenada:');
  for i:= has-des to has do Write(v[i],' ');

  Readln;
end.
(*) De este modo, existiendo dos sublistas del mismo tamaño mostrará la primera en órden de aparición. Si deseas obtener la última cambia el condicional por:
Código Delphi [-]
if c >= m then

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita