Matematické Fórum

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

#1 19. 12. 2012 14:01

Revolution
Příspěvky: 53
Škola: VUT Brno
Pozice: Student
Reputace:   
 

Euklidův algoritmus - pascal

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

  • (téma jako vyřešené označil(a) Revolution)

#2 19. 12. 2012 14:08

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: Euklidův algoritmus - pascal

↑ Revolution:
Nedělíš nulou?


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#3 19. 12. 2012 14:16

Revolution
Příspěvky: 53
Škola: VUT Brno
Pozice: Student
Reputace:   
 

Re: Euklidův algoritmus - pascal

↑ 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

 

#4 19. 12. 2012 14:30

Revolution
Příspěvky: 53
Škola: VUT Brno
Pozice: Student
Reputace:   
 

Re: Euklidův algoritmus - pascal

↑ 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

 

#5 19. 12. 2012 14:50

Revolution
Příspěvky: 53
Škola: VUT Brno
Pozice: Student
Reputace:   
 

Re: Euklidův algoritmus - pascal

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

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson