You are on page 1of 37

Uvod u programiranje 1/38

UVOD
Šta je program, a šta je programiranje?

Program je niz uputstava računaru o tome kako da uradi neki “zadatak”. Zadatak može biti
provera stanja u magacinu, obračun plata radnicima, proračun otpora oslonaca grede, pretvaranje
slike u koloru u crno belu, i slično.

Programiranje je pisanje tih uputstava. Za pisanje tih uputstava, odnosno programa koriste
se određene naredbe. Skup svih naredbi koje koje čine celinu naziva se programski jezik.
Budući da su naredbe pisane alfanumeričkim znacima (slovima i brojkama), simbolima poznatim
čoveku, a računar “razume” samo jezik “0” i “1”, potrebno je napisani program prevesti u neki
“razumljiv jezik“ za računar. Taj postupak se naziva prevođenje (compile) kompajliranje.

Da bi se uspešno programiralo, očigledno je da nam je potreban program za pisanje izvornog


koda, i prevodilac koji će taj kod prevesti na jezik razumljiv računaru.

Programski jezik C.
Uvod u programiranje 2/38

Algoritam

Formiranje algoritma
 Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja
zadatog problema.

Algoritmi se mogu opisivati:


 prirodnim jezikom,
 pseudo jezikom,
 dijagramom toka.
Uvod u programiranje 3/38

Algoritam

Opis algoritama prirodnim jezikom


Opisati prirodnim jezikom detaljno, precizno i nedvosmisleno korake pri rešavanju
problema,vodeći računa o redosledu operacija koje se izvršavaju.

Opis algoritama pseudo jezikom


 Pseudo jezik je neformalna kombinacija prirodnog jezika i nekog programskoj jezika.
 Pri upotrebi pseudo jezika mora se voditi računa da se jezičke konstrukcije koriste uvek na
isti način i da budu praćene objašnjenjima (ako je potebno).

Opis algoritama dijagramom toka


 Za ovaj oblik opisa koriste se grafički simboli čiji je opis propisan ISO standardom. Tekst koji
opisuje obradu se zapisuje unutar grafičkih simbola. Tok rada algoritma se opisuje linijama
koje povezuju grafičke simbole koji reprezentuju obradu.
Uvod u programiranje 4/38

Algoritam
Algoritam dijagram toka
Pojednostavljeni prikaz algoritma Ulaz

Instrukcije
(Algoritamski
koraci)

Izlaz
Uvod u programiranje 5/38

Algoritam
Algoritam dijagram toka Start
Algoritam za ispisivanje poruke ”Zdravo svete” na izlazu.
 Ulaz: Nema podataka na ulazu
 Izlaz: Poruka: ”Zdravo svete”
„Zdravo
svete“

End
Uvod u programiranje 6/38

Algoritam Start
Algoritam dijagram toka
Algoritam za sabiranje dva broja.
x, y
 Ulaz: brojevi xiy
 Operacija: zbir = x+y
zbir = x+y
 Izlaz: zbir - rezultat zbira unetih brojeva

zbir

End
Uvod u programiranje 7/38

Algoritam
Algoritam dijagram toka
Algoritam za izračunavanje površine i zapremine valjka.

Analiza: Osnova
r
P = Površina omotača + 2*Površina osnove
Površina osnove, B = r2 ∙ Omotač

Površina omotača, M = 2 ∙r∙∙H H


Uvod u programiranje 8/38

Algoritam
Start
Algoritam dijagram toka r, H
Algoritam za izračunavanje površine i zapremine valjka.
Pi = 3.14
 Ulaz: poluprečnik osnove r i visina valjka H
B = r*r*Pi
 Operacija: Pi = 3.14
B = r*r*Pi M = 2*r*Pi*H
M = 2*r*Pi*H
P = 2*B+M
P = 2*B+M
V = B*H V = B*H
 Izlaz: P, V
P, V

End
Uvod u programiranje 9/38

Promenljive i konstante Start

r, H

Pi = 3.14
Proces rada programa bi išao ovako: korisnik unosi prvi
broj, poluprečnik osnove - r, program taj broj sačuva, B = r*r*Pi
zatim korisnik unosi drugi broj - visinu valjka - H i
program taj broj takođe sačuva. M = 2*r*Pi*H
Dodeljivanje vrednosti Pi = 3.14 i program taj broj
takođe sačuva. P = 2*B+M

Gde se ti brojevi čuvaju?


V = B*H
Odgovor: Random Access Memory( RAM)
odakle će se brojevi po potrebi iščitavati. P, V

End
Uvod u programiranje 10/38

Promenljive i konstante Start

r, H
Promenljive:
Pi = 3.14
r, H, Pi, B, M, P i V
Pi - konstanta B = r*r*Pi

Svaka promenljiva u programu se mora DEKLARISATI. M = 2*r*Pi*H


Deklarisati znači odrediti tip promenljive .
P = 2*B+M
Konstatama se tip dodeljuje na osnovu vrednosti koja se
daje promenljivoj koja predstavlja konstantu.
Promenljiva tada zauzima odgovarajući deo memorije, a V = B*H
veličina tog dela zavisi od tipa promenljive.
U promenljivu mogu se upisivati i iščitavati podaci sve dok ta P, V
promenljiva postoji u memoriji.
End
Uvod u programiranje 11/38

Promenljive i konstante Start

r, H
Dve su bitne stvari kod kreiranja promenljivih:
Pi = 3.14
 deklaracija i
 inicijalizacija. B = r*r*Pi
Kreiranje promenljive u koju će se smestiti poluprečnik
osnove: M = 2*r*Pi*H
float r;
Na ovaj način je deklarisana promenljiva koja ima tip „float“ P = 2*B+M
(za decimalne vrednosti) pod imenom „r“.
V = B*H
Inicijalizacija:
 unosom: scanf(„%f“,&r); P, V
 u programu: r = 123.45; End
Uvod u programiranje 12/38

Promenljive i konstante Start

r, H
Ukoliko se neinicializuje promenljiva ona dobija vrednost
memorijske lokacije, ali u svim drugim pogledima, ponašanje Pi = 3.14
inicijalizovane i neinicijalizovane promeljive je potpuno isto.
B = r*r*Pi
Konstante su takođe vid promenljivih, ali se njima vrednost
dodeljuje samo jednom, prilikom inicijalizacije. U daljem toku M = 2*r*Pi*H
programa njihova vrednost se samo moze iščitavati.

Bitno je da konstante, takođe, moraju biti inicijalizovane, u P = 2*B+M


suprotnom nema svrhe koristiti ih.
V = B*H

P, V

End
Uvod u programiranje 13/38

Promenljive i konstante Start

r, H
Pravila za dodeljivanja imena promeljivima
Pi = 3.14
Promenljiva moze sadržati proizvoljno ime, ali ono treba da
opisuje namenu promenljive, dakle ako treba da čuva zbir B = r*r*Pi
nekih brojeva verovatno će biti nazvana „zbir“ ili „rezultat“.

Imena promenljivih smeju da sadrže slova, brojeve i znak M = 2*r*Pi*H


donje crte ( _ ).
P = 2*B+M
Na početku imena mora se naći ili slovo ili donja crta,
broj ne sme!
V = B*H

P, V

End
Uvod u programiranje 14/38

Promenljive i konstante

Rezervisane reči u C jeziku

auto double int struct


break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

Ova imena ne smeju se koristiti za nazive promenljivi!


Uvod u programiranje 15/38

Tipovi podataka

brojevi
 celi brojevi
 decimalni brojevi

karakteri
strukture
 nizovi - složene strukture jednog istog tipa podatka
 jednodimenzionalni - red
 dvodimenzionalni - matrica
 slogovi
 tabele
 redovi
 ...
Uvod u programiranje 16/38

Promenljive i konstante
Tipovi podataka
Tipovi podataka i intervali vrednosti

deklaracija C interval vrednosti


char 8 bita [-128, 127]
unsigned char 8 bita [0 , 255]
short 16 bita [-32.768 , 32.767]
int 32 bita [-2.147.483.648 , 2.147.483.647]
long 32 bita [-2.147.483.648 , 2.147.483.647]
unsigned 32 bita [0 , 4.294.967.295]
unsigned long 32 bita [0 , 4.294.967.295]
float 32 bita ( 3.4 x 10-38 , 3.4 x 1038 )
double 64 bita ( 1.7 x 10-308 , 1.7 x 10308 )
long double 80 bita ( 3.4 x 10-4932 , 3.4 x 104932 )
Uvod u programiranje 17/38

Tipovi podataka

Realni tip podatka

Deklariše se kao:
 float - realni brojevi jednostruke tačnosti (sa 6 značajnih cifara)
 double - realni brojevi dvostruke tačnosti (sa 15 značajnih cifara)
Ispravna sintaksa, deklarisanje promenljivih:
float x,y,g;
double z;

x = -2.1e-5;
y = 5060.;
z = 0.123456789012345;
g =1.123456;
Uvod u programiranje 18/38

Tipovi podataka

Znakovni tip podatka


Deklariše se sa char.

Definiše uređen skup osnovnih znakova jezika C, tj. skup ASCII znakova.

Promenjivoj tipa char se u memoriji dodeljuje jedan bajt.


To znači da je opseg brojnog intrvala koji predstavlja podskup tipa int od -128 do 127.
(28 = 256)
Te celobrojne vrednosti predstavljaju kodove definisane ASCII standardom.

Dakle, svaki znak u programskom jeziku C se interpretira sa celim brojem koji označava
kod toga znaka.
Uvod u programiranje 19/38

Tipovi podataka

Znakovni tip podatka


Znakovne konstante navodimo tako što znak napišemo između apostrofa.

'a', '5', 'A', 'u', 'O', '9'


Specijalne znakove kao što su \, " , ' ... navodimo tako što se između apostrofa prvo
napiše znak \ - backslash:
\: '\\ '
": '\"'
': '\' '
Uvod u programiranje 20/38

Tipovi podataka

Konstante i predprocesor
Predprocesiranje je postupak kojim se pre kompajliranja izvornog C programa vrši
priprema,ako se naiđe na direktivu predprocesora (Pi) vrši se zamena direktive sa
navedenom definicijom (3.14)
Direktive kompajleru tj. direktive predprocesora, jezika C, pišu se na početku ispred
funkcije main() i počinju znakom #

# include <stdio>
#define Pi 3.14
main()
{
...
}
Uvod u programiranje 21/38

Ulazna funkcija scanf();


Start Funkcija se koristi za unos podataka sa tastature tj. prihvata
vrednost koja se unosi i dodeljuje je promenljivoj u programu.

x, y
scanf(“%Format",&Promenljiva);
int i,j,k;
scanf("%d",&i);
zbir = x+y scanf("%d",&j);
scanf("%d",&k);
Ova scanf funkcija učitava 3 celobrojne vrednosti i prvu čuva
zbir promenjiva i, drugu j, a treću promenjiva k.

Znak & ispred imena promenljive služi za određivanje adrese te


End promenljive.
Uvod u programiranje 22/38

Izlazna funkcija printf();


Start Funkcija se koristi za prikazivanje vrednosti promenljivi.

printf("upravljački string", [lista promenljivi koje


x, y se prikazuju]);
“Upravljački string” predstavlja oblik kako će izgledati izlazna
zbir = x+y poruka.
Tekst koji unosimo će biti potpuno isto i prikazan na ekranu, dok
za vrednosti promenjivi se mora napisati izlazna konverzija koja
zbir počinje znakom %, a obavezno sadrži i slovo koje govori kog
tipa podataka je ta promenjiva.

End
Uvod u programiranje 23/38

Izlazna funkcija printf();

znak konverzije tip podatka opis


%c char Jedan znak
%d int Celi dekadni broj
%f float, double Realni broj sa 6 decimala
%e float, double Eksponencijalni zapis
%g float, double Skraćeni zapis
%s char * String
%ld long [int] Celi dekadni broj
Uvod u programiranje 24/38

Ulazna/Izlazna funkcija scanf/printf


Učitati vrednosti za celobrojne promenjive a,b i c, pa prikazati sledeću poruku na
ekranu:
a = ____ kg.
b = ____ m.
c = ____ din.
Uvod u programiranje 25/38

Ulazna/Izlazna funkcija scanf/printf


Učitati vrednosti za celobrojne promenjive a,b i c, pa prikazati sledeću poruku na
ekranu:
#include <stdio.h>
a = ____ kg.
#include <stdlib.h>
b = ____ m.
c = ____ din.
int main(int argc, char *argv[])
{
int a,b,c;
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0;
}
Uvod u programiranje 26/38

Ulazna/Izlazna funkcija scanf/printf


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a,b,c; Deklarisanje promenljivih
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0;
}
Uvod u programiranje 27/38

Ulazna/Izlazna funkcija scanf/printf


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a,b,c;
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0;
}
Uvod u programiranje 28/38

Ulazna/Izlazna funkcija scanf/printf


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a,b,c;
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0;
}
Uvod u programiranje 29/38

Ulazna/Izlazna funkcija scanf/printf


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ 15 25 35
int a,b,c;
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0;
}
Uvod u programiranje 30/38

Ulazna/Izlazna funkcija scanf/printf


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ 15
int a,b,c;
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0;
}
Uvod u programiranje 31/38

Ulazna/Izlazna funkcija scanf/printf


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ 15 25
int a,b,c;
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0;
}
Uvod u programiranje 32/38

Ulazna/Izlazna funkcija scanf/printf


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ 15 25 35
int a,b,c;
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0;
}
Uvod u programiranje 33/38

Ulazna/Izlazna funkcija scanf/printf


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ 15 25 35
int a,b,c;
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0; a= 15 kg
b= 25 m
} c= 35 din
Press any key to continue
Uvod u programiranje 34/38

Ulazna/Izlazna funkcija scanf/printf


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ 15 25 35
int a,b,c;
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0; a= 15 kg
b= 25 m
} c= 35 din
Press any key to continue
Uvod u programiranje 35/38

Ulazna/Izlazna funkcija scanf/printf


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ 15 25 35
int a,b,c;
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0; a= 15 kg
b= 25 m
} c= 35 din
Press any key to continue
Uvod u programiranje 36/38

Ulazna/Izlazna funkcija scanf/printf


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ 15 25 35
int a,b,c;
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0; a= 15 kg
b= 25 m
} c= 35 din
Press any key to continue
Uvod u programiranje 37/38

Ulazna/Izlazna funkcija scanf/printf


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ 15 25 35
int a,b,c;
printf("Uneti tri cela broja\n");
scanf("%d %d %d",&a,&b,&c);
printf("a=%d\t kg\nb=%d\t m\nc=%d\t din\n",a,b,c);
system("PAUSE");
return 0; a= 15 kg
b= 25 m
} c= 35 din
Press any key to continue

You might also like