Aleš Hvasti
Upravljanje s PROGRAMIRLJIVIMI NAPRAVAMI 1 Učbenik za modul Osnove programiranja v programih Tehnik računalništva, Elektrotehnik in Tehnik elektronskih komunikacij
Vsebina Uvod ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 1 Didaktična zgradba poglavja ������������������������������������������������������������������������������������������������������������������������������������������ 1 Primeri didaktičnih gradnikov ������������������������������������������������������������������������������������������������������������������������������ 2 Slovar tujih izrazov, ki so pogosti pri programiranju �������������������������������������������������������������������������������������������� 4 Podatki ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 6 Obdelava in shranjevanje podatkov ���������������������������������������������������������������������������������������������������������������������������� 6 Kodiranje podatkov ������������������������������������������������������������������������������������������������������������������������������������������������������������ 7 Princip kodiranja različnih vrst podatkov ���������������������������������������������������������������������������������������������������������� 8 Kodiranje številskih podatkov ������������������������������������������������������������������������������������������������������������������������ 9 Kodiranje tekstovnih podatkov �������������������������������������������������������������������������������������������������������������������� 9 Kodiranje logičnih podatkov ������������������������������������������������������������������������������������������������������������������������10 Zgradba računalnika ��������������������������������������������������������������������������������������������������������������������������������������������������11 Vhodna enota ��������������������������������������������������������������������������������������������������������������������������������������������������������������������12 Izhodna enota ��������������������������������������������������������������������������������������������������������������������������������������������������������������������12 Centralno procesna enota (CPE) ��������������������������������������������������������������������������������������������������������������������������������12 Notranji oziroma delovni pomnilnik (RAM) ������������������������������������������������������������������������������������������������������������13 Zunanji oziroma trajni pomnilnik ��������������������������������������������������������������������������������������������������������������������������������14 Operatorji za zapis operacije v programskem jeziku ��������������������������������������������������������������������������16 Operator za shranjevanje vrednosti v delovni pomnilnik ����������������������������������������������������������������������������������16 Aritmetični operatorji ������������������������������������������������������������������������������������������������������������������������������������������������������16 Operatorji za primerjavo ������������������������������������������������������������������������������������������������������������������������������������������������18 Logični operatorji ��������������������������������������������������������������������������������������������������������������������������������������������������������������18 Algoritmi ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������20 Zapis algoritma v naravnem jeziku ����������������������������������������������������������������������������������������������������������������������������21 Diagram poteka ����������������������������������������������������������������������������������������������������������������������������������������������������������������23 Gradniki diagrama poteka (zgradba algoritma) ������������������������������������������������������������������������������������������24 Oznaka za začetek in konec algoritma ������������������������������������������������������������������������������������������������������24 Prireditveni blok ������������������������������������������������������������������������������������������������������������������������������������������������25 Vejitev ali odločitveni blok ����������������������������������������������������������������������������������������������������������������������������26 Puščice, ki označujejo tok algoritma ����������������������������������������������������������������������������������������������������������30 Primeri algoritmov z uporabo diagrama poteka ������������������������������������������������������������������������������������������31 Zapis algoritma v obliki psevdokode ������������������������������������������������������������������������������������������������������������������������42 Programski jeziki ����������������������������������������������������������������������������������������������������������������������������������������������������������������42 Generacije programskih jezikov ������������������������������������������������������������������������������������������������������������������������43 Strojni jezik ali strojna koda (prva generacija) ����������������������������������������������������������������������������������������43 Zbirni jezik (druga generacija) ��������������������������������������������������������������������������������������������������������������������44 Višji programski jeziki (tretja generacija) ��������������������������������������������������������������������������������������������������45 Deklarativni programski jeziki (četrta generacija) ��������������������������������������������������������������������������������46
III
Peta generacija programskih jezikov ��������������������������������������������������������������������������������������������������������46 Pisanje programske kode in INTEGRIRANO razvojno okolje (IDE) ����������������������������������������������48 Urejevalnik besedila ��������������������������������������������������������������������������������������������������������������������������������������������������������49 Stavki in stavčni bloki ��������������������������������������������������������������������������������������������������������������������������������������������49 Rezervirane besede ������������������������������������������������������������������������������������������������������������������������������������������������50 Glavna metoda ������������������������������������������������������������������������������������������������������������������������������������������������50 Vključitev knjižnic ��������������������������������������������������������������������������������������������������������������������������������������������51 Komentarji ����������������������������������������������������������������������������������������������������������������������������������������������������������51 Primer uporabe urejevalnika Notepad++ ������������������������������������������������������������������������������������������������51 Knjižnice in imenski prostori ����������������������������������������������������������������������������������������������������������������������������������������52 Prevajanje in povezovanje programske kode ��������������������������������������������������������������������������������������������������������55 Vrste napak pri pisanju programske kode in načini odpravljanja teh napak ����������������������������������������������56 Integrirano razvojno okolje (IDE) ��������������������������������������������������������������������������������������������������������������������������������58 Enostavni podatkovni tipi ������������������������������������������������������������������������������������������������������������������������������������������61 Cela števila ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������61 Celoštevilski podatkovni tipi, ki zasedejo eno pomnilniško lokacijo (8 bitov) ����������������������������������62 Celoštevilski podatkovni tipi, ki zasedejo dve pomnilniški lokaciji (16 bitov) ����������������������������������62 Celoštevilski podatkovni tipi, ki zasedejo štiri pomnilniške lokacije (32 bitov) ��������������������������������63 Celoštevilski podatkovni tipi, ki zasedejo osem pomnilniških lokacij (64 bitov) ������������������������������63 Decimalna števila ��������������������������������������������������������������������������������������������������������������������������������������������������������������64 Decimalni podatkovni tipi, ki zasedejo štiri pomnilniške lokacije (32 bitov) ������������������������������������65 Decimalni podatkovni tipi, ki zasedejo osem pomnilniških lokacij (64 bitov) ����������������������������������65 Decimalni podatkovni tipi, ki zasedejo več kot osem pomnilniških lokacij ��������������������������������������66 Posamezni znak �����������������������������������������������������������������������������������������������������������������������������������������������������������������66 Besedilo ali znakovni niz ������������������������������������������������������������������������������������������������������������������������������������������������67 Logični podatki ������������������������������������������������������������������������������������������������������������������������������������������������������������������67 Neposredne pretvorbe med podatkovnimi tipi ����������������������������������������������������������������������������������������������������68 Samodejne pretvorbe med podatkovnimi tipi ��������������������������������������������������������������������������������������������68 Neposredne pretvorbe med podatkovnimi tipi na ukaz (cast) ������������������������������������������������������������������������69 Spremenljivke in konstante ������������������������������������������������������������������������������������������������������������������������������������71 Spremenljivke ��������������������������������������������������������������������������������������������������������������������������������������������������������������������71 Deklaracija spremenljivke ������������������������������������������������������������������������������������������������������������������������������������71 Veljavnost spremenljivke ��������������������������������������������������������������������������������������������������������������������������������������73 Konstante ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������74 Neimenovane konstante ��������������������������������������������������������������������������������������������������������������������������������������74 Imenovane konstante ��������������������������������������������������������������������������������������������������������������������������������������������75 Znakovne konstante s posebnim pomenom ������������������������������������������������������������������������������������������������75 Uporaba metod in lastnosti iz knjižnic ����������������������������������������������������������������������������������������������������������77 Metode ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������77 Vnos in prikaz podatkov ��������������������������������������������������������������������������������������������������������������������������������������������79 Jezik C# ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������81 Vnos ali branje podatkov ��������������������������������������������������������������������������������������������������������������������������������������81
IV
Najbolj splošna in zato največkrat uporabljena je metoda ReadLine() . ��������������������������������������81 Pogosto se za vnos podatkov uporablja tudi metoda ReadKey() . ��������������������������������������������������82 Za vnos znaka lahko uporabimo tudi metodo Read() . ������������������������������������������������������������������������82 Prikaz ali pisanje podatkov ����������������������������������������������������������������������������������������������������������������������������������82 Jezik C++ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������83 Vhodni in izhodni tok podatkov ������������������������������������������������������������������������������������������������������������������������83 Vhodni tok ����������������������������������������������������������������������������������������������������������������������������������������������������������84 Izhodni tok ����������������������������������������������������������������������������������������������������������������������������������������������������������84 Stare metode za vnos in prikaz podatkov ������������������������������������������������������������������������������������������������������85 Vnos podatka ����������������������������������������������������������������������������������������������������������������������������������������������������85 Prikaz podatka ��������������������������������������������������������������������������������������������������������������������������������������������������86 Jezik Java ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������87 Vnos ali branje podatkov ��������������������������������������������������������������������������������������������������������������������������������������87 Uporaba metod razreda Scanner ����������������������������������������������������������������������������������������������������������������87 Vnos podatkov prek podatkovnega toka ������������������������������������������������������������������������������������������������87 Prikaz ali pisanje podatkov ����������������������������������������������������������������������������������������������������������������������������89 Naključne vrednosti in uporaba metod matematične knjižnice ������������������������������������������������92 Ustvarjanje naključnih vrednosti ��������������������������������������������������������������������������������������������������������������������������������92 Metoda Next() ����������������������������������������������������������������������������������������������������������������������������������������������������93 Metoda NextDouble() ��������������������������������������������������������������������������������������������������������������������������������������94 Metoda nextInt() ����������������������������������������������������������������������������������������������������������������������������������������������96 Metoda nextDouble() : ������������������������������������������������������������������������������������������������������������������������������������96 Uporaba matematičnih funkcij v programu ������������������������������������������������������������������������������������������������������������97 Krmilni stavki ������������������������������������������������������������������������������������������������������������������������������������������������������������������� 100 Pogojna stavka if in if-else ����������������������������������������������������������������������������������������������������������������������������������������� 101 Zanki while in do-while ����������������������������������������������������������������������������������������������������������������������������������������������� 104 Zanka for ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 105 Delo s tekstovnimi podatki (znakovni nizi) ������������������������������������������������������������������������������������������� 109 Krmilni stavki (drugi del) ��������������������������������������������������������������������������������������������������������������������������������������� 116 Stavka break in continue ��������������������������������������������������������������������������������������������������������������������������������������������� 116 Stavek switch ������������������������������������������������������������������������������������������������������������������������������������������������������������������� 117 Napredna raba metod ����������������������������������������������������������������������������������������������������������������������������������������������� 121 Klic metode ��������������������������������������������������������������������������������������������������������������������������������������������������������������������� 121 Deklaracija metode ������������������������������������������������������������������������������������������������������������������������������������������������������� 123 Podatkovni tip metode ��������������������������������������������������������������������������������������������������������������������������������������� 124 Ime metode ����������������������������������������������������������������������������������������������������������������������������������������������������������� 125 Argumenti metode ��������������������������������������������������������������������������������������������������������������������������������������������� 125 Globalna in lokalna spremenljivka ����������������������������������������������������������������������������������������������������������������� 126 Tabele ali polja – uporaba večvrednostnih spremenljivk ��������������������������������������������������������� 130 Deklaracija in inicializacija tabele ����������������������������������������������������������������������������������������������������������������������������� 131 Velikost tabele ����������������������������������������������������������������������������������������������������������������������������������������������������������������� 133 Dostop do posamezne vrednosti v tabeli ������������������������������������������������������������������������������������������������������������� 134
V
Prikaz vsebine tabele v konzoli z uporabo zanke foreach ������������������������������������������������������������������������������� 136 Prenos znakovnega niza v znakovno tabelo �������������������������������������������������������������������������������������������������������� 137 Večdimenzionalne tabele (polja) ��������������������������������������������������������������������������������������������������������������������� 140 Deklaracija in indeks n-dimenzionalne tabele ����������������������������������������������������������������������������������������������������� 141 Delo z dvodimenzionalnimi (2-D) oziroma večvrstičnimi tabelami (polji) ������������������������������������������������� 143 Dostop do vrednosti v 2-D tabeli ������������������������������������������������������������������������������������������������������������������� 144 Vnos vrednosti v tabelo in prikaz vsebine tabele v konzoli ��������������������������������������������������������������������������� 145 Programsko ugotavljanje dimenzij 2-D tabele ��������������������������������������������������������������������������������������������������� 147
VI
Upravljanje s programirljivimi napravami
Kadar v besedilu navajamo imena spremenljivk, metod, razredov ali knjižnic, so ta imena zapisana v poševnem tisku, posamezni podatkovni tipi pa v polkrepki pisavi. Imena metod so dodatno označena z okroglimi oklepaji ob imenu, ker se enaka oznaka uporablja tudi v programski kodi. Praviloma vsa poglavja vsebujejo tudi primere uporabe novih pojmov. V prvem delu so ti primeri sestavni del učbenika, v drugem delu pa je ob osnovnem besedilu dodana spletna povezava, kjer so predstavljeni različni praktični primeri z rešitvami. Posamezni primer vsebuje programsko kodo v vseh treh jezikih, vključno s spremnim besedilom, komentarji in dodatnimi pojasnili o delovanju programa. V vsakem poglavju, predvsem v prvem delu, navajamo tudi zanimivosti, ki so povezane s splošno znanimi dejstvi o vsebinah, ki so predmet trenutne obravnave. V zvezi s tem je v prvem delu tudi nekaj preprostih nalog za motivacijo. Posamezno poglavje se zaključi z vprašanji za ponovitev snovi, odgovore pa dijaki sami poiščejo v obravnavanem poglavju. V drugem delu sledijo vprašanjem še naloge za reševanje, rešitve nalog pa so, prav tako kot primeri, objavljene na spletu.
Primeri didaktičnih gradnikov Zgradba računalnika - Kodiranje podatkov
Zgradba računalnika Cilji učne enote Razumeti osnovno zgradbo in spoznati osnovni princip delovanja računalnika ter vlogo posameznih delov računalnika pri obdelavi podatkov. Pri tem je zelo pomembno razumevanje načina shranjevanja in iskanja podatkov v delovnem pomnilniku, kjer se podatki med obdelavo nahajajo.
z
cilji učne enote in ključne besede
ključne besede pomnilnik, konzola, pomnilniška lokacija, naslovi, ukazi Cilj našega dela je, da računalniku damo ustrezna navodila, kaj naj počne s podatki, ki jih je dobil v obdelavo. Če hočemo biti pri tem uspešni, moramo poznati zgradbo in delovanje naprave, ki bo za nas to delo opravila. Na podlagi blokovne sheme si oglejmo osnovno zgradbo računalnika:
VHODNA ENOTA
PROCESOR (CPE)
razlagalna shema
IZHODNA ENOTA
NOTRANJI POMNILNIK (RAM)
ZUNANJI POMNILNIK
Na skici so osnovni gradniki računalnika, ki so pomembni za naše delo. Vhodne in izhodne enote so povezava računalnika z zunanjim svetom. Prek njih uporabnik in naprave, ki so na računalnik priključene, z računalnikom komunicirajo. Komunikacija v tem primeru pomeni izmenjavo podatkov. Pri uporabniku je to običajno uporaba tipkovnice in uporaba miške na grafičnem uporabniškem vmesniku. V tem primeru govorimo o vnosu podatkov. Računalnik pa uporabniku podatke vrača s prikazovanjem na monitorju; to je izpis podatkov.
Računalnik ima različne vhodne in izhodne priključke, ki jih pogosto označujemo z oznako I/O (oznaka izhaja iz angleškega poimenovanja vhoda in izhoda: i - input, O - output). Na vhodnih priključkih računalnik podatke od različnih naprav sprejema, na izhodnih pa jih pošilja drugim napravam. V preteklosti so se uporabljali različni standardi za vhodne in izhodne priključke, danes pa je večino teh priključkov zamenjal standard USB.
zanimivost
* Za vajo naštejte nekaj vhodnih in izhodnih enot, ki jih pogosto priključujemo na računalnik in pri tem opišite njihovo uporabo. 11
2
razlaga snovi
za vajo
povezovalnika uredi vse potrebno, da se metoda vključi v tistem delu kode, kjer jo potrebujemo. Metodo vključimo tako, da jo pokličemo, pri klicu pa uporabimo ime metode. Podobno kot pri spremenljivkah tudi za imena metod uporabimo črke in števke, pri tem pa števka ne sme biti na prvem mestu. Uporaba simbolov,Uvod z izjemo–podčrtaja, ni dovoljena. Didaktična zgradba poglavja Zaželeno je, da izberemo tako ime, ki nam pove nekaj o opravilu, ki mu je metoda namenjena. Glede uporabe velike začetnice pa obstajajo med posameznimi jeziki različna pravila, za katera je zaželeno, da jih programerji upoštevajo. Jezik C# za imena metod uporablja veliko začetnico, če je ime sestavljeno iz dveh ali več besed, pa tudi ostale besede pišemo z veliko začetnico. Na ta način se imena metod že na prvi pogled ločijo od imen spremenljivk, kjer se uporablja mala začetnica. Jezik C++ za imena metod uporablja malo začetnico, pri sestavljanju se pogosto uporabljajo kratice, pogosta je tudi uporaba podčrtaja. Jezik Java za imena metod uporablja malo začetnico; če je ime sestavljeno iz več besed, pa imajo vse nadaljnje besede običajno veliko začetnico.
b.3
C# C++ Java
Argumenti metode
Argumenti metode so vhodni podatki, ki jih metoda potrebuje, da lahko opravi svoje delo. Ti podatki pridejo s klicnega mesta, v glavi metode pa pripravimo vhodne spremenljivke, ki Upravljanje s programirljivimi napravami te podatke prevzamejo. metoda argumente. Denimo, da imamo metodo, ki je namenjena StavkaPoglejmo, breakzakaj inpotrebuje continue
izračunu kvadratnega korena nekega števila (metoda sqrt() iz matematičnega razreda). Če Stavka break in continue sta namenjena prekinitvi v kateri se nahajata. Uporabimo to metodo pokličemo brez argumenta, karizvajanja pomeni,zanke, da pustimo oklepaje prazne, je podobju lahko vno, kateri koli dela, kotizraz posledico papa dobimo možnost, da se kot če bi zanki. od vasZanko nekdorazdelita zahteval,nadadva izračunate , pri tem vrednost x ni poznana. izvede celotna zanka ali pa le njen zgornjiizračuna del. Tako kot vi ne morete opraviti brez podatka x, ga tudi računalnik ne more. Ko pišemo kodo, ki bo predstavljala nekestavku), metode, pridel temzanke razmisliti, katere Oba stavka moramo uporabljati pogojno (vvsebino pogojnem sajmoramo se spodnji sicer ne bi podatke ta iteracija metoda zanke potrebovala, da bo lahko opravila svojo nalogo, in te podatke pripranikoli izvedel, ker bo bi se vedno prekinila. vimo kot argumente metode. Stavek break nas vrže na konec zanke in s tem izvajanje zanke dokončno prekine. Ko pogoj za predeklaraciji metode v oklepajih imenu metode napišemo sprekinitev niPri veljaven, se zanka izvaja v celoti, ob v zadnjem krogu pa se izvededeklaracije le zgornji vhodnih del zanke. O ki bodo klicu metode argumente. Na ta način določimo končanjumenljivk, zanke odločata obaobpogoja, konča paprevzele jo tisti, kiposlane je prej izpolnjen. število argumentov in njihov podatkovni tip. Pri klicu metode moramo biti na to pozorni, while( pogoj za vstop v zanko ) ker se morajo poslani argumenti ujemati z deklaracijami njim namenjenih spremenljivk: {
}
//zgornji del zanke //Dekalracija metode: if( pogoj za prekinitev zanke ) //če je pogoj izpolnjen… { static char NovaMetoda(int a, string b, double c) break; //…skočimo na konec zanke } { //spodnji del zanke
primer programske kode
spremenljivke, Stavek continue nas vrže na začetek zanke, kjer se znova preverja pogoj za vstop v zanko. Če je ta pogoj veljaven, ponovno vstopimo v zanko. Kadar pogoj za prekinitev izpolnjen, se izvaja celotna ki ni sprejmejo argumente zanka, sicer pa se izvaja le njen zgornji del. O končanju zanke odloča le pogoj za vstop v zanko, return ‚D‘; pogoj za prekinitev pa prekine le trenutno iteracijo zanke. }
while( pogoj za vstop v zanko ) { //zgornji del zanke if( pogoj za prekinitev zanke ) //če je pogoj izpolnjen… { continue; //…skočimo na začetek zanke } //spodnji del zanke }
123
Primer uporabe stavkov break in continue najdete na spletni povezavi: POVEZAVA NA PRIMER – break in continue
povezava s primerom na spletu
Stavek switch Stavek switch je različica pogojnega stavka, ki ima na voljo izbiro med več možnostmi. Število možnosti pri tem ni omejeno. Vsaka od možnosti predstavlja svoj del programske kode, ki se izvede, če je ta možnost izbrana.
pogoj za izbiro
case 1
razlagalna shema case n
case 2
case 3 case 4
…
114
3
Upravljanje s programirljivimi napravami
Pisanje programske kode in INTEGRIRANO razvojno okolje (IDE) Cilji učne enote zz Spoznavanje orodij in pripomočkov, ki jih razvijalec programske opreme potrebuje pri svojem delu (IDE). zz Spoznavanje knjižnic in kako jih vključimo v programsko kodo. zz Razumevanje poteka prevajanja programov in povezovanje – pot programa od nastanka do izvedbe. zz Spoznavanje razlik med sintakso in semantiko programskega jezika in pisanje stavkov v izbranem programskem jeziku. zz Poznavanje napak, ki se pojavljajo pri pisanju programov ter kako jih odkrivamo in odpravljamo. Ključne besede programska oprema, povezovanje, razhroščevanje, sintaksa, semantika, knjižnice, imenski prostor, zaglavje programa, stavki in stavčni bloki, glavna metoda, komentarji, rezervirane besede, sledenje programu, strojna koda, objektna koda Ko programer napiše nek program in ga prevede v izvršilno obliko, smo s tem dobili programsko aplikacijo. Programske aplikacije, ki so naložene na nekem računalniku, predstavljajo programsko opremo tega računalnika. Programerjem zato pravimo tudi razvijalci programske opreme. Pri svojem delu programerji potrebujejo nekatera orodja, med katera sodijo programi, brez katerih programiranje ni mogoče. Del programerjeve opreme so poleg tega še nekatere datoteke, ki mu delo precej olajšajo. Orodja in oprema, ki jo pri svojem delu potrebuje programer: zz urejevalnik besedila, zz knjižnice, zz prevajalnik ali tolmač, zz povezovalnik, zz razhroščevalnik. Ko se lotimo programiranja, si vse to naložimo na svoj računalnik kot posamezne komponente ali pa v paketu, ki ga imenujemo razvojno okolje. V nadaljevanju si bomo ogledali vlogo posameznih orodij na poti nastajanja programske kode od besedilne oblike do oblike, ki jo lahko izvedemo na računalniku.
48
Pisanje programske kode in INTEGRIRANO razvojno okolje (IDE) – Urejevalnik besedila
razen če pred koncem glavne metode uporabimo ukaz za končanje programa ali če se izvajanje samodejno ustavi zaradi napake.
Vključitev knjižnic Na začetku programske kode, ki ga imenujemo zaglavje, vedno najprej vključimo knjižnice, ki jih bomo uporabljali v programu. Tu se med posameznimi programskimi jeziki pojavijo določene razlike, ki jih bomo spoznali v nadaljevanju.
Komentarji Programsko kodo pogosto opremimo s komentarji. Ti so namenjeni programerju, prevajalnik pa jih ne vidi. Komentarji tako ne vplivajo na izvajanje programa. Poznamo dve vrsti komentarjev: a) enovrstične, ki se začnejo z oznako '//' in končajo, ko se vrstica zaključi; b) večvrstične, ki jih začnemo z oznako '/*' in končamo z oznako '*/'. Komentarje uporabljamo za pojasnjevanje vsebine programa, za označevanje delov programske kode, podatke o avtorju in času nastanka programa, v njih tudi opišemo, kaj program dela, idr. Uporaba komentarjev je zelo priporočljiva, zlasti pri učenju programiranja.
Primer uporabe urejevalnika Notepad++ Delo začnemo tako, da odpremo novo datoteko. Ko izberemo ime datoteke, smo s tem izbrali tudi ime aplikacije, s katerim bomo kasneje nastalo aplikacijo uporabljali. Pred začetkom pisanja programske kode v orodni vrstici kliknemo gumb sintaksa kode in izberemo programski jezik. Med pisanjem se rezervirane besede, operatorji, števila, besedilo in komentarji različno obarvajo, imena pa ostanejo črne barve. V primeru, ki sledi, so prikazane tri različice istega programa, vsaka za drug programski jezik. Primer programske kode v jeziku C#:
Glavna metoda je v razredu, ki ga v konzolnem načinu dela poimenujemo Program. Ta razred še dodatno zapakiramo v imenski prostor (NameSpace). Ime programa v jeziku C# prevzame imenski prostor. Ime glavne metode pišemo z veliko začetnico. Ko končamo s pisanjem, datoteko shranimo na trdi disk, kjer dobimo datoteko s končnico .cs. 51
Upravljanje s programirljivimi napravami
Primer programske kode v jeziku C++:
Glavna metoda tu ni zapakirana v razred kot pri ostalih dveh jezikih. Konča se s stavkom return, ki sistemu sporoči, da se je program uspešno izvedel. Tudi jezik C++ pozna imenske prostore, vendar ti niso obvezni. Zgornji program bi deloval tudi, če glavna funkcija ne bi bila znotraj imenskega prostora. Ko končamo s pisanjem, datoteko shranimo na trdi disk, kjer dobimo datoteko s končnico .cpp.
Primer programske kode v jeziku Java:
Glavna metoda se nahaja znotraj razreda (class), razredu pa damo takšno ime, kot želimo, da je ime našemu programu. Ko končamo s pisanjem, datoteko shranimo na trdi disk, kjer dobi končnico .java.
Knjižnice in imenski prostori Knjižnice so zbirke že napisanih metod, ki jih programer lahko vključuje v svoj program. Na računalnik pridejo z instalacijo določenih platform, ki so potrebne za uspešen zagon programov, ki jih bomo mi kot programerji napisali. Knjižnica ima hkrati tudi vlogo imenskega prostora. Ta poskrbi za unikatnost imen, ki nastopajo v programski kodi (imena podatkov, imena metod, imena razredov idr.). Imena izbere programer, in če je koda dolga, se imena lahko podvajajo, kar povzroči dvoumnost. Imenski prostori so še posebej potrebni, kadar sestavljamo projekt, v katerega svojo programsko kodo prispeva več avtorjev, ki jim zato ni treba paziti na izbor imen. Vsakemu od avtorjev pripada svoj imenski prostor, zato se imena lahko ponavljajo. 52
Upravljanje s programirljivimi napravami
Za pretvorbo med podatkovnimi tipi so na voljo tudi različne metode, ki jih najdemo v knjižnicah. Uporaba teh metod je bolj zapletena od neposredne pretvorbe, vendar pri tem nismo omejeni le na številske podatkovne tipe. Kako uporabljamo metode za pretvorbo med podatkovnimi tipi, si bomo ogledali pozneje v poglavju o vnosu podatkov v računalnik.
Vprašanja za ponavljanje 1. Katera dva podatka povemo prevajalniku s podatkovnim tipom? 2. Kateri je osnovni in kateri najmanjši podatkovni tip za cela števila? Koliko pomnilniških lokacij zasedeta podatka teh dveh tipov? 3. Kakšna je razlika med celoštevilskimi in decimalnimi podatkovnimi tipi? 4. Katerim podatkom je namenjen podatkovni tip char? 5. Kaj je znakovni niz? 6. Kako napišemo ukaz za neposredno pretvorbo vrednosti v drug podatkovni tip? 7. Kdaj se zgodi samodejna pretvorba podatkovnega tipa? 8. Kaj dobimo, če znak pretvorimo v celo število? 9. Kaj dobimo, če število tipa byte pretvorimo v tip char?
70