dík moc za radyprogram kalkulacka;
uses crt;
var a,b,n: Integer;
c,d: String;
begin
n:=0;
writeln('tohle je betaverze moji kalkulacky,pusti se za 2v teriny');
delay(2000)
writeln('napis cele realne cislo');
readln(a);
writeln('napis dalsi cislo');
readln(b);
until b<>0;
end;
if b<>0 then
begin
writeln(a,'*',b,'=',a*b);
writeln(a,'/',b,'=',a/b);
writeln(a,'+',b,'=',a+b);
writeln(a,'-',b,'=',a-b);
writeln('program se vypne kdyz stisknes klavesu');
repeat until keypressed;
end.
kalkulačka v pascalu-prosim radu
- ChrastyII
- Začátečník

- Registrován: 06. kvě 2006
- Bydliště: Praha
kalkulačka v pascalu-prosim radu
učím se programovat v pascalu a celý víkend si pohrávám s kalkulačkou ale ani za boha nechce fungovat
tak bych se vás chtěl zeptat jakou tam můžu mít chybu?

- Oneeye_IO
- Začátečník

- Registrován: 15. srp 2005
- Bydliště: Brno střed
- Kontaktovat uživatele:
V tom repeatu nic nemáš, musíš to mít repeat -> potom co se bude provádět opakovane a pak until neco
Na tohle by bylo nejlepší nakrerslit si vývojový diagram, pochopil bys to hnedka
.
Mám takovej pocit, že tohle je tam úplně k ničemu "until b<>0;" protože to musí být spárovaný s repeatem. Ten end za tím je taky nějakej pochybnej to vyhoď. Ten konec bys mohl řešit třeba jako "if keypressed then exit" úplně na konci takže po stisku čehokoliv by se program vypl a navíc bys to mohl ošetřit elsem z předchozího "if b<>0 then" tak že kdyby bylo b 0 tak bys taky skoncil. Nevím jestli nekecám ale snad ti to pomůže
.
edit: a měl bys to mít nadeklarovaný jako real když dělíš a násobíš
Mám takovej pocit, že tohle je tam úplně k ničemu "until b<>0;" protože to musí být spárovaný s repeatem. Ten end za tím je taky nějakej pochybnej to vyhoď. Ten konec bys mohl řešit třeba jako "if keypressed then exit" úplně na konci takže po stisku čehokoliv by se program vypl a navíc bys to mohl ošetřit elsem z předchozího "if b<>0 then" tak že kdyby bylo b 0 tak bys taky skoncil. Nevím jestli nekecám ale snad ti to pomůže
edit: a měl bys to mít nadeklarovaný jako real když dělíš a násobíš
PC: AMD Athlon II X4 640 :: Gelid Tranquillo :: Gigabyte GA-870A-UD3 rev. 2.1 :: Kingston DDR3 4GB :: Powercolor HD5750 SCS3 :: ESI Maya 44 :: Chieftec APS-500S :: Antec Three Hundred :: W7 x64
Lenovo X61: 1,8GHz :: 2GB
Miranda IM | Opera | Gimp | Inkscape | WWFSMD? I want to believe
Lenovo X61: 1,8GHz :: 2GB
Miranda IM | Opera | Gimp | Inkscape | WWFSMD? I want to believe
- no_-_name
- Začátečník

- Registrován: 15. srp 2005
- Bydliště: Mladá Boleslav
- Kontaktovat uživatele:
- ChrastyII
- Začátečník

- Registrován: 06. kvě 2006
- Bydliště: Praha
dík za rady ale pořád to nejede
zkuste to někdo hodit do nějakýho jinýho programu,já používám free pascal
jo teď to vypadá takhle
program kalkulacka;
uses crt;
var a,b,n: Real;
c,d: String;
begin
n:=0;
writeln('tohle je betaverze moji kalkulacky,pusti se za 2vteriny');
delay(2000)
writeln('napis cele realne cislo');
readln(a);
writeln('napis dalsi cislo');
readln(b);
if b<>0 then
writeln(a,'*',b,'=',a*b);
writeln(a,'/',b,'=',a/b);
writeln(a,'+',b,'=',a+b);
writeln(a,'-',b,'=',a-b);
writeln('vypne kdyz stisknes klavesu');
repeat until keypressed;
end.
- Zivan
- Začátečník

-
- Registrován: 30. čer 2005
- Bydliště: Brno
- Kontaktovat uživatele:
Co to znamena nejede? Jakou chybu to pise?
A ten test na deleni nulou mas blbe, bud to musis mit cele v bloku begin - end nebo ho musis mit pred delenim (ted ti to pouze neprovede to nasobeni a spadne to pri deleni nulou).
A ten test na deleni nulou mas blbe, bud to musis mit cele v bloku begin - end nebo ho musis mit pred delenim (ted ti to pouze neprovede to nasobeni a spadne to pri deleni nulou).
HP Elitebook 845 G8 (Ryzen 5650U, 32GB RAM, WD SN570 1TB, 14" fullHD IPS) + HP USB-C G5 Essential + 29" LG 29UM65 + 22" Eizo S2202W
- ChrastyII
- Začátečník

- Registrován: 06. kvě 2006
- Bydliště: Praha
- Zivan
- Začátečník

-
- Registrován: 30. čer 2005
- Bydliště: Brno
- Kontaktovat uživatele:
- Fifi
- Středně pokročilý

- Registrován: 29. říj 2003
- Bydliště: Praha, Ostrava, Brno, Bratislava
Tady to máš trošku překopané. Myslím, že by ses měl první naučit základy a potom až používat další metody. Teďka na tom můžeš dále stavět. (opakovaní, menu, grafické rozhraní)
Kód: Vybrat vše
program kalkulacka;
var a,b: Real;
begin
writeln('Zadej realne cislo:');
readln(a);
writeln('Zadej cislo ruzne od nuly:');
readln(b);
writeln(a:2:2,' * ',b:2:2,' = ',a*b:2:2);
if b<>0 then writeln(a:2:2,' / ',b:2:2,' = ',a/b:2:2) else writeln('Chyba deleni.');
writeln(a:2:2,' + ',b:2:2,' = ',a+b:2:2);
writeln(a:2:2,' - ',b:2:2,' = ',a-b:2:2);
writeln('Vypne, kdyz stisknes klavesu.');
readln;
end.- ChrastyII
- Začátečník

- Registrován: 06. kvě 2006
- Bydliště: Praha
hotovo,problém vyřešen
děkuju moc!ale abych řekl v čem byla chyba...v prvním příspěvku jsem odstranil
until b<>0;
end;
if b<>0 then
begin
to byl první krok...mno a pak ta zbývající chyba byla...ehm mno chybějící středník za příkazem delay
a podle překopané verze Fifiho jsem pak už odstranil zbytečné části pro lepší přehlednost kódu
takže ještě jednou díky moc...příště než sem napíšu budu dávat větší bacha 
until b<>0;
end;
if b<>0 then
begin
to byl první krok...mno a pak ta zbývající chyba byla...ehm mno chybějící středník za příkazem delay