{ 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 }