Pascal/Turbo Pascal - Ejercicio secuencia de números

 
Vista:

Ejercicio secuencia de números

Publicado por Fermin (1 intervención) el 07/01/2014 15:24:25
Hola a todos, tengo que hacer un ejercicio de Pascal en el que el enunciado es el siguiente:

Lee una secuencia de enteros terminada en 0. En dicha secuencia encontrarás algunos múltiplos de 3 que separan los valores de la secuencia en tramos. Muestra en pantalla la suma de los enteros de cada uno de los tramos.
Ejemplo:
Entrada 2 1 3 2 8 5 9 7 13 23 1 3 2 0
Salida 3 15 44 2
Nota: No se pueden utilizar arrays.


He estado pensándolo pero no consigo hacerlo sin utilizar arrays y es urgente que lo entregue ya. Agradecería mucho que me ayudarais.

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
Imágen de perfil de Enrique

Ejercicio secuencia de números

Publicado por Enrique (1 intervención) el 09/01/2014 11:48:08
Es que no es necesario usar arrays, es suficiente con llevar una variable en la que acumules la suma parcial de cada tramo hasta que encuentres un múltiplo de 3 o bien el cero que marca el final de línea. Cuando te encuentres con un múltiplo de 3, devuelve por pantalla el valor de la variable acumulada y reiniciala a cero para volver a usarla en el siguiente tramo. No puedes usar arrays porque Pascal no permite arrays dinámicos y por lo tanto no sabes cuál va a ser el tamaño del array resultado. Espero que te sirva. 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

Ejercicio secuencia de números

Publicado por ramon (2158 intervenciones) el 09/01/2014 12:07:13
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
{Espero esto te sirva de ayuda}
 
program multiplos3;
 uses
    crt;
 var
   multip : integer;
   n : integer;
   datos : string;
 
 begin
    clrscr;
    n := 1;
    multip := 1;
    while multip > 0 do
    begin
      readln(multip);
      if multip > 0 then
      begin
      datos[n] := chr(multip);
      datos[0] := chr(n);
      n := n + 1;
      end;
    end;
    clrscr;
    multip := 0;
    for n := 1 to length(datos) do
    if ord(datos[n]) mod 3 = 0 then
    begin
      write('   ',multip);
      multip := 0;
    end
  else
     multip := multip + ord(datos[n]);
   if multip > 0 then
   write('  ',multip);
    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