XLIV, 1995.-1996. õppeaasta Koduse eelvooru ülesanded Informaatika olümpiaad toimub kahes vanusegrupis: kuni 10. klassini ja 11.-12. klass. Korraldatakse kolm vooru. Esimene voor on kodune, lahendused tuleb Tartusse saata 15. jaanuariks. Saadetud lahenduste põhjal kutsutakse võistlejad piirkondlikule voorule, mis toimub 22. veebruaril suuremates linnades. Piirkondlike voorude tugevamad pääsevad lõppvoorule 5.-6. aprillil Tartus. Lõppvoorul valitakse ka kandidaadid Eesti võistkonda Balti Informaatika Olümpiaadile Leedus ja IX Rahvusvahelisele Informaatika Olümpiaadile, mis toimub hilissügisel Kaplinnas. Olümpiaadil on ülesanneteks programmide koostamine IBM PC tüüpi arvutile. Võib kasutada keeli BASIC (QBasic), PASCAL (Turbo, Borland) ja C (Turbo, Borland). Lahenduste hindamiseks testime programme arvutil konkreetsete sisendandmetega, mida saame teha vaid elektroonilisel kujul esitatud töödega. BASIC-programmi korral tuleb esitada BAS-fail, PASCAL- ja C-programmi korral nii lähtetekst kui ka EXE-fail. Kodune voor Kodusest voorust osavõtuks tuleb meile saata: 1) lahendused - kas kettal või elektronpostiga, 2) andmed lahendaja kohta - nii tekstifailina koos lahendustega kui ka tavalise postiga:
Korraldajate postiaadress lahenduste jaoks on
ja elektronposti aadress : qnne@physic.ut.ee Tartus, Tallinnas, Pärnus ja Narvas saab lahendusi ka ise kohale tuua ja faile meie kettale ümber kirjutada: Tartus:
Tallinnas:
Pärnus:
Narvas:
Eelmiste aastate kogemused on näidanud, et mõnedes koolides pole elektronpost korrektselt tööle pandud ja meile jõudsid kohale poolikud tekstid või ainult kirja päis. Sellepärast soovitame alustada programmide saatmist mõned päevad enne tähtaega ja lugeda saatmine õnnestunuks alles siis, kui olete meilt saanud sellekohase teate. Soovitame samaaegselt faili ärasaatmisega adresseerida ta ka iseendale: mõned saatmisvead saate nii kohe teada. Näiteks võivad rikneda mõned sümbolid, misjärel programm enam ei kompileeru. Uuematel elektronposti programmidel on olemas võimalus suvalisi faile kirjale lisada ( Attach ). Kui Teil sellist võimalust pole, siis uurige oma postmasterilt, kuidas mitte-tekstifaile saata. ÜLESANDED
Hinnatakse programmi tööd, mitte teksti. Kummagi vanuseklassi jaoks on järgnevalt neli ülesannet, mis kõik annavad võrdselt punkte. Et ülesanded on päris rasked, siis järgmisse vooru pääseb kindlasti ka kõiki lahendamata. Ülesannete kohta tekkivaid küsimusi võib esitada eespoolt toodud elektronposti aadressil. NOOREM RÜHM1. KAKS RUUTU . Koordinaattasandil asuvad kaks ruutu, mille küljed on paralleelsed telgedega. Leida ruutude ühisosa pindala. Sisendandmed: Tekstifaili esimesel real on esimese ruudu vasaku alumise tipu koordinaadid ja ruudu külje pikkus (kuni 4-kohalised täisarvud), teisel real samad andmed teise ruudu kohta. Näide. 0 0 6 -1 2 4 Vastus : 12 2. TUNDMATU ARVUTAMINE Tekstifaili esimesel real on võrrand, mille vasakul poolel on üks muutuja, paremal pool on avaldis, mis on koostatud täisarvudest ja muutujatest märkide + ja - abil (sulge pole). Faili järgmistel ridadel on antud võrrandis esinevate muutujate väärtused, välja arvatud üks. Muutujatena on kasutatud suuri ja väikesi ladina tähti. Muutujaid võib võrrandis olla kuni 5 ja ükski neist ei esine mitu korda. Arvud on ülimalt 3-kohalised. Väljastada puuduv suurus ja tema väärtus. Näide. B=180-A-C C=100 B=30 Vastus : A=50 3. STRINGI NUMBER Tekstifaili ainsal real on kuni 12-st väikesest ladina tähest koosnev string, kus ükski täht ei esine mitu korda. Leida stringi järjekorranumber, kui järjestada kõikvõimalikud täpselt samu tähti sisaldavad stringid tähestiku järjekorras. Näide : Stringi cab number on 5. (Täpselt samu tähti sisaldavad stringid on tähestiku järjekorras abc, acb, bac, bca, cab, cba.) 4. KEKSUKAST Keksukast koosneb 2xN ruudust (N<=40). Igasse ruutu on kirjutatud üks suur ladina täht (vt. näide). Mängija alustab hüppeid kasti vasaku otsa tagant. Iga hüppega peab ta liikuma teise ruutu, mis asub samal real, kuni neli rida edasi või kuni kaks rida tagasi. Samas ruudus võib hüppeseeria jooksul olla mitu korda. Hüppeseeria tulemuseks on läbitud ruutudes olnud tähtedest moodustatud sõna (läbimise järjekorras). Sisendandmed . Tekstifaili kahel esimesel real on keksukasti moodustavad täheread. Kolmandal real on veel üks suurtest ladina tähtedest koosnev string pikkusega kuni 50. Leida maksimaalse pikkusega alglõik kolmandal real olevast sõnast, mille mängija võib moodustada. Näide. OAMIRKNFORMATIKA XFANTXXXXXXXXXXX INFORMAATIKA Vastus : INFORMAATIK VANEM RÜHM1. KAKS RISTKÜLIKUT . Koordinaattasandil asuvad kaks ristkülikut, mille küljed on paralleelsed telgedega. Leida ristkülikute ühisosa pindala. Sisendandmed: Tekstifaili esimesel real on esimese ristküliku vasaku alumise tipu koordinaadid, teisel real parema ülemise tipu koordinaadid, (kuni 4-kohalised täisarvud), kolmandal ja neljandal real samad andmed teise ristküliku kohta. Näide. -5 -2 6 3 0 -5 10 10 Vastus : 30 2. TUNDMATU ARVUTAMINE Tekstifaili esimesel real (pikkusega kuni 40 sümbolit) on võrrand, mille vasakul poolel on üks muutuja, paremal pool on avaldis, mis on koostatud punkti abil kirjutatud reaalarvudest ja muutujatest märkide * ja / abil (sulge pole). Faili järgmistel ridadel on antud võrrandis esinevate muutujate väärtused, välja arvatud üks. Muutujatena on kasutatud suuri ja väikesi ladina tähti. Muutujaid võib võrrandis olla kuni 5 ja ükski neist ei esine mitu korda. Väljastada puuduv suurus ja tema väärtus. Näide . S=2*3.14*R*h R=10.0 S=62.8 Vastus: h=1 3. STRINGI NUMBER Tekstifaili ainsal real on kuni 12-st väikesest ladina tähest koosnev string. Leida stringi järjekorranumber, kui järjestada kõikvõimalikud täpselt samu tähti sisaldavad stringid tähestiku järjekorras. Näide : Stringi kala number on 8. (Täpselt samu tähti sisaldavad stringid on tähestiku järjekorras aakl, aalk, akal, akla, alak, alka, kaal, kala, klaa, laak, laka, lkaa.) 4. KEKSUKAST Keksukast koosneb 2xN ruudust (N<=40). Igasse ruutu on kirjutatud üks suur ladina täht (vt. näide). Mängija alustab hüppeid kasti vasaku otsa tagant. Iga hüppega peab ta liikuma teise ruutu, mis asub samal real, kuni neli rida edasi või kuni kaks rida tagasi. Samas ruudus võib hüppeseeria jooksul olla mitu korda. Hüppeseeria tulemuseks on läbitud ruutudes olnud tähtedest moodustatud sõna (läbimise järjekorras). Tekstifaili kahel esimesel real on keksukasti moodustavad täheread.Kolmandal real on veel üks suurtest ladina tähtedest koosnev string pikkusega kuni 10. Leida , mitmekordse kolmandal real oleva sõna saab mängija moodustada. Näide. ATAAUTAARAAAAAAAAAAARAATAAU RAAAAAAAAAATAAUAATAAAAAAAAT TARTU Vastus: 3 |