Predavanja02 C++

You might also like

Download as pps, pdf, or txt
Download as pps, pdf, or txt
You are on page 1of 42

kolska 2011/12

Raunarstvo i programiranje

Razgranate programske strukture


Reavanje veine zadataka zahteva sloeniju programsku logiku od one kod koje se
operatori izvravaju jedan za drugim. Razgranate programske strukture su one kod kojih
se u nekom koraku programa u zavisnosti od nekog uslova, donosi odluka koja e od
vie akcija biti izvrena.
Uslovni operator

if se pojavljuje u sledeim oblicima

Prvi nain:

if (uslov) operator1;
ako je uslov taan izvrava se operator1, ako je netaan nastavlja se dalji tok
programa
drugi nain:

if (uslov) operator1;
else operator2;
ako je uslov taan izvrava se operator1, inae izvrava se operator2.
NAPOMENA:
Ako je vrednost uslova 0, znai da je uslov netaan, u suprotnom je taan.
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 1

kolska 2011/12

Raunarstvo i programiranje

Razgranate programske strukture


Primer

x=1;
if (x<3) printf("Tacno");
else printf("Netacno");
/* Tacno */
if(x+10<3*x) scanf("%d",&x);
else { x++;
printf("%d\t",x++);
printf("%d",x);
/*2 3 */
}

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 2

kolska 2011/12

Raunarstvo i programiranje

Primer 2-1. Napii program kojim se odreuje vei od dva uneta broja.

#include <iostream>
main()
{
int a,b,veci;
printf("Unesi dva broja: ");
scanf("%d%d",&a,&b);
if (a>b) veci=a;
else veci=b;
printf("Veci broj je: %d\n",veci);
system("PAUSE");
return 0;
}

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 3

kolska 2011/12

Raunarstvo i programiranje

Trei nain korienja if

if operator se koristi i u sledeim oblicima (ugnjedeni (nested) if ):

x=3;
y=1;
if (x>0)
if (y>0) x++;
else y++;
else { x--;
y--;
}

/* ugnjedeni (nested)if */
/* x=4, y=1 */

...
U C jeziku else odgovara prvom slobodnom if koje prethodi a ne sadri else.
Napomena:
x++ je isto to i x=x+1
y-- je isto to i y=y-1
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 4

kolska 2011/12

Raunarstvo i programiranje

U C jeziku else odgovara prvom slobodnom if koje prethodi a ne sadri else.


Ako elimo da promenimo to pravilo pridruivanja moramo koristiti velike zagrade
...
x=3;
y=1;
if (x>0)
{
if (y<0) x++;
}
else y++;

/* x=3, y=1 */

...

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 5

kolska 2011/12

Raunarstvo i programiranje

Primer 2-2. U programu se vri pogaanje "maginog" broja. (broj je skriven u obliku
ASCII koda)
#include <iostream>
# define MAGIC '?'
main()
{
int broj;
printf("Broj: ");
scanf("%d",&broj);
if (broj==MAGIC) printf("TACNO\n%d je magican broj",MAGIC);
else {printf("NETACNO\n");
if (broj>MAGIC) printf("MAGICNI broj je manji\n");
else printf("MAGICNI broj je veci\n");
}
system("PAUSE");
return 0;
}

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 6

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-1. Napisati program koji vri proveru da li unete duine stranica a, b i c
mogu formirati trougao.
#include <iostream>
#include <math.h>
#include <conio.h>
main()
{
float a,b,c,p,s;
printf("Unesi stranice trougla \na= "); scanf("%f",&a);
printf("b= "); scanf("%f",&b);
printf("c= "); scanf("%f",&c);
if (a+b>c && a+c>b && b+c>a){
s=(a+b+c)/2;
p=sqrt(s*(s-a)*(s-b)*(s-c));
printf("p= %.3f\n",p);
}
else printf("NE MOZE SE NACRTATI TROUGAO\n");
getch();
}
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 7

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-2. Napisati program koji za tri unete vrednosti prikazuje najmanju.
#include <iostream>
#include <conio.h>
main()
{
int a,b,c,d,min;
printf("Unesi celobrojne vrednosti a,b,c,d: ");
scanf("%d%d%d%d",&a,&b,&c,&d);
min=a;
if(b<min) min=b;
if(c<min) min=c;
if(d<min) min=d;
printf("Najmanja vrednost je %d",min);
getch();
}
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 8

kolska 2011/12

Raunarstvo i programiranje

Operator viestrukog izbora - switch()


Slui da omogui grananje u programu na vie grana. Ovu varijantu grananja mogue je
postii i sa vie

if operatora , ali je korienjem switch -jasnije i jednostavnije.

Oblik operatora je:

switch (izraz)
{
case const1: . . .
...
break;
case const2: . . .
...
break;
.
.
.
case constN: . . .
...
break;
default: . . .
...
break;
}
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 9

kolska 2011/12

Raunarstvo i programiranje

Operator viestrukog izbora - switch()


izraz ima svoju celobrojnu vrednost. Ponueno je vie case operatota iza kojih je
napisana vrednost celobrojne konstante ( const1, const2, ...). Svaki od tih case sluajeva ima niz operatora
...
...

break;
koji se zavravaju operatorom break; koji vri prekid izvravanja celog switch
operatora. Izvrie se onaj niz tih operatora koji stoji pored case kod koga je const
jednaka sa izraz .
default je alternativa, tj. ako se ni jedan od ponuenih sluajeva ne izvri onda se
izvravaju operacije napisane pod default.

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 10

kolska 2011/12

Raunarstvo i programiranje

Primer 2-3. U zavisnosti od vrednosti diskriminante, D, kvadratne jednaine ispisati


sledee iskaze, ako je D>0, reenja x1 i x2 su realna i razliita, D=0, X1 i X2 realna i
jednaka, i D<0 X1 i X2 su imaginarna.
#include <iostream>
#include <conio.h>
#include<stdlib.h>
#include<math.h>
main()
{
float a,b,c,x1,x2,D,img;
int i;
printf("Uneti koeficijente kvadratne jednacine a*x^2+b*x+c=0\n");
printf("Koeficijent a = ");
scanf("%f",&a);
printf("\nKoeficijent b = ");
scanf("%f",&b);
printf("\nKoeficijent c = ");
scanf("%f",&c);

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 11

kolska 2011/12

Raunarstvo i programiranje

NASTAVAK
D=b*b-4*a*c;
if(D>0) i=1;
if(D==0) i=2;
if(D<0) i=3;
switch(i)
{
case 1: printf("RESENJA x1 i x2 su realna i razlicita\n");
x1=((-1)*b-sqrt(D))/(2*a);
x2=((-1)*b+sqrt(D))/(2*a);
printf("\nx1=%f, x2=%f",x1,x2);
break;
case 2: printf("RESENJA x1 i x2 su realna i jednaka\n");
x1=(-1)*b/(2*a);
printf("\nx1=x2=%f",x1);
break;
case 3: printf("RESENJA x1 i x2 su imaginarna i razlicita\n");
img=sqrt(D*(-1));
printf("\nx1=%.3f",(-1)*b/(2*a));
printf("-i*%.3f",img/(2*a));
printf("\nx2=%.3f",(-1)*b/(2*a));
printf("+i*%.3f",img/(2*a));
OSNOVI PROGRAMIRANJA
U PROGRAMSKOM JEZIKU C

II - 12

kolska 2011/12

Raunarstvo i programiranje

NASTAVAK
D=b*b-4*a*c;
if(D>0) i=1;
if(D==0) i=2;
if(D<0) i=3;
switch(i)
{
case 1: printf("RESENJA x1 i x2 su realna i razlicita\n");
x1=((-1)*b-sqrt(D))/(2*a);
x2=((-1)*b+sqrt(D))/(2*a);
printf("\nx1=%f, x2=%f",x1,x2);
break;
case 2: printf("RESENJA x1 i x2 su realna i jednaka\n");
x1=(-1)*b/(2*a);
printf("\nx1=x2=%f",x1);
break;

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 13

kolska 2011/12

Raunarstvo i programiranje

NASTAVAK
case 3: printf("RESENJA x1 i x2 su imaginarna i razlicita\n");
img=sqrt(D*(-1));
printf("\nx1=%.3f",(-1)*b/(2*a));
printf("-i*%.3f",img/(2*a));
printf("\nx2=%.3f",(-1)*b/(2*a));
printf("+i*%.3f",img/(2*a));
break;
}
getch();
}

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 14

kolska 2011/12

Raunarstvo i programiranje

Ciklusi - petlje
Petlje omoguavaju da se skup instrukcija izvrava ako je odreeni uslov ispunjen.

-for() ciklus
Uloga for ciklusa je, najee, izvravanje odreenih instrukcija tano odreen broj
puta.
Opti oblik iskaza je
for( inicijalizacija; uslov; korekcija brojaa)
{
telo ciklusa
};
inicijalizacija - predstavlja, obino, postavljanje brojaa petlje na poetnu
vrednost (npr. x=0;)
uslov - je relacija koja odreuje kada se izlazi iz te petlje (npr. x<9)
korekcija brojaa - odreuje kako e se menjati brojaka promenljiva (npr. x++)

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 15

kolska 2011/12

Raunarstvo i programiranje

Primer 2-4.
for( x=0; x<10; x++) printf("*");
Tok izvavanja ciklusa u primeru je sledei:
1. Postavlja se poetna vrednost na x=0
2. Prvi krug ciklusa: (x=0)
- provera uslova: 0<10 je tacno
- izvrava se printf...
- vri se korekcija x++ tj x=1
3. Drugi krug ciklusa: (x=1)
- provera uslova: 1 <10 je tacno
- izvrava se printf...
- vri se korekcija x++ tj x=2
...

Posle toga u proveri uslova se dobija


netaan uslov i zavrava se sa radom
ciklusa (jer 10 < 10 je netano).
Ova petlja prikazuje:
liniju sa 10 zvezdica ********** , jer se
ciklus tj. iskaz
printf("*");
ponavlja 10 puta.

Deseti krug ciklusa: (x=9)


- provera uslova: 9 <10 je tacno
- izvrava se printf...
- vri se korekcija x++ tj x=10

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 16

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-3. Napisati program koji prikazuje na ekranu pravougaonik formiran od


znaka *', takav da je irok 25, a dug 15 znakova.

#include <iostream>
#include <conio.h>
main()
{
int i,j;
for(i=0;i<15;i++)
{
for(j=0;j<25;j++) printf("%c",*); /*stampa jedan red */
printf("\n");
}
getch();
}

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 17

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-4. Napisati program koji uitava i rauna sumu n celih brojeva.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int n,suma,i,a;
printf("Uneti broj n ");
scanf("%d",&n);
suma=0;
for(i=1;i<n+1;i++)
{
printf("Ucitati %d broj ",i);
scanf("%d",&a);
suma=suma+a;
}
printf(Zbir ucitanih brojeva je %d\n",suma);
system("PAUSE");
return 0;
}
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 18

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-5. Napisati program koji uitava 10 celih brojeva i rauna priozvod
samo parnih meu njima.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int n,p,i,a;
printf("Uneti broj n ");
scanf("%d",&n);
p=1;
for(i=1;i<n+1;i++)
{
printf("Ucitati %d broj ",i);
scanf("%d",&a);
if(a%2==0)p=p*a;
}
printf("Proizvod ucitanih parnih brojeva je %d\n",p);
system("PAUSE");
return 0;
}
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 19

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-5. Napisati program koji uitava ncelih brojeva i rauna razliku proizvoda
parnih i neparnih meu njima.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int n,p0,p1,raz,i,a;
printf("Uneti broj n ");
scanf("%d",&n);
p1=1;
p0=1;
for(i=1;i<n+1;i++)
{
printf("Ucitati %d broj ",i);
scanf("%d",&a);
if(a%2==0)p0=p0*a;
else p1=p1*a;
}
raz=p0-p1;
printf("Razlika proizvoda ucitanih parnih i neparnih brojeva je %d\n",raz);
system("PAUSE");
return 0;
}

kolska 2011/12

Raunarstvo i programiranje

Ciklus while()
Broj ponavljanja ciklusa odreuje se uslovom koji se nalazi ispred tela ciklusa. Zato

while ciklus zovemo ciklus sa preduslovom.


Tok izvravanja ciklusa je sledei:
while(uslov )
{
telo ciklusa
}
1. Provera uslova, ako je uslov taan ide se na naredbe tela ciklusa, ako nije
prekida se sa radom while ciklusa
2. Izvrava se telo ciklusa (u njemu se mora voditi rauna o parametrima koji
ulaze u uslov da bi on nekad postao netaan i prekinuo ciklus)
3. Ponovo provera uslov-a, pa zatim ponavljamo taku 2, 3, 2, ... sve dok uslov
ne postane netaan. Tada se prekida while() ciklus.

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 21

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-6. Raunati sumu prirodnih brojeva 1, 2, ..., n sve dok vrednost sume
ne dostigne vrednost veu od 1.000.000.000 , prikazati koliko je brojeva sumirano.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long n,suma;
suma=0;
n=1;
while(suma<1000000000)
{
suma=suma+n;
n=n+1; /*n++*/
}
printf("Sabrano je %ld brojeva i njihova suma je %ld\n",n,suma);
system("PAUSE");
return 0;
}

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 22

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-7. Napisati program za priblino raunanje sume:

Sumirati do prvog lana (ukljuujui i njega) koji je po apsolutnoj vrednosti manji od


unete vrednosti greke (eps).

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 23

kolska 2011/12

Raunarstvo i programiranje

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
float s,x,eps,p;
int n,i;
n=1;
s=1.0;
printf("Unesi x:");
scanf("%f",&x);
printf("Unesi eps:");
scanf("%f",&eps);
p=x;
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 24

kolska 2011/12

Raunarstvo i programiranje

while(abs(p)>eps)
{
s+=p;
p=x;
n++;
for(i=2;i<=n;i++)
p=-p*(-x/i);
}
printf("\n s=%f",s);
printf("\n sumiramo je %d elemenata",n);
system("PAUSE");
return 0;
}

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 25

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-8. Napisati program kojim unosimo tekst do pojavljivanja znaka '.' .
Prikazati broj pojavljivanja slova 'A ili a i izraziti tu vrednost procentualno u
odnosu na sve unete znake.

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 26

kolska 2011/12

Raunarstvo i programiranje

#include <iostream>
#include <conio.h>
#define TACKA '.'
main()
{
int ch,n,u;
float p;
n=0;
u=0;
ch=getche();
while(ch!=TACKA)
{
u++;
if(ch=='A' or ch=='a')n++;
ch=getche();
}
p=(float)n/u*100;
printf("\nUkupno znakova:%d",u);
printf("\nUkupno slovo A ili a:%d",n);
printf("\nU procentima:%.2f%\n",p);
getch();
}
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 27

kolska 2011/12

Raunarstvo i programiranje

Nizovi
Niz je ureen skup promenljvih istog tipa. Oni se deklariu kao i ostale promenljive, ali
da bi odredili koliko elemenata moe sadrati taj niz u programu, dodajemo imenu
promenljive broj elemenata niza napisan u srednjim zagradama.
int a[100];
Ovom deklaracijom je najavljen niz a koji moe imati 100 elemenata tipa int.
Ti elementi se zovu: a[0], a[1], a[2], ... a[99]. Kao i ostale deklaracije promenljivih u C-u,
ne vri se nikakva inicijalizacija elemenata nizova prilikom deklaracije, tada su
vrednosti tih elemenata sluajno zateene vrednosti na tim memorijskim
lokacijama koje su zauzeli elmenti niza. Prilikom uitavanja i prikazivanja elemenata
niza obino se koristi for petlja da bi upotrebili svaku promenljivu niza.

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 28

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-9. Napisatii program koji uitava niz n realnih brojeva i rauna njegovu
aritmetiku sredinu.(n<=50)
#include <iostream>
#include <conio.h>
main()
{
int i,n;
float a[50],as,s;
s=0;
printf("Uneti broj elemenata niza (<50) n: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("a[%d] = ",i);
scanf("%f",&a[i]);
}
for(i=0;i<n;i++) s+=a[i];
as=s/n;
printf("AS = %.2f",as);
getch();
}
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 29

kolska 2011/12

Raunarstvo i programiranje

Inicijalizacija niza
Inicijalizacija ili zadavanje poetnih vrednosti elementima niza moe se izvriti na
sledei nain.
int dani[12]={31,28,31,30,31,30,31,31,30,31,30,31};
ovako smo inicijalizovali promenljivu dani koja sadri broj dana u mesecu pa
elementi imaju sledee vrednosti.
dani[0]=31 /* januar */
dani[1]=28 /* februar */
...
dani[11]=31 /* decembar */

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 30

kolska 2011/12

Raunarstvo i programiranje

Inicijalizacija upotrebom memorijske klase static


Na ovaj nain, korienjem rezervisane rei static ispred deklaracije niza, postie se
da se vrednosti svih elemenata tog niza inicijalizuju poetnom vrednou nula.
static int a[10];
Sledea inicijalizacija postavlja vrednosti za prva tri lana niza dok ostali lanovi dobijaju
vrednost nula.
static dani[12]={31,28,31};

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 31

kolska 2011/12

Raunarstvo i programiranje

Sortiranje niza
Sortiranje nizova je ureivanje elemenata niza u nekom poretku.
Rastui poredak: svaki element niza je vei od prethodnog elementa.
Opadajui poredak: svaki element niza je manji od prethodnog.
Neopadajui poredak: svaki element niza nije manji od prethodnog elementa.
Nerastui poredak: svaki element niza nije vei od prethodnog elementa
Postoji puno algoritama koji vre sortiranje nizova. Pored naina reanja elemenata
niza u neki od navedenih poretka vrlo bitna je i brzina izvravanja tog algoritma.
Koristiemo jedan od osnovnih algoritama za sortiranje niza a[] koji sadri n
elemenata u neopadajui poredak.
for(i=0;i<n-1;i++)
Kada elimo nerastui poredak
for(j=i+1;j<n;j++)
onda se samo zameni znak u if
if(a[i]>a[j])
naredbi tj piemo a[i]<a[j].
{
/*razmena mesta elementima a[i] i a[j] */
pom=a[i];
a[i]=a[j];
a[j]=pom;
}
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 32

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-9. Napisati program koji metodom sluajnog izbora formira niz celih brojeva
od 200 elemenata (elementi su brojevi od 0-999), pa ga zatim sortira u neopadajuem
poredku i prikazuje sve elemente sortiranog niza.

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 33

kolska 2011/12

Raunarstvo i programiranje

#include <iostream>
#include <conio.h>
#include<stdlib.h>
#define n 200
main()
{
int a[n];
int i,j,x,pom;
rand(); /*komanda za slucajni broj u intervalu od 0 do 1 /*
for(i=0;i<n;i++) a[i]= rand()*1000;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{
pom=a[i];
a[i]=a[j];
a[j]=pom;
}
for(i=0;i<n;i++) printf("%d, ",a[i]);
getch();
}
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 34

kolska 2011/12

Raunarstvo i programiranje

Dvodimenzioni niz - matrica


Formiranje matrice dimenzije m x n (m-vrsta, n kolona)
for (i=0;i<m;i++)
for(j=0;j<n;j++) scanf ("d",&a[i][j]);
Prikazivanje matrice:
for(i=0;i<m;i++)
{
for(j=0;j<n;j++) printf("%4d",a[i][j]);
printf("\n");
}

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 35

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-10. Napii program koji formira matricu dimenzija m x n, pa je zatim


prikazuje sloenu po vrstama i kolonama.

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 36

kolska 2011/12

Raunarstvo i programiranje

#include <iostream>
#include <conio.h>
#include<stdlib.h>
main()
{
int a[50][50];
int i,j,m,n;
printf("Unesi broj vrsta i kolona: ");
scanf("%d%d",&m, &n);
printf("Unesi elemente matrice:\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++) scanf("%d",&a[i][j]);
printf("\n\n\nUneta je matrica:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
getch();
}
OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 37

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-11. Napii program koj formira matricu dimenzija m x n ije elemente bira
sluajnim izborom brojeva od 0-9, Prikazati matricu i sumu elemenata prve vrste te
matrice.

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 38

kolska 2011/12

Raunarstvo i programiranje

#include <iostream>
#include <conio.h>
#include<stdlib.h>
main()
{
int a[50][50];
int i,j,m,n,s;
rand();
printf("Unesi broj vrsta i kolona:");
scanf("%d%d",&m,&n);
printf("Unesi elemente matrice: \n");
for(i=0;i<m;i++)
for(j=0;j<n;j++) a[i][j]=rand()*0.0001;
s=0;
for(i=0;i<n;i++)s+=a[0][i]; /*sumira prvu vrstu matrice */
printf("\n\n\n Uneta je matrica; \n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++) printf("%4d ",a[i][j]);
printf("\n");
}
printf("Suma prve vrste matrice je:%d",s);
getch();
}

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 39

kolska 2011/12

Raunarstvo i programiranje

Zadatak 2-12. Napii program koji uitava dve matrice dimenzije m x n sluajnim
izborom elemenata (0-9). Izraunaj zbir te dve matrice i prikazati poruku u obliku
Martica A
......
Martica B
.........
Rezultat
.........

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 40

kolska 2011/12

Raunarstvo i programiranje

#include <iostream>
#include <conio.h>
#include<stdlib.h>
void ucitaj(int m, int n, int a[50][50]); /*FUNKCIJA*/
void pisi(int m, int n, int a[50][50]); /*FUNKCIJA*/
main()
{
int a[50][50],b[50][50], c[50][50];
int i,j,m,n;
printf("Unesi broj vrsta ");
scanf("%d",&m);
printf("\nUnesi broj kolona ");
scanf("%d",&n);
printf("\n UNOS ELEMENATA MATRICE A\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)a[i][j]=int(rand()*0.0001);
printf("\n UNOS ELEMENATA MATRICE B\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)b[i][j]=int(rand()*0.0001);
printf("\n MATRICA C = A+B\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)c[i][j]=a[i][j]+b[i][j];
printf("\n MATRICA A\n");

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 41

kolska 2011/12

Raunarstvo i programiranje

NASTAVAK
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)printf("%4d ",a[i][j]);
printf("\n");
}
printf("\n MATRICA B\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)printf("%4d ",b[i][j]);
printf("\n");
}
printf("\n MATRICA C\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)printf("%4d ",c[i][j]);
printf("\n");
}
getch();
}

OSNOVI PROGRAMIRANJA U PROGRAMSKOM JEZIKU C

II - 42

You might also like