You are on page 1of 30

UVOD

Programski jezici i strukture podataka

Raunarstvo i automatika

Izvoai nastave
Petar Mari (kancelarija TMD 9c)
Stefan Nikoli (kancelarija TMD 9b)
Marko Kneevi (kancelarija TMD 9b)

Termini konsultacija
naknadno

Programski jezici i strukture podataka

Raunarstvo i automatika

Cilj vebi
Sticanje osnovnih znanja o:
Strukturnom programiranju
C programskom jeziku,
strukturama podataka.

Programski jezici i strukture podataka

Raunarstvo i automatika

Literatura za vebe
Programski jezik C, Drugo izdanje, Brain W. Kernighan i
Dennis M. Ritchie
Programski jezik C Reenja zadataka, Prevod drugog
izdanja, Clovis L. Tondo i Scott E. Gimpel
Programski jezik C, Laslo Kraus
Potpuni vodi za pro gramski jezik C, Augie Hansen
Uvod u korienje Linux operativnog sistema, prvo
poglavlje praktikuma raunarskih vebi, za predmet
Arhitektura raunara, arko ivanov,Ivan Nejgebauer,
Lazar Strievi, Miroslav Hajdukovi
C Primer Plus, Fifth Edition (C89/C99), Stephen Prata
Thinking in C: Foundations for Java & C++ by Chuck
Allison & B. Eckel
Programski jezici i strukture podataka

Raunarstvo i automatika

Informacije i nastavni materijali


Sajt katedre: http://www.acs.uns.ac.rs/
Instalacija Ubuntu-a:
/mnt/nastavni_materijali/opsti_materijali/inst
all/

Programski jezici i strukture podataka

Raunarstvo i automatika

Platforma za odravanje nastave


PC kompatibilni raunar
Operativni sistem: Ubuntu distribucija
GNU/Linux-a (lokalizovana distribucija se moe
preuzeti na jednom CD-u, ili fleu kod laboranta
TMD 18)
Operativni sistem: Windows + VirtualBox (MS
Virtual PC) + Ubuntu
Operativni sistem: Windows + CodeBlocks
Kompajler: gcc
Dibager: ddd
Editor: gedit ili po izboru
CodeBlocks integrisano okruenje
Programski jezici i strukture podataka

Raunarstvo i automatika

Upoznavanje sa sistemom
Obratiti panju na:
Osnovni meni
Link na nastavne
materijale
Link na home
direktorijum

Programski jezici i strukture podataka

Raunarstvo i automatika

Rad sa Terminal-om

Programski jezici i strukture podataka

Raunarstvo i automatika

Rad sa Editor-om

Programski jezici i strukture podataka

Raunarstvo i automatika

Rad sa fajl sistemom

Programski jezici i strukture podataka

Raunarstvo i automatika

Tema 1

Reavanje problema,
Osnovni tipovi
Programski jezici i strukture podataka

Raunarstvo i automatika

Reavanje problema

Razumevanje problema
Izgradnja modela
Formulisanje algoritma
Provera ispravnosti
Realizacija algoritma (pisanje programa)
Testiranje programa
Sastavljanje dokumentacije

Programski jezici i strukture podataka

Raunarstvo i automatika

BDA
Formalan nain zapisivanja algoritma
Start

ulaz/izlaz

Stop

s(+b+c)/2

a>0
Programski jezici i strukturene
podataka

da

potprogram

Raunarstvo i automatika

Zadatak 1
Izraunati povrinu trougla upotrebom
Heronovog obrasca.
a = 2 cm
b = 4 cm
c = 5 cm

Programski jezici i strukture podataka

Raunarstvo i automatika

Reavanje problema - Razumevanje


Terminologija! ta je Heronov obrazac?
ta je dato? a,b,c
ta se trai? - P
Doputene metode. math.h (sqrt)
Podaci? - a = 2 cm, b = 4 cm, c = 5 cm

Programski jezici i strukture podataka

Raunarstvo i automatika

Reavanje problema - Izgradnja modela

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

Programski jezici i strukture podataka

Raunarstvo i automatika

Reavanje problema - Formulisanje


algoritma
Start

a=?
b=?
c=?

s=(a+b+c)/2

P=sqrt( s*(s-a)*(s-b)*(s-c))

1. Uneti ulazne podatke a, b, c


2. Izraunati poluobim s
3. Preko Heronovog obrasca
izraunati povrinu trougla
4.Ispisati ovako izraunatu povrinu

Stop

Programski jezici i strukture podataka

Raunarstvo i automatika

Reavanje problema - 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;
}
Programski jezici i strukture podataka

Raunarstvo i automatika

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 -g -o prvi prvi.c


Pokretanje programa

./prvi
Programski jezici i strukture podataka

Raunarstvo i automatika

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

Programski jezici i strukture podataka

Raunarstvo i automatika

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.

Programski jezici i strukture podataka

Raunarstvo i automatika

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)

Programski jezici i strukture podataka

Raunarstvo i automatika

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

Programski jezici i strukture podataka

Raunarstvo i automatika

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
Programski jezici i strukture podataka

Raunarstvo i automatika

printf i scanf
Formatirani ulaz-izlaz
printf ispisuje na standardni izlazni ureaj stdout
(ekran).
Moe prihvatiti varijable i ispisati njihovu vrednost u
odgovarajuem formatu.
scanf uitava vrednost sa standardnog ulaznog
ureaja stdin(tastatura) i uitanu vrednost dodeljuje
varijabli.

Programski jezici i strukture podataka

Raunarstvo i automatika

Primer 1
/* 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;
}

Programski jezici i strukture podataka

Raunarstvo i automatika

printf moe prikazati vrednost varijable

printf ("z=%d\n", z );
Format string ("... ")
Sekvenca %d je specijalna sekvenca (format
specifikator) i ona se ne tampa na izlaznom
ureaju!
%d saoptava printf-u da na zadatom mestu
ispie vrednost celobrojne promenljive koja sledi
iza format stringa.
Programski jezici i strukture podataka

Raunarstvo i automatika

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)

Programski jezici i strukture podataka

Raunarstvo i automatika

scanf uitava vrednosti


scanf("%f", &var);
Format string ("....")
eka dok korisnik ne unese realnu vrednost,
i uitanu vrednost smeta u varijablu pod
nazivom var.
& je unarni operator koji vraa adresu
promenljive

Programski jezici i strukture podataka

Raunarstvo i automatika

Zadatak 2
Izraunati povrinu trougla upotrebom
Heronovog obrasca, vrednosti stranica uneti sa
tastature. Na izlazu tampati vrednost povrine
trougla na dve decimale.

Programski jezici i strukture podataka

Raunarstvo i automatika

You might also like