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
Stránky: 1

Ahoj, napsal jsem program v pascalu využívající Eukliduv algoritmus, mohl by mi někdo prosím napsat jak vyřešit tento problém?: Mám dvě čísla a=0, b=6. Pak vychází NSD(největ. spol. dělitel)=6, NSN(nejmen. spol. nasobek)=0.
Problém ale nástává pokud zadám a=6, b=0. Potom to hází ERROR. Nemohl by mi někdo prosím pomoct.
Předem děkuju moc za pomoc.
Můj program:
program NSN_NSD;
uses crt;
var x,y:integer;
function nsd(a,b:integer):integer;
var
zbytek:integer;
begin
repeat
zbytek:=a mod b;
a:=b;
if zbytek = 0 then break else b:=zbytek;
until zbytek=0;
nsd:=b;
end;
function nsn(a,b:longint):longint;
begin
nsn:=(a*b) div nsd(a,b);
end;
begin
clrscr;
write('Zadejte cislo x: ');
readln(x);
write('Zadejte cislo y: ');
readln(y);
writeln;
writeln('nejvetsi spolecny delitel : ', nsd(x,y));
writeln('nejmensi spolecny nasobek : ', nsn(x,y));
end.
Offline

↑ Revolution:
Nedělíš nulou?
Offline

↑ gladiator01:Ano, dělím, to vím. Potřeboval jsem spíše poradit zdali bych měl změnit kod té funkce nebo, pokud by to šlo nějak elegantně nebo napsat rovnou v programu odstavec typu: pokud je a=6 a b=0 pak je NSN=0 a NSD=6.
Offline

↑ Revolution:Tak už dobrý, už jsem to vyřešil.
Narazil jsem ale na jiný problém. Prosím napište mi jak udělat aby pokud uživatel zadá zaporné číslo, tak mu naskočí ''Zadejte prirozené číslo'' a program ho vráti na tu pozici v programu, kde mu naskočí znovu ta otazka ''Zadejte číslo a: ''.
Předem díky moc za pomoc.
Offline

No teď jsem to už taky vyřešil. Sám si poděkuju.
Offline
Stránky: 1