Pád cyklu, exited with exitcode = 201 – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pád cyklu, exited with exitcode = 201 – Pascal – Fórum – Programujte.comPád cyklu, exited with exitcode = 201 – Pascal – Fórum – Programujte.com

 

Jan Češík
~ Anonymní uživatel
2 příspěvky
27. 6. 2012   #1
-
0
-

Zravim, trvorim program pro vypocet urciteho integralu x^2. Do programu vstupuji meze integrace, pocet podintervalu na ktere se ma zadany interval rozdelit (N) a presnost. Pokud zadam presnost 0,00001, cyklus, ktery upravuje pocet podintervalu (N:=2*N) spadne a vyhodi mi to hlasku exited with exitcode = 201. Slysel jsem neco o preteceni aritmetiky, neni mozne, ze N se timto cyklem prehoupne pres urcitou hranici? Testovanim jsem dosel k zaveru, ze program pada pokud je vysledne N = 32768 a vyssi. Dekuji za pomoc

Program integrace;
  uses crt;

  var a,b,delkaintervalu,h,yhorni,ydolni,sumahorni,sumadolni,integral,chyba,P:real;
      i,N,c:integer;

  procedure numint(N:integer);

  begin

  delkaintervalu:=b-a;
  h:=delkaintervalu/N;
  sumahorni:=0;
  sumadolni:=0;

  for i:=1 to N do begin

                    yhorni:=(a+h*i)*(a+h*i);
                    sumahorni:=sumahorni+h*yhorni;

                     end;

  for i:=0 to N-1 do begin

                      ydolni:=(a+h*i)*(a+h*i);
                      sumadolni:=sumadolni+h*ydolni;

                     end;

  integral:=(sumahorni+sumadolni)/2;
  chyba:=abs(sumahorni-sumadolni);

  end;

  begin

  ClrScr;

  write('Integrace od: ');readln (a);
  write('Integrace do: ');readln (b);
  write('Pocet podintervalu: ');readln (N);
  write('Pozadovana presnost: ');readln (P);

  numint(N);

     if

  chyba>P

   then

   begin

    write('Prilis velka chyba, zvysuji pocet podintervalu.');

   readln();

   repeat
    N:=N*2;

    numint(N);
    until chyba<P;

    write('Numericka hodnota integralu: ');writeln(integral:7:5);
    write('Chyba vypoctu integralu: '); writeln(chyba:7:5);

   end

   else

    begin

    write('Numericka hodnota integralu: ');writeln(integral:7:5);
    write('Chyba vypoctu integralu: '); writeln(chyba:7:5);

    end;

  readln();

  end.

Nahlásit jako SPAM
IP: 78.80.111.–
KIIV
~ Moderátor
+43
God of flame
27. 6. 2012   #2
-
0
-

integer bude asi v pascalu jen 16bitovej... cisla vetsi jak 32767 jsou pak mimo rozsah...

bude to chtit longint

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Jan Češík
~ Anonymní uživatel
2 příspěvky
27. 6. 2012   #3
-
0
-

#2 KIIV
diky, uz jsem to poupravil a pocita uz perfektne..

Nahlásit jako SPAM
IP: 78.80.111.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

Exited with exit code 201 — založil Petr

One-time pad — založil Zelenáč

Neustálý pád programu — založil Kowalsky

Alokacia malloc - pad — založil Ludo

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý