Pascal/Turbo Pascal - programa que lea una secuencia de números

 
Vista:
sin imagen de perfil

programa que lea una secuencia de números

Publicado por larry (9 intervenciones) el 06/01/2014 16:38:47
Escribe un programa que lea una secuencia de números terminada en 0 y muestre por pantalla la posición que ocupa el valor máximo así como el término de la posición anterior.
Nota: Sólo existe un valor máximo en la secuencia y no está en la primera posición.
Ejemplo: Si la secuencia introducida es 1 6 2 8 9 20 3 12 7 14 11 16 0, el valor máximo está en la posición 6 y el valor que ocupa la posición anterior es 9.

yo he hecho esto pero esta mal si alguien puede corregirlo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
program p4_5;
var i,a,ant,pos_a,posmax,max:integer;
begin
 writeln('Ecribe una secuencia de numeros que acabe 0');
     pos_a:=0;
     max:=0;
     read(a);
     repeat
           begin
           read(a);
           pos_a:=pos_a+1;
           If (a>max) then
           begin
           i:=max;
           ant:=i ;
           max:=a;
           posmax:=pos_a;
           end;
           end;
     until
          a=0;
          writeln('El valor m ximo se encuentra en la posici¢n:', pos_a,' y el valor anterior al m ximo es:', ant);
end.
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

programa que lea una secuencia de números

Publicado por ramon (2158 intervenciones) el 07/01/2014 11:21:09
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
{Mira esto valdrá}
 
program numeros;
 uses
    crt;
  const
     num = 10;
  type
     arraynum = array[1..num] of integer;
  var
    numero : arraynum;
    entrados, i : integer;
 
 
  procedure entrada_numero(var n : arraynum);
  var
    nume : integer;
  begin
     i := 1;
     while nume > 0 do
     begin
        clrscr;
        write(' Entre Numeros Maximo ',num,' Terminar=[0] numero[ ',i,' ] : ');
        readln(nume);
        if nume > 0 then
        begin
        numero[i] := nume;
        i := i + 1;
        if i > num then
        i := num;
        end;
     end;
     if i < num then
     entrados := i - 1
   else
     entrados := num;
  end;
 
  procedure posicion_anterior(m : arraynum);
  var
     mayor, posicion, anterior : integer;
     il : integer;
  begin
     mayor := m[1];
     anterior := 0;
     posicion := 0;
     for il := 2 to entrados do
     if mayor < m[il]  then
     begin
     mayor := m[il];
     anterior := m[il - 1];
     posicion := il;
     end;
     clrscr;
     for il := 1 to entrados do
     write('  ',m[il]);
     writeln;
     writeln('   Elmayor En Posicion = ',posicion);
     writeln('   El Anterior Es      = ',anterior);
  end;
 
 
 begin
     entrada_numero(numero);
     posicion_anterior(numero);
     readkey;
 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