You are on page 1of 22

Programski jezik C

Metode programiranja i
proizvodnja softvera
Izvoai nastave
Sran Popov (kancelarije TMD 9d, ITC 401)
Marko Kneevi (kancelarija TMD 9b)
Petar Mari (kancelarija TMD 9b)
Milan elikovi (kancelarija TMD 9a)
Stefan Nikoli (kancelarija TMD 9a)
Milanka Bjelica (kancelarija TMD 9b)
Vladimir Dimitrieski (kancelarija TMD 9a)
Reavanje problema
Razumevanje problema
Izgradnja modela
Formulisanje algoritma
Provera ispravnosti
Realizacija
Testiranje
Dokumentovanje

ivotni ciklus softvera
Analiza i specifikacija
Projektovanje arhitekture
Detaljno projektovanje
Kodiranje i testiranje
Integralno testiranje
Eksploatacija i odravanje
Strukturirana paradigma C++-a moderni pristup
C je strukturna paradigma C++ jezika
C89 ANSI X3.159-1989
C90 ISO/IEC 9899:1990
C99 ISO/IEC 9899:1999
C11 ISO/IEC 9899:2011
Osnove za Java / C++ / C# programske
jezike
BDA
Formalan nain zapisivanja algoritma
Start
Stop s(+b+c)/2
ulaz/izlaz
a>0
potprogram da
ne
Zadatak 1
Izraunati povrinu trougla upotrebom
Heronovog obrasca.
a = 2 cm
b = 4 cm
c = 5 cm

s=(a+b+c)/2
P=sqrt( s*(s-a)*(s-b)*(s-c))


Formulisanje algoritma
Start
Stop
s=(a+b+c)/2
P=sqrt( s*(s-a)*(s-b)*(s-c)
P
a=?
b=?
c=?
)
1. Uneti ulazne podatke a, b, c
2. Izraunati poluobim s

3. Preko Heronovog obrasca
izraunati povrinu trougla

4.Ispisati ovako izraunatu povrinu

Realizacija algoritma (pisanje programa)
#include <stdio.h>
#include <math.h>
int main()
{
float a=2.0;
float b=4.0;
float c=5.0;
float s,P;

s=(a+b+c)/2;
P=sqrt( s*(s-a)*(s-b)*(s-c));

printf("P = %f\n",P);

return 0;
}
Kompajliranje i pokretanje programa
Iz fajl menadera kreirajte folder
Editujte izvorni kod
Sauvajte u njemu editovan tekst
Pokrenite terminal
Sa cd prei u folder u kome je zadatak
Kompajliramo sa:
gcc -lm -o prvi prvi.c
Pokretanje programa
./prvi
ta su varijable?
Imenovani prostor u memoriji raunara,
koji je namenjen uvanju vrednosti
odreenog tipa (celobrojne, realne,
karakteri, itd).
Sadre podatke koje koristi va program
Koriste se za uvanje podataka koji se
koriste u toku izvravanja programa
Deklarisanje varijabli u C-u
Pre korienja varijabla mora biti deklarisana.
Deklaracija se vri navoenjem tipa i naziva
varijable.
Opciono, mogu se pomou kvalifikatora
dodatno specificirati karakteristike varijable.
VANO: Kada se izvri deklaracija varijable,
njena vrednost je nedefinisana.
Primer deklaracije varijabli
int i;
char c;
float f1, f2;
float f1=7.0, f2 = 5.2;
unsigned int ui = 0;
(u poslednja dva sluaja izvrena je i
inicijalizacija na poetnu vrednost)
Principi imenovanja varijabli
Za nazive varijabli se mogu koristiti slova, brojevi i _
CSE_5a
vrlo_dugo_ime_promenljive (nepraktino)
brojac (opisno ime vrlo praktino, kod itljiviji)
Prvi karakter u nazivu promenljive ne sme biti cifra
5a_CSE nije validan naziv promenljive!
C pravi razliku izmeu malih i velih slova
Naziv nije ista promenljiva kao i naziv
Tipovi podataka u C-u
char jednobajtni znakovni tip.
short int (ili samo short) celobrojni tip, obino
duine 2 bajta (ree korien tip).
int - celobrojni tip obino duine 4 bajta.
long int (ili samo long) celobrojni tip, duina 4 ili 8
bajta (ree korien tip).
float realna vrednost jednostruke preciznosti
obino 4 bajta.
double realna vrednost dvostruke preciznosti
obino 8 bajta.
long double - realna vrednost dvostruke preciznosti
obino 8 bajta (ree korien tip).
Signed nasuprot unsigned tipova
Primer 1
Napisati program koji primenom operatora sizeof odreuje veliinu
memorije u bajtovima koja je potrebna za smetanje podataka tipa:
char, int, float, double.

Reenje:
#include <stdio.h>
int main()
{
printf("Velicina memorije (izrazena u bajtovima) iznosi:");
printf("\n-za char \t %d", sizeof(char));
printf("\n-za int \t %d", sizeof(int));
printf("\n-za float \t %d", sizeof(float));
printf("\n-za double \t %d", sizeof(double));
return 0;
}
Primer 2
/* Uitava se temperatura u celzijusima i konvertuje u Kelvine*/
#include <stdio.h>

int main( )
{
double celzijusi, kelvini;

printf(Unesite temperaturu u celzijusima: ");
scanf("%lf",&celzijusi);

kelvini = celzijusi +273.15;
printf(%lf stepeni celzijusa je %lf stepeni kelvina\n", celzijusi, kelvini);

return 0;
}
prinft/scanf format specifikatori
Konstrukcija %<format> u format stringu printf/scanf se
zamenjuje sa vrednou odgovarajue varijable.
%c karakter konverzija
%d celobrojna konverzija, %u neoznaena celobrojna
konverzija.
%f konverzija realne vrednosti (float)
%lf konverzija realne vrednosti dvostruke preciznosti
(double)
%g drugi specifikator formata za double (u printf)
%% - karakter % (u printf)
Primer 3
/* Standard Predefined Macros*/

#include <stdio.h>

int main()
{
puts(__DATE__);
puts(__TIME__);
puts(__FILE__);
printf("%d\n",__LINE__);
puts(__FUNCTION__);

return 0;
}
Upis teksta sa standardnog ulaza u imenovani fajl
#include<stdio.h>
#define MAXL 80

int main()
{
FILE *pf;
char str[MAXL];
puts("Unesite tekst");
gets(str);
pf=fopen("test.txt","w");

fputs(str, pf);
fclose(pf);

return 0;
}
#include<stdio.h>
#define MAXL 80

int main()
{
FILE *pf;
char str[MAXL];

pf=fopen("test.txt","r");

if(pf!=NULL){
while(fgets(str, MAXL, pf)!=NULL)
puts(str);

fclose(pf);
} else {
printf("Nije moguce otvoriti datoteku ili datoteka ne postoji.");
}

return 0;
}
Ispis teksta iz imenovanog fajla na standardni izlaz
Zadatak 2
Sa standardnog ulaza uitati koordinate
dve taake, u ravni.
Rastojanje taaka ispisati u datoteku
izlaz.txt

You might also like