Graafid Graaf koosneb punktidest ehk sõlmedest ning nende omavahelistest ühendustest servadest ehk kaartest. Graafina saab esitada näiteks linnu ning neid ühendavaid teid. Veebilehti ja nende omavahelisi viiteid. Inimesi ning nende vahelisi tutvusi. Üheks võimaluseks graafid arvutile mõistetavaks teha on teatada sõlmede arv ning seotud sõlmede paarid ükshaaval. Mõnikord esitatakse andmed ka tabelina, kus nii ridade kui veergude arv on võrdne sõlmede arvuga. Ning kui kaks sõlme on omavahel seotud, siis on vastava numbriga rea ja veeru ristumiskohal seda tähistav väärtus. Näiteks arv 1. Esimesestes näidetes eeldame, et seotus on mõlemapoolne. St., et kui inimene nr. 3 tunneb inimest nr. 5, siis tunneb viies inimene ka kolmandat inimest. Ehk mõlemal juhul, kus kohtuvad viies rida ja kolmas veerg või viies veerg ja kolmas rida on kirjas 1. Üksteist mitte tundvate inimeste ridade ja veergude ristumiskohtades on arv 0. Ülesandeid * Koosta kahemõõtmeline (nt. 10x10) täisarvude massiiv. Täida nullidega. * Loo alamprogramm serva märkimiseks graafis. Parameetrina antakse ette ühendatavate sõlmede järjekorranumbrid. Nii vastava rea ja veeru kui veeru ja rea ristumiskohale kirjutatakse 1. Korduv serva märkimine olukorda ei muuda. * Loo alamprogramm massiivi trükkimiseks ekraanile. * Loo alamprogramm massiivi trükkimiseks faili. Esimesel real on sõlmede arv, edasi tuleb tabel nullide ja ühtedega näitamaks sõlmede omavahelisi seoseid. * Loo alamprogramm eelpool loodud massiivi andmete lugemiseks failist. * Faili esimesel real on kirjas sõlmede arv. Edasi on igal real kirjas kaks arvu, näitamaks, millised sõlmed on omavahel kaarega seotud. Loe nende andmete põhjal tulemus mällu kahemõõtmelisse massiivi. Trüki massiiv. * Koosta alamprogramm serva tekitamiseks kahe juhuslikult valitud sõlme vahel. Sõlmepaare valitakse senikaua, kuni leitakse paar, mille vahel veel polnud serva. * Koosta alamprogramm, mis loob etteantud mõõtmetega ning soovitud arvu juhuslike servadega graafi. * Katseta loodud alamprogrammi mitmesuguste sõlmede ja servade arvu juures. Tippude seotus ja kaugus graafis Märgatav osa graafidega seotud ülesandeid uurib, kas kaks etteantud tippu on üldse omavahel seotud, kas mööda servi on võimalik teise tippu jõuda. Ning kui side olemas, siis vahel küsitakse ka siduvat teed ennast ning selle tee pikkust. Olgu siis sammudes või muudes ühikutes. Kui graafiülesandele vastus käes, siis saab juba vastusena edasi anda, kas tegemist on vahemaaga alguspunktist sihtpunkti mitme linna kaudu või inimestevahelise suhtlusega mitme tuttava kaudu. Üheks võimalikuks lahenduseks kahe sõlme vahel leiduva lühima sammude arvuga tee leidmiseks on tuua appi massiiv näitamaks iga sõlme kohta, mitme sammu kaugusel on see algsest massiivist. Algsõlme kaugus iseenese juurde on 0. Sõlmede juurde, kuhu pääseb ühe servaga, on kaugus 1. Sammu võrra kaugemate sõlmede juurde saab kauguseks kirjutada 2 jne. Sõlmede kaugus, kuhu pole üldse võimalik jõuda, tuleb tähistada mõne võimatu väärtusega. Näiteks miinus 1ga. Esialgu võiks sellega tähistada kõik väärtused kaugustemassiivis. Edaspidi saab ligipääsetavate tippude kaugustele hakata väärtusi jagama. Algustipu saab kaugustemassiivis kergesti tähistada 0-ga. Algustipu järjekorranumber on meil paratamatult olemas. Edasi tuleks tähistada ühtedega kõikide tippude kaugused, kuhu pääseb algtipust ühe servaga. Ja nõnda edasi. Et ei peaks iga kauguse kohta eraldi programmilõiku kirjutama, võiks aidata tsükkel. Kõigepealt võetakse uurimise alla algtipp (kaugusega 0) ning leitakse 1 serva kaugusel olevad tipud. Siis võetakse uurimise alla 1 serva kaugusel asuvad tipud ning leitakse 2 serva kaugusel asuvad tipud. Siis võetakse ette 2 serva kaugusel asuvad tipud ning leitakse 3 serva kaugusel asuvad tipud. Tsüklit on mõtet jätkata seni, kuni leiti uusi, kaugemal asuvaid tippe. Kord juba vaadeldud tippude kaugust pole enam mõtet muuta, sest paratamatult oli esimene külastus kõige lähim. Kui enam uusi ligipääsetavaid tippe ei leita, ongi massiivis kirjas iga tipu kohta, mitme sammu kaugusel see algsest tipust on. Ülesandeid * Koosta mällu kahemõõtmeline massiiv näitamaks graafis olevaid servi. * Teata, millistesse sõlmedesse pääseb sõlmest number 3. * Koosta kauguste massiiv, kus tipu number 3 kauguseks on 0, temast ühe serva kaugusel olevate tippude kauguseks märgitakse 1. * Täienda programmi nõnda, et näidatakse ka need tipud, mille kauguseks tipust 3 on 2. * Pane programm tööle tsükliga nõnda, et leitaks kõik ligipääsetavad tipud. * Trüki iga tipu kaugus servades tipust 3. Samuti teata, millistesse tippudesse pole servi pidi võimalik tipust 3 pääseda. * Katseta programmi ka teistsuguse algtipu korral. * Koosta loetelu asulatest. * Graafis tähista ära asulaid ühendavad bussiliinid. * Küsi kasutajalt kahe asula nimi. * Väljasta, kas nende vahel on võimalik otse bussiga sõita. * Teata, kas ühest asulast teise üldse bussiga saab * Teata, mitu ümberistumist on vaja. Kes tunneb end juba graafidega vabalt, sellele pakkuda ülesanne http://www.ttkool.ut.ee/comp/olymp/eio05/io05v2eey.pdf Nimetus: lennureis.