Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Mam naprogramovat v progame pascal program ktory urcuje celocisleny podiel 2 cisiel teda:
Program přečte dvě celá čísla a vypíše jejich celočíselný podíl. Pokud tato čísla nejdou vydělit (rozmyslete si, kdy není dělení definováno), vypíše "NELZE". Např. pro 9 a 4 je tedy výsledek 2. Potrebujem pomoct kde mam chybu, isiel som na to asi takto :
program delenie;
var a,b,vysledok:integer;
begin
readln (a);
readln (b);
if b=0 then writeln ('NELZE')
else
vysledok := a div b;
writeln (vysledok);
end.
skompiluje sa to v poriadku ,ale asi niekde v algoritme musi byt chyba lebo mi to program do skoly nechce zobrat.Myslim ze to bude niekde v tom kde je delenie definovane. Nevie niekto pomoct?..dakujem
Offline

Program delenie;
uses wincrt;
var a,b,vysledok:integer;
begin
Writeln('Program vydeli mezi sebou 2 cisla, jestli budes delit nulou, vypise se chyba');
readln (a);
readln (b);
if b=0 then writeln ('NELZE')
else
begin
vysledok:= a div b;
writeln ('Vysledek je ',vysledok);
end;
readln;
donewincrt;
end.Mělo by to jít.
Offline
↑ vojta01:
ahoj, spravil som to ako hovoris ,ale aj tak tam musi byt niekde chyba.Skompiloval som to skolskym systemom a pridelilo mi to len 4 body z 10 ..takze nieco nebude v poriadku.
program delenie;
var a,b,vysledok:integer;
begin
readln (a);
readln (b);
if b=0 then writeln ('NELZE')
else
begin
vysledok := a div b;
writeln (vysledok);
end
end.
A Honza Matika , ty si spravil ten isty program ako ja len si tam zadal writeln co neni potrebne.Otazka je asi ci celociselne delenie nie je definovane iba ked sa deli 0...neviem kde by uz mohla byt chyba inde..navrhy ??
Offline
↑ vojta01:
program delenie;
var a,b,vysledok:integer;
BEGIN
repeat
readln(a);
readln(b);
begin
vysledok:=a div b;
writeln(vysledok);
end
until b = 0;
if b = 0 then write ('NELZE');
end.
toto zas neviem opravit tak aby sa nedelilo 0 stale sa to da :( ..asi to nebude dobry postup...kks primitivna uloha a take problemy....navrhy ako to pozmenit ??
Offline
↑ allsucker:
Ten kód cos poslal v 15.52 je blbě, tu podmínku do něj dopsat klidně můžeš, ale ne tam kam jsi ji dal. Musí být v těle cyklu tak, aby se pro b=0 neprovedlo to dělení samotné. Takhle je to trochu s křížkem po funuse, když ti někdo zadá b=0, tak se dělení "provede" a teprve potom by se cyklus ukončil. Ale nevím proč tam cpát cyklus, v zadání nic takového není.
Ten kód z 15.26 se mi zdá v pořádku, akorát za předposledním ENDem by měl být středník, nevím jak se k tomu který kompilátor staví.
Problém bude podle všeho ve "skolskem systemu", tak jak je ten kód napsaný by měl jít v normálním překladači přeložit a program pracovat. Co hodnotí ten váš systém a jak, to můžu jen hádat.
Offline
↑ LukasM:
no ten cyklus som nepisal uz len som vymyslal ze co ako to este moze byt, ale nechapem to..preco mi to neda max pocet bodov..odozdaval som to s endom aj so strednikom aj bez neho vkuse 40 percent len. nechapem...zeby bolo celociselne delenie nedefinovane aj niekde inde ako 0 ?:D..nechapem uz co si mam o tom mysliet...
Offline
↑ allsucker:
zdravím hele na jakou školu chodíš?
jestli na tu stejnou co ja tak sem to udělal takto a hodilo mi to 100%
program deleni;
var cislo,delitel:integer;
begin
read(cislo);
read(delitel);
if delitel=0 then
write('NELZE')
else
begin;
write(cislo div delitel);
end;
end.
Offline