Potrebujem surne pomoc s prikladom – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Potrebujem surne pomoc s prikladom – Pascal – Fórum – Programujte.comPotrebujem surne pomoc s prikladom – Pascal – Fórum – Programujte.com

 

aphexxx0
Duch
2. 5. 2008   #1
-
0
-

n, k)-talizmanový stvorec je stvorcová matica rozmerov n×n v ktorej sú vsetky císla od 1 do n^2
pricom platí, ze rozdiel medzi lubovolným prvkom a jeho susedom (vertikálnym, horizontálnym
alebo diagonálnym) je v absolútnej hodnote väcsí alebo rovný k. Cez okraje sa neprechádza.
Napíste program, ktorý na vstupe dostane súbor, v ktorom bude stvorcová matica. Túto
maticu nacíta a urcí ci je to talizmanový stvorec a akého rádu.
.. ludia toto potrebujem spravit.. a uz ma to dost dlho sere... ked niekto vie. budem mu velmi povdacny ... diky :)

Nahlásit jako SPAM
IP: 91.127.108.–
Mircosoft+1
Věrný člen
3. 5. 2008   #2
-
0
-

Z jakého souboru tu matici chceš načítat? Předpokládám, že z textového, takže použij procedury Read a Readln. Rozměry jsou pevně dané nebo je musíš zjišťovat při načítání?
Nadeklarovat dvojrozměrné pole (array [1..n,1..n] of ...) doufám není problém.

Takže dejme tomu, že matici máš načtenou.
Jestli je talismanová (obsahuje všechna čísla 1..n^2), poznáš tak, že (třeba) si uděláš množinu čísel (set of byte, snad ta matice nebude moc velká), do ní nasypeš čísla od 1 do n^2 (buď sjednocením (+) nebo procedurou Include nebo prostě zápisem mnozina:=[1..n], kde n je konstanta). Potom projdi tu matici prvek po prvku (dvojitým cyklem typu For) a každé nalezené číslo z té množiny vyhoď (rozdílem (-) nebo procedurou Exclude). Pokud je na konci množina prázdná (mnozina=[]), znamená to, že matice je talismanová.
Jestli nemáš rád množiny, tak můžeš v matici hledat postupně čísla od 1 do n^2 a jakmile zjistíš, že tam některé z nich není, tak víš, že matice není talismanová.

Jestli dobře chápu, že řád je to číslo k, tak je to celkem jednoduchá úloha na nalezení minima. Postup: deklaruj si pomocnou proměnnou a vlož do ní nějakou největší možnou hodnotu (nebo radši abs. hodnotu rozdílu libovolných dvou prvků matice). Potom opět projdi celou matici prvek po prvku, u každého spočítej absolutní hodnotu (funkce Abs) rozdílu se všemi jeho sousedy (pozor na okraje matice, to ošetři ifem) a porovnej ji s tou pomocnou proměnnou. Pokud je ten rozdíl menší než ta proměnná, ulož ho do ní. Na konci budeš v té proměnné mít minimum, čili hledaný řád talismanové matice.

Nahlásit jako SPAM
IP: 85.132.158.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
aphexxx0
Duch
3. 5. 2008   #3
-
0
-

To Mircosoft : och dakujem velmi pekne :) ... ja tie mnoziny moc neuznavam.. neze neuznavam ale neviem s nimi moc robit.. ale tak co uz vyskusam :) este raz vdaka

Nahlásit jako SPAM
IP: 84.47.40.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

C++ potrebujem pomoc — založil Anonymní uživatel

Potrebujem pomoc!!! — založil Andel

Pomoc potrebujem — založil Marek

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý