PROGRAMIRANJE C JEZIKOM - Pomorski fakultet u Splitu

76 downloads 244 Views 541KB Size Report
SVEUČILIŠTE U SPLITU. POMORSKI FAKULTET U SPLITU. PROGRAMIRANJE C JEZIKOM. Nastavni materijal za studente Pomorskog fakulteta u Splitu.
SVEUČILIŠTE U SPLITU POMORSKI FAKULTET U SPLITU

PROGRAMIRANJE C JEZIKOM Nastavni materijal za studente Pomorskog fakulteta u Splitu

Ak. god 2012/13

Programiranje C jezikom

Upute za rad s DEV-C++ radnim okruženjem Pokretanje sučelja: Start → All Programs → Bloodshed Dev-C++ → Dev-C++ Nakon pokretanja programa pojavi se sučelje kao na slici:

Slika 1. Početno sučelje

Prvi korak u kreiranju C programa je otvaranje nove datoteke koja će sadržavati program, tj. u koju će se program pisati. Na ovim vježbama će biti korištena samo jedna datoteka pri izradi programa. Nova datoteka se otvara tako da se iz izbornika File odabere opcija New → Source File. Time je otvorena nova prazna datoteka s nazivom Untitled1, dakle potrebno joj je dodijeliti naziv i tip, te lokaciju na kojoj će biti smještena. To je najbolje uraditi odmah (iako se može i po završetku pisanja programa) na način: File → Save As, zatim u polju File name unijeti naziv datoteke, u polju Save as type odabrati opciju C source files (*.c), a u polju Save in odabrati lokaciju na kojoj će datoteka biti spremljena.

1

Programiranje C jezikom

Slika 2. Otvaranje, imenovanje i spremanje nove datoteke

PRVI PROGRAM Nakon gore navedenih koraka sve je spremno za pisanje, prevođenje (kompiliranje) i izvršavanje programa. Možemo govoriti o 4 faze izrade programa: 1. pisanje izvornog koda – Pomoću DEV-C++ editora stvara se tekstualna datoteka koja sadrži izvorni kod programa. 2. prevođenje(kompiliranje) izvornog koda – pomoću prevodioca(kompilatora) se izvorni kod prevodi u objektni, a zatim i u izvršni kod. Ako kompilator dojavi da u izvornom kodu postoje leksičke ili sintaktičke pogreške, ponavlja se korak 1 i ispravljaju pogreške. 3. povezivanje u izvršni kod. 4. testiranje programa Primjer: Pomoću DEV-C++ editora otvorite novu datoteku koju ćete nazvati PrviProg.c, te upišite slijedeći programski kod: #include int main() { printf("Hello World!"); system("pause"); return 0; } 2

Programiranje C jezikom

Pohranite program u datoteku PrviProg.c opcijom File → Save. Sada bi vaš program trebao izgledati otprilike kao na slici:

Slika 3. Program je spreman za prevođenje, povezivanje i izvršavanje

Prevođenje(kompiliranje) programa izvodi se opcijom: Execute → Compile Kompiler(prevoditelj): U postupku prevođenja izvornog koda prevoditelj(kompiler) provjerava sintaksu napisanog izvornog koda i javlja moguće pogreške, compile – time errors. Stvara se datoteka objektnog tj. strojnog koda koja ima ekstenziju ime_programa.o. Taj strojni kod još uvijek nije pogodan za izvršavanje na računalu. Linker(povezivač): Naime, za izvršavanje programa potrebno je odrediti veze s operativnim sustavom i memorijske lokacije programskih objekata. Potrebno je povezati objektni, tj.strojni kod i već postojeće biblioteke u kojima se nalaze već gotove funkcije i podaci. To se vrši programom koji se zove povezivač ili linker. Linker također provjerava moguće pogreške u ovom procesu. Nakon obrade linkerom,te ukoliko nije bilo pogrešaka prilikom prevođenja i povezivanja dobije se datoteka izvršnog koda s ekstenzijom ime_programa.exe.

3

Programiranje C jezikom Osim pogrešaka (engl.errors), prevoditelj i povezivač mogu javiti i upozorenja (engl.warnings). Ta upozorenja neće spriječiti prevođenje, povezivanje i izvršavanje programa, ali predstavljaju opasnost, te ih je najbolje ukloniti. Navedenom naredbom Execute → Compile u DEV-C++ editoru pokreće se i prevođenje(kompiler) i povezivanje(linker), te ukoliko nema grešaka kao rezultat dobivamo izvršnu (.exe) datoteku spremnu za pokretanje programa, a prozor će izgledati kao na slici:

Slika 4. Izgled prozora ukoliko nema pogrešaka

Ukoliko je program imao grešaka, onda će se u donjem dijelu sučelja otvoriti prozor sa listom grešaka, uz objašnjenje istih, te će linija koda u kojoj je detektirana greška biti označena crvenom pozadinom kao na slici:

Slika 5. Izgled prozora s pogreškom 4

Programiranje C jezikom Greške je potrebno ispraviti u programskom kodu te ponovo prevesti program. Tek onda kada nema više grešaka može se pristupiti pokretanju programa. Pokretanje programa izvodi se opcijom: Execute → Run Učitavanje izvršne datoteke u memoriju računala vrši program koji se naziva punjač (engl.loader). On je sastavni dio operativnog sustava računala. Izvršni kod još uvijek ne jamči da će program uspješno raditi. Program treba testirati. Moguće greške u ovoj fazi se nazivaju run – time errors. Za testiranje programa postoje različiti programi (engl.debugger) po kojima testiramo program po unaprijed zadanim naredbama i koji testiraju program naredbu po naredbu, ispisuju trenutne vrijednosti pojedinih podataka u programu i prekidaju izvođenje. OSNOVNA STRUKTURA C PROGRAMA C programi u osnovi imaju slijedeću strukturu: /* ZAGLAVLJE */ INCLUDE dio KONSTANTE I TIPOVI GLOBALNE VARIJABLE FUNKCIJE void main()

/* Sadrži ime programa, ime autora…*/ /* Sadrži #include izraze */ /* Sadrži tipove i #define izraze */ /* Ako postoje globalne varijable. deklariraju se ovdje */ /* Funkcije koje definira korisnik */ /* glavna funkcija */

{ } ANALIZA PROGRAMA „PrviProg.c“: C programi se sastoje od niza potprograma koji se zovu funkcije C-jezika. U programu PrviProg.c definirana je samo jedna funkcija, nazvana main(). Ona mora biti definirana u svakom C programu, jer predstavlja mjesto početka izvršavanja programa. Programer može definirati nove funkcije, svaku s jedinstvenim imenom, a mogu se koristiti i prethodno definirane funkcije iz standardne biblioteke funkcija C jezika. Radnje koje obavlja neka funkcija zapisuju se unutar tijela funkcije. Tijelo funkcije je omeđeno vitičastim zagradama. U ovom je slučaju u tijelu funkcije iskaz koji predstavlja naredbu da se pomoću standardne C funkcije printf(), na standardnoj izlaznoj jedinici, ispiše poruka „Hello World!“. Značenja pojedinih dijelova programa dana su u tablici1.

5

Programiranje C jezikom

#include

int main()

#include predstavlja pretprocesorsku direktivu.Ona označava da u proces kompiliranja treba uključiti sadržaj datoteke imena „stdio.h“. Ta datoteka sadrži deklaracije funkcija iz standardne biblioteke C jezika. Ovo je zaglavlje funkcije imena main. int označava tip vrijednosti (cijeli broj) koji vrća funkcija na kraju svog izvršenja.

return 0;

{ Označava početak tijela funkcije main. Ovo je naredba za poziv standardne funkcije printf(), kojom se ispisuje niz znakova (string) koji je argument ove funkcije. Znak točak-zarez označava kraj naredbe. Ovo je naredba za poziv standardne funkcije system(); koja kao argument prima (string). U ovom slučaju argument je “ pause“ pa će program Command Prompt prozor na kojem je ispisan tekst „Hello World!“ ostaviti uključen dok god korisnik ne pritisne neku tipku na tipkovnici. main() „vraća“ vrijednost 0 , što se uobičajeno koristi kao oznaka uspješnog završetka programa.

}

} Označava kraj tijela funkcije main.

{ printf(“Hello World!“);

system(“pause“);

Tablica 1. Značenje pojedinih dijelova programa PrviProg.c

6