{ File: somposne.pas }

{ Scopo: ciclo repeat }

program SommePositiviNegativi;
{ Legge una sequenza di numeri interi diversi da 0 terminata da 0.
  Stampa la somma dei numeri positivi e la somma dei numeri negativi. }

var
  numero : integer;                 { numero letto di volta in volta }
  somma_pos, somma_neg  : integer;  { somme parziali degli interi positivi e
                                      negativi letti fino ad un certo punto }

begin
  writeln('Immettere una sequenza di numeri interi terminata da 0!');
  somma_pos := 0;         { prima di leggere il primo numero la somma parziale
                            dei numeri positivi e` 0 }
  somma_neg := 0;         { prima di leggere il primo numero la somma parziale
                            dei numeri negativi e` 0 }
  repeat
    read(numero);
    if numero > 0 then
      somma_pos := somma_pos + numero
    else
      somma_neg := somma_neg + numero;   { somma anche la sentinella }
  until numero = 0;       { 0 funge da sentinella }
  writeln('Somma dei positivi : ', somma_pos);
  writeln('Somma dei negativi : ', somma_neg);
end. { SommePositiviNegativi }