Põllumajandus- ja keskkonnainstituut Arti Unt Metsaseire analüüs Linna- ja tööstusmaastike korraldus mag. 1 Juhendaja: lektor Merle Ööpik Tartu 2014 SISUKORD .....................................................................................................................................................1 1.Metsaseire alaprogramm..........................................................................................................3 2.Eesmärgid.................................................................................................................................4 3.Seirejaamad..............................................................................................................................5 4.Metoodika................................................................................................................................
Ilma parameetrita kasutab ta default seadistust, ehk toob kõik failid, kui talle aga lisada mingi parameeter, toob käsklus vaid näiteks kindla tähega algavad failid. Mõlemad on parameetrid, aga üks neist on alati vajalik ja teine mitte. väärtusparameeter ja muutujaparameeter Esimene on tavaliselt lähteandmete viimiseks alamprogrammi. Kui nende väärtustega alamprogrammis midagi juhtub, siis peaprogrammi tagasi tulles need muudatused kaasa ei tule. Teine on vastuste saamiseks alamprogrammist (kuid ka nende andmete viimiseks alamprogrammi, mis seal oma väärtust muutma peavad). Muudatused nende väärtustes jõuavad ka peaprogrammi. Mõlemad on andmete viimiseks alamprogrammi, aga väärtusparameetri puhul tagasi tulles peaprogrammi muudatused kaasa ei tule. rekursiivne funktsioon Rekursiivsed võivad olla ka iseseisvad alamprogrammid, milles toimub iseenda poole pöördumine e. iseenda väljakutsumine.
printf ("x = %ft y = %fnn",x,y); } printf ("_______________________________________nn"); printf(" L6petan programmin"); getchar(); getchar(); return 0; } 7 Programmi seletus Programm koosneb peaprogrammist int main ja kolmest alamprogrammist int sisestus, int arvutamine, int v2ljastus. Alamprogrammis "int sisestus" toimub vajalike arvude sisestus: Sisestatakse funktsiooni lõppväärtus M, sammude algväärtus S, muutuja x algväärtus E. Alamprogrammis "int arvutamine" toimub funktsiooni väärtuste ning argumentide arvutamine. Alamprogrammis "int v2ljastus" toimub argumendi ja sellele vastava funktsiooni väärtuse väljastamine. Peaprogrammis on deklareeritud muutujad.
}while (x[i]<=B); } void v2ljastus (int x[15], float y[15]) { int i; printf("X | Yn"); for(i=0;i<=n;i++){ printf("%d | %fn", x[i], y[i]); } } int main(void) { int x[15]; float y[15]; int i, A, B, H, C; sisestamine (&A,&B,&H,&C); arvutamine (A,B,H,C,x,y); v2ljastus (x,y); printf("V2ljumiseks vajuta enter!n"); getchar(); return 0; } Programmi seletus Programm koosneb peaprogrammist int main ja kolmest alamprogrammist int sisestus, int arvutamine, int v2ljastus. Alamprogrammis "int sisestus" toimub vajalike arvude sisestus: argumendi algväärtus A, argumendi lõppväärtus B, sammu väärtus H ja sammu koefitsent C. Alamprogrammis "int arvutamine" toimub funktsiooni väärtuste ning argumentide arvutamine kuni argumendi väärtus on ületanud argumendi lõppväärtuse B. Alamprogrammis "int v2ljastus" toimub argumendi ja sellele vastava funktsiooni väärtuse väljastamine.
keskm_palk=sum_palk/n;
printf("Isikute keskmine palk %.2lfn",keskm_palk);
fclose(fp1);
tekita_failid(); // Väljundfailide tekitamine ja tühjendamine
if (DEBUG) for (i=0;i
2 500 000 krooni 2005. a II vooru projekti ,,Riikliku mootorikütuse kvaliteedi ja koguste seireprogrammi" kasutamata jäänud vahenditest). 17. jaanuaril 2006. a. peetud alamprogrammide töörühma nõupidamisel moodustas töörühm hindamise tulemusel taotluste pingerea, jaotades taotlused: · Riiklike kohustuste ja prioriteetide hulka kuuluvad keskkonnaministeeriumi haldusalasse kuuluvad taotlused; · 2006. a. välisõhukaitse alamprogramm; · 2006. a. välisõhukaitse alamprogrammist väljajäänud taotlused. · 2006. a reserv. Projektide pingerea moodustamisel määras töörühm taotlustele antud punktide piiriks 50, millest rohkem punkte saanud taotlusi rahastatakse esimeses voorus või mis suunatakse ootel projektide nimekirja ning millest vähem saanud taotlused jäävad alamprogrammidest välja. Kuna on ette näha riiklike kohustuste kasvu 2006. aastal (uue välisõhu kvaliteedi
tekitamiseks riistvaralisi timereid). Delay movlw .50 movwf Pause Delay1 movlw .500 movwf Pause_tmp decfsz Pause,1 ;pausi väärtust vähendatakse 1 ;võrra, kui väärtus on 0, siis ;hüpatakse järgmisest käsust üle goto Delay2 return ;väljutakse alamprogrammist Delay Delay2 clrwdt ;valveloenduri nullimine nop ;viivitus no operation nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop decfsz Pause_tmp,1 goto Delay2 goto Delay1 end Kokkuvõte:
END; { P } ... -------P(...); Joonis 1. Rekursioon ehk iseenesessepöördumine Rekursioon: magasini kasutamisnäide On teada, et alamprogrammi rekursiivsetel väljakutsetel loodavad lokaalmuutujate pôlvkonnad paigutatakse pinudesse ja need hävitatakse tagasipöördumistel alamprogrammist. Järgnevas vaatleme pinumehhanismi lähemalt. Me teeme seda lihtsa alamprogrammi -- rekursiivse faktoriaalfunktsiooni näitel. Rekursiooni käsitlust alustame üldisemast. Rekursiivsed definitsioonid ja algoritmid Rekursiivsel defineerimisel määratletakse defineeritav objekt (suurus) iseenda "lihtsama" ("väiksemamastaabilise") eksemplari kaudu. Selline definitsioon määrab protsessi. Selleks, et protsess oleks lôplik, peab definitsioonis esinema lihtne mitterekur- siivne erijuht.
Exit Function-lause lõpetab funktsiooni töö ja tagastab täitmisjärje protseduurile, mis pöördus tema poole. Sama teeb ka End Function-lause, kui täitmisjärg jõuab temani. Funktsiooni poole saab pöörduda VBA avaldistest ja Exceli valemitest, käsutades funktsiooniviita, mille kuju on järgmine: f nimi ([ argument {, argument } ]) kus fnimi on funktsiooni nimi, mille poole toimub pöördumine, argument { , argument } on tegelike parameetrite ehk argumentide loetelu. Erinevalt alamprogrammist ei tohi funktsioonil olla väljundparameetreid. Funktsiooni poolt leitav ainuke väärtus tagastatakse tema nime kaudu. See ei toimu aga automaatselt, vaid funktsioonis peab olema vähemalt üks lause, mis omistab tagastatava väärtuse funktsiooni nimele, ning see peab olema täidetud enne funktsiooni töö lõppu. Üldjuhul võib taolisi lauseid olla mitu. Funktsiooni töö lõpetab tavaliselt End Function-lause, kuid selleks saab käsutada ka Exit Function-ja End-lauset. ANDMED
.................................................................62 Erindid...................................................................................................................................62 Püüdmine.......................................................................................................................... 62 Reageering tüübi põhjal.................................................................................................... 63 Püüdmine alamprogrammist............................................................................................. 65 Erindi heitmine..................................................................................................................65 Ülesandeid.........................................................................................................................66 Andmekollektsioonid...........................................................................................................
M L K J F B G H (selleks momendiks, kui arvuti on lõpetanud kaare KJ joonestamise, ei kuvata enam ringikest ja ristikest) Nüüd on vaja välja minna kaare joonestamise alamprogrammist sirglõigu joonestamise alamprogrammi, selleks teeme valiku L või klõpsame : ja üksteise järgi joonestatakse sirglõigud JH ja HG (automaatselt END abil) ning GF lõpetame INT abil Töö 3 Klamber 11 P E N C A
Teatud programmid keelavad kriitilistel etappidel katkestused, et need ei mõjutaks negatiivselt programmide tööd. Samuti võivad olulisi katkestusi teenivad programmid katkestust teenindava programmi alguses programmselt keelata hiljem tulevate katkestuste teenindamise. Kuid on olemas ka mittemaskeeritavad katkestused, mida ei saa keelata. Katkestusprogrammi katkestuse korral fikseeritakse tagasipöörde aadressid pinumälus nii nagu alamprogrammist järgmise alamprogrammi poole pöördumisel. Katkestuste rakendus: Katkestusega saab protsessorile teatada välistest sündmustest Katkestus võib olla tegevuse lõpetamisest teatamiseks Katkestuse abil saab protsessori ressursse jagada erinevate programmdie vahel Tarkvaralised katkestused võimaldavad kasutada süsteemseid funktsioone Pilet 13 1. Trigerid. (p1) 2. Pooljuhtmälud. 3. Spetsiaalse riistvara realiseerimine. (p6) Trigerid
} finally{ Console.WriteLine("Plokk otsas"); } } } /* C:Projectsomanaited>Erind3 Kasuta kujul: Erind3 sisendarv Plokk otsas C:Projectsomanaited>Erind3 tere Viga sisendandmetega: Input string was not in a correct format. Plokk otsas C:Projectsomanaited>Erind3 1234567890123456 Liiga suur arv. Plokk otsas C:Projectsomanaited>Erind3 78 Sisestati edukalt 78 Plokk otsas */ Püüdmine alamprogrammist Veapüüniste tähtsaim eelis varasema veakoodinduse ees ongi kogu rakenduse alamprogrammide rägastikus tekkinud probleemide transport konkreetsetesse kohtadesse kokku, kus nendega üheskoos on vahel mõnevõrra kergem hakkama saada. Järgnevas näites tekibki tõenäoline probleem alamprogrammis nimega LoeArv juhul, kui sisendiks pole arv. Veateade aga trükitakse alles Main-meetodi juures. Nõnda võib näiteks paluda kasutajal arvutamise jaoks anda mitu arvu
Peale käsu RESTART täitmist jätkub protsessori töö normaalselt, aga juba katkestava programmi järgi ehk teisel programmitasandil. 96 Käsk RESTART on analoogiline alamprogrammi siirdumise käsuga, mille toimel käsuloenduri (PC) jooksev sisu salvestatakse näiteks mällu, käsuloendurisse aga laaditakse katkestava programmi algusaadress. Tagasipöördumine katkestatud põhiprogrammi toimub käsuga RETURN analoogiliselt alamprogrammist naasmisega. Jätkata jooksva käsu täitmist EI Käsk lõpetatud? Keelata katkestused Alustada JAH järgmise käsu täitmist EI Moodustada ja
} finally{ Console.WriteLine("Plokk otsas"); } } } /* C:Projectsomanaited>Erind3 Kasuta kujul: Erind3 sisendarv Plokk otsas C:Projectsomanaited>Erind3 tere Viga sisendandmetega: Input string was not in a correct format. Plokk otsas C:Projectsomanaited>Erind3 1234567890123456 Liiga suur arv. Plokk otsas C:Projectsomanaited>Erind3 78 Sisestati edukalt 78 Plokk otsas */ Püüdmine alamprogrammist Veapüüniste tähtsaim eelis varasema veakoodinduse ees ongi kogu rakenduse alamprogrammide rägastikus tekkinud probleemide transport konkreetsetesse kohtadesse kokku, kus nendega üheskoos on vahel mõnevõrra kergem hakkama saada. Järgnevas näites tekibki tõenäoline probleem alamprogrammis nimega LoeArv juhul, kui sisendiks pole arv. Veateade aga trükitakse alles Main-meetodi juures. Nõnda võib näiteks paluda kasutajal arvutamise jaoks anda mitu arvu