ďťż

Ładny brzuch

Napisz program, który wyznacza sumę szeregu z zadaną dokładnością e=0.0001.
http://www.toya.net..../rownanie10.gif

program szereg; uses WinCrt; var n,s:integer; suma:real; begin n:=1; suma:=0; repeat [b]s:=1/n*(n+1); [/b] n:=(n+1); suma:=suma+s; until s<10000; writeln('Suma szeregu wynosi: ',suma:10:4); readln; end.

Czemu w zaznaczonej lini wywala mi błąd?
Co jest przyczyną i jak się pozbyć dziadostwa:)
Program wydaje, mi się że jest napisany poprawnie



cytat:Crisu napisał:
Czemu w zaznaczonej lini wywala mi błąd?
Masz tak : s:=1/n*(n+1);
Wcześniej zadeklarowałeś s jako Integer a w powyższej linijce wyraźnie widać, że wartość przypisywana do s nie jest typu całkowitego (masz tam dzielenie).

cytat:Co jest przyczyną i jak się pozbyć dziadostwa:)
Dla s zamiast Integer dać Real

cytat:Program wydaje, mi się że jest napisany poprawnie
Często tak się wydaje ;)

ICQ : 245-363-570 | TLEN : oxisoft | GG : 486-2-486

faktycznie:)

Ew wpadłem na pomysł, że zamiast zmieniec na real mozna dać
suma:=suma+[b]1[/b]s;

Teraz, jest tylko taka kwestia, że program w zaleznosci od zmiany daje dwa różne wyniki:|

suma:=suma+[b]1/[/b]s;
powinno byc:)



cytat:Crisu napisał:
Teraz, jest tylko taka kwestia, że program w zaleznosci od zmiany daje dwa różne wyniki:|

Wrzuć tu kod po swoich zmianach.

ICQ : 245-363-570 | TLEN : oxisoft | GG : 486-2-486

Hmm, od biedy zamień / na div

Strona mojej grupki programistycznej: www.blaze.er.pl
Zapraszam na moje forum - www.blaze-programming.no-ip.com/phpbb2
gg: 4644238 | tlen: chomik-programista
Ogłaszam że ruszam na krucjatę antypiracką! Precz z kursami drogiego softu w KĄE, piszcie coś o darmowym!

cytat:chomik napisał:

Hmm, od biedy zamień / na div

To by zupełnie wyłożyło program.
W tym miejscu nie może być div

ICQ : 245-363-570 | TLEN : oxisoft | GG : 486-2-486

program szereg; uses WinCrt; var n,s:integer; suma:real; begin n:=1; suma:=0; repeat s:=n*(n+1); n:=(n+1); suma:=suma+1/s; until s<1000; writeln('Suma szeregu wynosi: ',suma:10:4); readln; end.

cytat:Crisu napisał:
Teraz, jest tylko taka kwestia, że program w zaleznosci od zmiany daje dwa różne wyniki:|

s:=1/n*(n+1);

s:=1/(n*(n+1));

Te dwie linijki oznaczają co innego - dlatego masz różne wyniki.
Ta druga (czyli to co teraz masz tylko inaczej zapisane) jest poprawna.

ICQ : 245-363-570 | TLEN : oxisoft | GG : 486-2-486

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •