33 Kontrolltöö näidisülesanne 2: Parkla

Ülesanne. Parkla

Failis parkla.txt on kujutatud ristkülikukujulise parkla pealtvaade. Failis olevad märgid tähistavad parkimiskohtade staatust:

X hõivatud parkimiskoht (esialgu failis ei esine, tekib programmi töö käigus)

P vaba parkimiskoht

– sõidutee, millel ei saa parkida

 

Näide faili sisust:

PPPP-P
-----P
PPPP-P

Kirjuta programm, mis teeb järgnevat.

Kõigepealt koostab programm faili põhjal kahemõõtmelise järjendi ning väljastab selle ekraanile. Ülaltoodud faili korral:

[['P', 'P', 'P', 'P', '-', 'P'],
['-', '-', '-', '-', '-', 'P'],
['P', 'P', 'P', 'P', '-', 'P']]

Järjend on siin mitmel real illustreerimiseks, programm võib selle ühel real väljastada.

Ülemises vasakus nurgas asuva parkimiskoha koordinaadid on (0, 0), selle parempoolse naabri koordinaadid (0, 1) jne.

Seejärel küsib programm kasutajalt järjest tegevusi, kuni valitakse programmi sulgemine.

Võimalikud valikud on järgmised:

  1. Uus parkimine
    • Kasutaja sisestab parkija nime ning parkimiskoha koordinaadid (lahendaja enda valitud viisil).
    • Kui parkimiskoht on vaba, siis jäetakse sõnastikku meelde, mis koht sellele parkijale kuulub ning kahemõõtmelises järjendis muudetakse vastav koht hõivatuks.
    • Kui koht on juba hõivatud või sellel kohal on sõidutee, siis teavitatakse kasutajat, et parkida ei saa. Sõnastikku ja kahemõõtmelist järjendit ei muudeta.
  2. Parkija asukoha leidmine
    • Kasutaja sisestab parkija nime ning programm väljastab koordinaadid, kus parkija auto asub.
    • Võib eeldada, et sisestatud parkija on olemas ja igal parkijal on ainult üks koht hõivatud.
  3. Parkimise lõpetamine
    • Kasutaja sisestab parkija nime.
    • Nimele vastav parkimiskoht märgitakse kahemõõtmelises järjendis vabaks ning vastav kirje kustutatakse sõnastikust.
    • Võib eeldada, et sisestatud parkija on olemas.
  4. Parkla seisu väljastamine
    • Kahemõõtmeline järjend väljastatakse ekraanile.
  5. Programmi töö lõpetamine
    • Kahemõõtmeline järjend väljastatakse ekraanile.
    • Parkimisplatsi uus seis kirjutatakse faili uus_parkla.txt
    • Programm teatab töö lõpetamisest ja lõpetab töö.

Näide

Valitud on viis, kus tegevused sisestatakse nende numbrite abil ja koordinaadid sisestatakse kahekaupa koma ja tühikuga eraldatult.

[['P', 'P', 'P', 'P', '-', 'P'], ['-', '-', '-', '-', '-', 'P'], ['P', 'P', 'P', 'P', '-', 'P']]
Palun valige tegevus: 1
Palun sisestage parkija nimi: Kersti
Palun sisestage parkimiskoha koordinaadid: 1, 0
Sellele kohale parkida ei saa.
Palun valige tegevus: 1
Palun sisestage parkija nimi: Jüri
Palun sisestage parkimiskoha koordinaadid: 0, 3
Palun valige tegevus: 4
['P', 'P', 'P', 'X', '-', 'P'], ['-', '-', '-', '-', '-', 'P'], ['P', 'P', 'P', 'P', '-', 'P']]
Palun valige tegevus: 1
Palun sisestage parkija nimi: Heiki
Palun sisestage parkimiskoha koordinaadid: 0, 3
Sellele kohale parkida ei saa.
Palun valige tegevus: 2
Palun sisestage parkija nimi: Jüri
0, 3
Palun valige tegevus: 3
Palun sisestage parkija nimi: Jüri
Palun valige tegevus: 4
[['P', 'P', 'P', 'P', '-', 'P'], ['-', '-', '-', '-', '-', 'P'], ['P', 'P', 'P', 'P', '-', 'P']]
Palun valige tegevus: 1
Palun sisestage parkija nimi: Toomas
Palun sisestage parkimiskoha koordinaadid: 2, 0
Palun valige tegevus: 5
[['P', 'P', 'P', 'P', '-', 'P'], ['-', '-', '-', '-', '-', 'P'], ['X', 'P', 'P', 'P', '-', 'P']]
Programm kirjutas seisu faili ja lõpetas töö

Litsents

Icon for the Creative Commons Attribution 4.0 International License

Tarkvaraarendus. 2. trükk on loodud Eno Tõnisson, Tauno Palts, Kaarel Tõnisson, Heidi Meier, Merilin Säde, Ago Luberg, Birgy Lorenz, Einar Kivisalu, Meelis Antoi, ja Säde Mai Krusberg poolt Creative Commons Attribution 4.0 International License litsentsi alusel, kui pole teisiti märgitud.

Jaga seda raamatut