ITI0011-2015:harjutus 11

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti

Kirjeldus

Luua programm, mis loeb käsurea argumendid ning sorteerib need.

Eclipse'is saate käsurea argumente ette anda järgnevalt:

  • Pange korra oma loodud programm käima (selliselt tekitab Eclipse programmile juba käivitamise konfiguratsiooni ära)
  • Võtke menüüst Run -> Run Configurations...
  • Vaikimisi peaks olema avanevas aknas vasakul märgistatud teie loodud uus programm (EX11 näiteks). Veendu selles: Main-tääbis (mis peaks ka avatud olema) peaks olema Project: EX11 (või misiganes sa nimeks panid), Main class: sinu loodud klassinimi (näiteks EX11 või Main vms).
  • Avada Arguments-tääb
  • Program arguments väli on see, kuhu saate sisestada argumendid. Näiteks: tere tulemast tagasi

Sortimine

Etteantud argumendid tuleb sorteerida järgmise loogika järgi:

  • lühemad sõned lähevad ettepoole, pikemad tahapoole
  • võrdse pikkusega sõned sorditakse tavalise sorteerimise reegli järgi (tähestikus eespool olev sõne läheb ettepoole)
  • null-element (null) on kõige väiksem element (ehk siis peaks kasvavalt sorteerimise korral olema kõige esimene ja kahanevalt sorteerimisel kõige viimane).

Lisaks, kui argumentide seas on -d, siis seda sorteerimisse sisse ei arvestata. Selle argumendi olemasolul sorteeritakse sõned vastupidises järjekorras (vt. eelnevat sorteerimise kirjeldust). Ehk siis pikemad sõned ettepoole, võrdsete pikkuste puhul tähestiku järgi kahanevalt (suurem ettepoole).

Näited:

argumendid => tulemus
tere tulemast koju => [koju, tere, tulemast]
b a c => [a, b, c]
"" a "a b" => ["", a, a b]
"" -d a "a b" => [a b, a, ""]
-d => []


Mõned viited, kust lugeda sortimise kohta:

Mall

Seekord tervet malli ees ei ole. Peate täitma järgmised nõuded:

  • Klass, mille sees on main meetod, peab sisaldama järgmist meetodit: public static List<String> getSortedArguments(String[] args).
  • main meetodis kutsutse selle lihtsalt välja: getSortedArguments(args); (see pole otseselt kohustuslik, aga saate ise vaadata, mis tulemused tulevad.
  • Kui on soov, võite luua täiendavaid klasse, mis paiknevad samas pakis kui main meetodiga klass.