Sumy częściowe

0

Witam mam do napisania program w Pascalu, który wyliczy sumy częściowe,wczytujemy ile liczb mamy podac, a potem podajemy te liczby. Np:Dla danych wejściowych:

4
1 3 2 6

poprawną odpowiedzią jest:

12 11 8 6

Trochę się z tym męcze a potrzebuje miećto zrobione, z góry dzięki za pomoc.
A tutaj mój kod:

program zadanie;
var
  n,suma,i: integer;
  a: array[1..100] of integer;  
  s: array[1..100] of integer;  
begin
  suma:=0;
  read(n);
    for i := 1 to n do
    begin
    read(a[i]);
    suma:=suma+a[i];
    s[1]:=suma;
    end;
  for i := 1 to n do
    s[i] := suma-a[i];
  for i :=1 to n do
    write(s[i], ' ');
    writeln;
end.
0
pulcio12 napisał(a):

Witam mam do napisania program w Pascalu, który wyliczy sumy częściowe,wczytujemy ile liczb mamy podac, a potem podajemy te liczby. Np:Dla danych wejściowych:

Coś dziwnego Ci wyszło. Przecież do drugiej tablicy wpisujesz sumy od razu w tej samej pętli. Tak na szybko bez szerszej optymalizacji (a da się) kodu:

program zadanie;

uses sysutils;

var
  n, i: integer;
  a: array[1..100] of integer;
  s: array[1..100] of integer;
begin
  writeln('Podaj liczbe cyfr do sumowania:');
  readln(n);
  for i := 1 to n do
  begin
    writeln('Wprowadz '+IntToStr(i)+' wartosc:');
    Readln(a[i]);
    if i=1 then
     s[i]:=a[i]
    else
     s[i]:=a[i]+s[i-1];
  end;
  for i := 1 to n do
    Write(s[i], ' ');
  writeln;
  readln;
end.
0
KKuba napisał(a):
pulcio12 napisał(a):

Wersja pod Twój ciąg:

program zadanie;

var
  n, i: integer;
  a: array[1..100] of integer;
  s: array[1..100] of integer;
  suma: integer = 0;
begin
  writeln('Podaj liczbe cyfr do sumowania:');
  readln(n);
  for i := 1 to n do
  begin
    writeln('Wprowadz ',i,' wartosc:');
    readln(a[i]);
    Inc(suma, a[i]);
  end;
  for i := n downto 1 do
  begin
    s[i] := suma;
    Dec(suma, a[n - i + 1]);
  end;
  for i := n downto 1 do
    write(s[i], ' ');
  writeln;
  readln;
end.

1 użytkowników online, w tym zalogowanych: 0, gości: 1