uvod c programiranje

39
OPĆA PRAVILA C-a Stipe Predanić, dipl. ing., predavač dr. sc. Miroslav Slamić, prof. v. šk.

Upload: ivan-perich

Post on 26-Jan-2016

272 views

Category:

Documents


7 download

DESCRIPTION

Nauči progarmirati u C-u

TRANSCRIPT

Page 1: Uvod c Programiranje

OPĆA PRAVILA C-a

Stipe Predanić, dipl. ing., predavačdr. sc. Miroslav Slamić, prof. v. šk.

Page 2: Uvod c Programiranje
Page 3: Uvod c Programiranje

Opća pravila pisanja Opća pravila pisanja CC programa programa C je jezik slobodnog formata (nema pravila koja

propisuju stil pisanja) mjesto početka naredbe u retku je proizvoljno,

moguće je i poželjno umetanje praznina i praznih redova

Page 4: Uvod c Programiranje

Opća pravila pisanja Opća pravila pisanja CC programa programa dopušteno je stavljanje više naredbi u istom

retku. Npr: int i,n; printf("Unesite n: "); scanf("%d", &n);

C razlikuje velika i mala slova. Npr: sum,Sum,SUM

Page 5: Uvod c Programiranje

ANSI C - kANSI C - ključne riječiljučne riječi predefinirani identifikatori koji za prevodioca imaju

posebno značenje ključne riječi se pišu malim slovima Prema ANSI standardu C ima sljedeće 32 ključne riječi:

autobreakcasecharconst

continuedefault

do

doubleelse

enumexternfloatfor

gotoif

intlong

registerreturnshort

signedsizeof static

structswitchtypedefunion

unsignedvoid

volatilewhile

Page 6: Uvod c Programiranje

ANSI C – naredbe za deklaraciju varijabliANSI C – naredbe za deklaraciju varijabli

4 osnovna tipa podataka

charint

floatdouble

Kvalifikatorishortlong

unsignedsigned

Page 7: Uvod c Programiranje

Slijedećih par slikopisa su ovdje kako biste VI naučili

Slijedećih par slikopisa su ovdje kako bi

VI nešto zapamtili

Page 8: Uvod c Programiranje

Slijedećih par slikopisa su ovdje kako biste VI naučili

Žalbe pošaljite na [email protected]

Page 9: Uvod c Programiranje

Koja je razlika?Koja je razlika između kontejnera

pijeska i kontejnera beba?

Page 10: Uvod c Programiranje

Integer – floatInteger – cijeli brojevi (1, 2, 100, 200)Float – NE cijeli brojevi (1.1, 2.22,

3.141592)

INTEGER

FLOAT

Page 11: Uvod c Programiranje

Float - doubleDouble – podržava više decimala –

veća preciznost

Page 12: Uvod c Programiranje

Struktura Struktura CC programa programa C program se sastoji od imenovanih blokova,

deklaracija/definicija varijabli, direktiva pretprocesoru◦ imenovani blokovi se nazivaju funkcije. Za nazive

funkcija se ne smiju koristiti ključne riječi.◦ deklaracijom se opisuje naziv i tip varijable. Definicija

je deklaracija kojom se osim opisa varijable, rezervira prostor u memoriji

Page 13: Uvod c Programiranje

Struktura Struktura CC programa programa blok započinje znakom { i završava znakom } blok obuhvaća deklaracije/definicije, naredbe

(statement) i neimenovane blokove svaka naredba i deklaracija/definicija mora završavati

znakom ;◦ blok NE završava znakom ; tj. iza znaka } ne

stavlja se ;

Page 14: Uvod c Programiranje

Imenovani blokovi?

DONESI PIVO?

Page 15: Uvod c Programiranje

1/7/08 15

Struktura main funkcijeStruktura main funkcije

int main (void) {/* C komentar*/// C++ komentar

return 0;}

Ime funkcijeUlaz u funkciju (ništa)

Tip izlaza funkcije (integer)

Izlazna vrijednost (0)

Početak tijela funkcije

Završetak tijela funkcije

C naredbe

Komentari

C “završetak naredbi"

Page 16: Uvod c Programiranje

Struktura Struktura CC programa programaC program mora obavezno imati jednu glavnu

funkcija (main) koja predstavlja mjesto gdje počinje izvođenje programa:int main() { programski blok

return 0;}

Page 17: Uvod c Programiranje

Pretprocesorske naredbePretprocesorske naredbe#include <stdio.h> uključuje u

program prije prevođenja standardno zaglavlje <stdio.h> koje sadrži definicije tipova i funkcijskih prototipova (na primjer printf, scanf i druge).

Page 18: Uvod c Programiranje

VarijableVarijable Općenito: promjenljiv podatak (lat.variabilis-promjenljiv) U programiranju: varijabla je prostor u memoriji računala,

poznate veličine, kojemu je dodijeljeno ime i čiji se sadržaj može mijenjati

Simbolički se prikazuje pravokutnikom uz koji stoji ime

Smještaj u memoriji računala

x y

x y... ...

Page 19: Uvod c Programiranje

VarijableZamislite da za svoje stvari uzimate

kontejner iz OGROMNOG skladišta

Page 20: Uvod c Programiranje

VarijableVarijable svaka varijabla se obavezno mora definirati/deklarirati prije

korištenjaint i, n; float sum;

imena varijabli i funkcija su sastavljena od slova i brojki, a prvi znak mora biti slovo ili znak potcrtavanja _

suma god_rod x1 pripremni_dio_studij94god novi+datum x1.1 maticni broj

Page 21: Uvod c Programiranje

VarijableVarijable velika i mala slova se razlikuju (imena varijabli i

funkcija se obično pišu malim slovom, imena simboličkih konstanti velikim)

duljina može biti proizvoljna (značajno prvih 31 znakova)

ključne riječi se ne smiju koristiti za imena varijabli

Page 22: Uvod c Programiranje

#include <stdio.h>void main() {

float x, y, z, rez; //DEKLARACIJA VARIJABLI scanf("%f %f %f", &x, &y, &z); // ULAZ

printf("%f %f %f \n", x, y, z); // IZLAZ

/* odredi najveći broj */ rez = z; if ( x > y ) { if ( x > z) rez = x; // ALGORITAM } else { if ( y > z) rez = y; } printf("%f \n", rez); // IZLAZ

}

STIL PISANJA KODASTIL PISANJA KODA

Page 23: Uvod c Programiranje

23

FunkcijaFunkcija printfprintf#include <stdio.h>...int printf(const char *format, arg1, arg2,..., arg n);printf kao rezultat daje broj bajtova ispisanih na standardnoj izlaznoj jedinici (stdout). Argumenti mogu biti varijable, imena polja ili kompliciraniji izrazi.

Page 24: Uvod c Programiranje

24

ISPIS CIJELIH BROJEVAISPIS CIJELIH BROJEVA integer - BROJEVI◦ Ispis cijelih brojeva (bez decimalne točke): 25, 0, -9◦ Pozitivni, negativni ili nula◦ Samo se minus predznak ispisuj, ako nije drugačije

naglašenoPretvorbeni spec ifika tor

Opis

d Prikazuje SIGNED INTEGER . i Prikazuje SIGNED INTEGER (Napomena: i odnosno d

specifikatori imaju različitio značenje kada se koriste sa scanf.) o Prikazuje SIGNED OKTALNI broj. u Prikazuje UNSIGNED INTEGER. x or X Prikazuje UNSIGNED HEXADECIMAL BROJ. Veliko X

uzrokuje da slova A-F budu prikazana kao velik, a malo x uzrokuje ispis a-f kao mala slova.

h o r l ( l e t t e r l) Modifikatori dužine. Ispred specifikatora d određuje da se ispisuje short ili long INTEGER.

Page 25: Uvod c Programiranje

25

Ispis znakova i znakovnih nizova (stringova)Ispis znakova i znakovnih nizova (stringova)

c ◦ ispisuje char argument◦ Ne može se koristiti za ispis prvog znaka u stringu ili nizu

s◦ Zahtjeva pokazivač na tip char kao argument◦ Ispisuje znakove do NULL ('\0') znaka ◦ Ne može ispisivati char argument

Zapamtite◦ Jednostruki navodi za znak kao konstantu ('z')◦ Dvostruki navodi za stringove "z" (string u stvarnosti ima

dva znaka – sam znak z' i nul znak '\0')

Page 26: Uvod c Programiranje

26

Ispis s širinama polja i preciznošćuIspis s širinama polja i preciznošću

Širina polja◦ Veličina polja u koje se ispisuju podaci ◦ Ako je širina veća od podataka tipično

se poravnava po desnoj strani Ako je polje premalo, povećava se

automatski da bi podaci stali u polje Minus predznak uzima jednu znakovnu

poziciju u polju◦

Page 27: Uvod c Programiranje

27

Ispis s širinama polja i preciznošćuIspis s širinama polja i preciznošću

Širina polja

◦ Cjelobrojna vrijednost širine umeće se između % i pretvorbenog specifikatora◦ %4d – širina polja je 4

Page 28: Uvod c Programiranje

28

Ispis s širinama polja i preciznošćuIspis s širinama polja i preciznošćuPreciznost◦ Varira ovisno o tipu podataka◦ Cjelobrojne vrijednosti (tipično 1)

Minimalni broj znamenki za ispis◦ Floating point

Broj znamenki koji dolazi iza decimalne točke (e i f) Za g – maksimalni broj značajnih znamenki

Page 29: Uvod c Programiranje

29

Ispis s širinama polja i preciznošćuIspis s širinama polja i preciznošću•Preciznost◦ String (niz)

Maksimalni broj znakova koji će iz stringa biti ispisan◦ Format

Koristi se (.) a zatim broj koji određuje preciznost i sve to poslije %

%.3f

Page 30: Uvod c Programiranje

30

Ispis s širinama polja i preciznošćuIspis s širinama polja i preciznošću

Širina polja i preciznost◦ Oboje se mogu specificirati

%širina.preciznost%5.3f◦ Negativna širina polja – lijevo poravnanje◦ Pozitivna širina polja – desno poravnanje

Page 31: Uvod c Programiranje

31

Ispis s širinama polja i preciznošćuIspis s širinama polja i preciznošću

•Širina polja i preciznost◦ Preciznost mora biti pozitivan broj◦ Može se koristiti cjelobrojni izraz za određivanje širine polja

i preciznosti. Možemo staviti (*) na mjesto širine polja i preciznosti Primjer:

printf( "%*.*f", 7, 2, 98.736 );

Page 32: Uvod c Programiranje

32

FunkcijaFunkcija scanfscanf#include <stdio.h>...int scanf(const char *format, arg1, arg2,..., arg n);

scanf vraća broj uspješno obrađenih ulaznih polja koja povezuje s navedenim argumentima. Argumenti moraju odgovarati po broju, redoslijedu i tipu formatskim specifikacijama.

Page 33: Uvod c Programiranje

33

FunkcijaFunkcija scanfscanf#include <stdio.h>...int scanf(const char *format, arg1, arg2,..., arg n);

S obzirom da su argumenti pokazivači, za polje se navodi njegovo ime (pokazivač na nulti član), a za obične varijable se navodi njihova adresa (npr. &x).

Page 34: Uvod c Programiranje

34

FORMATIRANJE ULAZA SA FORMATIRANJE ULAZA SA sscanfcanf FUNKCIJOM FUNKCIJOMscanf◦ Formatiranje ulaza◦ Mogućnosti

Unos svih tipova podataka Unos specifičnih znakova Preskakanje specifičnih znakova

Page 35: Uvod c Programiranje

35

Format◦ Scanf (format kontrolni string, ostali argumenti);◦ Format kontrolni string

Opisuje format upisa◦ Ostali argumenti

Pokazivač na varijable u koje će unos biti pohranjen◦ Može uključivati ŠIRINU POLJA radi čitanja specificiranog

broja znakova sa ulazne konzole

FORMATIRANJE ULAZA SA FORMATIRANJE ULAZA SA sscanfcanf FUNKCIJOM FUNKCIJOM

Page 36: Uvod c Programiranje

36

FORMATIRANJE ULAZA SAFORMATIRANJE ULAZA SA scanfscanfPretvorbeni spec ifika tor OPIS

Integers – cjelobrojni brojevi d Čita SIGNED dekadski INTEGER. Odgovarajući argument je

pokazivač na INTEGER i Čita opcionalno SIGNED dekadski, oktalni ili heksadecimanlni

INTEGER. Odgovarajući argument je pokazivač na INTEGER. o Čita OKTALNI INTEGER broj . Odgovarajući argument je

pokazivač na UNSIGNED INTEGER. u Čita UNSIGNED dekadski INTEGER. Odgovarajući argument je

pokazivač na UNSIGNED INTEGER. x or X Čita HEKSADECIMALNI INTEGER broj . Odgovarajući

argument je pokazivač na UNSIGNED INTEGER. h or l Stavlja se3 prije bilo kojge integer pretvorbenog specifikatora

specifiers da bi odredio short ili long integer unos. Floating-point brojevi e, E, f, g ili G Čita FLOATING-POINT vrijednost. Odgovarajući argument je

pokazivač na float varijablu l ili L Ako se stavi ispred floating-point pretvorbenih specifikatora

specifiers tada označava da je double ili long double vrijednost ulaz.

Page 37: Uvod c Programiranje

37

FORMATIRANJE ULAZA SAFORMATIRANJE ULAZA SA scanfscanfnastavak

P r e t v o r b e n i s p e c i f i k a t o r OPIS Znakovi i stringovi c Čita znak. Odgovarajući argument je pokazivač na char, ne

doddaje se NULL znak ('\0') . s Čita string (niz). Odgovarajući argument je pokazivač na polje

tipa char koje je dovoljno veliko da prihvati string i doda automatski na kraj NULL znak ('\0').

Skup zadanih zbakova [scan znaci] Skenira string prema skupu znakova koji su pohranjenni u polju. Ostali p Čita adresu na isti način kao kod naredbe printf sa %p. n Pohranjuje broj unešenih znakova u trenutnoj scanf naredbi.

Odovarajući argument je pokazivač na int % Preskače znak postotka (%) na ulazu.

Page 38: Uvod c Programiranje

Primjer formatnih specifikatora za Primjer formatnih specifikatora za izlazne (printf) instrukcijeizlazne (printf) instrukcije

Page 39: Uvod c Programiranje

Primjer formatnih specifikatora za Primjer formatnih specifikatora za ulazne (scanf) instrukcijeulazne (scanf) instrukcije