41
PROGRAMSKI JEZIK “C” Dušan Stojanović Računari i programiranje OSNOVNI POJMOVI O JEZIKU Jezik C je programski jezik visokog nivoa pogodan i za sistemsko programiranje. To je jezik sa modernom kontrolom programa, sa mogućnošću definisanja različitih struktura podataka, sa velikim skupom operatora i tipova podataka. Jezik C je posebno pogodan za projektovanje operativnih sistema i njegovih pomoćnih programa, naučnih aplikacija i sistema za upravljanje u realnom vremenu. U mašinstvu programski jezik se koristi za rešavanje određenih zadataka vezanih za predmete: Mašinski elementi, Mehanika, Otpornost materijala i Konstruisanje.

Za Prvi Test Racunari i Programiranje2

Embed Size (px)

DESCRIPTION

Materijal za test

Citation preview

Page 1: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

OSNOVNI POJMOVI O JEZIKU

Jezik C je programski jezik visokog nivoa pogodan i za sistemsko programiranje. To je jezik sa modernom kontrolom programa, sa mogućnošću definisanja različitih struktura podataka, sa velikim skupom operatora i tipova podataka.

Jezik C je posebno pogodan za projektovanje operativnih sistema i njegovih pomoćnih programa, naučnih aplikacija i sistema za upravljanje u realnom vremenu.

U mašinstvu programski jezik se koristi za rešavanje određenih zadataka vezanih za predmete: Mašinski elementi, Mehanika, Otpornost materijala i Konstruisanje.

Page 2: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Raćunari i programiranje

ZADATAK PROGRAMIRANJAU izradi programa postoje sledeće faze:

-Utvrđivanje zahteva-Projektovanje programa-Pisanje programa-Provera programa-Završno uobličavanje programa

ODREĐIVANJE ZAHTEVAPrilikom programiranja treba precizno formulisati problem

gde se nedvosmisleno uočavaju zadate veličine i veličine koje treba odrediti. Ovo ćemo ilustrovati na sledećem primeru, koji se odnosi na zadatak iz mehanike.

Page 3: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Iz Beograda i Niša istovremeno u susret polaze dva automobila krećući se brzinama 54 km/h i 72 km/h. Posle kog vremena i na kom mestu će se automobili sresti?

Pisati program za rešavanje ovakvog problema na računaru nema smisla jer se radi o pojedinačnom problemu a program treba da rešava što šire aspekte sličnih problema. Međutim, ovaj zadatak može se postaviti i ovako: Iz dva grada na rastojanju D km krenu istovremeno dva

automobila jedan drugom u susret krećući se brzinama V1 i V2. Posle kog vremena i na kom mestu će se automobili sresti? Ovako postavljen problem rešava klasu srodnih problema. Sada mogu to biti bilo koja dva grada a automobili se mogu kretati bilo kojom brzinom.

Page 4: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

PROJEKTOVANJE PROGRAMAPosle dobro postavljenog problema dolazi faza njegovog

rešavanja. U rešavanju polazimo od postavke problema. Iz postavke zadatka moramo dobro razumeti šta je poznato a šta se traži. U stvari, rešavanje problema se sastoji u tome da se tražene veličine odrede ili izračunaju, na osnovu poznatih ili zadatih veličina. Da bismo ovo uradili, neophodno je da uspostavimo veze između poznatih i nepoznatih veličina, koja će nam omogućiti da sprovedemo neophodna izračunavanja. Da bismo uspostavili veze izmedju ulaznih i izlaznih veličina, u ovom slučaju neophpdno nam je znanje iz predmeta Mehanika, oblast Pravolinijsko kretanje. Ako pažljivo pročitamo zadatak, vidimo da su poznate veličine rastojanje između gradova D i brzine kretanja automobila V1 i V2.

Nepoznate veličine su rastojanje mesta susreta automobila od

gradova, označimo ih sa D1 i D2 i vreme susreta T.

Page 5: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Sa slike se vidi jedna veza – ograničenje da je: D=D1+D2Međutim jedna veza ovde nije dovoljna za rešavanje problema. Zato moramo tražiti nove veze. Ove veze treba tražiti, pre svega, između poznatih i nepoznatih veličina koje nisu obuhvaćene već navedenom vezom. U našem primeru veličine V1, V2 i T se ne javljaju u postojećoj vezi. Ovde nam treba znanje iz Mehanike da je “pređeni put jednak proizvodu brzine i vremena”. Tako sada imamo dve veze:

Page 6: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

D1=V1*TD2=V2*T

Kako je vreme T isto za oba automobila, zamenom u prvu jednačinu za ukupno rastojanje D imaćemo:

D=D1+D2=V1*T+V2*T=T(V1+V2) Rešavanjem ove jednačine po T dobićemo:

T=D/V1+V2Iz ove jednakosti za zadato D, V1 i V2 možemo izračunati T a zatim iz prethodnih veza izračunamo D1 i D2 i tako smo problem rešili i pripremili za pisanje algoritma.

ZAPIS ALGORITMAKada smo uspostavili sve moguće veze između poznatih i nepoznatih veličina, rešili smo problem. Ako želimo da na osnovu poznatih veličina izračunamo nepoznate moramo sastaviti postupak u kome ćemo precizno definisati redosled izračunavanja.

Page 7: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Ovakav postupak rešavanja nekog zadatka nazivamo

algoritam.

Page 8: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

PISANJE PROGRAMADa bismo napisali program za prethodni problem mora da poznajemo sintaksu programskog jezika “C”.

Sintaksa programskog jezika je pravilan način pisanja određenih naredbi za taj programski jezik./*Iz dva grada na rastojanju D km krenu istovremeno dva automobila jedan drugomu susret krecuci se brzinama V1 i V2 km/h.Posle kog vremena i na kom mestu ćese automobili sresti?*/

#include<stdio.h>#include<math.h>main(){float D,V1,V2,T,D1,D2;printf("Unesi rastojanje izmedju gradova u km:\n");scanf("%f",&D);printf("Unesi brzinu prvog automobila u km/h:\n");scanf("%f",&V1);printf("Unesi brzinu drugog automobila u km/h:\n");scanf("%f",&V2);T=D/(V1+V2);D1=V1*T;D2=V2*T;printf("Vreme susreta je posle:T=%f sati\n",T);printf("Predjeni put prvog automobila je:D1=%f km\n",D1);printf("Predjeni put drugog automobila je:D2=%f km\n",D2);getch();}

Page 9: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

PROVERA PROGRAMAProvera ispravnosti-korektnosti programa jeste operacija koja

treba da pokaže da li program za zadate ulazne podatke daje tačan rezultat. Ova operacija naziva se testiranje programa. Ako se pri prevođenju programa nađe greška, ona se mora otkloniti jer takav program ne radi uopšte.Greške u pogramu mogu biti sintaksne i semantičke.

Sintaksna greška se odnosi na pravilan zapis naredbe u programu i kontroliše je prevodioc ili interpretator.

Semantička greška je jezička greška u logici rešenja koja je ostvarena u programu i takva greška ne mora biti otkrivena u toku izvršavanja programa.

Page 10: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

GRAFIČKO PRIKAZIVANJE ALGORITMAGrafičko prikazivanje algoritma u obliku dijagrama toka

daje najviše uvida u strukturu predstavljene obrade problema. Postoje dve vrste dijagra matoka:1) Standardni2) Strukturirani

STANDARDNI DIJAGRAM TOKANajvažniji elementi standardnog dijagrama toka dati su na

sledećoj slici: Početak programa Kraj programa

Element početak ima jednu odlaznu granu i obeležava mesto odakle počinje algoritam.

Page 11: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Ulazni podaci Obrada podataka Skretnica

Kolektor Izlazni podaci Baza podataka

Page 12: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Element obrada predstavlja određene radnje nad podacima. Ima jednu dolaznu i jednu odlaznu granu. Može da sadrži i veći broj radnji zbog čega je njegov sadržaj obeležen kao blok. Jedino unutar elementa obrada mogu da se dobiju neki rezultati na osnovu odgovarajućih početnih podataka.

Element skretnica služi za grananje u dijagramu duž jedne od odlaznih grana. Sadržaj skretnice je uslov. Ako je uslov ispunjen, obrada se nastavlja duž grane koja je obeležena oznakom T (True - Istinito). Ako uslov nije ispunjen, nastavlja se duž grane sa oznakom F (False - Pogrešno).

Pomoću elementa kolektor nekoliko dolaznih grana spajaju se u jednu odlaznu granu, a pri tome se ne vrši nikakva obrada ili ispitivanje.

Kraj algoritma obeležava se sa kraj. Taj element ima samo jednu dolaznu granu.

Page 13: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

STRUKTURIRANI DIJAGRAMI TOKA

Strukturirani dijagrami tokova su novijeg datuma i podržavaju principe strukturiranog programiranja. Strukturirano programiranje podrazumeva algoritme i programe sa jasno definisanom i lako razumljivom strukturom.

Nasledećoj slici su prikazani osnovni elementi strukturiranog dijagrama toka:

Obrada Selekcija Ciklus

Page 14: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Standardni i strukturirani dijagrami tokova

Page 15: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

IDENTIFIKATORIIdentifikatori služe za označavanje svih vrsta elemenata

programa: Promenljive, Simboličke konstante, Tipove podataka koje definiše korisnik, Labele koje služe kao odredište za naredbe skokova i Potprogrami.

Identifikator se sastoji od slova (od a do z i A do Z) i cifara (od 1 do 9) i znaka povučeno ( _ ). Da bi se razlikovao od broja, identifikator mora početi slovom ili znakom podvučeno ( _ ). Pravi se razlika između malih i velikih slova, a to znači da su G i g dva različita identifikatora.

Nekoliko primera ispravnih identifikatora: alfaALFAdozvoljeni _ naponstepen _ sigurnostix55 _ 123početna _ brzinaV1

Page 16: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Nekoliko primera neispravnih identifikatora:13a55 /* prvi znak ne sme da bude cifra */alfa, beta /* znakovi interpunkcije nisu dozvoljeni */x-y /* operatori nisu dozvoljeni */int /* rezervisane ključne reči nisu dozvoljene */

Rezervisane ključne reči predstavljaju unapred definisane reči nekog programskog jezika, i one se ne smeju prikaziva ti kao identifikatori. U jeziku C to su sledeće reči:

auto double int structbreak else long switchcase enum register tupedefchar extern return unionconst float short unsignedcontinue for signed voiddefault go to size of volatiledo if static while

Page 17: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

PROMENLJIVEJezik C koristi promenljive čija je osnovna funkcija vrlo slična

promenljivama u matematici. Svaka promenljiva ima svoje ime i može joj se dodeliti određena vrednost. U stvari, pomenljiva je identifikator kojem se može dodeliti vrednost u programu. Sve promenljive moraju se deklarisati na početku programa pre nego što počnu da se koriste. Deklaracijom se navode tip, naziv i eventualno početna vrednost promenljive. Pažljivo treba odabrati ime promenljive jer ono asocira na namenu promenljive u programu.

U jeziku C postoje tri osnovna tipa promenljive: - Int (celobrojna promenljiva)- Float (brojna promenljiva u pokretnom zarezu – realan broj)- Char (znakovna promenljiva)

Page 18: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Promenljiva tipa int predstavlja pozitivnu ili negativnu celobrojnu vrednost. Postoje tri tipa int promenljive:- int - short int- long int

Uz ova tri tipa celobrojne promenljive postoje i tri dodatna tipa koja se dobijaju dodavanjem rezervisane reči unsigned:- unsigned int- unsigned short int- unsigned long int

Svaka promenljiva jednog od ova tri dodatna tipa odgovara po veličini odgovarajućem tipu bez unsigned, samo je vrednost brojne promenljive koja je smeštena u njih uvek nenegativna.

Promenljiva tipa float predstavlja brojnu vrednost datu u pokretnom zarezu. Postoje dva tipa ove promenljive:- float- double

Page 19: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Promenljiva tipa char je promenljiva kojoj možemo dodeliti samo jedan znak iz datog skupa znakova. Prema tome dužina promenljive char je 1 bajt (B) i ona je smeštena kao brojna vrednost koja odgovara internom predstavljanju dodeljenog znaka. Znak koji se dodeljuje ovom tipu promenljive mora uvek biti dat između dva apostrofa.

KONSTANTEKonstante predstavljaju promenljive koje ne menjaju vrednost

tokom izvšenja programa. U programskom jeziku C postoje sledeće konstante: - celobrojne konstante- realne konstante- znakovne konstante- konstantni znakovni nizovi- simboličke konstante- nabrojane konstante

Page 20: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

CELOBROJNE KONSTANTECelobrojne konstante na jeziku C mogu da se pišu u

decimalnom, oktalnom i heksadecimalnom brojnom sistemu.

Sintaksni dijagram celobrojne konstante

Page 21: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Decimalne konstante se sastoje od niza decimalnih cifara ispred koga može da se nalazi predznak + ili - . Prva cifra u nizu ne može da bude nula. Ukoliko nedostaje predznak, broj se smatra pozitivnim.

Konstanta čija je prva cifra ( 0 ) pripada oktalnom brojnom sistemu tj. brojnom sistemu sa osnovom 8. Dozvoljene cifre su 0,1, ..., 7.

Sintaksni dijagram oktalne cifre

Heksadecimalne konstante (osnova brojnog sistema 16) počinju znakovima 0x ili 0X. Šesnaest heksadecimalnih cifara obeležavaju se ciframa 0, 1,..., 9 i slovima a, b, c, d, i, f. Dozvoljena i upotreba velikih slova, ravnopravno sa malim slovima.

Page 22: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Sintaksni dijagram heksadecimalne cifre

U svim slučajevima, bez obzira na korišćeni brojni sistem, tip dobijene konstante je int osim ako je konstanta suviše velika za taj tip. Tada se podrazumeva tip long int. Dodavanjem sufiksa u ili U iza niza cifara u sva tri brojna sistema dobija se neoznačena ( samo pozitivna ) celobrojna konstanta. Tip dobijene konstante je unsigned int ili unsigned long int, zavisno od veličine broja.

Page 23: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Dodavanjem sufiksa l ili L iza niza cifara u sva tri brojna sistema dobija se skonstanta tipa long int ili unsigned long int zavisno od toga da li je naveden i sufiks u ili U. U tom slučaju veličina broja ne utiče na tip dobijene konstante. Evo nekoliko isptavnih celobrojnih konstanti na jeziku C: 947 65000u 1231 123456789UL-3586 14567U -785L 07777777uL0123 0177777u 01234567l 0xfiA54ECul0xf7a5 0xFFFFU 0xabcdefL0xf7A5 20000000

i nekoliko primera neispravnih:-13p76 /* slova nisu dozvoljena03928 /* 8 i 9 nisu oktalne cifre3ab89 /* a i b niju decimalne cifre2.345 /* tačka označava ralnu konstantu

Page 24: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

REALNE KONSTANTE

Realne konstante na jeziku C pišu se samo u decimalnom brijnom sistemu. Za brojeve sa vrlo velikim i vrlo malim apsolutnim vrednostima koristi se eksponencijalna notacija. Eksponencijalna notacija je oblika mEe, gde se m naziva mantisa a e eksponenta. Vrednost predstavljenog broja je mx10e

Primer: vrednost broja 1.34e3 dobija se kao proizvod 1.34 i broja 10 stepenovanog sa 3 a to je 1340. Vrednost 1.34 je mantisa broja, a 3 je eksponent.

Sintaksni dijagram realne konstante

Page 25: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Realne konstante mogu biti tipa float i double. Razlika je u tačnosti predstavljanja reaknih vrednosti, odnosno u broju decimalnih cifara koje mogu da se memorišu. Promenljiva tipa double (dvostruka tačnost) može da upiše dvostruko više decimalnih cifara. Za podatke tipa float potrebno je 4 bajta a za podatke tipa double 8 bajta.

Ispravno napisane realne konstante:

1.23 1e5 345.785f 532.e-21 - 125. 123,456E-2 2.0E+6F 0.12345L

Neispravno napisane realne konstante:

1,23 /* ne koristi se decimalni zarez */ 123.abcE02 /* sloba abc nisu dozvoljena */ -592 /* celobrojna konstanta */

Page 26: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

ZNAKOVNE KONSTANTE

Suntaksni dijagram znakovne konstante

Promenljive i konstante tipa char memorišu karaktere. U deklarativnim iskazima koristi se ključna reč char. Char je skraćenica od reči charakter. Konstante tipa char dobijaju se stavljanjem karaktera izmedju jednostrukih navodnika, na primer: ‘A’, ‘1’, itd… U funkcijama printf() i scanf() konverzioni karakter za promenljive i konstante tipa char je %c.

Page 27: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

KONSTANTNI ZNAKOVNI NIZOVIKonstantni znakovni niz je sažeti način zapisivanja niza

znakovnih konstanti. Opšti oblik je prikazan na sledećoj slici:

Sintaksni dijagram konstantnog znakovnog niza

U osnovi to je niz znakova stavljen izmedju para znakova navoda (“). Npr: “Zdravo!”Predstavlja niz od 8 znakova: ‘Z’ ‘d’ ‘r’ ‘a’ ‘v’ ‘o’ ‘!’ ‘\0’

Page 28: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

SIMBOLIČKE KONSTANTESimbolička konstanta je konstanta kojoj je dodeljen identifikator.

Kasnije se u programu kotisti identifikator a ne vrednost konstante. Simbolička konstanta se definiše naredbom #define čiji je opšti oblik prikazan na sledećoj slici:

Sintaksni dijagram simboličke konstante

Tip simboličke konstante je određen tipom konstante koja se navodi kao vrednost konstante. Identifikatori simboličkih konstanti pišu se obično velikim slovima da bi se razlikovali od identifikatora promenljivih koji se obično pišu malim slovima.

Page 29: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Nekoliko primera definisanja simboličkih konstanti: #define MIN 0 #define MAX 1000 #define PI 3.1415 #define PORUKA “Pozdrav svima!”

NABROJANE KONSTANTENabrojane konstante su celobrojne simboličke konstante kojima

su vrednosti dodeljene eksplicitno ili implicitno nabrajajući njihove identifikatore u jednom nizu.

Nabrojane konstante se definišu naredbom enum čiji je opšti oblik prikazan na sledećoj slici:

Sintaksni dijagram naredbe enum

Page 30: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Nvođenje identifikatora nabrajanja u naredbi enum omogućava da se kasnije definišu promenljive koje bi smele da imaju samo vrednosti koje su nabrojane u naredbi enum.

Opis nabrajanja navodi konstante koje se definišu između para vitičastih zagrada ({ }).

Sintaksni dijagram opisa nabrajanja

Ako iza identifikatora konstante nema vrednosti konstante, konstanta će imati vrednost koja je za jedan veća od vrednosti prethodne konstante u nizu. Ako iza prvog identifikatora u nizu nema vrednosti, prva konstanta imaće vrednost nula.

Page 31: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Vrednost konstante može da bude proizvoljan konstantan izraz celobrojnog tipa. Konstantan izraz je aritmetički izraz čiji su svi operandi konstante ili simboličke konstante.

Nekoliko primera nabrojanih konstanti:

enum { NE, DA } ; enum { CRNA, SIVA, SMEĐA, CRVENA, ŽUTA, ZELENA, PLAVA } ; enum meseci { JAN = 1, FEB, MAR, APR, MAJ, JUN, JUL, AVG, SEP, OKT, NOV, DEC } mesec; enum dani { ponedeljak = 1, utorak, sreda, četvrtak, petak, subota, nedelja } dan ;

Page 32: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

ULAZNA I IZLAZNA KONVERZIJA PODATAKA

UVODPodaci se preko tastature unose u obliku niza znakova. Sa druge

strane podaci u memoriji računara predstavljaju se u binarnom obliku. U toku tog prenosa neophodno je da se izvrši konverzija pročitanih podataka iz spoljašnjeg “tekstualnog” u unutrašnji binarni oblik. Ta radnja naziva se ulaznom konvezijom.

Obrnuto, prilikom štampanja podataka na ekran potrebno je da se vrši izlazna konverzija podataka. Time se podaci iz unutrašnjeg binarnog oblika pretvaraju u spoljašnji tekstualni oblik, tj. u niz slova, cifara i specijalnih znakova.

Na jeziku C ulazna i izlazna konverzija realizuju se pomoću dve standardna funkcije: scanf i printf.

Page 33: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

ULAZNA KONVERZIJA

Ulazna konverzija podataka vrši se pozivanjem funkcije scanf pomoću izraza čiji je opšti oblik prikazan na sledećoj slici:

Sintaksni dijagram funkcije scanfPrvi argument funkcije scanf je format kojim se odredjuju konverzije koje

treba da se izvršavaju u toku unosa podataka. Preostali argumenti, koji su nazvani ulazni podaci, predstavljaju promenljive u kojima će biti smešteni rezultati konverzije.

Ulazni podatak može da bude skalarna promenljiva ili znakovni niz koji se predstavljaju svojim identifikatorima. Operator & ispred identifikatora skalarne promenljive označava da se u funkciji scanf dostavlja adresa navedene promenljive.

Page 34: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Format je znakovni niz kojim se pojedinačne konverzije iskazuju podnizovima koji počinju znakom % i završavaju se sa slovom koje označava vrstu konverzije.

Evo nekoliko primera pozivanja funkcije scanf:scanf (“%d”, &v)scanf (“%f”, &V)scanf (“%lf”, &g)

Konverzioni karakter Konverzija ulaznog niza

% c karakter

% d ceo broj

% f realan broj jednostruke tačnosti

% lf realan broj dvostruke tačnosti

% s niz karaktera

Page 35: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

IZLAZNA KONVERZIJAIzlazna konverzija podataka vrši se pozivanjem funkvije printf pomoću

izraza prikazanog na slici:

Sintaksni dijagram poziva funkcije printf

Sintaksni dijagram izlaznog podatka

Page 36: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Prilikom unošenja ulaznih podataka koristimo funkciju printf koja se sastoji od: - znakova koji se sirektno ispisuju na ekran između znakova navoda- opisa formata podatka (npr. ako je celobrojna konstanta onda je %d)- \n znak koji označava prelazak u novi red

Primer:printf (“unesi početnu brzinu prvog automobila u m/s \n”);printf (“unesi vrednost za poluprečnik kruga r u cm \n”);

Prilikom štampanja izlaznih podataka takođe koristimo funkciju printf s tim što se vrši konverzija podataka iz binarnog oblika u određeni tekstualni oblik u zavisnosti od tipa podataka. Primer:printf (“pređeni put automobila je: %f km \n”, s);

#include<stdio.h>#define IME “RONALDINJO”#define BROJ 10main(){printf (“Najbolji fudbaler sveta %s nosi dres broj %d \n”, IME,BROJ);printf (“Prosečan %s godišnje popije %s litara čaja \n”,”ENGLEZ”, 200);printf (“Autor knjige je %s %s \n”, ime, prezime);

Page 37: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

BROJNI SISTEMI

U programskom jeziku C koristimo dekadni i binarni brojni sistem. Binarni brojni sistem koji se koristi u računarima ima za osnovu broj 2 a dozvoljene cifre su 0 i 1.

PRETVARANJE DEKADNOG U BINARNI BROJNI SISTEM

Primer:

70:2=35+0 binarni broj je 1000110 35:2=17+1 17:2=8+1 8:2=4+0 4:2=2+0 2:2=1+0 1:2=0+1 (ostatak nula)

Page 38: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

PRETVARANJE BINARNOG U DEKADNI BROJNI SISTEM

1000110=1*26+0*25+0*24+0*23+1*22+1*21+0*20=64+0+0+0+4+2+0=70

10101010=1*27+0*26+1*25+0*24+1*23+0*22+1*21+0*20=128+0+32+0+8+0+2=170

MATEMATIČKE FUNKCIJE U C JEZIKU

U sledećoj tabeli biće prikazane matematičke funkcije napisane u C jeziku:

Matematičke funkcije definisane su u standardnoj biblioteci math.h.

Page 39: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

Funkcija biblioteke Vrednost funkcije

sin(x) sin x

cos(x) cos x

tan(x) tg x

asin(x) arc sin x, x=(-1, 1)

acos(x) arc cos x, x=(-1, 1)

atan(x) arc tg x, x=(-pi/2, pi/2)

atan2(x,y) arc tg x/y

sinh(x) sh x

cosh(x) ch x

tanh(x) th x

exp(x) ex

Sqrt(x) X1/2

pow(x,y) Xy

Page 40: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

PISANJE SLOŽENIH IZRAZA U C JEZIKU

Za razliku od načina pisanja složenih izraza u matematici, prilikom pisanja ovakvih izraza u jeziku C mora da se poštuju sledeća pravila:- Operator množenja (*) uvek mora da se napiše- Ne mogu da se pišu razlomci na više nivoa (dvojni), već ceo izraz mora da se piše u jednom redu korišćenjem operatora za deljenje (/) između broioca i imenioca. Izrazi u broiocu i imeniocu treba da se stave u zagradama.- Indeksi i stepeni ne mogu da se pišu podignuto i spušteno već moraju da se pišu na istom nivou i znakovima iste veličine kao i osnovni deo izraza.- Izraz po potrebi može da se proteže na više redova.

Evo nekoliko primera izraza napisanih u matematici i tih istih izraza u C jeziku:

→ sdsd

→ dsds

Page 41: Za Prvi Test Racunari i Programiranje2

PROGRAMSKI JEZIK “C”

Dušan Stojanović Računari i programiranje

.

→ s

→ (x-y)/((x/y)-2)