13
UNIVERZITET U SARAJEVU ELEKTROTEHNIČKI FAKULTET Prezime i ime studenta: Potpis: Grupa: Datum: Laboratorijska vježba br. 1 iz predmeta OSNOVE RAČUNARSTVA Cilj vježbe: Ciljevi ove vježbe su: upoznati se s osnovnim elementima koji su potrebni za pisanje C programa u Code::Blocks razvojnom okruženju. To između ostalog uključuje: unos C programa, kompajliranje programa, unos prekidnih tački, te pregled vrijednosti varijabli u prekidnim tačkama; upoznavanje sa osnovnim naredbama kojima se ostvaruje unos ulaznih podataka u program, te prikaz izlaznih rezultata iz programa; osnovni koncepti vezani uz izraze, aritmetičke operatore, operator pridruživanja, deklaraciju varijabli i pretprocesorske naredbe.

Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

Embed Size (px)

Citation preview

Page 1: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

UNIVERZITET U SARAJEVUELEKTROTEHNIČKI FAKULTET

Prezime i ime studenta:Potpis:Grupa:Datum:

Laboratorijska vježba br. 1 iz predmeta

OSNOVE RAČUNARSTVA

Cilj vježbe:

Ciljevi ove vježbe su: ● upoznati se s osnovnim elementima koji su potrebni za pisanje C programa u Code::Blocks

razvojnom okruženju. To između ostalog uključuje: unos C programa, kompajliranje programa, unos prekidnih tački, te pregled vrijednosti varijabli u prekidnim tačkama;

● upoznavanje sa osnovnim naredbama kojima se ostvaruje unos ulaznih podataka u program, te prikaz izlaznih rezultata iz programa;

● osnovni koncepti vezani uz izraze, aritmetičke operatore, operator pridruživanja, deklaraciju varijabli i pretprocesorske naredbe.

Page 2: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

1   Pokretanje Code::Blocks okruženja 

Da biste počeli unos C programa u Code::Blocks okruženju slijedite upute:

1. Izaberite Start   Programs   ETF   CodeBlocks   CodeBlocks                                 → → → →

2. Kliknite na ikonu pored koje piše  Create a new project  (zaokružena na slici iznad), nakon čega će se pojaviti dijaloški okvir prikazan na slici 2. 

Slika 1

Slika 2

Page 3: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

3. U ovom dijaloškom okviru dvokliknite na ikonu ispod koje piše Console application, zatim Go, a onda kliknite na dugme Next. Pojaviće se dijaloški okvir prikazan na slici 3.

4. U  polje  Project   title:  unesite  naziv  projekta   koji   se   sastoji  od  broja  grupe,  broja tutorijala i broja zadatka, npr. g10­t2­z1 (što znači: Grupa 10, Tutorijal 2, Zadatak 1). Ponekad se dešava da je polje Folder to create project in: prazno. U tom slučaju nećete moći izabrati Next, nego najprije kliknite na dugme "..." označeno strelicom na slici 3, zatim izaberite folder My Documents. Zatim kliknite još jednom na dugme Next> kako biste došli do prozora za izbor programskog jezika prikazanog na Slici 4.  

Slika 3

Slika 4

Page 4: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

5. U ovom okviru   trebate   izabrati  programski   jezik  C  (a  nipošto  C++!!!)  kao  što   je naznačeno strelicom, te kliknuti na dugme Finish. 

6. Ovime   ste   dobili   jedan  potpuno   ispravan  C  program  koji   ne   radi   (skoro)   ništa   – odnosno na ekranu  ispisuje   tekst   "Hello  world!".  Da biste  unijeli  vlastiti  program, trebate  pobrisati  postojeći   program  i  početi  kucati.  No ovaj  program  je  sakriven, najprije  ga  morate  prikazati  koristeći   stablo  koje   se  nalazi   sa   lijeve   strane   radnog okvira Code::Blocks okruženja – kliknite na ikonu sa znakom "+" kako biste raširili folder Sources, a zatim dvokliknite na ikonu pored koje piše main.c (vidjeti Sliku 5). main.c je ujedno i naziv datoteke u kojoj se nalazi vaš program. 

 Slika 5

Page 5: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

2  Unos jednostavnog programa

a) U datoteku unesite kôd programa koji učitava tri broja, izračunava njihovu sumu a zatim sumu ispisuje na ekranu. Najprije pobrišite postojeći, automatski generisani kôd.

Napomena: Redne brojeve linija nemojte unositi.  Ti će nam brojevi u budućnosti služiti pri objašnjavanju i lakšem pozivu u tekstu na neku konkretnu liniju kôda.

Program T1.1

01 #include <stdio.h>02 int main(){03 float br1,br2,br3,suma;04 printf("\nUnesite prvi broj->");05 scanf("%f", &br1);06 printf("\nUnesite drugi broj->");07 scanf("%f", &br2);08 printf("\nUnesite treci broj->");09 scanf("%f", &br3);10 /* izracunavamo sumu tri broja*/11 suma=br1+br2+br3;12 printf("\n Suma unesenih brojeva je: %f \n",suma);13 return 0;14 }

Posebni znakovi:  Znakove koji nemaju svoju tipku unosite tako što držite desnu Alt tipku (označenu sa AltGr) i tipku u čijem je donjem desnom uglu ispisan traženi znak:

Posebni znak Kombinacija tipki

{ AltGr + B

} AltGr + N

[ AltGr + F

] AltGr + G

~ AltGr + 1

\ AltGr + Q

| AltGr + W

` AltGr + 7

Obratite pažnju da:\ (backslash) nije isto što i / (slash)| (pipe) nije isto što i veliko slovo I ili malo slovo l (L) ili broj 1` (backtick) nije isto što i ' (apostrof)

Page 6: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

Još   jedan  koristan  savjet:   između bosanskog  i  engleskog  rasporeda  tastature  prebacujemo kombinacijom tipaka Alt+Shift.

2. Pažljivo još  jednom provjerite da li ste korektno unijeli kôd programa. Kada ste sigurni da ste ispravno unijeli kôd programa pređite na njegovo pokretanje izborom opcije u meniju Build   Build and Run→  . Kraći način za pokretanje programa je treća ikona u drugom redu, koja je predstavljena plavim točkićem preko kojeg je nacrtana crvena strelica nadesno. Još kraći naćin je da pritisnete tipku F9 na tastaturi.

 Ako ste ispravno slijedili upute vaš jednostavni C program će biti izvršen.

Osim   rezultata   izvršenjna   programa   (zaključno   sa   redom   u   kojem  piše   "Suma   unesenih brojeva..."), ovaj prozor sadrži i nekoliko korisnih podataka. Prvi je povratna vrijednost (engl. return value) – broj koji se nalazi iza naredbe return u liniji 13. Ovo je korisno u slučaju da imate više  return  naredbi,  jer možete zaključiti  koja od njih se  izvršila.  Drugi podatak je ukupno vrijeme izvršenja programa. 

Da biste zatvorili ovaj prozor, možete pritisnuti bilo koju tipku.

2.1  Ispravljanje grešaka

Budući da su i studenti samo ljudska bića, vrlo je vjerovatno da program neće raditi iz prvog pokušaja. Slijedi nekoliko savjeta:

Pročitajte pažljivo tekst greške! Da biste dobili tekst kliknite na karticu Compile Log u dnu ekrana. 

Lijevo od linije u kojoj je otkrivena greška nalazi se crvena kockica. No ovisno od tipa greške, može se desiti da je greška ustvari u prethodnoj liniji, kao što je slučaj na slici 7.

Slika 6

Page 7: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

U slučaju sa slike, student je zaboravio staviti znak tačka­zarez u redu iznad reda označenog crvenim pravougaonikom. Poruka koju možete pročitati u kartici Build messages glasi:

syntax error before "printf"Dakle,  before  (na engleskom: prije) – greška je otkrivena na komandi  printf  jer je na tom mjestu   očekivan   znak   tačka­zarez   (u   C   programskom   jeziku,   razmaci   i   novi   redovi   se jednostavno ignorišu, dakle mogli ste zaista otkucati ; neposredno prije  printf  i program bi radio). 

Ono što treba uraditi u ovom slučaju je: postaviti kursor na kraj prethodnog reda koji počinje sa scanf(....) i otkucati znak tačka­zarez (;). Zatim ponovo pokrenite Build&Run.

3   Pregled datoteka i pokretanje programa bez Code::Blocks okruženja

1. Pomoću Windows Explorera potražite lokaciju vaše izvršne datoteke u My Documents folderu. U našem slučaju, pod My Documents  trebali biste imati folder pod nazivom g10­t2­z1.

2. Uočavate ikonu sa kockicama i opisom project file (Code::Blocks projekat) i ikonu sa opisom .C (sam program).

3. Ovu drugu datoteku možete otvoriti npr. u programu Notepad tako što kliknete na nju desnim dugmetom miša, izaberete Open With   Notepad→ . 

Slika 7

Page 8: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

4. Pored ovoga, možete uočiti folder pod nazivom bin, u kojem se nalazi folder Debug, a u   njemu   je   datoteka   koja   se   zove   kao   i   naš   projekat:  g10­t2­z1.   Ikona   datoteke simbolizuje prazan prozor. Ovo je ustvari sam naš  program. Možete dvokliknuti na ovu ikonu kako biste pokrenuli program.

Takođe, ako želite poslati program nekome ko nema Code::Blocks (ili neko drugo C razvojno okruženje), dovoljno je da pošaljete ovu datoteku.

Primijetite  da  nakon  što  unesete   treći   broj,   program se  zatvori.  To   je   zato  što   se konzolni programi zatvaraju odmah po završetku. To možete zaobići tako što u kôd programa dodate neku naredbu koja zaustavlja izvršenje (npr. još jedan scanf) ili tako što napravite prečicu (eng. shortcut) do programa u kojoj ćete definisati da se prozor treba zadržati.

 4   Postavljanje prekidnih tački

4.1   Načini postavljanja i uklanjanja prekidnih tački         

Prekidne   tačke   nam   omogućuju   da   na   određenim   mjestima   u   fazi   ispravljanja   programa napravimo prekid   izvođenja  programa.  Postavljanje  prekidne  tačke obavljamo na  slijedeći način:

1. Pozicioniranje na liniju u programu u kojoj želimo postaviti prekidnu tačku.2. a) Izabrati Debug   Toggle Breakpoint→  ili 

b) napraviti desni klik miša a zatim izabrati Toggle Breakpoint ilic) kliknite u sivi prostor sa lijeve strane kôda ali desno od broja linije ilid) pritisnite tipku F5.

3. Isti redoslijed akcija deaktivira prekidnu tačku na datoj lokaciji.

Nakon postavljene prekidne tačke na sivoj traci lijevo od teksta se pojavljuje crveni kružić. To je mjesto na koje trebate kliknuti da biste (de)aktiviriali prekidnu tačku.

4.2   Postavljanje prekidnih tački u programu P1.1 Napravite slijedeće korake:

1. Postavite prekidnu tačku u liniji 11 –   suma=br1+br2+br3;

2. Sada pokrenite program izborom opcije u meniju Debug   Start→  ili funkcijskom tipkom F8.

3. Izvršavanje programa će biti prekinuto u spomenutoj liniji. Sada možemo vidjeti koje trenutno vrijednosti imaju varijable br1, br2 i br3. 

Page 9: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

4. U meniju izaberite opciju Debug   Debugging windows →  Watches→ . Pojaviće se prozor za nadzor varijabli. 

5. Kliknite desnim dugmetom miša na ovaj prozor i izaberite opciju Add watch. Zatim u prozor koji se pojavi unesite naziv varijable koju želite nadzirati npr. br1. Pogledajte sliku 8 za prikaz kako bi vaš ekran trebao izgledati.

U prozoru Watch možemo unijeti jedno ispod drugog nazive varijabli kao i jednostavnije (npr. matematičke)   izraze   čije   vrijednosti   želimo   vidjeti   u   prekidnoj   tački.   U   ovom   primjeru, možete vidjeti da je vrijednost varijable br1 = 1.

4.3   Ostale opcije u meniju Debug

U   meniju  Debug  nalazi   se   još   nekoliko   važnih   opcija   koje   mogu   biti   korisne   tijekom ispravljanja programa. Spomenućemo samo najčešće korištene:

• Stop debugger: Omogućuje prekid izvođenja programa i isključuje debugging režim. Kada ponovo kliknete na Debug  Start→ , izvođenje će početi ispočetka.

• Continue : Omogućuje da se nastavi izvođenje programa od one tačke u kojoj je izvršavanje programa trenutno zaustavljeno.

Slika 8

Page 10: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

• Next line: Izvodi samo sljedeću liniju programa (i ništa više). Ako je sljedeća naredba   poziv   potprograma,   potprogram   se   u   cjelosti   izvede,   a   izvođenje   se zaustavlja na slijedećoj naredbi iza poziva potprograma.

• Next instruction:  Izvodi   sljedeću naredbu.  Sjetite   se  da   razmaci   i   novi redovi ne znače ništa u C­u, tako da se može više naredbi nalaziti u istoj liniji, ili se jedna naredba može prostirati preko više linija.

• Step into:  Izvodi   samo   sljedeću   naredbu   programa   (i   ništa   više).   Ako   je sljedeća  naredba  poziv  potprograma,   izvođenje  programa  se  nastavlja  na  prvoj naredbi u tom potprogramu.

• Run to cursor:  Izvodi sve naredbe do trenutne lokacije na kojoj se nalazi kursor za unos teksta.

Svim spomenutim naredbama možete pristupiti i preko ikona koje se nalaze u trećem redu, nakon što pokrenete debug režim. Ako želite da zatvorite ovaj  prozor za nadzor varijabli, kliknite na X u njegovom gornjem desnom uglu.

4.4   Eksperimentiranje sa izvršavanjem programa naredbu po naredbu

1. Izvedite   program   naredbu   po   naredbu   koristeći   opciju  Debug     Next   line→   ili funkcijsku tipku F7.

2. Tijekom   izvođenja   programa   u   prozoru  Watches  promatrajte   šta   se   događa   sa varijablama br1, br2, br3 i suma. 

Šta sve moramo izvesti da bismo ovo postigli?

Page 11: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

5   Unos i izvšenje složenijeg programa

Unesite slijedeći program s predavanja:

#include <stdio.h>#define PI 3.14

int main(){ float R, P, V; /* Unos poluprecnika sa tastature i izracunavanje */ printf (“\Unesite poluprecnik:”); scanf (“%f”, &R); P=(R*R)*PI; V=(4/3)*R*R*R*PI; /* Ispis na monitoru*/

printf(“\n Povrsina kruga sa poluprecnikom %2f je %.2f”, R, P); printf(“\n Zapremina kugle sa poluprecnikom %2f je %.2f”, R, V); return 0;}

a) Analizirajte program.

b) Kompajlirajte program.

c) Testirajte program tako što ćete unijeti tri puta različite vrijednosti za poluprečnik.

Page 12: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

6  ZADATAK ZA PROVJERU RAZUMIJEVANJA PRVOG ZADATKA

6.1 Modificirajte prethodni program tako da program pored površine kruga i zapremine kugle sa poluprečnikom R izračunava i površinu lopte sa tim poluprečnikom. 

Napomena: Površina lopte se računa po formuli:

P = 4∙R2 

gdje je

R ­ poluprečnik lopte.

7  ZADACI ZA SAMOSTALNU VJEŽBU

7.1 Napraviti program koji učitava koordinate dvije tačke u trodimenzionalnom prostoru: 

Tačke t1 i t2 su definirane kao trojke:

4. t1=(x1, y1, z1) ,

5. t2=(x2, y2, z2).

Kao izlaz program daje udaljenost između tih tački.

NAPOMENA: Za drugi korijen koristiti funkciju sqrt() koja je definirana u datoteci math.h. Na primjer, naredba

a=sqrt(9);

će izračunati drugi korijen iz 9 i pridružiti izračunatu vrijednost varijabli a.

Page 13: Laboratorijska vježba br. 1 iz predmeta OSNOVE · PDF file03 float br1,br2,br3,suma; 04 printf ... znak tačka­zarez u redu iznad reda ... površinu i zapreminu tog geometrijskog

7.2  Zadato je geometrijsko tijelo kao na slici 1. Odredite koji su potrebni ulazni podaci u program, te napravite program koji izračunava površinu i zapreminu tog geometrijskog tijela. U zadatku koristite simboličku konstantu za broj PI, odnosno naredbu define.  Izlazna poruka treba biti slijedećeg formata:

Povrsina  tijela sa slike je 5.234 cm2.Zapremina tijela sa slike je 16.200 cm3.

7.3 Napravite C program koji učitava potrošnju električne energije u KWh (velika tarifa (VT) i mala tarifa (MT)) i pripadajuće cijene po KWh (cijena za malu tarifu i cijena za veliku tarifu).

Kao izlaz program daje:

6. ukupnu potrošnju u KWh;7. novčani iznos računa;  8. udio velike tarife i male tarife u ukupnoj potrošnji. 

Izlaz iz programa treba biti slijedećeg formata:

Ukupna potrosnja je 234.25 KWh.Udio velike tarife u ukupnoj potrosnji je 25%.Udio male tarife u ukupnoj potrosnji je 75%.Iznos racuna je 25.45 KM. 

Slika 1