Pascal/Turbo Pascal - Duda lectura serie de numeros

 
Vista:
sin imagen de perfil

Duda lectura serie de numeros

Publicado por alberto (2 intervenciones) el 14/10/2013 11:39:22
Hola a tod@s
Tengo una duda sobre un ejercicio que debe leer por teclado una serie de numeros hasta que se pulse un negativo.
si tras cada numero se pulsa "enter" no hay problema, el tema es que tambien debe tener en cuenta que se pueden meter varios separados por espacio o tabulador en una misma linea. Ejemplo:

1 enter
2 4 5 enter
-3
el resultado debe ser 12.
Sabeis si hay algo como readln para un solo numero pero que lea todos los de la linea o habria que capturarlo como cadena y buscar todos los valores.
Saludos
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

Duda lectura serie de numeros

Publicado por ramon (2158 intervenciones) el 15/10/2013 12:40:21
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
{A ver si esto te ayuda}
 
 program negativo;
  uses
    crt;
    const
       num = 10;
  var
   numeros : array[1..num] of integer;
   resul, k, t : integer;
 
 
 
   procedure entradanumeros;
   var
     elnum : string[10];
     u, err, i : integer;
     tec : char;
     sal : boolean;
   begin
      clrscr;
      sal := false;
      write('    Entre el numero o los numros [-n] termina ');
      i := 1;
    repeat
      repeat
         tec := readkey;
         if tec in[#48..#57,#45] then
         begin
            elnum[i] := tec;
            elnum[0] := chr(i);
            write(elnum[i]);
            i := i + 1;
            if i > num then
            i := num;
         end;
         if tec = #8 then
         begin
            i := i - 1;
            if i < 1 then
            i := 1;
            elnum[i] := ' ';
            elnum[0] := chr(i);
            clrscr;
            write('    Entre el numero o los numros [-n] termina ');
            write(elnum[i]);
         end;
      until tec in[#32,#13];
      if (elnum[1] = #45) and (elnum[2] in[#48..#57]) then
      sal := true
    else
      begin
      for u := 1 to i - 1 do
      if elnum[u] = ' ' then
      begin
      delete(elnum,u,1);
      i := i - 1;
      end;
      val(elnum,numeros[k],err);
      k := k + 1;
      if k > num then
      k := num;
      if tec = #13 then
      begin
      clrscr;
      for i := 1 to k - 1 do
      write(numeros[i],'  ');
      i := 1;
      end
    else
      begin
      write(' ');
      i := 1;
     end;
    end;
      until sal = true;
   end;
 
 
   begin
       k := 1;
       entradanumeros;
       for t := 1 to k - 1 do
       resul := resul + numeros[t];
       clrscr;
       writeln('  El Resultado Es : ',resul);
       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
sin imagen de perfil

Duda lectura serie de numeros

Publicado por alberto (2 intervenciones) el 15/10/2013 19:27:04
Hola
Probablemente funcione pero en el ejercicio en cuestión no hay que utilizar vectores, únicamente read , condicionales y bucles.
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