You are on page 1of 13

Računalni sustavi

Maja Štula
Ak. God. 2010/2011
Programski jezici
• 4 osnovne programske paradigme:
– imperativna (C, Fortran, Pascal, …) – dijelovi kôda
zajedničke funkcionalnosti se organiziraju kao funkcije koje
se trebaju programirati
– objektno-orijentirana (C++, Java, C# …) – dijelovi kôda
zajedničke funkcionalnosti se organiziraju kao klase (ili
objekti)
– funkcionalna (Lisp, Haskel, ….)
– deklarativna (Prolog,….)
• Programska paradigma je obrazac ili uzorak
programiranja.

2
Programske paradigme
imperativna
void ispis_broj(int broj) class pisanje
objektno-orijentirana
{
{ int broj;
printf(“%d\n”, broj); public:
} void ispis_broj()
{
void upisi_broj(int* broj) printf(“%d\n”, broj);
{ }
scanf(“%d”, broj); void upisi_broj()
{
} scanf(“%d”, &broj);
void main() }
{ };
void main()
int moj; {
upisi_broj(&moj); pisanje moj;
ispis_broj(moj); moj.upisi_broj();
moj.ispis_broj();
} }

3
Kompajliranje i linkanje aplikacije

JE
V AN
ŠA
V R
IZ

4
Deklaracija varijabli i alokacija memorije
• Alokacija memorije procesa
prilikom pokretanja
aplikacije se sastoji od 4
osnovna dijela
• kôd programa
• memorija za lokalne
varijable
• memorija za globalne
varijable
• i memorija za dinamičku
alokaciju

5
Deklaracija varijabli i alokacija memorije
#include <stdio.h>
#include <stdlib.h>
int globalna_varijabla;
void main()
{
int moj;
char * buffer;
scanf("%d", &moj);
buffer = (char*) malloc (moj);
for (int n=0; n<moj; n++)
buffer[n]=rand()%26+'a';

buffer[moj]='\0';
printf ("Random string: %s\n",buffer);
free (buffer);
}

6
Programske kontrolne strukture
• Grananje #include <stdio.h>
void main()
{
if(){} int moj;
scanf("%d", &moj);
elseif(){} if(moj<10)
{
else(){} printf("Uneseni broj je manji od 10\n");
}
else if(moj<20)
{
printf("Uneseni broj je manji od 20 i veći
od 10\n");
}
else
{
printf("Uneseni broj je veći od 20\n");
}
}

7
Programske kontrolne strukture
#include <stdio.h>
• Grananje void main()
{
switch(): int moj;
scanf("%d", &moj);
case: switch(moj)
{
break; case 1:
printf("Uneseni broj je 1\n");
break
case 2:
printf("Uneseni broj je 2\n");
break;
default:
printf("Uneseni broj nije ni 1 ni 2\n");
break;
}
}

8
Programske kontrolne strukture
• Petlje #include <stdio.h>
void main()
for(int i=0;i<10;i++) {
{ for(int i=0;i<10;i++)
} {
while(i<10) printf("%d\n",i);
{ }
i++; }
}
do
{
i++;
} while(i<10)

9
Složeni tipovi podataka
• Složeni tipovi podataka u programskim jezicima su
obično kompozicija više osnovnih ili drugih složenih
tipova podataka.
• Tipični primjer složenog tipa podataka je niz.
Npr. int niz[10] = { 1,2,3,4,5,6,7,8,9,10}
• U programskom jeziku C za definiranje vlastitih
korisničkih podataka (user defined data type) se
koristi struktura.

10
C struktura
#include <stdio.h>
• Deklaracija novog tipa
void main()
{
podatka
struct student
{
char ime[50];
char prezime[50];
int godina_studija;
};

struct student prvi;


• Kreiranje varijable prema
printf("Unesi ime studenta\n"); novom definiranom tipu
scanf("%s",prvi.ime);
printf("Unesi prezime studenta\n");
podatka
scanf("%s",prvi.prezime);
printf("Unesi godinu studija\n");
scanf("%d",&prvi.godina_studija); • Rad sa članovima strukture.
printf("Uneseni student\n");
printf("Ime: %s\n", prvi.ime);
printf("Prezime: %s\n", prvi.prezime);
printf("Godina studija: %d\n", prvi.godina_studija);
}

11
C++ struktura
• C++ je objektno orijentirani jezik.
• Strukture se proširuju dodavanjem osim podatkovnih
članova i funkcijskih članova tvoreći klase.
• Korištenje ključne riječi struct u C++ je slično kao i
korištenje ključne riječi class.
• Time se kreira predložak za stvaranje objekata.
• Razlika je što su članovi strukture po defaultu
definirani sa javnim pravom pristupa, a članovi klase
su po defaultu definirani sa privatnim pravom
pristupa.

12
C++ struktura/klasa
struct nova
{
• Deklaracija strukture
int a; • Deklaracija klase
float b;
};
class novija
{
int a;
float b;
};

void main() • Instanciranje objekta


{
nova prvi;
novija drugi;
prvi.a = 4;
prvi.b = 4.5;

drugi.a=4;
• Greška sa pravom pristupa
drugi.b=4.5;
}

13

You might also like