Stránka 1 z 1

Rada ohledně programu v TurboPascalu

Napsal: 07 říj 2008 21:07
od Tomina
Zdravím přátelé,
mám problém. Stále to nemohu dát dohromady. Potřebuju sestrojit program v TurboPascalu či Delphi, který má toto zadání:

Navrhni algoritmus, který nalezne nejmenší společný násobek svou přirozených čísel


Pokud byste mi pomohli i s vývojovým diagramem, tak budu vděčný...

Re: Rada ohledně programu v TurboPascalu

Napsal: 15 říj 2008 20:13
od Locky.
Ahoj,
jestli jsem tě správně pochopil (což u mne nebývá moc běžné :) ) tak si nevíš rady s algoritmem:

Máš čísla A a B, nejprve si najdi největší společný dělitel (D), poté je mezi sebou vynásob a vyděl Dckem (A*B/D), dostaneš nejmenší společný násobek.

Největší společný dělitel se získává tím, že stále porovnáváš zadaná čísla a menší odčítáš od většího, ve chvíli kdy se rovnají dostaneš hledané číslo.

Takhle nějak by to mohlo vypadat v TurboPascalu:

Kód: Vybrat vše

function NSN (A,B:integer):integer
begin
  NSN:= A*B/NSD(A,B);
end;

function NSD (A,B:integer):integer
begin
  while (A<>B) do begin
     if (A > B) then A:= A-B;
     else if (B < A) then B:= B-A;
  NSD:= A;
end;

syntaxi jsem už možná trochu pozapoměl, takže si to možná budeš muset poupravit, jinak to nepřeložíš :)

PS: diagramem neposloužím, neumím :-/