Te�aj C - Poglavje 2

Za�nimo s C

VA� PRVI PROGRAM C

Primer programa  ------> TRIVIAL.C

Najbolj�i na�in za za�etek u�enja C-ja je analiza samih programov, torej nalo�ite datoteko TRIVIAL.C in si jo prika�ite na zaslon. Ta program ne moremo nikakor poenostaviti ali �esarkoli izpustiti. �al pa program ne naredi ni�esar.

Beseda main je zelo pomembna in mora nastopiti enkrat in samo enkrat  v vsakem C-jevskem programu. To je to�ka v programu, kjer se za�ne izvajanje programa, ko ga po�enemo. Pozneje bomo videli, da ni potrebno, da je to
prvi stavek, mora pa obstajati kot vstopna to�ka. Besedi main sledita oklepaj in zaklepaj, ki sta znak za prevajalnik, da je to funkcija. Kaj natan�no je funkcija, bomo obdelali pozneje. Za zdaj vam predlagam, da vsaki� napi�ete oklepaj in zaklepaj.

Dva zavita oklepaja v drugi in tretji vrstici sta uporabljena, da definiramo meje samega programa. Dejanske programske stavke postavimo med ta dva zavita oklepaja, vendar v tem primeru ni nobenega stavka, saj program ne naredi ni�esar. Ta program lahko prevedete in po�enete, vendar, ker nima izvajalnih stavkov, ne naredi ni�esar. Zapomnite pa si, da to je veljaven C-jevski program. Ko boste prevedli ta program, se lahko zgodi, da vam bo
va� prevajalnik javil opozorilo (warning). Le-tega lahko ignorirate, saj ga bomo obrazlo�ili pozneje, lahko pa spremenite program na naslednji na�in :

    int main()
    {
       return 0;
    }
Ta spremenjeni program bi moral prevesti vsak dober prevajalnik za C, saj je skladen z ANSI-C standardom. Razlika med tema dvema programoma bo obrazlo�ena pozneje v tem te�aju.
 

PROGRAM, KI NEKAJ NAREDI

Primer programa ------> WRTSOME.C

Kot primer precej bolj zanimivega programa, nalo�ite program WRTSOME.C in ga prika�ite na va�em zaslonu. Program je enak prej�njemu, s to razliko, da ima med zavitima oklepajema en izvajalni stavek in �e obvezni
stavek return.

Izvajalni stavek je klic funkcije, ki je del va�e C knji�nice. �e enkrat nas ne bo skrbelo, kaj funkcija pravzaprav naredi, pa� pa le to, kako uporabljamo tole, imenovano printf(). Da bi izpisali tekst na zaslon, postavimo ta tekst med oklepaje, ki sledijo imenu funkcije, na za�etek ter konec teksta pa postavimo narekovaje. Kon�ni rezultat je, da se tekst, ki smo ga zapisali v narekovajih, izpi�e na zaslon, ko program po�enemo.

Bodite pozorni na podpi�je na koncu pete vrstice. C uporablja podpi�je kot zaklju�ek stavka, torej je podpi�je znak prevajalniku, da je vrstica kon�ana. Tudi ta program lahko izvedete, torej ga lahko prevedete in za�enete ter opazujete, �e res naredi tisto, kar ste predvidevali. Moral bi izpisati besedilo, ki ste ga napisali med oba narekovaja.

Stavke v vrsticah 1 in 7 lahko zaenkrat ignorirate kot tudi podobne stavke v ostalih programih v tem poglavju. Bolj podrobno bodo opisani pozneje v tem te�aju. Prav tako bomo bolj podrobno definirali, zakaj je beseda int
napisana na za�etku vrstice 3. Preden se lahko za�nemo ukvarjati s temi zadevami, moramo namre� predelati �e nekaj poglavij.
 

NASLEDNJI PROGRAM Z VE� IZPISA

Primer programa ------> WRTMORE.C

Nalo�ite program WRTMORE.C in si ga prika�ite na zaslonu kot primer programa z ve� izhoda in z novim majhnim, vendar pomembnim konceptom. Videli boste, da so v programu �tirje izvajalni stavki, izmed katerih je vsak klic funkcije printf(). Prvi printf bo izveden prvi, nato naslednji in tako dalje, dokler se ne bo izvedla �e �etrta vrstica.  Stavki se torej izvajajo zaporedno od vrha navzdol.

Bodite pozorni na nenavaden znak pri koncu prve vrstice, backslash (\). Ta se uporablja v printf() stavkih kot znak, da mu sledi poseben kontrolni znak. V tem primeru, znak "n" ka�e, da zahtevamo prehod v novo vrstico. To je indikator, da mora ra�unalnik vrniti kurzor na levo stran ekrana in ga premakniti za eno vrstico navzdol. Znak, s katerim zahtevate prehod v novo vrstico, lahko postavite kamorkoli v izpisani tekst. Lahko ga celo postavite na sredo besede in jo tako razdelite v dve vrstici.

Sedaj je mogo� celoten opis tega programa. Prvi printf() izpi�e vrstico besedila in postavi kurzor v naslednjo vrstico. Drugi printf() izpi�e vrstico besedila, vendar ne postavi kurzorja v naslednjo vrstico, tako, da se tretja vrstica doda na konec druge, nato sledita dva znaka za novo vrstico, posledica tega pa je prazna vrstica. Na koncu �e �etrti printf() izpi�e vrstico, postavi kurzor v naslednjo vrstico in program je kon�an.

Ko boste prevedli in pognali WRTMORE C, bi se vam na ekran moralo izpisati naslednje besedilo:
 

This is a line of text to output.
And this is another line of text.
This is a third line.


Prevedite in po�enite ta program in preverite, �e vam da tak izpis. Izpla�alo bi se vam, da bi ta program nekoliko spreminjali tako, da bi dodajali dodatne vrstice izpisa in tako videli, �e res razumete, kako ti stavki delujejo. Dodajte �e nekaj prehodov v novo vrstico na sredo vrstice in preverite, �e delujejo, kot je bilo re�eno, nato pa prevedite in po�enite spremenjeni program. Bolj kot boste spreminjali in prevajali primere, vsebovane v tem te�aju, ve� se boste nau�ili.
 

IZPI�IMO NEKAJ �TEVILK

Primer programa  ------> ONEINT.C

Nalo�ite datoteko z imenom ONEINT.C in si jo prika�ite na zaslonu kot prvi primer dela s podatki v C-ju. Vstopna to�ka main() bi vam morala biti jasna kot tudi za�etni zaviti oklepaj. Prva nova stvar, ki jo sre�amo, je vrstica 5, ki vsebuje besedilo int index; tega smo uporabili, da bi
definirali celo�tevilsko spremenljivko z imenom index. Besedica int je rezervirana beseda v C-ju, in jo ne moremo uporabiti za ni�esar drugega. Definira spremenljivko, v katero lahko shranimo celo �tevilo iz �e prej definiranega obmo�ja vrednosti. To obmo�je bomo definirali pozneje. Ime spremenljvke, index, je lahko katerokoli ime, ki je tvorjeno po pravilih za imenovanje identifikatorja in ni ena izmed rezerviranih besed v C-ju. Zadnji znak v vrstici, podpi�je, je, kot smo �e omenili, zaklju�ek stavka.

Bodite pozorni, da, �eprav smo definirali spremenljivko, ji �e nismo dodelili vrednosti, torej vsebuje nedefinirano vrednost. V poznej�ih poglavjih bomo videli, da bi lahko v isti vrstici definirali �e vec celo�tevil�nih spremenljivk, vendar pa ne bomo ote�evali trenutne situacije.

�e opazujete telo programa, boste videli, da vsebuje tri stavke, ki dodeljujejo vrednost spremenljivki index, vendar le eden naenkrat. Stavek v vrstici 7 index-u dodeli vrednost 13, njegova vrednost pa bo izpisana s pomo�jo vrstice 8. (Kmalu bomo videli kako. Trenutno mi morate verjeti na besedo.) Pozneje dodelimo spremenljivki index vrednost 27, nazadnje pa �e 10, vse vrednosti pa tudi izpi�emo na zaslon. Intuitivno bi Vam moralo biti jasno, da je index spremenljivka in lahko hrani veliko razli�nih vrednosti, seveda pa le eno naenkrat.

Bodite pozorni, da velikokrat uporabimo besedo "izpi�emo", mislimo pa "prika�emo na zaslonu". Videli boste, da si v veliko primerih izku�eni programerji dovolijo to svobodo, verjetno zato, ker se funkcija printf() uporablja za prikaz na monitorju.
 

KAKO IZPISUJEMO �TEVILA?

Da bi dr�ali na�o obljubo, se vrnimo k stavkom printf() in definirajmo, kako delujejo. Bodite pozorni na to, da so vsi identi�ni in da se vsi za�nejo enako kot printf() stavki, ki smo jih �e sre�ali. Prva razlika se pojavi, ko pridemo do znaka %. To je poseben znak, ki signalizira funkciji, naj neha izpisovati zanke na zaslon in naj naredi nekaj drugega, ponavadi izpi�e vrednost neke spremenljivke. Znak % uporabljamo, da opozorimo na izpis veliko razli�nih tipov spremenljivk, vendar se bomo v na�em primeru omejili le na eno. Znak, ki sledu %-u, je d, ki pove funkciji, naj sprejme decimalno vrednost in jo izpi�e. Od kod naj sprejme decimalno vrednost bomo razlo�ili kasneje. Za d-jem pride nam �e znani \n, ki je znak ra�unalniku, da postavi kurzor v naslednjo vrstico, nato pa sledi �e kon�ni narekovaj.

Vsi znaki med narekovajema definirajo vzorec podatkov, ki naj jih stavek izpisuje. Temu vzorcu sledi vejica, za njo pa najdemo ime spremenljivke index. To je mesto, kjer dobi printf() stavek decimalno vrednost, katero bo izpisal zaradi znaka %d, katerega smo videli malo prej. Sistem zamenja %d s trenutno vrednostjo spremenljivke index in jo izpi�e na ekran. Lahko bi dodali �e ve� %d opisnih polj izpisa kjerkoli v oklepaju in spremenljivk za opisom in s tem dosegli, da bi se ve� podatkov izpisalo z enim stavkom. Vseeno pa si zapomnite, da mora biti �tevilo opisnih polj in �tevilo spremenljivk enako ali pa bo ra�unalnik izpisal nekaj nepri�akovanega.

Ve� o vhodnem in izhodnem formatiranju bo re�eno pozneje. Relativno dobro poznavanje osnov te snovi je potrebno, da bi razumeli poznej�a poglavja. Zaenkrat �e ni potrebno, da veste vse o izhodnem formatiranju, le zmerno razumevanje osnov.

Prevedite in po�enite ONEINT.C in opazujte izpis. Dve nalogi iz programiranja na koncu tega poglavja sta namre� narejeni na osnovi tega programa.
 

KAKO V C-JU DODAJAMO KOMENTARJE?

Primer programa ------> COMMENTS.C

Nalo�ite datoteko z imenom COMMENTS.C in si jo oglejte na zaslonu kot primer, kako lahko dodajamo komentarje v C-ju. Komentarje dodajamo, da naredimo program bolj �itljiv za nas, vendar pa predstavljajo nesmisel za
prevajalnik, zato moramo prevajalniku sporociti, naj komentarje ignorira tako, da jih obdamo s posebnimi znaki. Za omejevanje komentarjev v C-ju se uporablja kombinacija slash (/) in zvezdica (*), kar je tudi prikazano v tem
programu. Bodite pozorni na to, da program ne ilustrira lepega komentiranja, pa� pa posku�a prikazati, kam vse lahko komentarje damo v programu. Ta program je namre� napisan zelo nemarno.

Kombinacija /* v vrstici 3 za�enja prvi komentar, zaklju�uje pa ga kombinacija */. Opazili boste, da je komentar vstavljen pred za�etkom samega programa za ilustracijo tega, da lahko komentar postavimo tudi pred program. Lep programerski na�in bi bil napisati komentar, ki bi na kratko opisal delovanje programa, pred sam program. Komentar v vrstici 5 je napisan po vstopni to�ki main in pred zavitim oklepajem, ki ozna�uje za�etek same programske kode.

Tretji komentar se za�ne po prvem izvedljivem stavku in se nadaljuje �ez naslednje �tiri vrstice. To je popolnoma veljavno, saj se lahko komentar nadaljuje �ez poljubno �tevilo vrstic, dokler ga ne zaklju�imo. Vseeno pazite, saj �e bi karkoli napisali na levo stran treh vrstic komentarja, bi bilo to del komentarja, ter se ne bi prevedlo, pa� pa bi prevajalnik to besedilo ignoriral. Zadnji komentar, v vrstici 15, se nahaja po zaklju�ku samega programa, kar ka�e, da lahko komentarje postavimo skoraj kamorkoli v C-jevski program.

Eksperimentirajte s tem programom tako, da vstavljate komentarje �e na druga mesta in opazujte, kaj se bo zgodilo ob prevajanju. Postavite znake za komentar pred in po enega od printf() stavkov in opazujte, da se res ne izvede in zato ne dobimo izpisa te vrstice na zaslon.

Komentarji so zelo pomembni v vsakem programskem jeziku, saj boste kmalu pozabili, kaj ste naredili v programu in zakaj ste to naredili. Veliko la�je boste �ez leto dni spremenili ali popravili program, ki je dobro komentiran, kot pa tistega brez ali z zelo malo komentarji. Zelo hitro boste tudi razvili svoj stil komentiranja.

Nekateri C prevajalniki dovoljujejo "gnezdenje" komentarjev, kar je zelo priro�no, ko �elite, da vam prevajalnik ignorira dele programa med prevajanjem. Ker pa "vgnezdeni" komentarji niso del ANSI-C standarda, jih v tem te�aju ne bom uporabljal. Preverite v va�i dokumentaciji, �e va� prevajalnik omogo�a gnezdenje komentarjev. �eprav bi to bilo omogo�eno, pa je dobra ideja, da se jim vseeno izogibate, saj jih tudi izku�eni programerji redko uporabljajo, njihova uporaba namrec zelo ote�ko�i prenos kode z enega prevajalnika na drugega, ki jih mogo�e ne podpira.
 

LEP STIL PISANJA PROGRAMOV

Primer programa ------> GOODFORM.C

Nalo�ite datoteko GOODFORM.C in si jo oglejte na va�em zaslonu. Je primer lepo formatiranega programa. �eprav je zelo kratek in zato ne naredi veliko, lahko �e na prvi pogled hitro vidimo, kaj naredi. Z izku�njami, ki ste jih �e pridobili s tem te�ajem, boste zelo hitro razumeli program v celoti. Va� C prevajalnik ignorira vse presledke in vse
prehode v nove vrstice in vam tako daje veliko svobode pri pisanju programov. Dodajanje in odvzemanje presledkov je tako stvar va�ega osebnega okusa. Prevedite in po�enite ta program ter opazujte, �e naredi, kar ste od njega pri�akovali.

Primer programa ------> UGLYFORM.C

Sedaj pa nalo�ite in si oglejte program UGLYFORM.C. Kako dolgo boste potrebovali, da bi videli, kaj naredi ta program? Prevajalniku ni pomembno, katerega od stilov uporabljate, pomembno pa je za vas, ko boste preverjali , �e program pravilno deluje. Prevedite program in ga po�enite. Morda boste presene�eni, ko boste ugotovili, da je program enak kot prej, razen kar se ti�e formatiranja. Ne skrbite �e prevec glede svojega stila programiranja. Imeli boste obilo �asa, da razvijete svoj stil pisanja programov medtem, ko se boste u�ili programskega jezika C. Bodite
pozorni na stil, ko vidite programe v C-ju v revijah in knjigah.

Pokrili smo nekatere osnovne koncepte programiranja v C-ju, vseeno pa je �e veliko stvari, ki se jih morate nau�iti, zato bomo �li naprej na dodatne programske strukture. Bilo pa bi v va�e dobro, da bi naredili programske naloge na koncu vsakega poglavja. Le-te so narejene zato, da poglobijo va� �tudij in vas nau�ijo dela z va�im prevajalnikom.
 

PROGRAMERSKE NALOGE

printf("Index is %d\n it still is %d\n it is %d",
                            index, index, index);
Povratek na kazalo

Prehod na poglavje 3


Copyright  1988-1997 Coronado Enterprises - Last update, March 15, 1997
Prevedel: Sa�o Kuntari�