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:

Nimi
Kool, klass
Sünniaeg
Lahendatud ülesannete numbrid
Kasutatud programmeerimiskeel ja täpne versioon
Millises keskkonnas töötasite (DOS ?.??, Windows 3.?, Windows 95, ..)
Informaatika õpetaja nimi (kui on)

Korraldajate postiaadress lahenduste jaoks on

Tartu EE2400
Postimaja, postkast 060
Täppisteaduste kool
Informaatika olümpiaad

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:

Tähe 4-143
Täppisteaduste kool
Telefon: (27) 465581

Tallinnas:

TPÜ Informaatika õppetool
Narva mnt. 25, ruum 419
Telefon: 6409421

Pärnus:

Rüütli 47
tuba 4, 2. korrus
Telefon: (244) 41570

Narvas:

Pähklimäe 3
Valeria Nazarova
Telefon: (235) 42579


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


  • Programmide tekstid paigutada failidesse, mille nimi on saadud ülesande numbri lisamisel Teie perekonnanime lõppu, näiteks TAMM1.PAS, TAMM2.PAS jne.
  • Iga programm peab alustama tööd autori, kooli, klassi ja ülesande teatamisega (viimaseks piisab ühest lausest).
  • Et garanteerida kõigi lahenduste eksimusteta testimine samade andmetega, loevad programmid sisendandmed tekstifailidest. Programmid peavad küsima sisendandmete faili nime kasutajalt.
  • Programm ei pea kontrollima sisendandmete vastavust ülesande tekstis olevatele tingimustele. Testimisel kasutab komisjon ainult korrektseid algandmeid.
  • Vastuse andmise ajaks peab programm jätma (või tooma uuesti) ekraanile sisendfaili nime ja sisendandmed.
  • Programm peab reageerima adekvaatselt ja andma välja mõistliku teate (mitte katkestama tööd või jätma vastust andmata) ka selliste andmete korral, millele reageerimine ei ole ülesande tekstis kirjeldatud, aga mis vastavad ülesandes antud sisendtingimustele.
  • 50 MHz protsessoriga 486-arvutil on vastuse andmise lubatav aeg 30 sek

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ÜHM


1. 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ÜHM


1. 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