IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Java-vícerozměrné pole

Aktivity
Avatar
Martin Beran
Člen
Avatar
Martin Beran:12.4.2021 11:11

Dobrý den,
jsem na střední škole a dostali jsme úkol, který musím splnit, ale vůbec nevím od čeho se mám odpíchnout ani jak začít. Dokázal by mi někdo poradit? Děkuji všem

Úkol:
Napište metodu, která na základě zadané registrační značky vozidla vypíše kraj, ze kterého vozidlo je.
Pro uložení údajů použijte vícerozměrné pole.

 
Odpovědět
12.4.2021 11:11
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Martin Beran
DarkCoder:12.4.2021 11:26

První písmeno zleva na SPZ označuje kraj, ve kterém bylo vozidlo registrováno:

A – Praha
B – Jihomoravský kraj
C – Jihočeský kraj
E – Pardubický kraj
H – Královéhradecký kraj
J – Kraj Vysočina
K – Karlovarský kraj
L – Liberecký kraj
M – Olomoucký kraj
P – Plzeňský kraj
S – Středočeský kraj
T – Moravskoslezský kraj
U – Ústecký kraj
Z – Zlínský kraj

Vytvoříš 2D pole o 2 sloupcích a řádcích rovno počtu krajů. První sloupec udává označení pro kraj, druhý sloupec odpovídající kraj.

Z SPZ přečteš první písmeno, najdeš pozici kde se poli nachází, vypíšeš hodnotu druhého sloupce daného záznamu. Toť vše.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
12.4.2021 11:26
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:12.4.2021 12:14

Popravdě nechápu, proč toto řeší přes vícerozměrná pole.
Toto je krásný příklad pro výčtový typ

Ach jo... to zase nějaký "taky učitel" učí o více rozměrném poli a pak použije pravidlo, že když to jde napsat prasácky, tak to dětem zadám.
Tady by skutečně bylo nejjednodušší řešení - výčtový typ, tam si zadám jako jednotlivé názvy výše uvedená písmenka, jako atribut u jednotlivých položek zadám Stringovou hodnotu (čili název kraje). Potom ve výčtovém typu navrkám metodu getKraj(), která mi u každého písmenka tento text vrátí.
Ok, byla by tam potřeba ještě procházet a porovnávat, jestli dané enum takovou značku má (stejně bys to v ideálním případě musel porovnávat, jestli je vstup nenullový, jestli vůbec dané enum takovou značku má, atd.)

Chápu, že v neobjektovém jazyce by se to tak řešilo. Samozřejmě značka ideál v dnešní době webových služeb by bylo, nejlepší mít takový výčet zanesený v databázi a dotahovat to pomocí restové služby, ale rvát to do polí... a potom logiku tohoto pole někde hledat v kódu... nechápu, proč se toto takhle učí :(
Už jen tady na itnetwork je řada krásných příkladů využití pole, ale toto je skutečně ukázkový příklad na enum (už i jak to DarkCoder hezky vypsal, tak to poslední, co by člověka napadlo, že by to rval do dvourozměrného pole).

Editováno 12.4.2021 12:15
Nahoru Odpovědět
12.4.2021 12:14
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:12.4.2021 12:19

Případně mě ještě napadá mapa, tam by to ještě také šlo a bylo by to malinko úspornější. Vyhledávání by sis nemusel psát růčo, ale jednoduše bys použil metodu containsKey(Strin­g).

Nahoru Odpovědět
12.4.2021 12:19
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
DarkCoder
Člen
Avatar
DarkCoder:12.4.2021 15:23

Jiný způsob za použití 2D pole. Vytvořit 2D pole o velikosti 'Z'-'A'+1, 2. Naplnit jej daty do indexu odpovídající ASCII hodnotě počátečního písmena. Přečte se SPZ, vytáhne se první znak, provede se validita na písmeno, převede se na velké, následně je třeba získat ASCII hodnotu znaku, odečte se hodnota 'A', což v tu chvíli představuje adekvátní index. Stačí jen vypsat hodnotu na pozici index, 1. Výhodou je přímý přístup k datům bez nutnosti vyhledávání a porovnávání dát v databázi (poli).

Nahoru Odpovědět
12.4.2021 15:23
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Martin Beran
Člen
Avatar
Odpovídá na DarkCoder
Martin Beran:14.4.2021 8:19

Děkuji moc

 
Nahoru Odpovědět
14.4.2021 8:19
Avatar
Martin Beran
Člen
Avatar
Odpovídá na Lubor Pešek
Martin Beran:14.4.2021 11:12

bohužel to musím udělat tak, jak požaduje, ale děkuji moc

 
Nahoru Odpovědět
14.4.2021 11:12
Avatar
Lubor Pešek
Člen
Avatar
Odpovídá na Martin Beran
Lubor Pešek:14.4.2021 11:23

No, tak jestli ti můžu na to něco říct... Nevím, jestli jsi na střední nebo na vysoké, ale to je fuk.
Neboj se nikdy investovat do vzdělání. Tady na itnetwork jsou skvělé tutoriály a vidíš sám třeba na příkladu DarkCodera, že se tu vždy najdou ochotní típci, kteří ti rádi pomůžou (pak jsou tu takoví, jako já, kteří k tomu mají i blbé kecy :D )
Pokud by ses chtěl naučit programovat, tak si kup celé balíčky tady na itnetwork. Má to smysl a tady se vážně základy dobře naučíš. Když ti nebude něco jasné, můžeš se zeptat.

Skutečně se na toho učitele vykašli, bude tě učit špatnému myšlení a špatné návyky.

PS: příště ukaž aspoň minimální snahu. Toto zadání nebylo nikterak těžké a zvládl bys to po jednom dni, který bys strávil nad zdejšími tutoriály (i s tím, že bys předtím ani netušil, že pro Javu potřebuješ nějaký virtuální stroj). Když máš v zadání - napište metodu, která....
Tak sem příště aspoň pichni třeba prázdnou metodu nebo metodu, která něco vypisuje, prostě něco - ať jde vidět aspoň malá snaha.
Prázdná metoda je 0,05% z celého úkolu. Ale tys nepředvedl ani tohle. Neboj se i předvádět špatné řešení. Pokud jsi začátečník, tak máš na chyby právo. Dokonce si myslím, že jako začátečník MUSÍŠ dělat chyby. Na těch se to nejlépe naučíš.
(Ale samozřejmě... musíš dělat chyby, ale zároveň je i musíš chtít a umět napravovat :D Ne, že je dobře, že budeš dělat jenom chyby :D)

Každopádně na toho učitele se vykašli. Ten tě očividně kazí. Raději se pořádně zavrtej sem do zdejších tutoriálů. Věz, že třeba David Čápka a spousta redaktorů si na tomto webu dává záležet a já osobně věřím, že všichni chtějí, aby to pomohlo vychovat kvalitní programátory.

Editováno 14.4.2021 11:24
Nahoru Odpovědět
14.4.2021 11:23
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.