INFORMAATIKA I kontrolltöö1 mõisted 1. Alamprogrammide (funktsioonide) parameetrid , nende tüübid eksisteerib kahte liiki parameetreid - formaalseid ja tegelikke 1) FORMAALSED PARAMEETRID on kasutusel alamprogrammi deklaratsioonis. Olulised on nii parameetri nimetus, tüüp kui ka asukoht teiste parameetrite reas. Formaalseid parameetreid võib vaadelda kui muutujaid, mis eksisteerivad selle konkreetse alamprogrammi töötamise ajal. Kui tegemist on SISENDPARAMEETRIGA, siis alamprogrammi töö alguses omab see mingisugust väärtust ja seda väärtust võib (kuid ei ole ilus) töö käigus muuta. SISEND-VÄLJUNDPARAMEETER võib töö alguses omada väärtust, kuid võib olla ka väärtustamata. Tema põhiliseks ülesandeks on hoida töö lõpetamise korral tagastatavat väärtust. 2) TEGELIK PARAMEETER on kasutusel alamprogrammi väljakutsumisel. See peab
veateade. Teiseks on vabatahtlik parameeter: käsklus LISTFILE puhul kehtib vabatahtlik parameeter. 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
......................................7 1.2 Riiklikud projektid, eesmärgid ja ettepanekud.........................................................8 1.3 Eeldatav mõju prioriteetide lõikes..........................................................................13 Lisad: Lisa 1. KIK-ist laekunud rahastamistingimustele vastavate projektitaotluste tabel Lisa 2. Esitatud projektitaotluste hindamistabel Lisa 3. Rahastamisettepaneku tabel Lisa 4. Energeetika negatiivse keskkonnamõju vähendamise alamprogrammi ja välisõhukaitse alamprogrammi hindamistöörühma koosoleku protokoll koos lisadega Lisa 5. Kirjade koopiad 1.1 Seletuskiri 2006. a Energeetika negatiivse keskkonnamõju vähendamise alamprogrammi ja välisõhukaitse alamprogrammi I vooru koostamisel on lähtutud Keskkonnaministri 02. detsembri 2005. a nr 1665 käskkirjast, SA Keskkonnainvesteeringute Keskuse (KIK) ja Keskkonnaministeeriumi vahel sõlmitud koostöölepingust nr M-20-1-
peab, vastasel juhul tuleb veateade. Selle käskluse puhul on parameeter kohustuslik. Samas käsklus LISTFILE puhul kehtib vabatahtlik parameeter. 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. 4. väärtusparameeter ja muutujaparameeter Väärtusparameetrite kaudu toimuv andmevahetus on ühesuunaline: välja kutsuvast plokist alamprogrammi sisse. Muutujaprameeter lubab kahesuunalist andmevahetust, mistõttu ta on sisend- väljundparameeter. Muutujaparameetri kaudu saab esitada ka failmuutujaid, kusjuures see on ainus failide edastusviis alamprogrammi ja välja kutsuva ploki vahel.
ja sellisel kujul, nagu on näidatud kirjelduses. Võtmesõnad on toodud kirjeldustes rasvases püstkirjas Sub, End Sub, Range, Sqr, If jne. Keelekonstruktsioonide muutuvad komponendid võib valida programmi koostaja, arvestades nende esitusreegleid. Kirjeldustes on nad toodud kaldkirjas nimi avaldis, lause jne. Muutuv osa võib olla esitatud üldkujul, hiljem täpsustatakse seda täiendavate kirjeldustega. Näiteks näitab parameetriteta alamprogrammi struktuuri kirjeldus kujul Sub nimi () laused ja kommentaarid End Sub et see peab algama Sub-lausega ning lõppema End Sub-lausega. Nende vahel võivad paikneda suvalised laused ja kommentaarid. Sub-lause algab võtmesõnaga Sub, millele järgnevad nimi ja tühjad sulud. Siin on nimi lause muutuv element, mille valib programmi koostaja, arvestades nimede esitusreegleid. Alamprogrammi lõppu määrav End Sub-lause koosneb aga ainult võtmesõnadest.
---- Q(...); P 1 ... 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
;sisenditeks bcf STATUS,RP0 ;Valime mälupanga 0 bcf STATUS,RP1 ;PORTD asub pangas 0! movlw .0 ;tööregistrisse omistatakse 10nd nr ;0 movwf PORTD ;PORTD väärtused sätitakse nulliks mainloop btfss PORTA,2 ;Kontrollime viigu PORTA2 väärtust, ;kui PORTA2=1 mine alamprogrammi ;out goto blink ;kui PORTA2=0, siis minnakse a.p. ;blink goto out out bcf PORTD,0 ;LED välja bcf PORTD,1 ;LED välja bcf PORTD,2 ;LED välja bcf PORTD,3 ;LED välja bcf PORTD,4 ;LED välja bcf PORTD,5 ;LED välja
valgusdioodid JAH Süüdata kõige parempoolsem valgusdiood Kas nupp on all? EI JAH Viivitus ~0,5sek Süüdata ühe võrra vasakpoolsem valgusdiood, kustutada eelmine 6 ALGUS Joonis 1.4. Alamprogrammi ,,Viivitus" algoritmi plokkskeem Laadida mälupessa ,,taimer3" kümnendarv 35 3 Laadida mälupessa ,,taimer" kümnendarv 255 2 Laadida mälupessa ,,taimer2" kümnendarv 255 1 Kahandada mälupesa ,,taimer2" väärtust ühe võrra Kas ,,taimer2" on 0? EI 1
nimi Rectangle 7 laius 28,4001579285 kõrgus 49,7914161682 pindala Leia suurim! Ülesanne Anda kõikidele kasutatavatele lahtritele nimed. Kirjutada kaks protseduuri: 1. Alamprogramm Kast_Tabel, arvutab antud kujundi pinna ning väjastab kujundi nime, kõrguse, laiuse ja pinna tabeli ritta alates antud lahtrist. Muuda 2. Peaprogramm Leia_Suurim, mis ) alamprogrammi Kast_Tabel leiab iga ristküliku pinna ja väljastab kujundite andmed tabelisse b) leiab ristküliku maksimaalse pindalaga, toob ta esiplaanile, kirjutab vastavatesse lahtritesse selle ristküliku omadused ja muudab ta värvi punaseks (punase värvi kood on 10). Kõikide ristkülikute läbi vaatamiseks kasutada korduslauset For Each...Next, kusjuures tuleb kontrollida, et jooksev objekt on ristkülik, aga mitte, näiteks, käsunupp. Protseduuri kirjutada sama lehe objektimoodulisse.
Koosneb ALUst, registermälust ja lippude registrist. Registermälu töötab protsessori sagedusel, väike ja kallis. Kuna ALUl mälu puudub, kasutatakse lippude registrit eelneva tulemuse salvestamiseks. Käsuloendur on vajalik, et teada, millise käsu täitmise juures parasjagu ollakse. Käsuloendur säilitab järgmisena täitmisele tuleva käsu aadressi. Vajalik näiteks katkestuse korral ja alamprogrammi poole pöördumisel, et fikseerida tagasipöörde aadress järgmise käsu juurde. Käsuregister- kui protsessor väljastab käsuloendurist aadressi ja loeb selle järgi mälust käsukoodi, siis salvestatakse see käsuregistrisse. Käsuregistri väljundisse on ühendatud dekooder, mille väljundis on iga sisendkoodi korral aktiivne vaid üks väljund. Käsudekoodril läheb aktiivseks üks väljunditest, mis näitab, millise käsu kood loeti protsessorisse
kohustuslik parameeter ja vabatahtlik parameeter Kohustuslik parameeter on parameeter, mida on vaja, et käsk töötaks. Vabatahtlik parameeter on parameeter, mida pole vaja sisestada, vaid ilma selleta kasutab ta kõiki käsuga seotud andmeid või faile. Mõlemad on parameetrid ja muutujad, aga neid kasutatakse erinevates olukordades ja ühte neist peab kasutama teist mitte. 4. väärtusparameeter ja muutujaparameeter Väärtusparameeter on parameeter, mille kasutamisel leiab süsteem alamprogrammi käivitamisel tegeliku parameetrina antud avaldise paremväärtuse ja edastab alamprogrammile selle. Vajalik on paremväärtuse olemasolu. Muutujaparameeter on parameeter, mille kasutamisel edastatakse alamprogrammile parameetrina antud avaldise vasakväärtus. Tavaliselt on sellise parameetrina kasutusel põhiprogrammi muutuja, kuigi võib kasutada ka kõiki muid avaldisi, millel on vasakväärtus olemas. Mõlemad on küll parameetrid, aga
if (DEBUG) for (i=0;i
Käsu täitmine koosneb mitmetest etappidest, mida käivitavad juhtautomaadist tulevad juhtsignaalid. Käsuloendur on järjehoidja, mis näitab alati järgmisena täitmisele tuleva käsu asukohta mälus. Loendurit kasutatakse sellepärast, et sellele on lihtne liita +1 ja panna see osutama järgmisele käsule. Käsuloendur sisaldab alati järgmise täitmisele tuleva käsu aadressi. Järgmise käsu aadress on vajalik näiteks katkestuste korral ja alamprogrammi poole pöördumisel, et fikseerida tagasipöörde aadress järgmise käsu juurde. Käsuregister. Kui protsessor väljastab käsuloendurist addressi ja loeb selle järgi mälust käsukoodi siis salvestatakse see käsuregistrisse. Käsuregistri väljundisse on ühendatud dekooder. Dekoodri väljundis on iga sisendkoodi korral aktiivne ainult üks väljund. Käsudekoodril läheb aktiivseks üks väljunditest, mis näitab, millise käsu kood loeti protsessorisse. Kõik käsud sisaldavad käsukoodi
Olles oma struktuurilt sarnane protseduuriga, on tema ülesandeks mingisuguse väärtuse väljaarvutamine. Globaalse muutuja tegevuspiirkond ulatub alates tema deklareerimise kohast üle kogu ülejäänud programmi. See tähendab, et kõik sellesse piirkonda jäävad alamprogrammid ja põhiprogramm saavad seda muutujat kasutada. Lokaalse muutuja tegevuspiirkonnaks on see alamprogramm, milles ta on deklareeritud. Seda muutujat saab kasutada ainult selle alamprogrammi sees ning teiste alamprogrammide ja põhiprogrammi jaoks seda muutujat ei eksisteeri. Programmeerimiskeele translaatoriga käivad harilikult kaasas alamprogrammide teegid, milles sisalduvaid protseduure ja funktsioone nimetatakse standardprotseduurideks ja -funktsioonideks. Programmide vormistamine. 1. Milleks on vaja programme hästi vormistada? Kas Te olete kunagi proovinud lugeda teise inimese poolt kirjutatud programmi või otsinud sellest vigu? Kui ei
- kergendab rühmatööd (eri inimesed võivad tegeleda eraldi alam-
programmide loomisega, kooskõlastades vaid andmevahetuse)
- lihtsustab programmi muutmist ja uuesti transleerimist jne.
Programmi liigendamise võimalusi on mitmeid. Vaatleme esialgu variante,
kus programm asub endiselt ühes failis, kuid erinevad alamtegevused on
jaotatud erinevate alamprogrammide vahel. Alamprogrammide ja
peaprogrammi vaheliseks andmevahetuseks kasutatakse parameetreid.
Näiteks on ringi pindala arvutava alamprogrammi sisendparameetriks
(algandmeteks) ringi raadius, väljundparameetriks (tulemuseks) aga
pindala.
Pascalis kasutatakse kaht liiki alamprogramme - protseduure ja
funktsioone.
Mõlemad deklareeritakse (sisuliselt kirjutatakse valmis) programmi
alguses peale var- osa. Seega on alamprogramme sisaldava programmi
struktuur järgmine:
program ...
type ...
var ....
1 012 Add R5,R1 1216 sisaldab numbri 3228 3228 sisaldab numbri 522 V: 3862 10) egistrite R1, R2 ja R5 sisu on vastavalt 1216, 3228 ja 2032.Milline on registri R1 sisu peale kõigi alljärgnevate käskude täitmist? 1 000 Load #112,R5 1 004 Add (R1)+,R5 1 008 Add (1216),R5 1 012 Add R5,R1 1216 sisaldab numbri 3228 3228 sisaldab numbri 522 V: 5082 8.test Masinkood(2) 1) Mida tähendab lühend LIFO? V: Last In First Out 2) Stack pointer viitab mälupesale 1920. Programm lisab pinusse alamprogrammi jaoks 4 parameetrit, kutsub välja alamprogrammi. Alamprogramm salvestab pinus Frame pointeri sisu, 2 lokaalmuutujat ja 3 registri sisu. Milline on Stack pointeri väärtus peale nimetet operatsioonide sooritamist, kui sõna pikkuseks on 8 baiti ja tegemist on bait-adresseeritava mäluga? V: 1832 3) Mis on tehte LShiftL 3,R1 vastuseks, kui registris R1 on arv 00010011? V: 10011000 4) Mis on tehte LShiftR 3,R1 vastuseks, kui registris R1 on arv 10001101? V: 00010001
Turvakaalutlustel ei saa rakendused süsteemikutseid otse välja kutsuda, vaid vajavad selleks katkestuste mehanismi, millega tekitatakse tarkvaraline katkestus protsessorile, mis omakorda põhjustab katsetuste halduri käivituse OS'ikernelireziimis. Käsk, millega süsteemiteenus välja kutsutakse sõltub protsessorist. Näiteks kaasaegsetel Inteli protsessoritel on see käsk sysenter ja selle väljakutse kasutamiseks salvestab OSkerneli süsteemihalduri alamprogrammi aadressi spetsiaalses registris MSR (MachineSpecific Register), mis on seotud selle käsuga. Käsu käivitamine tekitab lülituse kernelireziimi ja süsteemiteenuse haldurprogrammi käivituse. Süsteemiteenuse number loetakse läbi protsessori EAX registri ja läbi EDX registri antakse edasi väljakutse argumendid. Kasutajareziimi naasmine toimub protsessori sysexitvõi iretdkäsu abil. 8
1. Võrdlusskeem. Võrdlusskeem ehk komparaator on ette nähtud kahendarvude võrdlemiseks. See võrdleb sissetulevaid sisendeid ja teeb kindlaks kas esimeses sisendis olev operand on suurem, võrdne või väiksem kui teises olev, aktiveerides vastava väljundi. 2. Riistvara tegevus alamprogrammide poole pöördumisel. Üheks pinumälu rakenduseks on alamprogrammide poole pöördumine ja siis tagasipöörde aadresside salvestamine. Kui toimub alamprogrammi poole pöördumine, siis tagasipöördumisel stackist POPimisega saab järjest tagasipöörde aadresse kun programmi täitmine jõuab tagasi põhiprogrammi juurde. Alamprogrammide poole pöördumisel kasutatakse pinuviita, millega seoses programmi täitmise senine käik saab ajutiselt katkestatud, kuid jätkub hiljem samalt kohalt. Käsk, millega pöördutakse alamprogrammi poole (CALL-käsk), salvestab kõigepealt käsuloenduri sisu (näitab järgmisena täidetava
3. Analoog ja digitaal info. Helikaart. Võrdlusskeem. Võrdluskeem ehk komparaator, näitab operantide suuruse suhte. Lihtsalt võrdleb kahte arvu, kumb on suurem, või on hoopis võrdsed arv A on a1a0, arv B on b1b0, ,kui A < B, siis L=1 ,kui A > B, siis G=1 ,kui L=G=0, siis A=B Alamprogrammide poole pöördumine Katkestustega süsteem katkestus = pöördumine alamprogrammi poole CPU lõpetab poolelioleva käsu, PC (process count) & PSW (process status word) pinumällu. PC-sse alamprogrammi I käsk. Analoog ja digitaal info. Helikaart Igasuguse analoogsignaali muundamine digitaalseks ja vastupidiselt toob kaasa teatud vea. Et viga oleks võimalikult väike, seda pikemat kahendkoodi peaks kasutama.
sisaldada mistahes ülesande lahendamiseks vajalikku programmiosa. Protseduuri kasutamine toimub omaette lausega, mis siis nagu laiendaks keele lausete hulka. Funktsioon on mõnevõrra spetsiifilisem alamprogramm. Olles oma struktuurilt sarnane protseduuriga, on tema ülesandeks mingisuguse väärtuse väljaarvutamine. Tõsi küll, selle väärtuse leidmise käigus võib ta teha kõike sedasama, mis protseduurgi. Funktsiooni kasutatakse harilikult avaldistes. Kas ainult ühe alamprogrammi liigiga ei saaks hakkama? Saab küll, sest näiteks keeles C on ainult funktsioonid. See on saavutatud mõninga ranguse kaotamisega - programm ei pea funktsiooni poolt leitud väärtust kasutama - ning sellest tuleneb, et programmeerija peab ise täpselt teadma, mida ta teeb. Teised meie poolt vaadeldavad keeled - Pascal ja Qbasic - teevad protseduuride ja funktsioonide vahel ranget vahet. Programmeerimise algkursus 67 - 89 ALAMPROGRAMMIDE KASUTAMINE
Protseduuri kasutamine toimub omaette lausega, mis siis nagu laiendaks keele 86 / 115 lausete hulka. Funktsioon on mõnevõrra spetsiifilisem alamprogramm. Olles oma struktuurilt sarnane protseduuriga, on tema ülesandeks mingisuguse väärtuse väljaarvutamine. Tõsi küll, selle väärtuse leidmise käigus võib ta teha kõike sedasama, mis protseduurgi. Funktsiooni kasutatakse harilikult avaldistes. Kas ainult ühe alamprogrammi liigiga ei saaks hakkama? Saab küll, sest näiteks keeles C on ainult funktsioonid (meetodid). See on saavutatud mõninga ranguse kaotamisega - programm ei pea funktsiooni poolt leitud väärtust kasutama - ning sellest tuleneb, et programmeerija peab ise täpselt teadma, mida ta teeb. Teised meie poolt vaadeldavad keeled - Pascal ja Qbasic - teevad protseduuride ja funktsioonide vahel ranget vahet. Alamprogrammide kasutamine Alamprogrammidega on programmi koostamisel seotud kaks tegevust:
maatriksi sõlmedesse fuse ühendusi. 3). EPROM,EEPROM ja Flash tehnoloogiad- nendesse püsimälu tüüpidesse on samuti võimalik programme realiseerida ning neid on võimalik ka eemaldada(UV- kiirgusega). 17. Alamprogrammide poole pöördumine[2] *Alamprogramm(subroutine)- on programmeerimiskeeles (antud juhul Assembly'is) lähtekoodi korduvkasutatav osa, mis täidab mingit kindlat funktsiooni. *Uue alamprogrammi väljakutse tähendab seda, et peaprogrammi täitmine jääb teatud kohas poolikukst ning peale alamprogrammi töö lõpetamist peaprogramm jätkub samast kohast. *Alamprogrammide poole pöördumist on ideaalne rakendada pinumälu abil, vastava protsessi kirjeldus näeks lühidalt välja järgmine: (a)Esmalt inkrementeerub käsuloendur (PC = PC+1) ehk nt. (0004 => 0005) ning mälust kantakse käsuloendurisse(IR) järgmine käsk (oletame, et see on CALL käsk, mis
üldkasutatavad objektide klassi omadusprogrammid (Property) 3. Keelereeglid Üldiselt: rida - lause koolon (:) lausete eraldaja tühik+allkriips (_) lause jätkaja Kommentaarid peale apostroofi (') Nimed kuni 255/40 märki (tähed, numbrid), pole võtmesõna Muutujate deklareerimine Dim/Private/Public [Static] nimi [As andmetüüp] Deklareerimine kohustuslik Option Explicit Muutujate skoop alamprogrammi tase, mooduli tase , globaalne (Public (Global)) Stringi pikkus - Dim nimi As String*pikkus Konstandid Const nimi [As andmetüüp]=väärtus &O kaheksandsüsteem &H 16-nd süsteem #kuupäev kellaaeg# Andmetüübid (VarType - andmetüübi küsimine) vaikimisi Variant 0 Empty 1 - Null 2 - Integer % -32768 ... 32767 3 - Long & ~2 miljardit 4 - Single ! ~-3.4e38
(TOS). Varasemaid sõnu saab lugeda peale esimeste ära lugemist. Push ja pop up. Pinumälu realiseeritakse põhimälus ja selleks on spetsiaalne piirkond. TOSi jaoks on spets register (SP), kuhu salvestatakse selle väärtus. Kui toimub kirjutamine siis modifitseeritakse SP väärtust nii et ta näitaks esimesele vabale pesale ja salvestaks sõna. Lugemisel vastupidi kõige pealt loetakse ja siis moodustatakse SP. Kasutamine: alamprogrammi poole pöördumisel (väärtus salvestatakse pinumällu ning hiljem see muutub tagasipöörde aadressiks). Erineva pöördusviisiga mälud (FILO, FIFO, assotsiatiiv, 2 pordiga) FILO ehk pinumälu viimasena kuvatakse esimesena salvestatud operand. Alles hoitakse ainult osuti, mis näitab viimati salvestatud sõnale (tos). FIFO ehk puhvermälu esimesena kuvatakse esimene sõna jne. Kasutatakse nt kahe eri kiirusega töötava süsteemi komponentide vahel.
o Käsuregister (IR - Instruction Register) sisaldab mälust loetud käsku o Olekuregister (SR - Status Register) sisaldab protsessori tehete teostamise olekut o Pinuviit (SP - Stack Pointer) sisaldab pinumälu järgmist vaba aadressi. Pinumälu kasutatakse protsessori registrite seisu salvestamiseks. Näiteks on see vajalik katkestust teenindava alamprogrammi käivitamise eel, et salvestada protsessori jooksev tööseis ja taastada see peale katkestuse alamprogrammi lõpetamist, et naasta põhiprogrammi täitmise juurde. Pinumälu töötab viimasena sisse esimesena välja (LIFO - Last In First Out) struktuurina. 1.3.2 Protsessori käsustik Protsessori käsustiku arhitektuur (ISA - InstructionSetArchitecture) hõlmab protsessori käsustikku
täitma teist programmi. Katkestus võib olla käivitatud programmi(software interupt) või riistvara poolt (hardware interupt). Kolmandaks põhjuseks võib olla vea teke (exception). Tarkvaraline käivitus tähendab, et programmis on vastav käsk, mis käivitab katkestuse. Riistvaralise katkestuse käivitamisel tuleb riistvarast (liides, kontroller, ...) vastav signaal ( näiteks INTR) ja nüüd käivitub katkestust teenindav programm. Sisuliselt on katkestus sama kui alamprogrammi poole pöördumine.Peaprogramm jääb pooleli ja siirdutakse täitma teist programmi. Katkestuse täitmine ·CPUlõpetab pooleli oleva käsu. Kui katkestust nõudev signaal, mis teatab mõne seadme soovist andmeid vahetada (näiteks vajutati klaviatuuril mõnele klahvile), tuleb käsu täimise ajal, fikseeritakse see trigeris ja jätkatakse käsu täitmist.Kui käsk on täidetud lõpuni, kontrollitakse trigeri seisu. Kui on tulnud signaal katkestuseksja katkestused ei ole keelatud
Funktsiooni tähis Rüh Nimetus ja kirjeldus m G70 (G20) d Toll-mõõtsüsteem. Mõningates juhtsüsteemides pole kasutatav. G71 (G21) d Mõõtsüsteem mm; juhtsüsteemi sisselülitamisel võetakse vaikimisi, kui juhtsüsteemis ei ole üheselt määratletud, on G77 vabalt kasutatav. G79 Hüpe alamprogrammi tagasi pöördumisega. G90 Hüpe näidatud reale G91 Absoluutne koordinaadistik Suhteline koordinaadistik Universaalsed funktsioonid Sümbol Tähendus M00 Programmeeritav peatus. Kehtib ühes lauses. M01 Programmeeritav peatus kinnitusega. Kehtib ühes lauses. M02 Programmi lõpp. Funktsioon rakendub, kui programm on täidetud. M06 Lõikeriista vahetus. Kehtib ühes lauses.
kvaliteedi hindamiseks. Kogutud andmete põhjal on võimalik planeerida põhjavee säästlikku tarbimist, ennetamaks varude ammendumist, ning hinnata põhjavee kvaliteeti ja sobivust joogiveeks. Samuti võimaldavad seireprogrammi raames läbiviidavad uuringud kindlaks teha reostuskoldeid, hinnata reostatud ja reostusohtlike piirkondade põhjavee seisundit ning vastavalt tulemustele planeerida kaitsemeetmete rakendamist. Alamprogrammi kuulusid 2007. aastal järgmised projektid: · põhjavee tugivõrgu seire; · nitraaditundliku ala põhjavee seire Pandivere ja Põltsamaa-Adavere piirkonnas; · põhjavee pestitsiidiuuring; · mikro- ja makroelementide uuring; · jääkreostusobjektide põhjaveereostuse järelseire. 2.3.2 Rahvusvaheline koostöö Põhjavee kvaliteedi ja selle vastavuse jälgimine kasutusotstarbelistele nõuetele, mis on sätestatud järgmiste direktiivide ja standarditega:
L K J F B G H Töö 3 Klamber 9 Kaarja osa KJ joonestamiseks teeme valikureast kaarja liitjoone osa joonestamise alamprogrammi väljakutsumiseks valiku A Liitjoone kaarja osa joonestamise valikud: joonestame kaare keskpunkti järgi – kaare keskpunkti valiku CE millele vastuseks viime kursori risti punkti A juurde nii et telgjoonte lõikepunkti ilmuks punane ringike, mis näitab, et ringi või kaare keskpunkt on arvesse võetud, valik kinnitada klõpsuga (ringike kaob) ja arvuti küsimusele
Liitjoone algpunltiks võtame punkti C: {punkt C } ┐ Valikureale vastuseks sisestame W ↵ (seadistame joonelaiuse) arvuti küsib joone alglaiust, vastame 2 ↵ Näide 4 11 arvuti küsib kohe lõpp-laiust (ja võtab selle võrdseks alalaiusega ↵ (ühtlase laiusega joon) nüüd vastame valikuteale {punkt H } ┐ Valik A – minekuks kaare joonestamise alamprogrammi ja teeme sealt valiku CE, s.t. joonestame ringi-kaare tema otspunktide ja keskpunkti järgi: see on võimalik, kuna liitjoone kaar kulgeb vastu kellaosuti suunda, {ruuduke abiringjoone keskpunkti K lähedal kuni ilmub keskpunkti tähistav ringike O } ┐ Arvuti küsib nüüd kaare lõpp-punkti ja {ruuduke punkt M juures kuni ilmub lõikumist tähistav ristike X } ┐ Vahetulemus: N P
siirete käsud JMP, CALL, RET pinumälu, I/Oseadmete, CPU juhtimise käsud PUSH, POP, IN, OUT, NOP ANDMEVAHETUSE JUHTIMINE: SÜSTEEMID KATKESTUSEGA JA ILMA, PRIORITEEDID Passiivne andmevahetus I/O seadmete prioriteetide probleem lahendatakse korrapäraselt mux'de kaudu. Seadme käest loetakse olekusõna ning järjestatakse andmevahetuseks (polling) Staatiline vs dünaamiline prioriteetide jaotamine. Katkestustega süsteem katkestus = pöördumine alamprogrammi poole. CPU lõpetab poolelioleva käsu, PC (process count) & PSW (process status word) pinumällu. PCsse AP I käsk. Polling + Interrupt programne katkestuste lahendamine Daisy chain prioriteedid paika pandud riistvaraliselt (jäigalt) füüsilise asetusega Interrupt controller olekuregistris oleva juhtsõnaga saab prioriteete juhtida Andmevahetus otsepöördusreziimis Direct Memory Access
gate'i vastava sõna ,,ülemvõimu" kinnitav väljund. Üldjuhul 3 erinevat väljundit: 1) A< B 2) A == B 3) A > B 2. RIISTVARA TEGEVUS ALAMPROGRAMMIDE POOLE PÖÖRDUMISEL Pinuviita (Stack Pointer) kasutatakse näiteks alamprogrammide poole pöördumisel, millega seoses programmi täitmise senine käik saab ajutiselt katkestatud, kuid jätkub hiljem samalt kohalt. Käsk, millega pöördutakse alamprogrammi poole (CALL-käsk) salvestab kõigepealt käsuloenduri sisu (näitab järgmisena täidetava käsu aadressi) automaatselt pinumällu, alamprogrammi lõpus olev naasmiskäsk (RET-käsk) loeb pinumälust sama aadressi ja salvestab käsuloendurisse tagasi. Programmi täitmine jätkub katkenud kohalt. 3. ANALOOG- JA DIGITAALINFO, HELIKAART ANALOOGINFO info kandja võib võtta ükskõik millisel ajahetkel oma rajaväärtuste vahel suvalise väärtuse.
1 operand asub mälus, teine operand ning resultaat samal akumulaatorregistri aadressil 3. Andmeedastuse juhtimine(bus arbitation): süsteemid katkestustega ja ilma, prioriteedid. Passiivne andmevahetus I/O seadmete prioriteetide probleem lahendatakse korrapäraselt mux-'de kaudu. Seadme käest loetakse olekusõna ning järjestatakse andmevahetuseks ... polling. Staatiline vs dünaamiline prioriteetide jaotamine Katkestustega süsteem katkestus = pöördumine alamprogrammi poole CPU lõpetab poolelioleva käsu, PC (process count) & PSW (process status word) pinumällu. PC-sse AP I käsk. Polling + Interrupt programne katkestuste lahendamine Daisy chain prioriteedid paika pandud riistvaraliselt (jäigalt) füüsilise asetusega Interrupt controller olekuregistris oleva juhtsõnaga saab prioriteete juhtida Andmevahetus otsepöördusrezhiimis Direct Memory Access
välja viimasena. Hoitakse alles ainult viimasena salvestatud sõna aadressi (TOS – Top Of Stack) ning varem salvestatud sõnu saab lugeda siis, kui hiljem salvestatud sõnad on juba loetud. Põhimälus on eraldatud teatud piirkond, kus pinumälu realiseeritakse. TOS aadress säilitatakse protsessoris spetsiaalses registris. Pinuga opereerimiseks on olemas käsud PUSH (salvestamine) ja POP (pinust lugemine). Alamprogrammi poole pöördumisel salvestatakse käsuloenduri sisu pinumälusse, see on ühtlasi ka tagasipöördumise aadressiks. Kui see alamprogramm pöördub mõne järgmise alamprog. poole, siis salvestatakse ka see aadress pinumälusse ning tagasipöördumisel võetakse pinumälust järjest aadresse, kuni programmi täitmine jõuab põhiprogrammi juurde tagasi. Joonis 5Alamprogrammide poole pöördumine Pinumälu arvutis ei ole käsukoodi juures näidatud operandide ega resultaadi aadresse
– equal. Tihti väljund E puudub, kuna kui G ja L on mõlemad 0, peavad arvud olema võrdsed. Kahejärgulise võrdlusskeemiga saame võrrelda suvalise järgulisusega kahendarve. 2. Riistvara tegevus alamprogrammide poole pöördumisel. Pinumälu üks rakendusi. Kui toimub pöördumine, salvestatakse käsuloenduri sisu pinumälusse, mis osutub ka (põhiprogrammi juurde) tagasipöörde aadressiks. Kui alamprogramm pöördub veel mõne alamprogrammi poole, salvestatakse pinumälusse veel üks tagasipöörde aadress. Osa protsessoreid salvestab koos käsuloenduri väärtusega ka lippude registri ja akumulaatori sisu. Käivitatakse põhiprogramm pöördub alamprogrammi AP1 poole käivitatakse pöördub AP2 poole käivitatakse return AP1 käivitatakse return põhiprogramm käivitatakse 3. Analoog- ja digitaalinfo. Helikaart. Analoogarvutis on meil info kandjaks pinge, mis lubab konstrueerida aritmeetilisi
· Protsessori registrite seis · Protsessoriaja planeerimise info. · Mäluhaldus info · Arvepidamis info · I/O staatus · Omanikuinfo Katkestus *Katkestus iterrupt, interruption- Mingi protsessi, näiteks programmi, täitmise peatamine selle protsessi suhtes välise sündmuse toimel, nii et protsess saaks jätkuda. Katkestuse täitmine *CPU lõpetab pooleli oleva käsu. *PC ja PSW salvestatakse STACK-1 *PS-sse laetakse uus väärtus (alamprogrammi algus aadress) Planeerimisjärjekorrad *Operatsioonisüsteem haldab kõigi protsesside juhtplokke erinevates kärjekordades: -Tööde järjekord- kõik süsteemi protsessid. -Töövalmis tööde järjekord- kõik protsessid, mis on mälus ning valmis täitmiseks. -Seadmete järjekorrad- protsessid, mis ootavad antud seadme taha I/O lõppemist. -Protsesse liigutatakse vastavalt vajadusele järjekordade vahel. -Erinevate järjekodade jaoks võib opsüsteem kasutada erinevat haldus poliitikat.
WriteLine("T } cout << "Tervist" << ere"); endl; } return 0; } } using System; - teatab, et nimeruumist System pärinevaid klasse saab kergesti kasutada - piisab vaid klassi nimetamisest. C# standardpaketis leidub tuhandeid kasutamisvalmis klasse. alamprogrammi Main, kust käsurearakendus oma tööd alustab. public näitab, et pole seatud käivitusõiguse tõkkeid, static - et alamprogramm Main on olemas ja käivitusvalmis kohe rakenduse töö alguses. void näitab, et ei raporteerita operatsioonisüsteemile programmi töö edukuse kohta. Ja ümarsulgudes oleva abil saab mõnes rakenduses kasutaja omi andmeid ette anda - siin seda võimalust aga ei kasutata. Console.WriteLine("Tere");
........................................................................................18 Massiiv ja alamaprogramm...............................................................................................19 Algväärtustamine, järjestamine.........................................................................................19 Osutid ja koopiad.............................................................................................................. 20 Massiiv alamprogrammi parameetrina..............................................................................21 foreach - tsükkel................................................................................................................22 Mitmemõõtmeline massiiv................................................................................................22 Ülesandeid........................................................................................................................
kasutatakse baasaadressina indeksiregistris salvestatud aadressi sõna Vahetul adresseerimisel antakse operand otse käsuga. Paralleelarvutid (SISD,SIMD,MIMD, MISD). PILET 12. Käsu täitmine protsessoris. Riistvara tegevus alamprogrammide poole pöördumisel. Pinuviita kasutatakse näiteks alamprogrammide poole pöördumisel, millega seoses programmi täitmise senine käik saab ajutiselt katkestatud, kuid jätkub hiljem samalt kohalt. Käsk, millega pöördutakse alamprogrammi poole (CALL-käsk), salvestab kõigepealt käsuloenduri sisu (näitab järgmisena täidetava käsu aadressi) automaatselt pinumällu, alamprogrammi lõpus olev naasmiskäsk (RET-käsk) loeb pinumälust sama aadressi ja salvestab käsuloendurisse tagasi. Programmi täitmine jätkub katkenud kohalt. Arvutite veakindlus, veakindlad koodid PILET 13. Käsuformaadid : 0, 1, 2, 3 ja 1,5 aadressiga arvutid. 0-aadressiga arvuti käsukood
.. 1208 sisaldab numbri 3236 ... 3236 sisaldab numbri 514 ■ Vastus: 5066 ● Masinkood (2) a. Mida tähendab lühend FIFO ? ■ Vastus: first in first out b. Mida tähendab lühend LIFO ? ■ Vastus: last in first out c. Stack pointer viitab mälupesale 1840. Programm lisab pinusse alamprogrammi jaoks 2 parameetrit, kutsub välja alamprogrammi. Alamprogramm salvestab pinus Frame pointeri sisu, 5 lokaalmuutujat ja 2 registri sisu. Milline on Stack pointeri väärtus peale nimetet operatsioonide sooritamist, kui sõna pikkuseks on 8 baiti ja tegemist on baitadresseeritava mäluga?
leidub nende hulgas korduvaid klassinimesid - sest mõttekaid ja kõigile arusaadavaid klassinimetusi lihtsalt ei saa olla nii palju. Kui aga samanimelised klassid on eri nimeruumides, siis nad üksteist üldjuhul ei sega. Nii võib igaüks oma nimeruumis nimetada klasse kuidas tahab. Ja using-lausega märgitakse, millist klasside komplekti parajasti kasutatakse. Edasi siis class Tervitus{ mis praegusel juhul annab programmile ka nime ning public static void Main(string[] arg){ näitab alamprogrammi Main, kust käsurearakendus oma tööd alustab. Muudest sõnadest siin rea peal ei tasu end veel liialt häirida lasta. Kiirülevaatena: public näitab, et pole seatud käivitusõiguse tõkkeid, static - et alamprogramm Main on olemas ja käivitusvalmis kohe rakenduse töö alguses. void näitab, et ei raporteerita operatsioonisüsteemile programmi töö edukuse kohta. Ja ümarsulgudes oleva abil saab mõnes rakenduses kasutaja omi andmeid ette anda - siin seda võimalust aga ei kasutata.
järkudega a1 ja a0 ning vastavalt B b1 ja b0. Väljund G näitab, et A on suurem kui B, väljund L näitab, et B on suurem kui A ning E näitab, et A ja B on võrdsed. arv A on a1a0, arv B on b1b0, ,kui A < B, siis L=1 ,kui A > B, siis G=1 ,kui L=G=0, siis A=B Riistvara tegevus alamprogrammide poole pöördumisel Alamprogrammide poole pöördumine ja siis tagasipöörde aadresside salvestamine on üks pinumälu rakendusi. Kui toimub alamprogrammi poole pöördumine, siis käsuloenduri (PC) sisu salvestatakse pinumälusse, ja kuna PC näitab alati järgmisena täitmisele tuleva käsu aadressi, on ka see tagasipöörde aadtessiks. Tagasipöördumisel võetakse pinumälust järjest tagasipöörde aadresse,
5.2 Näited pinu kasutamisest • Funktsioonide väljakutse organiseerimine • Avaldiste teisendamine, kontrollimine, arvutamine ja muu aritmeetiliste avaldiste töötlemine (sulge mugavalt uurda) • Igasuguse info tagurpidi pööramiseks • Abivahend andmete hoidmisel, kus viimati listud väärtust tuleb kohe töötlema hakata • Alamprogrammide väljakutse organiseerimine arvutis o Uue alamprogrammi väljakutse tähendab seda, et programmi täitmine jääb teatud kohas pooleli ja peab peale alamprogrammi töö lõppemist jätkuma samalt kohalt. Selleks pannakse pooleli jäänud alamprogramm pinusse koos oma muutujate komplektiga. Kui momendil töötav alamprogramm oma töö lõpetab, võetakse pinust välja kõige peal olev alamprogramm ja kogu väljakutse loogika on just selline, et see on see õige, millega edasi
ülejäänud data võetakse järjestikustelt aadressidelt. Andmeedastus konveierina.. uus mäluaadress pannakse aadressisiinile enne, kui eelmise andmed on kohal Mux-tud siin 32. Andmevahetuse juhtimine: Passiivne andmevahetus I/O seadmete prioriteetide probleem lahendatakse korrapäraselt mux-'de kaudu. Seadme käest loetakse olekusõna ning järjestatakse andmevahetuseks ... polling. Staatiline vs dünaamiline prioriteetide jaotamine Katkestustega süsteem katkestus = pöördumine alamprogrammi poole CPU lõpetab poolelioleva käsu, PC (process count) & PSW (process status word) pinumällu. PC-sse AP I käsk. Polling + Interrupt programne katkestuste lahendamine Daisy chain prioriteedid paika pandud riistvaraliselt (jäigalt) füüsilise asetusega Interrupt controller olekuregistris oleva juhtsõnaga saab prioriteete juhtida Andmevahetus otsepöördusrezhiimis Direct Memory Access request data transfer (peripeheral) --> request DMA cycle (DMA controller) -->
siirete käsud JMP, CALL, RET pinumälu, I/O-seadmete, CPU juhtimise käsud PUSH, POP, IN, OUT, NOP Andmeedastuse juhtimine(bus arbitation): süsteemid katkestustega ja ilma, prioriteedid Passiivne andmevahetus I/O seadmete prioriteetide probleem lahendatakse korrapäraselt mux-'de kaudu. Seadme käest loetakse olekusõna ning järjestatakse andmevahetuseks ... polling. Staatiline vs dünaamiline prioriteetide jaotamine Katkestustega süsteem katkestus = pöördumine alamprogrammi poole CPU lõpetab poolelioleva käsu, PC (process count) & PSW (process status word) pinumällu. PC-sse AP I käsk. Polling + Interrupt programne katkestuste lahendamine Daisy chain prioriteedid paika pandud riistvaraliselt (jäigalt) füüsilise asetusega Interrupt controller olekuregistris oleva juhtsõnaga saab prioriteete juhtida Andmevahetus otsepöördusrezhiimis Direct Memory Access request data transfer (peripeheral) --> request DMA cycle (DMA controller) --> grant
ülejäänud data võetakse järjestikustelt aadressidelt. Andmeedastus konveierina.. uus mäluaadress pannakse aadressisiinile enne, kui eelmise andmed on kohal Mux-tud siin 32. Andmevahetuse juhtimine: Passiivne andmevahetus I/O seadmete prioriteetide probleem lahendatakse korrapäraselt mux-'de kaudu. Seadme käest loetakse olekusõna ning järjestatakse andmevahetuseks ... polling. Staatiline vs dünaamiline prioriteetide jaotamine Katkestustega süsteem katkestus = pöördumine alamprogrammi poole CPU lõpetab poolelioleva käsu, PC (process count) & PSW (process status word) pinumällu. PC-sse AP I käsk. Polling + Interrupt programne katkestuste lahendamine Daisy chain prioriteedid paika pandud riistvaraliselt (jäigalt) füüsilise asetusega Interrupt controller olekuregistris oleva juhtsõnaga saab prioriteete juhtida Andmevahetus otsepöördusrezhiimis Direct Memory Access request data transfer (peripeheral) --> request DMA cycle (DMA controller) -->
üksikute tööoperatsioonide kaupa. Sel juhul peavad aga juhtseadmetes olema realiseeritud kõigi võimalike töö- e väljundoperatsioonide algoritmid. Juhtimine taandub siis vajalike algoritmide valikule ning nende järjestuse määramisele. Neid algoritme on võimalik realiseerida nn jäiga loogikaga, s.o vastavate loogikaskeemide abil, või mällu salvestatud e programmeeritava loogika abil. Viimasel juhul nimetatakse igale väljundoperatsioonile vastavat alamprogrammi mikroprogrammiks ja igale sisemisele elementaaroperatsioonile vastavat tehet mikrokäsuks. Mikroprogramme realiseerivat juhtseadme osa nimetatakse aga mikroprogrammjuhtimisega automaadiks. Seega on mikroprogrammjuhtimine üldise programmjuhtimise (mida nimetatakse vahel ka makroprogrammjuhtimiseks) alumiseks tasandiks. Kui makroprogrammid koostab peamiselt robotsüsteemi kasutaja, siis mikroprogrammid koostab enamasti seadet valmistav tehas ning need kuuluvad seadme riistvara (püsivara) juurde
siiret eeldati & seda ei tulnud --> F siiret ei eeldatud & see tuli --> F siiret ei eeldatud & seda ei tulnud --> T 34.Andmeedastus juhtimise süsteemid katkestustega ja ilma, prioriteedid. Passiivne andmevahetus – I/O seadmete prioriteetide probleem lahendatakse korrapäraselt mux-'de kaudu. Seadme käest loetakse olekusõna ning järjestatakse andmevahetuseks ... polling. Staatiline vs dünaamiline prioriteetide jaotamine Katkestustega süsteem – katkestus = pöördumine alamprogrammi poole CPU lõpetab poolelioleva käsu, PC (process count) & PSW (process status word) pinumällu. PC-sse AP I käsk. Polling + Interrupt – programne katkestuste lahendamine Daisy chain – prioriteedid paika pandud riistvaraliselt (jäigalt) füüsilise asetusega Interrupt controller – olekuregistris oleva juhtsõnaga saab prioriteete juhtida Andmevahetus otsepöördusrezhiimis – Direct Memory Access request data transfer (peripeheral) --> request DMA cycle (DMA
4) Kasutatakse juba olemasoleva joonise iseloomulikke punkte, nagu lõikumine, ringjoone keskpunkt, joone otspunkt jne. Neid joonise iseloomulikke punkte aitab valida käsk Ülesanne II Tihend 36 OSNAP oma alamkäskudega. Vajalike iseloomulike punktide kasutamiseks on lihtsaim moodus see, kui enna järgmise punkti sisestamist sisestada Käsurealt KOLmetäheline käsu OSNAP alamprogrammi nimi, näiteks . . . To point: CEN ↵ tähendab, et vajame ringjoonee või kaare keskpunkti of millise objekti keskpunkti vajame? Nüüd viime kursori risti kas „silma järgi” kaare keskpunkti juurde või kaare enese juurde ja kui markeri kuvamine on sisse lülitatud, siis kuvatakse keskpunkti kohal väike ringike ja klõpsame ning punkti asukoht ongi määratud. Teine moodus on punkti täpse asukoha automaatse valiku eelhäälestamine.
Teine näide – käsu OPTIONS valikukaardid: Käsu OPTIONS (valikud) valikukaartidest on avatud kaart Open and Save – "ava ja salvesta" klõpsamisega vastaval sakil. Selgitus – arvuti tegevuse lahtimõtestamine või juhtnööride andmine edasiseks tööks. ÜLESANNE I Pinnatükk 73 Sihik – punkti täppisvaliku (kui kasutatakse mingit käsu OSNAP alamprogrammi) otsimisala ruuduke kursori ristil (suurus seadistakse käsuga APERTURE). Sihtpunkt – punkti uus asend joonisel, kuhu viiakse eelnevalt määratud algpunkt (lähtepunkt) koos objekti(de)ga, näiteks käskudega ALIGN, MOVE, INSERT String – tähtede-numbrite-erimärkide (sümbolite) jada. Sõrmis – sõrmis sõrmistikul või siis pealkirjaga varustatud ristkülik valiku- või vestlusaknal, millel klõpsamisega rakendub sõrmisel märgitud tegevus.