Upload
phamdiep
View
222
Download
7
Embed Size (px)
Citation preview
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.
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
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. g10t2z1 (š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
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
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)
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
U slučaju sa slike, student je zaboravio staviti znak tačkazarez 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čkazarez (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čkazarez (;). 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 g10t2z1.
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
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: g10t2z1. 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.
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
• 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 Cu, 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?
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.
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.
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