Program sumujący. Czego w nim brakuje???

Casey
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 8 gru 2006, o 21:22
Płeć: Mężczyzna
Lokalizacja: Bdg

Program sumujący. Czego w nim brakuje???

Post autor: Casey »

Zadanie jest następujące:
Napisz prościutki program
1^+2^+3^+...+k^ ( ^ -kwadrat )
który będzie sumował te wartości.

Napisałem coś takiego, ale wychodzi z tego, że coś jest zwalone lub czegoś brakuje bo źle liczy.(np.1^+...+10^ powinno wyjśc 385 a on wylicza 371) Kto poprawi ewentualnie dopisze prakujące linie?
Ja mam napisane w tym programie do until k>=10 czyli 1^+2^+3^+..+10^ bo nie wiem jaką inną wartość mógłbym wpisać aby wykonać poprawnie to zadanie z k^.
Jest to programowane w Turbo Pascalu.

...............................................................................................................
program jak_to_zrobic;

uses crt;
var
suma:integer;
k:integer;
begin
clrscr;
suma:=0;
k:=0;
repeat
k:=k+1;
k:=sqr(1-2*k);
suma:=suma+k;
until k>=10;
write('suma wynosi= ', suma);
readln;
end.
jasny
Użytkownik
Użytkownik
Posty: 845
Rejestracja: 2 kwie 2006, o 23:32
Płeć: Mężczyzna
Lokalizacja: Limanowa
Pomógł: 191 razy

Program sumujący. Czego w nim brakuje???

Post autor: jasny »

zmieniłbym część międze repeat a until:

Kod: Zaznacz cały

repeat
  k:=k+1;
  suma:=suma+k*k;
until k=10;
pawelpq
Użytkownik
Użytkownik
Posty: 70
Rejestracja: 21 paź 2006, o 23:07
Płeć: Mężczyzna
Lokalizacja: krosno
Podziękował: 5 razy
Pomógł: 11 razy

Program sumujący. Czego w nim brakuje???

Post autor: pawelpq »

wedlug mnie musisz zadeklarować k jako zmienną która podaje urzytkowanik podczas działania programu
ja bym wprowadzi takie zmiany|:
uses crt;
var
suma:integer;
k, n, z:integer; //wprowadzilem zmienna n do sprawdzania pętli repeat
begin
clrscr;
suma:=0;
writeln('podaj k'); //tu dodalem kawalek ktory pyta o k i przypisuje do zmiennej
read(k);
repeat
z:=z+1;
n:=z; //tutaj też zmieniłem trochę, zmienna n teraz oblicza a z sluży do
n:=sqr(n); sprawdzania pętli; n:=z gwarantuje ze n bedzie kolejna liczba
suma:=suma+n;
until k=z;
write('suma wynosi= ', suma);
readln;
end.
Awatar użytkownika
Sokół
Użytkownik
Użytkownik
Posty: 451
Rejestracja: 17 wrz 2006, o 19:22
Płeć: Mężczyzna
Lokalizacja: Zielona Góra
Podziękował: 15 razy
Pomógł: 55 razy

Program sumujący. Czego w nim brakuje???

Post autor: Sokół »

Casey pisze:Ja mam napisane w tym programie do until k>=10 czyli 1^+2^+3^+..+10^ bo nie wiem jaką inną wartość mógłbym wpisać aby wykonać poprawnie to zadanie z k^.
to niech program spyta uzytkownika ile ma byc k. A tak w ogole to ja bym skorzystal z takiego wzoru na sume skonczona:

\(\displaystyle{ 1^{2}+2^{2}+3^{2}+4^{2}+...+k^{2}= \frac{k(k+1)*(2k+1)}{6}}\)
ODPOWIEDZ