laupäev, 6. jaanuar 2018

Andmete sisestamine loendisse ja nende lugemine

Loendit saab kasutada ka nii, et programm sisestab ise sinna oma töö käigus andmeid (näiteks kasutaja poolt sisestatud numbreid, et siis leida sisestatud arvudest suurim vms). Selleks tuleb luua tühi loend ning kasutada loendi käsuplokki



Ava eelmisel tunnil tehtud ülesanne. Ilmselt märkasid juba, et selle ülesande puhul küsitakse kasutaja käest sõnu kogu aeg samas järjekorras!
Kui lisasime sinna juhuarvulise sõnavaliku, siis hakkasid osad sõnad korduma (mis ilmselt sõnade õppimise seisukohalt polegi nii väga halb variant).

Ülesanne
Täienda eelmisel tunnil tehtud sõnade küsimise skripti nii, et sõnu küsitakse suvalises järjekorras nii, et ükski sõna ei korduks!


1. Loo loend nimega "arv" - see loend jääb esialgu tühjaks, sinna hakkab programm lisama väärtuseid (meie näite puhul loendi "eesti" andmete järjekorranumbreid).
2. Skript töötab selliselt, et iga uue järjekorranumbri puhul kontrollitakse, kas see on juba loendis olemas (esimesel korral ei ole). Kui ei ole, siis lisatakse loendisse ning küsitakse kasutajalt selle järjekorranumbriga sõna (ja kontrollitakse vastavust inglisekeelse loendiga).
Juhul kui järjekorranumber on juba loendis olemas, siis võetakse uus (juhuslik arv vahemikus 1 - küsitavate sõnade arv) ja kontrollitakse uuesti.

"arv" on tühi loend ning tsükkel peab töötama seni, kuni selle liikmete arv saab võrdseks näiteks sõnu sisaldava loendiga.

Edasi tuleb kontrollida, kas nr väärtus (juhuslik arv vahemikust) on juba loendis olemas (pildil ülemine plokk). Juhul kui on, siis tuleb võtta uus juhuarv ning kontrollida uuesti.


3. Lisa kindlasti ka käsklus loendi tühjendamiseks skripti algusesse, muidu saad skripti käivitada vaid ühe korra.

Ülesanne 2
Täienda oma skripti nii, et see küsiks kasutajalt alguses, mitu sõna ta soovib vastata (anna ette ka vahemik, see ei saa olla suurem, kui sinu sõnade loend) ning küsib tema käest loendist suvaliselt nii palju sõnu!



Selleks tuleb lisada programmi lõik, mis kontrollib, kas sisestatud arv jääb loendis olevate sõnade arvu piiresse.
Kui jääb, siis hakkab ülejäänud skript tööle, aga korduste arv tuleb nüüd võrdsustada kasutaja poolt sisestatud vastusega (võtab loendist nii mitu erinevat sõna, kui kasutaja vastata soovib).