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 13. 11. 2013 18:04

Husky
Zelenáč
Příspěvky: 8
Pozice: student
Reputace:   
 

NSD n čísel a výměna dvou řádků a dvou sloupců v dvourozměrném poli

Ahoj, prosím potřeboval bych pomoct s těmito dvěma úkoly:

Sestavte algoritmus pro nalezení největšího společného dělitele n celých čísel.
V algoritmu využijte funkce NSD pro vyhledání největšího společného děliitele dvou čísel x a y.

Mně se podařilo pouze odladit NSD pro dvě čísla a nevím, jak tam zakomponovat to, aby bral n čísel, asi to bude chtít ještě vnořený cyklus, ale já nevím, jak ho udělat.

Ten program na NSD dvou čísel je níže:

procedure NSD;

var i, j : integer;

begin
write (' Zadej cislo: ');
readln (i);
repeat write (' Zadej cislo: ');
readln (j);

while i <> j do

if i >j then i := i - j

else j := j - i

writeln (' Nejvetsi spolecny delitel cisel i a j je: ',i);
end;


A druhý úkol je tento - s tím si vůbec nevím rady:

Napiš program pro výměnu dvou řádků a dvou sloupců v dvourozměrném poli.
Pole bude naplněno náhodnými čísly.

Předem díky za všechny rady a nápady.

Offline

 

#2 14. 11. 2013 09:00

Bati
Příspěvky: 2469
Reputace:   192 
 

Re: NSD n čísel a výměna dvou řádků a dvou sloupců v dvourozměrném poli

↑ Husky:
Ahoj,
ten algorimtus pro NSD dvou čísel se dá podstatně zlepšit tak, že mínusy nahradíš zbytkem po dělení (mod). Uvědom si jak se bude lišit běh tvého algoritmu a takto upraveného třeba pro čísla 2 a 1024.

Pro n čísel pak stačí využít faktu, že $NSD(a,b,c)=NSD(NSD(a,b),c)$, atd.


Ve druhém úkolu mě napadají 2 možnosti.
Nejlepší asi bude prostě projíždět ve forcyklu daný řádek/sloupec a prohazovat prvky po jednom.
Také by šlo si definovat násobení matic a násobit to maticí, která prohazuje řádky (vypadá skoro jako jednotková).

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson