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