Professional Documents
Culture Documents
jezika C
Azbuka
predstavlja osnovni skup znakova od
kojih se grade sve sintaksne kategorije
jezika. Azbuka jezika C obuhvata:
1. velika i mala slova engleskog
alfabeta,
2. dekadne cifre (0 – 9),
3. specijalne znakove i
4. bele (neštampajuće) znakove (space,
tabulacija, novi red, nova stranica,
komentari).
Leksema
znak, ili niz od dva ili više znakova koji u
programu ima određeno značenje.
Lekseme obrazuju rečnik i predstavljaju
osnovne gradivne elemente
programskog jezika. Skup leksema jezika
C deli se na:
1. identifikatore,
2. konstante,
3. službene reči,
4. operatore i
5. separatore.
Konstrukcije
Pomoću leksema grade se konstrukcije.
U konstrukcije spadaju:
1. naredbe,
2. programi i
3. direktive.
Naredbe su nizovi leksema i mogu biti
deklarativne i izvršne.
Programi su nizovi naredbi pomoću kojih
se rešava neki zadatak.
Direktive su naredbe predprocesora, dela
programskog prevodioca koji obrađuje tekst
programa pre prevođenja.
Struktura programa u C –
u
direktive pretprocesora
spoljašnje definicije i deklaracije
main()
{
deklaracije i definicije
izvršne naredbe
/*komentar*/
}
definicije funkcija
Primer1
/*Prikaz na ekranu jedne linije fiksnog teksta*/
#include<stdio.h>
#include<stdlib.h>
main( )
{
printf("\nHello World\n\n");
system("PAUSE");
}
Primer2
/*Vise poziva funkcije printf(), prikaz na ekranu jedne
linije teksta*/
#include<stdio.h>
#include<stdlib.h>
main( )
{
printf("\nDobrodosli ");
printf("u jezik C\n\n");
system("PAUSE");
}
Primer3
/*Jedan poziv finkcije printf( ), prikaz na ekranu
vise linija teksta*/
#include<stdio.h>
#include<stdlib.h>
main( )
{
printf("\nDobrodosli\n\n\tu jezik C\n\n");
system("PAUSE");
}
Deklaracije i definicije
Svaka deklaracija:
daje određeno značenje imenu
koje će se koristiti,
dodeljuje memorijski prostor za
objekat označen tim imenom,
definiše ponašanje funkcije i
specificira tip podataka ili
funkcije.
Deklaracije i definicije - Primer
int x, z;
char c;
double stepen(double x,
double y);
Funkcije
Svaki program može i mora sadržati samo
jednu main() funkciju, od koje započinje
izvršenje svakog C programa.
Funkcija se definiše posebnom naredbom
za definisanje funkcija:
[tip_funkcije] ime_funkcije (lista parametara)
{
telo funkcije
}
Identifikatori i rezervisane reči
Identifikatori, ili imena služe za
označavanje:
promenljivih,
simboličkih konstanti,
funkcija i
oznaka naredbi koje su
odredište grananja (skoka).
Identifikatori i rezervisane reči
Identifikator (ime) je niz malih i
velikih slova, dekadnih cifara i znaka
“_“.
Prazna mesta u nizu nisu
dozvoljena. Pravi se razlika između
velikih i malih slova (Ime ≠ ime).
Prvi znak u imenu ne može biti cifra,
a ne preporučuje se da znak _ bude
prvi.
Identifikatori i rezervisane reči
#include<stdio.h>
#include<stdlib.h>
main( )
{
printf("\n int zauzima %d B memorije \n",
sizeof(int));
system("PAUSE");
}
Zadatak
Preraditi prethodni primer tako da se
ispise velicina i sledecih tipova
podataka:
1. short
2. long
3. double
4. float
5. char
Nabrojivi tip – enum
To su sopstveni tipovi koje definiše sam
programer. U njima se kao vrednosti
koriste identifikatori.
Realne konstante
ispravne realne konstante neispravne realne konstante
3.14159 1,23
-0.0065 1bE-7
0.1E-06 e-2
-1.06e+04 .E-2
Konstante
Znakovne konstante tipa char
predstavljaju se stavljanjem
odgovarajućeg znaka između dva
apostrofa (npr. 'a' , '7'). Na ovaj
način se mogu predstaviti svi znaci
sa tastature, osim \, ’ i “. Ova tri
izuzetka predstavljaju se na sledeći
način:
’\\’ , ’\’ ’ , ’\“ ’.
Upravljački (kontrolni)
znaci
\a – davanje zvučnog siganala,
\b – vraćanje za jedno mesto nazad,
\f – nova stranica (list),
\n – novi red,
\r – vraćanje na početak reda,
\t – horizontalna tabulacija,
\v – vertikalna tabulacija,
\ - nastavak linije u novom redu (kada
je \ poslednji znak u redu).
Zadatak
Napisati program koji ispisiuje sledece:
#define PI 3.14
#define MAX 100
#define PLUS ’+’
#define PASS “password“
Zadatak
Napisati program koji racuna i
ispisuje povrsine krugova sa
sledecim poluprecnicima: 2, 5, 7,
12, 15. Definisati i koristiti za
izracunavanje konstantu PI. Ispis
na ekranu treba da sadrzi
izracunatu povrsinu i poluprecnik
odgovarajuceg kruga (npr. Povrsina
kruga sa poluprecnikom 2 je ….)
Unos i prikaz podataka
Unos i prikaz podataka se obavlja pomoću
ulaznih i izlaznih funkcija ( scanf i printf )
koje se nalaze u sistemskoj datoteci
stdio.h.
Funkcije printf i scanf obavljaju tzv.
formatirani unos, odnosno prikaz
podataka. Mesto na kome sa nalazi ulazni,
odnosno štampa izlazni podatak naziva se
polje. Broj znakova koji se mogu smestiti
u polje naziva se širina polja. Format
određuje raspored podataka i širinu polja.
Unos i prikaz podataka
Izlazna funkcija printf( )
Opšti oblik opisa konverzije za funkciju printf je sledeći:
%[-+#0][n][.][k]q – simboli u [ ] nisu obavezni
% - uvod u konverziju
- - poravnanje sa leve strane (inače se poravnava sa desne
strane)
+ - obavezno ispisuje + ispred podatka
# - obavezno ispisivanje 0 za oktalni zapis, 0x za heksadcimalni
ili decimalne tačke za realne brojeve bez razlomljenog dela
0 – kod numeričkih konverzija pri ravnanju udesno, sa leve
strane se obavezno dopisuju nule umesto razmaka
n – minimalna širina izlaznog polja
. – odvaja n i k
k – broj decimala sa kojima se ispisuje izlazni podatak
q – vrsta konverzije (d, f, lf, c, s)
Izlazna funkcija printf( )
Umesto n i k može se staviti *. U tom
slučaju se n i k moraju deklarisati kao
tip int.
printf(“%8.*f“,k,x);
printf(“%*.*f“,n,k,x);
Zadatak
#include<stdio.h> printf("%-10d\n",x);
#include<conio.h>
main() printf("\nRealan
{ broj:\n\n");
int x = 999; printf("%10f%\n",y);
double y = 1.2345; printf("%-10f\n",y);
printf("%10.2f\n",y);
printf("\nCeo printf("%.2f\n",y);
broj:\n\n"); getch();
printf("%10d\n",x); }
Ulazna funkcija scanf( )
Ova funkcija se koristi za formatirano
čitanje podataka. Opšti oblik opisa
konverzije za funkciju scanf je sledeći:
%[n]q
% - uvod u konverziju
n – maksimalna širina ulaznog polja
q – vrsta konverzije (d, f, lf, c, s)
Ulazna funkcija scanf( )
Primeri:
scanf(“%d%d%d“,&a,&b,&c);
ako ovde unesemo npr. 12 370 5,
promenljivima a, b i c dodeliće se sledeće
vrednosti a=12, b=370 i c=5
scanf(“%2d%3d%1d“,&a,&b,&c);
ako ovde unesemo npr. 123705,
promenljivima a, b i c dodeliće se sledeće
vrednosti a=12, b=370 i c=5
Zadatak
/*Prikaz na ekranu zadatog celog broja u raznim oblicima*/
#include<stdio.h>
#include<conio.h>
main()
{
int x;
printf("\nUnesite ceo broj:\t");
scanf("%d",&x);
printf("\nDecimalni oblik:\t%d",x);
printf("\nOktalni oblik:\t\t%o",x);
printf("\nHeksadecimalni oblik:\t%x (%X)\n\n",x,x);
getch();
}
Zadatak
Napisati program koji racuna i ispisuje
povrsine krugova za poluprecnik koji
unese korisnik. Definisati i koristiti za
izracunavanje konstantu PI. Ispis na
ekranu treba da sadrzi izracunatu
povrsinu i poluprecnik
odgovarajuceg kruga (npr. Povrsina
kruga sa poluprecnikom 2 je ….).
Zaokruyiti povrsinu na dve decimale.
Primer
#include<stdio.h>
#include<conio.h>
main()
{
int x,y;
printf(“\nUnesite brojeve x i y u obliku x,y\n“);
scanf(“%d,%d“,&x,&y);
printf(“\nUneti brojevi su %d i %d.\n“,x,y);
getch();
}
Zadatak
/*Prihvatanje imena od korisnika i prikaz na ekranu licnog
pozdrava*/
#include<stdio.h>
#include<stdlib.h>
#define MAX 30
main( )
{
char ime[MAX];
printf("\nVase ime?\n\n");
scanf("%s",&ime);
printf("\nZdravo %s, dobrodosli u jezik C.\n\n", ime);
system("PAUSE");
}