View
52
Download
10
Category
Preview:
DESCRIPTION
01 Uvod u programski jezik C
Citation preview
STRUKTURE PODATAKA I ALGORITMI 1Uvod u programski jezik C
TA JE C?Programski jezik opte nameneJezik za sistemsko programiranje, ali i ...BCPL, Martin RichardsB, Ken Thompson, 1970
TA SADRI C?Tipovi podatakaZnakoviBrojevi (celi i sa pokretnim zarezom)PokazivaiNizoviStruktureKonstrukcije za kontrolu tokaNaredbe grananjaNaredbe viestrukog grananjaNaredbe ponavljanja
TA SADRI C?FunkcijeVraaju vrednosti osnovnih tipovaRekurzijaAutomatske lokalne promenljiveOdvojene izvorne datotekeRazliiti opsezi promenljivihPretprocesiranje
JO NETO O C-UJezik niskog nivoaNe sadri operacije za rad sa sloenim objektimaNema poseban mehanizam za rezervisanje memorijeNe obezbeuje ulazno/izlazne mehanizmeSvi mehanizmi vieg nivoa moraju biti obezbeeni pomou funkcija koje se pozivajuNe podrava konkurentno programiranjeANSI standard
ZDRAVO, SVETE!Program koji na ekranu ispisuje tekst hello, world
#include
main(){printf("hello, world\n");}
Program u C-u se sastoji od funkcija i promenljivihmain je osnovna funkcija od koje poinje izvravanje programaSvaki program mora imati main funkcijuFunkcija main poziva druge funkcije
printf("hello, world\n");Funkcija printf prikazuje izlazne podatke"hello, world\n" je konstantan stringZnak \n obezbeuje prelazak u novi redSledei kod nije ispravan
printf("hello, world");Isto to samo malo drugaije
#include main(){printf("hello, ");printf("world");printf("\n");}
SPECIJALNE SEKVENCE\nnovi red\ttabulator\bpovratnik (backspace)\"navodnik\\za obrnutu crtu (backslash)
PROMENLJIVE I ARITMETIKI IZRAZIProgram koji prikazuje tabelu temperatura u Farenhajtima i Celzijusima po formuli
#include
/*printFahrenheit-Celsius tablefor fahr = 0, 20, ..., 300 */main(){int fahr, celsius;int lower, upper, step;
lower = 0;/* lower limit of temperature scale */upper = 300;/* upper limit */step = 20;/* step size */
fahr = lower;while (fahr
REZULTATprintf("%d\t%d\n", fahr, celsius);1-1720-640460158026100371204814060160711808220093220104240115260126280137300148printf("%3d\t%6d\n", fahr, celsius); 1-17 20 -6 40 4 60 15 80 26100 37120 48140 60160 71180 82200 93220104240115260126280137300148
VERZIJA SA REALNIM BROJEVIMA#include
/*print Fahrenheit-Celsius tablefor fahr = 0, 20, ..., 300; floating-point version */main(){float fahr, celsius;float lower, upper, step;
lower = 0;/* lower limit of temperatuire scale */upper = 300;/* upper limit */step = 20;/* step size */
fahr = lower;while (fahr
REZULTATprintf("%3.0f %6.1f\n", fahr, celsius); 0-17.8 20 -6.7 40 4.4 ...
SPECIFIKACIJE KONVERZIJE%dprikazati kao dekadni ceo broj%6dprikazati kao dekadni ceo broj u polju od bar 6 znakova%fprikazati kao broj sa pokretnim zarezom%6fprikazati kao broj sa pokretnim zarezom u polju od bar 6 znakova%.2fprikazati kao broj sa pokretnim zarezom sa dve decimalne cifre%6.2fprikazati kao broj sa pokretnim zarezom u polju od bar 6 znakova sa dve decimalne cifre
NAREDBA FOR
#include
/* print Fahrenheit-Celsius table */main(){int fahr;
for (fahr = 0; fahr
SIMBOLIKE KONSTANTE#defineimetekst_zamene
Primer
#include
#define LOWER0/* lower limit of table */#define UPPER300/* upper limit */#define STEP20/* step size */
/* print Fahrenheit-Celsius table */main(){int fahr;
for (fahr = LOWER; fahr
ULAZ I IZLAZ ZNAKOVATekstualni tok (stream)getcharc=getchar()putcharputchar(c)
PrimerKopiranje ulaznog toka na izlaz.
#include
/* copy input to output; 1st version */main(){int c;
c = getchar();while (c != EOF) {putchar(c);c = getchar();}}
KRAE PISANJE#include
/* copy input to output; 2nd version */main(){int c;
while ((c = getchar()) != EOF)putchar(c);}
BROJANJE ZNAKOVA#include
/* count characters in input; 1st version */main(){long nc;
nc = 0;while (getchar() != EOF)++nc;
printf("%ld\n", nc);}#include
/* count characters in input; 2nd version */main(){double nc;
for (nc = 0; gechar() != EOF; ++nc);
printf("%.0f\n", nc);}
BROJANJE REDOVA#include
/* count lines in input */main(){int c, nl;
nl = 0;while ((c = getchar()) != EOF)if (c == '\n')++nl;
printf("%d\n", nl);}
BROJANJE REI#include #defineIN1/* inside a word */#defineOUT0/* outside a word */
/* count lines, words, and characters in input */main(){int c, nl, nw, nc, state;
state = OUT;nl = nw = nc = 0;while ((c = getchar()) != EOF){++nc;if (c == '\n')++nl;if (c == ' ' || c == '\n' || c = '\t')state = OUT;else if (state == OUT){state = IN;++nw;}}printf("%d %d %d\n", nl, nw, nc);}
NIZOVI#include
/* count digits, white space, others */main(){int c, i, nwhite, nother;int ndigit[10];
nwhite = nother = 0;for (i = 0; i < 10; ++i)ndigit[i] = 0;
while ((c = getchar()) != EOF)if (c >= '0' && c
REZULTATdigits = 9 3 0 0 0 0 0 0 0 1, white space = 123, other = 345
FUNKCIJEFunkcija za raunanje celobrojnog stepena n celog broja m.
#include
int power(int m, int n);
/* test power function */main(){int i;
for (i = 0; i < 10; ++i)printf("%d %d %d\n", i, power(2,i), power(-3,i));
return 0;}
/* power: raise base to n-th power; n >= 0 */int power(int base, int n){int i, p;p = 1;for (i = 1; i
Recommended