{"id":160,"date":"2019-03-26T09:31:53","date_gmt":"2019-03-26T09:31:53","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/?post_type=chapter&#038;p=160"},"modified":"2019-06-13T18:44:35","modified_gmt":"2019-06-13T18:44:35","slug":"naidisulesanded","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/chapter\/naidisulesanded\/","title":{"raw":"Kontrollt\u00f6\u00f6 n\u00e4idis\u00fclesanne 1: Pakiautomaat","rendered":"Kontrollt\u00f6\u00f6 n\u00e4idis\u00fclesanne 1: Pakiautomaat"},"content":{"raw":"Oleme j\u00f5udmas \u201cTarkvaraarenduse\u201d kursusega l\u00f5pule. Selles osas uusi asju enam ei tutvustata, see-eest p\u00fc\u00fcame \u00f5pitu kokku v\u00f5tta.\r\n\r\nJ\u00e4rgnevate \u00fclesannete l\u00e4bilahendamine annab teatud kindlustunde, et \u00f5pitud oskutes on vajalik tase saavutatud. Siiski ei kata need \u00fclesanded p\u00e4ris k\u00f5ike \u00f5pitut.\r\n<h1>\u00dclesanne. Pakiautomaat<\/h1>\r\nPakiautomaadi kapid on m\u00e4\u00e4ratud kahe koordinaadiga \u2014 esimene n\u00e4itab korrust ja teine n\u00e4itab, mitmes kapp see korrusel on. Nummerdamine algab nullist ja korruste loendamine \u00fclalt.\r\n\r\nN\u00e4iteks\r\n<pre>00 01 01 03 04\r\n10 11 12 13 14\r\n20 21 22 23 24<\/pre>\r\nKappide sisu on kirjas tekstifailis <em>kapid.txt<\/em>. T\u00fchja kappi t\u00e4histab -. Eraldajaks on koma.\r\n<pre>-,kiri,-,pakk,kiri\r\npakk,-,-,-,pakk\r\n-,-,-,-,pakk<\/pre>\r\nTekstifailis <em>uksekoodid.txt<\/em> on neljakohalised kordumatud uksekoodid ning vastavate kappide koordinaadid. Eraldajaks on koma.\r\n<pre>0132,0,1\r\n9142,0,3\r\n8112,0,4\r\n4444,1,0\r\n5131,1,4\r\n0000,2,4<\/pre>\r\nKirjuta programm, mis teeb j\u00e4rgnevat.\r\n\r\nK\u00f5igepealt koostab programm kapisisude faili <em>kapid.txt<\/em> p\u00f5hjal kahem\u00f5\u00f5tmelise j\u00e4rjendi ning v\u00e4ljastab selle ekraanile. \u00dclaltoodud faili korral:\r\n<pre>[['-', 'kiri', '-', 'pakk', 'kiri'],\r\n['pakk', '-', '-', '-', 'pakk'],\r\n['-', '-', '-', '-', 'pakk']]<\/pre>\r\nJ\u00e4rjend on siin mitmel real illustreerimiseks, programm v\u00f5ib selle \u00fches reas v\u00e4ljastada.\r\n\r\nUksekoodide failist <em>uksekoodid.txt<\/em> loeb programm andmed <strong>s\u00f5nastikku<\/strong>, kus v\u00f5tmeteks on uksekoodid (s\u00f5nedena) ja v\u00e4\u00e4rtusteks vastavate kappide koordinaadid (andmestruktuur on lahendaja valida).\r\n\r\nSeej\u00e4rel k\u00fcsib programm kasutajalt tegevuse, mis sisestatakse numbri abil.\r\n\r\nV\u00f5imalikud valikud on j\u00e4rgmised.\r\n<ol>\r\n \t<li style=\"font-weight: 400\">Saadetise k\u00e4ttesaamine\r\n<ul>\r\n \t<li style=\"font-weight: 400\">Kasutajalt k\u00fcsitakse uksekood.<\/li>\r\n \t<li style=\"font-weight: 400\">Kui selline uksekood on olemas, siis \u201eavatakse\u201d vastav kapp ning teatatakse, mis on selle sisu. Vastav kirje eemaldatakse s\u00f5nastikust ja kapi sisude j\u00e4rjendis m\u00e4\u00e4ratakse vastavale kohale v\u00e4\u00e4rtus -.<\/li>\r\n \t<li style=\"font-weight: 400\">Kui sellist uksekoodi ei ole, v\u00e4ljastatakse ekraanile vastav teade.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li style=\"font-weight: 400\">T\u00fchjade kappide arvu k\u00fcsimine\r\n<ul>\r\n \t<li style=\"font-weight: 400\">Ekraanile v\u00e4ljastatakse t\u00fchjade kappide arv.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li style=\"font-weight: 400\">Saadetise saatmine\r\n<ul>\r\n \t<li style=\"font-weight: 400\">Kui t\u00fchje kappe pole, siis v\u00e4ljastatakse vastav teade.<\/li>\r\n \t<li style=\"font-weight: 400\">Kui t\u00fchje kappe on, siis k\u00fcsitakse kasutajalt, mida ta tahab saata. Saadetis paigutatakse \u00fcksk\u00f5ik millisesse t\u00fchja kappi ja tehakse muudatus kappide sisu j\u00e4rjendis. Uksekood (nelja numbrim\u00e4rgiga s\u00f5ne) genereeritakse juhuslikult ning kui sellist uksekoodi veel pole, t\u00e4iendatakse uksekoodide s\u00f5nastikku. Uksekoodi genereeritakse senikaua, kuni saadakse selline, mida veel pole.<\/li>\r\n \t<li style=\"font-weight: 400\">Kasutajalt k\u00fcsitakse, kellele ta tahab paki saata.<\/li>\r\n \t<li style=\"font-weight: 400\">Postifirmale \u201esaadetakse\u201d (ekraanile v\u00e4ljastatakse) s\u00f5num uue saadetise andmete ja kapi uksekoodiga.<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ol>\r\nP\u00e4rast tegevust v\u00e4ljastatakse kappide sisu j\u00e4rjend ning uksekoodide s\u00f5nastik ekraanile.\r\n\r\nJ\u00e4rgnevad n\u00e4ited on \u00fcksteisest s\u00f5ltumatud. K\u00f5ik l\u00e4htuvad \u00fclaltoodud failidest.\r\n<h2>N\u00e4ide 1 a<\/h2>\r\n<pre>[['-', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\nPalun valige tegevus: 1\r\nPalun sisestage uksekood: 3232\r\nSellist uksekoodi ei ole.\r\n[['-', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\n{'0132': (0, 1), '9142': (0, 3), '8112': (0, 4), '4444': (1, 0), '5131': (1, 4), '0000': (2, 4)}<\/pre>\r\n<h2>N\u00e4ide 1 b<\/h2>\r\n<pre>[['-', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\nPalun valige tegevus: 1\r\nPalun sisestage uksekood: 9142\r\nAvaneb kapp (0, 3), milles on pakk\r\n[['-', 'kiri', '-', '-', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\n{'0132': (0, 1), '8112': (0, 4), '4444': (1, 0), '5131': (1, 4), '0000': (2, 4)}<\/pre>\r\n<h2>N\u00e4ide 2<\/h2>\r\n<pre>[['-', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\nPalun valige tegevus: 2\r\nPraegu on 9 t\u00fchja kappi\r\n[['-', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\n{'0132': (0, 1), '9142': (0, 3), '8112': (0, 4), '4444': (1, 0), '5131': (1, 4), '0000': (2, 4)}<\/pre>\r\n<h2>N\u00e4ide 3<\/h2>\r\n<pre>[['-', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\nPalun valige tegevus: 3\r\nMida tahate saata? kiri\r\nKellele tahate saata? Lottele\r\nS\u00f5num postifirmale: Kapis (0, 0) on kiri, mis saadeti Lottele. Uksekood on 5465.\r\n[['kiri', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\n{'0132': (0, 1), '9142': (0, 3), '8112': (0, 4), '4444': (1, 0), '5131': (1, 4), '0000': (2, 4), '5465': (0, 0)}\r\n<\/pre>\r\n<pre><\/pre>","rendered":"<p>Oleme j\u00f5udmas \u201cTarkvaraarenduse\u201d kursusega l\u00f5pule. Selles osas uusi asju enam ei tutvustata, see-eest p\u00fc\u00fcame \u00f5pitu kokku v\u00f5tta.<\/p>\n<p>J\u00e4rgnevate \u00fclesannete l\u00e4bilahendamine annab teatud kindlustunde, et \u00f5pitud oskutes on vajalik tase saavutatud. Siiski ei kata need \u00fclesanded p\u00e4ris k\u00f5ike \u00f5pitut.<\/p>\n<h1>\u00dclesanne. Pakiautomaat<\/h1>\n<p>Pakiautomaadi kapid on m\u00e4\u00e4ratud kahe koordinaadiga \u2014 esimene n\u00e4itab korrust ja teine n\u00e4itab, mitmes kapp see korrusel on. Nummerdamine algab nullist ja korruste loendamine \u00fclalt.<\/p>\n<p>N\u00e4iteks<\/p>\n<pre>00 01 01 03 04\r\n10 11 12 13 14\r\n20 21 22 23 24<\/pre>\n<p>Kappide sisu on kirjas tekstifailis <em>kapid.txt<\/em>. T\u00fchja kappi t\u00e4histab -. Eraldajaks on koma.<\/p>\n<pre>-,kiri,-,pakk,kiri\r\npakk,-,-,-,pakk\r\n-,-,-,-,pakk<\/pre>\n<p>Tekstifailis <em>uksekoodid.txt<\/em> on neljakohalised kordumatud uksekoodid ning vastavate kappide koordinaadid. Eraldajaks on koma.<\/p>\n<pre>0132,0,1\r\n9142,0,3\r\n8112,0,4\r\n4444,1,0\r\n5131,1,4\r\n0000,2,4<\/pre>\n<p>Kirjuta programm, mis teeb j\u00e4rgnevat.<\/p>\n<p>K\u00f5igepealt koostab programm kapisisude faili <em>kapid.txt<\/em> p\u00f5hjal kahem\u00f5\u00f5tmelise j\u00e4rjendi ning v\u00e4ljastab selle ekraanile. \u00dclaltoodud faili korral:<\/p>\n<pre>[['-', 'kiri', '-', 'pakk', 'kiri'],\r\n['pakk', '-', '-', '-', 'pakk'],\r\n['-', '-', '-', '-', 'pakk']]<\/pre>\n<p>J\u00e4rjend on siin mitmel real illustreerimiseks, programm v\u00f5ib selle \u00fches reas v\u00e4ljastada.<\/p>\n<p>Uksekoodide failist <em>uksekoodid.txt<\/em> loeb programm andmed <strong>s\u00f5nastikku<\/strong>, kus v\u00f5tmeteks on uksekoodid (s\u00f5nedena) ja v\u00e4\u00e4rtusteks vastavate kappide koordinaadid (andmestruktuur on lahendaja valida).<\/p>\n<p>Seej\u00e4rel k\u00fcsib programm kasutajalt tegevuse, mis sisestatakse numbri abil.<\/p>\n<p>V\u00f5imalikud valikud on j\u00e4rgmised.<\/p>\n<ol>\n<li style=\"font-weight: 400\">Saadetise k\u00e4ttesaamine\n<ul>\n<li style=\"font-weight: 400\">Kasutajalt k\u00fcsitakse uksekood.<\/li>\n<li style=\"font-weight: 400\">Kui selline uksekood on olemas, siis \u201eavatakse\u201d vastav kapp ning teatatakse, mis on selle sisu. Vastav kirje eemaldatakse s\u00f5nastikust ja kapi sisude j\u00e4rjendis m\u00e4\u00e4ratakse vastavale kohale v\u00e4\u00e4rtus -.<\/li>\n<li style=\"font-weight: 400\">Kui sellist uksekoodi ei ole, v\u00e4ljastatakse ekraanile vastav teade.<\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400\">T\u00fchjade kappide arvu k\u00fcsimine\n<ul>\n<li style=\"font-weight: 400\">Ekraanile v\u00e4ljastatakse t\u00fchjade kappide arv.<\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400\">Saadetise saatmine\n<ul>\n<li style=\"font-weight: 400\">Kui t\u00fchje kappe pole, siis v\u00e4ljastatakse vastav teade.<\/li>\n<li style=\"font-weight: 400\">Kui t\u00fchje kappe on, siis k\u00fcsitakse kasutajalt, mida ta tahab saata. Saadetis paigutatakse \u00fcksk\u00f5ik millisesse t\u00fchja kappi ja tehakse muudatus kappide sisu j\u00e4rjendis. Uksekood (nelja numbrim\u00e4rgiga s\u00f5ne) genereeritakse juhuslikult ning kui sellist uksekoodi veel pole, t\u00e4iendatakse uksekoodide s\u00f5nastikku. Uksekoodi genereeritakse senikaua, kuni saadakse selline, mida veel pole.<\/li>\n<li style=\"font-weight: 400\">Kasutajalt k\u00fcsitakse, kellele ta tahab paki saata.<\/li>\n<li style=\"font-weight: 400\">Postifirmale \u201esaadetakse\u201d (ekraanile v\u00e4ljastatakse) s\u00f5num uue saadetise andmete ja kapi uksekoodiga.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>P\u00e4rast tegevust v\u00e4ljastatakse kappide sisu j\u00e4rjend ning uksekoodide s\u00f5nastik ekraanile.<\/p>\n<p>J\u00e4rgnevad n\u00e4ited on \u00fcksteisest s\u00f5ltumatud. K\u00f5ik l\u00e4htuvad \u00fclaltoodud failidest.<\/p>\n<h2>N\u00e4ide 1 a<\/h2>\n<pre>[['-', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\nPalun valige tegevus: 1\r\nPalun sisestage uksekood: 3232\r\nSellist uksekoodi ei ole.\r\n[['-', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\n{'0132': (0, 1), '9142': (0, 3), '8112': (0, 4), '4444': (1, 0), '5131': (1, 4), '0000': (2, 4)}<\/pre>\n<h2>N\u00e4ide 1 b<\/h2>\n<pre>[['-', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\nPalun valige tegevus: 1\r\nPalun sisestage uksekood: 9142\r\nAvaneb kapp (0, 3), milles on pakk\r\n[['-', 'kiri', '-', '-', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\n{'0132': (0, 1), '8112': (0, 4), '4444': (1, 0), '5131': (1, 4), '0000': (2, 4)}<\/pre>\n<h2>N\u00e4ide 2<\/h2>\n<pre>[['-', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\nPalun valige tegevus: 2\r\nPraegu on 9 t\u00fchja kappi\r\n[['-', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\n{'0132': (0, 1), '9142': (0, 3), '8112': (0, 4), '4444': (1, 0), '5131': (1, 4), '0000': (2, 4)}<\/pre>\n<h2>N\u00e4ide 3<\/h2>\n<pre>[['-', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\nPalun valige tegevus: 3\r\nMida tahate saata? kiri\r\nKellele tahate saata? Lottele\r\nS\u00f5num postifirmale: Kapis (0, 0) on kiri, mis saadeti Lottele. Uksekood on 5465.\r\n[['kiri', 'kiri', '-', 'pakk', 'kiri'], ['pakk', '-', '-', '-', 'pakk'], ['-', '-', '-', '-', 'pakk']]\r\n{'0132': (0, 1), '9142': (0, 3), '8112': (0, 4), '4444': (1, 0), '5131': (1, 4), '0000': (2, 4), '5465': (0, 0)}\r\n<\/pre>\n<pre><\/pre>\n","protected":false},"author":12,"menu_order":2,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-160","chapter","type-chapter","status-publish","hentry"],"part":54,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/chapters\/160","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/wp\/v2\/users\/12"}],"version-history":[{"count":10,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/chapters\/160\/revisions"}],"predecessor-version":[{"id":236,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/chapters\/160\/revisions\/236"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/parts\/54"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/chapters\/160\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/wp\/v2\/media?parent=160"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/chapter-type?post=160"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/wp\/v2\/contributor?post=160"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/wp\/v2\/license?post=160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}