Lisaks oli võimalus rühmitada muutujaid jadadesse (array) ja kirjetesse (record). 1958 loodi Massachusettsi Tehnoloogiainstituudis keel LISP (LISt Processing). See oli mõeldud tehisintellekti uurimiseks ja arendamiseks. Page 7 3.2 PROGRAMMEERIMISKEELTE PÕHITÜÜBID Peamised põhitüübid on: protseduurilised, funktsionaalsed ja objektorienteeritud programmeerimiskeeled. Protseduurilistes programmeerimiskeeltes kirjeldatakse programmeerimiskeeltes tegevused ja nende täitmise kord ja jagatakse need tegevused gruppidesse (alamprogrammideks). Protseduuridest kujunevad omamoodi koodi struktuurid, mida on võimalik korduvalt kasutada. Funktsionaalsetes programmeerimiskeeltes kirjeldatakse kogu lahendus funktsioonide abil. Objektorienteeritud programmeerimiskeeltes teostatakse lahendus klassides (class) kirjeldatud funktsioonide ja andmestruktuuride abil. Igast klassist on
Lisaks oli võimalus rühmitada muutujaid jadadesse (array) ja kirjetesse (record). 1958 loodi Massachusettsi Tehnoloogiainstituudis keel LISP (LISt Processing). See oli mõeldud tehisintellekti uurimiseks ja arendamiseks. Page 7 3.2 PROGRAMMEERIMISKEELTE PÕHITÜÜBID Peamised põhitüübid on: protseduurilised, funktsionaalsed ja objektorienteeritud programmeerimiskeeled. Protseduurilistes programmeerimiskeeltes kirjeldatakse programmeerimiskeeltes tegevused ja nende täitmise kord ja jagatakse need tegevused gruppidesse (alamprogrammideks). Protseduuridest kujunevad omamoodi koodi struktuurid, mida on võimalik korduvalt kasutada. Funktsionaalsetes programmeerimiskeeltes kirjeldatakse kogu lahendus funktsioonide abil. Objektorienteeritud programmeerimiskeeltes teostatakse lahendus klassides (class) kirjeldatud funktsioonide ja andmestruktuuride abil. Igast klassist on
numbrite ja teksti jaoks. Lisaks oli võimalus rühmitada Page 8 muutujaid jadadesse (array) ja kirjetesse (record). 1958 loodi Massachusettsi Tehnoloogiainstituudis keel LISP (LISt Processing). See oli mõeldud tehisintellekti uurimiseks ja arendamiseks. 3.2 PROGRAMMEERIMISKEELTE PÕHITÜÜBID Peamised põhitüübid on: protseduurilised, funktsionaalsed ja objektorienteeritud programmeerimiskeeled. Protseduurilistes programmeerimiskeeltes kirjeldatakse programmeerimiskeeltes tegevused ja nende täitmise kord ja jagatakse need tegevused gruppidesse (alamprogrammideks). Protseduuridest kujunevad omamoodi koodi struktuurid, mida on võimalik korduvalt kasutada. Funktsionaalsetes programmeerimiskeeltes kirjeldatakse kogu lahendus funktsioonide abil. Objektorienteeritud programmeerimiskeeltes teostatakse lahendus klassides (class) kirjeldatud funktsioonide ja andmestruktuuride abil. Igast klassist on võimalik moodustada
kasutatavat informatsiooni. IDENTIFIKAATOR on keele reeglite järgi kirja pandud sõna, mis võib tähistada mõnda olemasolevat või programmeerija poolt loodud objekti selles keeles. Üldjuhul kasutatakse identifikaatoreid andmeobjektide ja andmetüüpide nimedena. ANDMETÜÜP määrab andmeobjekti suuruse, omadused ning temaga sooritatavad võimalikud tegevused. Arvutis on igal tüübil lõplik väärtuste hulk. Programmeerimiskeeltes on algselt defineeritud mingisugune hulk andmetüüpe, mida nimetatakse LIHTTÜÜPIDEKS. Harilikult kuuluvad sinna hulka sellised andmetüübid nagu TÄISARV, REAALARV ja SÜMBOL. Lisaks lihttüüpidele on programmeerimiskeeltes keerulisemaid andmetüüpe, mida nimetatakse STRUKTUURSETEKS TÜÜPIDEKS. Paljudes keeltes on algselt defineeritud selliseks struktuurseks tüübiks sümbolite jada, mida nimetatakse ka STRINGIKS. Väärtus
kuidas see komponent "täiuslikus maailmas" välja näeks. Näiteks, kui mingi selle komponendi tunnus peab asuma objekti keskel, siis peab see seal ka asuma, mitte mugavamas punktis või ääres nagu võib teha "rumala" 3D-mahtmudeli puhul. Parameetriliste mahtmudelite puhul peab kasutaja arvestama iga liigutuse tagajärgi. 7 3 Tehnoloogia Algselt arendati raalprojekteerimise tarkvara programmeerimiskeeltes nagu Fortran, aga objektorienteeritud programmeerimise meetodite arenguga on see radikaalselt muutunud. Tüüpilised moodsad parameetrilised tunnusepõhised modelleerijad vabakäe pinna süsteemid on ehitatud kasutades erinevaid C-keele mooduleid nende oma rakendusliidestega. CADi süsteemi võib vaadelda kui interaktsiooni graafilise kasutajaliidese, mitteühtlase ratsionaalse B-splaini ja/või kirjeldava mahtgeomeetria
· Smalltalk - "puhas" OOP · C++ , 1986, B. Stroustrup, OOP · ML, Haskell, Scheme - funktsionaalsed · Java, 1995, Sun - OOP Programmeerimiskeelt iseloomustavad: 1. leksika - kuidas panna kirja elementaarseid "sõnu" antud keeles - nimed (identifikaatorid), konstandid (arvud, stringid, tõeväärtused jne.), võtmesõnad (reserveeritud nimed), eraldajad jne. 2. süntaks - antud keele grammatikareeglid. Erinevalt loomulikest keeltest ei ole programmeerimiskeeltes mitte midagi peale hakata süntaktiliselt vigaste tekstidega. 3. semantika - keelekonstruktsioonide tähendus, s.t. kuidas interpreteeritakse süntaktiliselt korrektset programmi. 4. stiil ja programmide koostamise metoodika. On kokkulepped, millega vabatahtlikult kitsendatakse süntaktiliselt lubatud programmide hulka, et saavutada paremat loetavust inimese poolt (näit. "treppimine" programmi struktuuri väljatoomiseks, nimekokkulepped jne.). Algoritmidest
olemasolevat või programmeerija poolt loodud objekti selles keeles. Programmeerimise algkursus 12 - 89 Üldjuhul kasutatakse identifikaatoreid andmeobjektide ja andmetüüpide nimedena. Andmetüüp Andmeobjekte võib tekitada, kasutades väga mitmesuguseid andmetüüpe. ANDMETÜÜP määrab andmeobjekti suuruse, omadused ning temaga sooritatavad võimalikud tegevused. Tuleb silmas pidada, et arvutis on igal tüübil lõplik väärtuste hulk. Programmeerimiskeeltes on algselt defineeritud mingisugune hulk andmetüüpe, mida nimetatakse LIHTTÜÜPIDEKS. Harilikult kuuluvad sinna hulka sellised andmetüübid nagu TÄISARV, REAALARV ja SÜMBOL. Lisaks lihttüüpidele on programmeerimiskeeltes keerulisemaid andmetüüpe, mida nimetatakse STRUKTUURSETEKS TÜÜPIDEKS. Paljudes keeltes on algselt defineeritud selliseks struktuurseks tüübiks sümbolite jada, mida nimetatakse ka STRINGIKS. Väärtus
(tarkvaraplaneerija, tarkvaraarhitekt jt) loodud detailsetele kirjeldustele. Sageli osalevad tarkvaraarendajana töötavad programmeerijad ka ise tarkvara analüüsi ja ülesehituse protsessis, sest see võimaldab luua tarkvara kiiremini ja paindlikumalt. Seepärast nõuab amet võimet teha koostööd meeskonnakaaslastega ja ka teiste inimestega, mõista klientide vajadusi ja osata neid meeskonnakaaslastele selgitada ning kodeerida lahendused eri programmeerimiskeeltes. Töökeskkond Programmeerija töötab nüüdisaegses ja mugavas kontoriruumis. Ametlik tööaeg on enamasti viis päeva nädalas. Tööpäeva pikkus oleneb projektide hulgast, tähtaegadest ja tegevuse kavandamisest. Tööde tähtaja lähenemisel võib töökoormus suureneda ning aeg-ajalt võib tekkida vajadus teha tööd ka nädalavahetustel ja õhtuti, mis
18 / 115 tähistada mõnda olemasolevat või programmeerija poolt loodud objekti selles keeles. Üldjuhul kasutatakse identifikaatoreid andmeobjektide ja andmetüüpide nimedena. Andmetüüp Andmeobjekte võib tekitada, kasutades väga mitmesuguseid andmetüüpe. ANDMETÜÜP määrab andmeobjekti suuruse, omadused ning temaga sooritatavad võimalikud tegevused. Tuleb silmas pidada, et arvutis on igal tüübil lõplik väärtuste hulk. Programmeerimiskeeltes on algselt defineeritud mingisugune hulk andmetüüpe, mida nimetatakse LIHTTÜÜPIDEKS. Harilikult kuuluvad sinna hulka sellised andmetüübid nagu TÄISARV, REAALARV ja SÜMBOL. Lisaks lihttüüpidele on programmeerimiskeeltes keerulisemaid andmetüüpe, mida nimetatakse STRUKTUURSETEKS TÜÜPIDEKS. Paljudes keeltes on algselt defineeritud selliseks struktuurseks tüübiks sümbolite jada, mida nimetatakse ka STRINGIKS. Väärtus
(elevandi jalg olgu näiteks nr. 75) ·Küsida pikkust ja kaalu ning leida ligikaudne ideaalkaal: 0,9 x (pikkus - 100) PASCAL 2. loeng Struktuurne programm: kolm komponenti a) jada: tegevus 1 tegevus 2 ... tegevus n b) valik: kui < tingimus > tegevus 1 vastasel juhul tegevus 2 c) kordus: näit. tee seni, kui < tingimus > korratavad tegevused VALIK. Variandid: * mittetäielik kahendvalik * täielik kahendvalik * mitmendvalik Enamikus programmeerimiskeeltes: kahendvalik - IF-lause mitmendvalik - CASE-lause a) mittetäielik kahendvalik - kui toodud tingimus on täidetud, täidetakse tingimuse järel olev lause, vastasel juhul aga ei tehta midagi. ... if vanus<18 writeln('alaealine'); ... b) täielik kahendvalik - kui toodud tingimus on täidetud, tehakse IF-osa järel olevad tegevused, vastasel juhul ELSE-osa järel olevad tegevused. ... if vanus<18 writeln('alaealine') else writeln('täiskasvanu'); NB
kommentaaride märkimiseks, kuidas on üks programmi avaldis või lause eraldatud teisest. JavaScript on tõstutundlik, mis tähendab ,et keele reserveeritud sõnade, muutujate, funktsiooni nimede kirjutamisel on oluline suur ja väike täht. Näiteks reserveeritud sõna while, peab kirjutama väikeste tähtedega "while", mitte "While" või "WHILE". Mittekohustuslik semikoolon. JavaScripti avaldsitele tavaliselt järgneb semikoolon (;) nagu ka programmeerimiskeeltes C, C++ ja Java. Semikooloni abil eristatatakse üksteisest avaldisi ja lauseid. JavaScriptis ei ole semikooloni kirjutamine alati vajalik. Näiteks kui avaldised või laused on kirjutatud eraldi reale siis ei ole semikoolonit vaja, järgneva koodi võib kirjutada ka ilma semikooloniteta: x = 1; y = 6; Aga kui avaldised või laused on kirjutatud üksteise järgi, siis on semikooloni kirjutamine vajalik: x = 1; y = 6; Kommentaarid
/* ... */ - mitmerealised kommentaarid comments.php Näide 1.3.2 Eraldajad PHP programmid on põhimõtteliselt käskude kogumid. Käskude eraldamiseks kasutatakse programmeerimiskeeltes spetsiaalseid sümboleid - eraldajaid. PHP's seda tehakse semikooloniga: separators.php '; // käsu lõpp - semikoolon
Rakendustarkvara sisaldab töölauarakendusi nagu brauserid ja Microsoft Office, samuti nutitelefoni ja tableti rakendusi (nn "äpp"). JavaScripti skriptid on tarkvara osad, mis on traditsiooniliselt veebilehtede osad, mis käivitatakse otse brauseri sees, kui veebileht lahti laaditakse, ilma et oleks vaja veebibrauseri pistikprogrammi (inglise plug-in). Tarkvara, mis on kirjutatud teistes programmeerimiskeeltes, saab ka veebibrauseris käivitada, kui tarkvara on, kas tõlgitud JavaScripti või kui brauseri pistikprogramm, mis toetad vastavat keelt, on installeeritud. Kõige levinum näide viimasest on ActionScripti skriptid, mida toetab Adobe Flashpistikprogramm. Veebirakendused töötavad tavaliselt veebiserveris ja väljundavad veebibrauseritele dünaamiliselt genereeritud veebilehti, kasutades tarkvara nagu PHP, Java võiASP
67. Milliseid programmeerimiskeele omadusi on vaja teada ja arvestada RAS korral? RAS korral pakub huvi: · Parameter Passing Techniques - Erinevad parameetrite edastamise meetodid · Dynamic Memory Allocation - Dünaamilise mälujagamise meetodid · Strong typing - Jäik tüpiseerimine · Abstraktsed andmetüübid · Eriolukordade töötlus · Modulaarsus 68. Parameetrite edastamise meetodid programmeerimiskeeltes. · Call-by-Value ja Call-by-Reference Kasutada väärtust või kasutada aadressi 1. Väärtuse kasutamisel edasiantav väärtus kopeeritakse ja originaal on puutumatu. 2. Aadressi (viida) kasutamisel edastatakse asukoht ja originaali saab protseduuris muuta · Globaalsed muutujad kiire ja mugav, samas võimalikettearvamatud muutmised. Väga hoolikalt dokumenteerida.Mälu kasutus ebaefektiivne, samal ajal ettemääratud. 69
SSD (flash mälu, mälupulgad) on samuti transistoridest, aga aeglane ja odav. LIHTSAD ANDMETÜÜBID (täisarvude, ujukoma-arvude, tähtede esitamine) : Protsessor toetab otse ainult lihtandmetüüpe: täisarve ja ujukomaarve. Tõeväärtused ja tähed on täisarvu erivariandid. Mäluaadress ehk pointer on samuti lihtsalt täisarv. Kompleksandmetüüpide mugavaks ehitamiseks ja kasutamiseks on enamuses programmeerimiskeeltes hulga • Spetsiaalseid teegifunktsioone. • Spetsiaalset süntaksit • Aga protsessori jaoks nad ei ole „asjad“ mida protsessor otse toetaks. STRINGID – Tekst on lihtsalt jada baite mälus järjest pluss pikkuse määrang. Lihtsamal juhul (ascii ja iso-8859-1 kodeeringud) on üks täht üks bait. Keerukamal juhul (utf-8) on ascii tähed üks bait, teised rohkem. MASSIIVID – Massiiv on jada ühetüübilisi väärtusi: tähti, täisarve, ujukoma-arve, teisi massiive
txt sisu ühe võrra. Kui fail puudub, või failis pole arv, siis antakse selgitusega veateade. * Kui failis olev arv ületab 365, siis anna välja omapoolne erind ning püüa sellele reageerida. Andmekollektsioonid Andmetega ümber käimisele kulub märgatav osa arvutite ja programmeerija ajast. 2000 aasta paiku arvati selleks osaks olema ligikaudu kolmandik. Nüüd ehk veidi vähem, kuid tähtsus on ikka alles jäänud. Et põhioperatsioonidele ei kuluks liialt palju tähelepanu, selleks on programmeerimiskeeltes välja mõeldud valmis vahendid andmeoperatsioonideks. Nii ka C# puhul. ArrayList Hea lihtne koht andmete hoidmiseks ja kätte saamiseks. Võrreldes tavalise massiiviga pole vaja elementide arvu kohe ette määrata. ArrayListi objekt hoolitseb ise selle eest, et oleks parajalt ruumi sissepandud andmete hoidmiseks. Iga Add-käsklusega lisatakse sissepandud väärtus olemasolevate lõppu. Käsuga Contains võib kontrollida otsitava elemendi olemasolu. Count näitab elementide arvu
* Koosta alamprogramm, mis saab parameetriks soovitud pinge, voolutüübi ja vooluallikate massiivi ning trükib välja soovitule vastavate vooluallikate andmed. Andmekollektsioonid Andmetega ümberkäimisele kulub märgatav osa arvutite ja programmeerija ajast. 2000 aasta paiku arvati selleks osaks olema ligikaudu kolmandik. Nüüd ehk veidi vähem, kuid tähtsus on ikka alles jäänud. Et põhioperatsioonidele ei kuluks liialt palju tähelepanu, selleks on programmeerimiskeeltes välja mõeldud valmis vahendid andmeoperatsioonideks. Nii ka C# puhul. ArrayList Hea lihtne koht andmete hoidmiseks ja kätte saamiseks. Võrreldes tavalise massiiviga pole vaja elementide arvu kohe ette määrata. ArrayListi objekt hoolitseb ise selle eest, et oleks parajalt ruumi sissepandud andmete hoidmiseks. Iga Add-käsklusega lisatakse sissepandud väärtus olemasolevate lõppu. Käsuga Contains võib kontrollida otsitava elemendi olemasolu. Count näitab elementide arvu
ÜLESANNE I Pinnatükk 61 põhimuutujate nimesid. Arvuti tunneb küll objekti nime käskude seast ära, aga töötaja siis tavaliselt enam mitte. NB! Täiendavalt on vaja tähelepanu juhtida sellele, et kirjapildis on tavaliselt arv „null“ ja „väike-o“ , eriti aga „null” ja „suur-O“ väga sarnased. Vanemates programmeerimiskeeltes tehti vahet nii, et läbi „nulli“ oli tõmmatud kaldkriips, mis polnud nii kaldu kui läbimõõdumärgil – Ø. AutoCAD’i alusfaili (Fontfile) nimedes tehakse vahet „saledusega“: täht „O” on ümmargune, kuna number „null” on külgedelt kokku surutud: 0 Muide, Windows-7 on hakanud jälgima ligikaudu sama vana tava: „nulli” sees on kaldkriips, kuid
* Koosta alamprogramm, mis saab parameetriks soovitud pinge, voolutüübi ja vooluallikate massiivi ning trükib välja soovitule vastavate vooluallikate andmed. Andmekollektsioonid Andmetega ümberkäimisele kulub märgatav osa arvutite ja programmeerija ajast. 2000 aasta paiku arvati selleks osaks olema ligikaudu kolmandik. Nüüd ehk veidi vähem, kuid tähtsus on ikka alles jäänud. Et põhioperatsioonidele ei kuluks liialt palju tähelepanu, selleks on programmeerimiskeeltes välja mõeldud valmis vahendid andmeoperatsioonideks. Nii ka C# puhul. ArrayList Hea lihtne koht andmete hoidmiseks ja kätte saamiseks. Võrreldes tavalise massiiviga pole vaja elementide arvu kohe ette määrata. ArrayListi objekt hoolitseb ise selle eest, et oleks parajalt ruumi sissepandud andmete hoidmiseks. Iga Add-käsklusega lisatakse sissepandud väärtus olemasolevate lõppu. Käsuga Contains võib kontrollida otsitava elemendi olemasolu. Count näitab elementide arvu
Teisalt vähendatakse muutuja väärtust ühe võrra. See tähendab, et korrutame -i läbi alguses enda väärtusega, siis -ga, siis -ga täpselt nii kaua, kuni oleme läbi korrutanud ka ühega – väiksemaks me muutujal tänu kolmandale koodireale enam minna ei lase. Lõpuks ütleb viimane rida lihtsalt, et funktsioon peaks leitud väärtuse küsijale ka väljastama. Nii mõnigi kord tulevad programmeerimiskeeltes esile ka funktsioonid, mis ei annagi väljundit, vaid lihtsalt teevad mõned kerged muudatused. Neist oleks võib- olla segaduse vältimiseks siis lihtsam mõelda kui „protseduuridest“. 73 arvuhulgad 74 arvuhulgad osa 2 arvud 75 arvuhulgad 76 arvuhulgad Jumal lõi naturaalarvud, ülejäänu on inimese kätetöö.