Professional Documents
Culture Documents
Zadaci Sa Rešenjima (Uz Objašnjenje Pored) Iz Programiranja U C++
Zadaci Sa Rešenjima (Uz Objašnjenje Pored) Iz Programiranja U C++
Viestruko
grananje
int main()
{
float a,b;
1
cin>>a;
if(a<0)
{
b=sqrt(-a);
// moe se u argumentu funkcije koja trai koren obrnuti znak
promenljive a
//a=-1*a;b=sqrt(a); //alternativni nain, moe se prvo obrnuti znak vrednosti a,
a zatim traiti //koren
}
else
{
b=sqrt(a);
}
cout<<b;
system("pause");
return 0;
}
}
else
{
b=1/a;
cout<<"Vrednost f-je je:"<<b;
}
system("pause");
return 0;
}
4. Napisati program koji od tri broja koja unese korisnik nalazi najmanji i najvei.
Ovaj program sadri viestruko if else grananje.
#include<iostream.h>
int main()
{
float a,b,c;
float min,max; //definiu se promenjljive min i max, koje e uzimati vrednosti
manjeg, odnosno //veeg broja pri uporeivanju
cout<<"\nUnesite broj a:";
cin>>a;
cout<<"\nUnesite broj b:";
cin>>b;
cout<<"\nUnesite broj c:";
cin>>c;
if(a<b)
{
min=a;
max=b;
if(c>b)
max=c;
else
if(c<a)
min=c;
}
else
{
max=a;
min=b;
if(c<b)
min=c;
else
if(c>a)
max=c;
}
cout<<"\nMinimum je:"<<min;
cout<<"\nMaximum je:"<<max;
system("pause");
return 0;
}
Program se moe jo jednostavnije napisati ako se npr. promenljiva a proglasi
istovremeno i minimalnom i maksimalnom vrednou.
5. Napisati program za ureenje tri broja po veliini.
#include<iostream.h>
int main()
{
int a,b,c,pom;
cout<<"Uneti broj a:\n";
cin>>a;
cout<<"\nUneti broj b:\n";
cin>>b;
cout<<"\nUneti broj c:\n";
cin>>c;
if(b<a)
{
pom=a; //zamena mesta ne moe da se izvri u jednom koraku*; pom cuva
vrednost a
a=b;
//promenljivoj a se dodeljuje vrednost promenljive b
b=pom; //b uzima vrednost promenljive a, koja je sauvana u registru
promenljive pom
4
}
if(c<b)
{
pom=b;
b=c;
c=pom;
}
if(b<a)
{
pom=a;
a=b;
b=pom;
}
cout<<a<<b<<c;
system("pause");
return 0;
}
*Ako bi se zamena mesta pokuala ostvariti direknim putem, odnosno ako bi se
odmah prvoj promenljivoj dodelila vrednost druge promenljive, onda bi se ponitila
vrednost koju je prva promenljiva uvala u registru, a tu vrednost je potrebno
prebaciti u registar druge promenljive. Iz tog razloga se uvodi pomona promenljiva
(u ovom programu pod imenom pom) koja e uvati vrednost prve promenljive.
6.Napisati program koji ispituje da li je broj paran . (Iskoristiti operator % koji daje
ostatak pri deljenju dva broja) .
7.Napisati program koji trai apsolutnu vrednost razlike dva parna broja |m-n|. Ako
korisnik nije uneo parne brojeve ispisati poruku o greci na ekranu. (Iskoristiti
operator % i operator && koji se ita kao i).
8. Nai vrednost napona na krajevima redne veze za date vrednosti jaine struje I i
elektrine otpore R1 i R2. Za sluaj da su otpornici vezani paralelno za dati napon U
odrediti ukupnu jainu struje na krajevima paralelne veze i utroenu snagu na
potroau. Neka sve ulazne vrednosti unese korisnik.
}
m+=1;
//ekvivalentan zapis bi bio m=m+1; u ovom redu se vrednost
m uveava za jedan
}
if(prost)
//if (prost==true)
int main()
{
int n,m;
int fakt=1;
cout<<"Ovo je program za izracunavanje faktorijela celobrojne vrednosti n\n";
cout<<"\nUnesite ceo pozitivan broj n:";
cin>>n;
if (!(n<0)) //znak ! predstavlja negaciju, ovaj iskaz doslovno govori:Ako n nije
negativan broj
{
m=n;
while(m>0)
{
fakt=fakt*m;
m-=1;
//ekvivalentan zapis bio bi m=m-1; promenljiva m se umanjuje
za 1.
}
cout<<"\nFaktorijel broja n je n!:"<<fakt;
}
else
cout<<"\nUneli ste negativan broj";
return 0;
}
//Suma a mora da se inicijalizuje na nulu zato to prvi sabirak mora biti nula
(videti izraz za a u //narednom delu programa). Kako e se m uveavati za jedan
takoe mora da se inicijalizuje na //nulu. U suprotnom sluaju bi dolo do greke
nakon kompajliranja.
a=0;
m=0;
do
{
m+=1;
a+=m*(m+1);
}
while(m<n);
cout<<"Vrednost sume a("<<n<<")="<<a<<"\n";
cout<<"Provera: a("<<n<<")="<< n*(n+1)*(n+2)/3;
return 0;
}
4. Korienjem while petlje napisati program za aritmetiki red. Iskoristiti
rezultat Sn=n/2*(2*a1+(n-1)*d) za proveru.
5. Slino prethodnom zadatku, napisati program koji e da rauna geometrijski
red.
{
cout<<"a("<<i+1<<")=";
cin>>a[i];
}
min=a[0];
max=a[0];
for(i=1;i<n;i++)
{
if(a[i]<min)
min sadri u registru,
min=a[i];
min
if(a[i]>max)
max=a[i];
}
}
for(j=0;j<n;j++)
{
min=a[j];
minimumom
for(i=j;i<n;i++)
//zatim se u ovoj petlji ostali lanovi nakon jtog uporeuju meusobno
{
if(a[i]<min)
//ako je tekui lan manji od vrednosti
promenljive min
{
min=a[i];
//min uzima vrednost lana a(i)
index=i;
//a promenljiva index uzima vrednost i
datog lana
}
}
//lan koji je proglaen minimumom na kraju prethodne petlje se poredi sa j-tim
lanom.
if(min<a[j])
//ako je min manji od j-tog lana, ta dva
elementa e zameniti mesta
{
temp=a[j];
// temp uva vrednost a(j)
a[j]=a[index];
//zatim a(j) uzima vrednost proglaenog minimuma
a[index]=temp;
//sada je a(index) slobodan da uzme vrednost koju je
uvao temp
}
}
cout<<"Rastuci niz je:\n";
for(i=0;i<n;i++)
{
cout<<"a("<<i+1<<")="<<a[i]<<"\n";
}
system("pause");
return 0;
}
10
11
za prvih n lanova
, ,...,
brzina kretanja tela. Omoguiti korisniku unos vrednosti brzina, duine puta i
ukupan broj delova puta koje je vozilo prelo.
7. Upotrebom for petlje napisati program koji ispituje da li je broj prost.
8. Za vrednosti veliine x: 1,2,3,4,5,6,7,8,9 i 10 u eksperimentalnom merenju
dobijene su vrednosti y: 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9 i 1. Odrediti vrednosti
veliine y za vrednosti x: 1,2.5,3.6,4 i 5.
4. Upotreba funkcije
#include <iostream.h>
float srvr(float a[], int n);
int main()
{
float x[100]={15.21,15.27,15.29,15.26,15.25};
float y[100]={3.2,4.1,3.2,2.9,3.1,2};
float z[100]={3.4,3.7,3.9,3.2,3.3,4.1,4};
int n=5,m=6,k=7;
int i;
12
a=";cin>>a;
b=";cin>>b;
c=";cin>>c;
d=";cin>>d;
e=";cin>>e;
f=";cin>>f;
det=determinanta(a,b,c,d);
dx=determinanta(e,b,f,d);
dy=determinanta(a,e,c,f);
13
if(det==0)
cout<<"\n Sitem nema jedinstveno resenje";
else
{
x=dx/det;
y=dy/det;
cout<<"\n x="<<x;
cout<<"\n y"<<y;
}
return 0;
}
float determinanta(float a,float b,float c,float d)
{
return (a*d-b*c);
}
#include<iostream.h>
float
float
float
float
int main()
{
float a,b;
int operacija;
cout<<"\nMeni:";
cout<<"\noperacija
cout<<"\noperacija
cout<<"\noperacija
cout<<"\noperacija
cout<<"\nizlaz:5";
1:sabiranje";
2:oduzimanje";
3:mnozenje";
4:deljenje";
14
do
{
cout<<"\nUnesite prvi broj:";
cin>>a;
cout<<"\nUnesite drugi broj:";
cin>>b;
cout<<"\nIzaberite operaciju";
cin>>operacija;
//break
}
while (operacija!=5);
system("pause");
return 0;
}
float sabiranje(float x,float y)
{
return (x+y);
}
float oduzimanje(float x,float y)
{
return (x-y);
}
float mnozenje(float x,float y)
{
return (x*y);
15
}
float deljenje(float x,float y)
{
if (y==0)
cout<<"Nedozvoljena operacija";
return (x/y);
}
Malo elegantniji nain bio bi da se umesto numerikog izbora operacije deklarie
promenljiva pod imenom operacija, tipa char, koja e uzimati oznake '+','-','*' i
'/'.
5. Matrice
1. Omoguiti korisniku unos elemenata kvadratne matrice, a zatim odrediti trag
matrice.
#include<iostream.h>
int main()
{
float a[50][50];
int i,j,n,S;
18
for(i=0;i<n;i++)
{
c[i]=0;
for(j=0;j<m;j++)
{
c[i]+=a[i][j]*b[j];
20
}
}
cout<<"proizvod matrice a(i)(j) i vektora b(i) je vektor c(i), ciji su elementi:\n";
for(i=0;i<n;i++)
{
cout<<"c["<<i+1<<"]="<<c[i]<<"\n";
}
}
3.program sa menijem, swich case
//Programiranje I
//Vezbe: Program broj 13
//Program sa menijem koji izracunava:
// 1) Mnozenje matrice skalarom
// 2) Zbir dve matrice
// 3) Proizvod dve matrice
#include <iostream.h>
void skalar();
void sabiranje();
void mnozenje();
int main()
{
int index;
do
{
cout<<"\nMeni:";
cout<<"\n1 - Mnozenje matrice skalarom:";
cout<<"\n2 - Sabiranje matrica:";
cout<<"\n3 - Mnozenje matrica:";
cout<<"\n4 - izlaz";
cout<<"\nUnesite zeljeni izbor:";
cin>>index;
switch(index)
{
case 1:skalar();break;
case 2:sabiranje();break;
21
case 3:mnozenje();break;
case 4:cout<<"kraj programa";break;
default:cout<<"Nedefinisan izbor!";
}
}
while(index!=4);
system("pause");
return 0;
}
void skalar()
{
int i,j,n,m;
float a[20][20];
float scalar;
cout<<"\nMnozenje matrice skalarom:";
// Unos matrice
cout<<"\nUnesite broj redova matrice n=";cin >> n;
cout<<"\nUnesite broj kolona matrice m=";cin >> m;
for(i=0;i<=n-1;++i)
{
for(j=0;j<=m-1;++j)
{
cout<<"\nUnesi element matrice a(";cout<<i+1;cout<<")
(";cout<<j+1;cout<<")=";cin >> a[i][j];
}
}
//unos skalara
cout<<"\nUnesi skalar=";
cin >> scalar;
//mnozenje
for(i=0;i<=n-1;++i)
{
for(j=0;j<=m-1;++j)
{
a[i][j]=a[i][j]*scalar;
22
}
}
// Stampanje matrice
for(i=0;i<=n-1;++i)
{
for(j=0;j<=m-1;++j)
{
cout<<"\nElement matrice a(";cout<<i+1;cout<<")
(";cout<<j+1;cout<<")=";
cout<<a[i][j];
}
}
}
void sabiranje()
{
int i,j;
int n,m;
float a[20][20];
float b[20][20];
float c[20][20];
cout<<"\nSabiranje matrica:";
// Unos matrica
cout<<"\nUnesite broj redova matrica n=";cin >> n;
cout<<"\nUnesite broj kolona matrica m=";cin >> m;
for(i=0;i<=n-1;++i)
{
for(j=0;j<=m-1;++j)
{
cout<<"\nUnesi element matrice a(";cout<<i+1;cout<<")
(";cout<<j+1;cout<<")=";cin >> a[i][j];
}
}
for(i=0;i<=n-1;++i)
{
for(j=0;j<=m-1;++j)
{
23
cout<<"\nMnozenje matrica:";
// Unos matrica
cout<<"\nUnesite broj redova prve matrice n=";cin >> n;
cout<<"\nUnesite broj kolona prve matrice m=";cin >> m;
cout<<"\nUnesite broj redova druge matrice p=";cin >> p;
cout<<"\nUnesite broj kolona druge matrice q=";cin >> q;
if(m==p)
{
for(i=0;i<=n-1;++i)
{
for(j=0;j<=m-1;++j)
{
cout<<"\nUnesi element matrice a(";cout<<i+1;cout<<")
(";cout<<j+1;cout<<")=";cin >> a[i][j];
}
}
for(i=0;i<=p-1;++i)
{
for(j=0;j<=q-1;++j)
{
cout<<"\nUnesi element matrice b(";cout<<i+1;cout<<")
(";cout<<j+1;cout<<")=";cin >> b[i][j];
}
}
//Inicijalizacija
for(i=0;i<=n-1;++i)
{
for(j=0;j<=q-1;++j)
{
c[i][j]=0.;
}
}
//Mnozenje
for(i=0;i<=n-1;++i)
{
for(j=0;j<=q-1;++j)
{
25
for(k=0;k<=m-1;++k)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
}
// Stampanje matrice
for(i=0;i<=n-1;++i)
{
for(j=0;j<=q-1;++j)
{
cout<<"\nElement matrice c(";cout<<i+1;cout<<")
(";cout<<j+1;cout<<")=";cout<<c[i][j];
}
}
}
else
{
cout<<"\nMnozenje nije definisano !";
}
}
4.Napisati program koji izraunava transponovanu matricu.
#include <iostream.h>
void transponovana();
int main()
{
transponovana();
system("pause");
return 0;
}
void transponovana()
{
int n,m,i,j;
26
float a[10][10],b[10][10];
// Unos matrice
cout<<"\nUnesite broj redova matrice n=";cin >> n;
cout<<"\nUnesite broj kolona matrice m=";cin >> m;
for(i=0;i<=n-1;++i)
{
for(j=0;j<=m-1;++j)
{
cout<<"\nUnesi element matrice a(";cout<<i+1;cout<<")
(";cout<<j+1;cout<<")=";cin >> a[i][j];
}
}
for(i=0;i<=n-1;++i)
{
for(j=0;j<=m-1;++j)
{
b[j][i]=a[i][j];
}
}
// Stampanje matrice
for(i=0;i<=n-1;++i)
{
for(j=0;j<=m-1;++j)
{
cout<<"\nElement matrice a(";cout<<i+1;cout<<")
(";cout<<j+1;cout<<")=";cout<<a[i][j];
}
}
// Stampanje transponovane matrice
cout<<"\nTransponovana matrica je: a\n";
for(i=0;i<=m-1;++i)
{
for(j=0;j<=n-1;++j)
{
27
),
6. Rekurzija
1. Upotrebom rekurzivne funkcije napisati program koji rauna faktorijel nekog
broja.
#include<iostream.h>
int fakt( int n);
int main()
{
int n;
cout<<"n=";
cin>>n;
cout<<n<<"!="<<fakt(n);
system("pause");
return 0;
}
int fakt( int n)
{
if(n == 1)
return 1;
else
28
return (n * (fakt(n-1)));
}
2. Fibonaijev niz se sastoji od lanova kod kojih je svaki sledei broj zbir
prethodna dva. Napisati program koji e traiti vrednost lana Fibonaijevog niza
koji je izabrao korisnik.
#include<iostream.h>
int fib(int n);
int main()
{
int n;
cout<<"n=";
cin>>n;
cout<<"\n"<<n<<". clan fibonacijevog niza je:"<<fib(n);
system("pause");
return 0;
}
int fib(int n)
{
if(n<3)
return 1;
else
return(fib(n-2)+fib(n-1));
}
3. Upotrebom rekurzivne funkcije napisati program koji rauna
4. Paskalov trougao
(lepo stampa do 5 redova)
#include <iostream.h>
int paskal(int i, int j);
29
int main()
{
int n,k,i,j,x;
cout << "broj redova: ";
cin >> n;
for(i=0;i<=n;i++)
{
for(j=1;j<=n-i;j++)
cout<<" ";
for(k=0;k<=i;k++)
{
cout<<" ";cout << paskal(i,k) ;
}
cout << endl;
}
system ("pause");
return 0;
}
#include <math.h>
#define g 9.81
#define Pi 3.14
float k,alfa; //globalne promenljive
void opcija1();
void opcija2();
int main()
{
int n;
float a;
cout<<"Koeficijent trenja k=";
cin>>k;
cout<<"\nUgao alfa u stepenima=";
cin>>alfa;
alfa=alfa*(Pi/180);
do
{
cout<<"\nOpcije:\n";
cout<<"opcija1:kretanje tela po ravnoj podlozi\n";
cout<<"opcija2:spustanje tela niz strmu ravan\n";
cout<<"Izaberite opciju:";
cin>>n;
switch(n)
{
case 1:opcija1();break;
case 2:opcija2();break;
default:cout<<"Nedefinisan izbor!";break;
}
}
while(n<3);
system("pause");
return 0;
}
void opcija1()
31
{
float F,a,m;
//lokalne promenljive
int main()
{
int a,b,c,pom;
cout<<"a=";
cin>>a;
cout<<"\n";
cout<<"b=";
cin>>b;
cout<<"\n";
cout<<"c=";
cin>>c;
cout<<"\n";
sortiranje(&a,&b,&c);
//sortiranje(a,b,c);
cout<<a<<"\n"<<b<<"\n"<<c;
return 0;
}
void sortiranje(int *a,int *b,int *c)//void sortiranje(int &a,int &b,int &c)
{
int pom;
if (*b<*a)
{
pom=*a;
*a=*b;
*b=pom;
}
//if (b<a)
//pom=a;
//a=b;
// b=pom;
if (*c<*b)
//if (c<b)
{
pom=*b;
*b=*c;
*c=pom;
}
//pom=b;
//b=c;
//c=pom;
if (*b<*a)//if (b<a)
{
33
pom=*a;
*a=*b;
*b=pom;
}
//pom=a;
//a=b;
// b=pom;
1. nain:
#include<iostream.h>
void mimimax(int a,int b,int c,int *min,int *max);
int main()
{
int a,b,c,min,max;
cout<<"\n a=";cin>>a;
cout<<"\n b=";cin>>b;
cout<<"\n c=";cin>>c;
mimimax(a,b,c,&min,&max);
cout<<"\n min ="<<min;
cout<<"\n max="<<max;
return 0;
}
void mimimax(int a,int b,int c,int *min,int *max)
{
*min=a;
*max=a;
if(a<b)
*max=b;
else
34
*min=b;
if(c<*min)
*min=c;
if(c>*max)
*max=c;
}
*min=b;
if(c<*min)
*min=c;
if(c>*max)
*max=c;
}
4. Sastaviti program koji reava sistem jednaina 2x2 upotrebom Kramerovog
pravila pozivom na funkciju determinanta, koja vraa vrednosti det,dx i dy.
#include<iostream.h>
float a,b,c,d,e,f;
void determinanta(float *dx,float *dy,float *det);
int main()
{
float dx,dy,det,x,y;
cout<<"\n
cout<<"\n
cout<<"\n
cout<<"\n
cout<<"\n
cout<<"\n
a=";cin>>a;
b=";cin>>b;
c=";cin>>c;
d=";cin>>d;
e=";cin>>e;
f=";cin>>f;
determinanta(&dx,&dy,&det);
if(det==0)
cout<<"\n Sitem nema jedinstveno resenje";
else
{
x=dx/det;
y=dy/det;
cout<<"\n x="<<x;
cout<<"\n y="<<y;
}
36
return 0;
}
void determinanta(float *dx,float *dy,float *det)
{
*det=a*d-b*c;
*dx=e*d-b*f;
*dy=a*f-e*c;
}
vrednosti i odrediti period oscilacija (T) i ubrzanje Zemljine tee za sva merenja,
kao i srednju brzinu (
standardnu devijaciju
#include<iostream.h>
#include <math.h>
#define Pi 3.14
float l,g[10],t[10],T[10],dg[10],bg[10],gsr,stand_dev;
int N,n,i;
void tabela(float *T_lok,float *g_lok, int j);
void greske(float &dg_lok,float &bg_lok,int j);
float g_sr();
float stand_devijacija();
int main()
{
float T_lok,g_lok,dg_lok,bg_lok;
37
gsr=0;
stand_dev=0;
cout<<"Duzina konca u [m]: l=";
cin>>l;
cout<<"\nukupan broj merenja N=";
cin>>N;
cout<<"\nBroj oscijacija n=";
cin>>n;
for(i=1;i<=N;i++)
{
cout<<"\n\nVreme oscilovanja u [s]: t["<<i<<"]=";
cin>>t[i];
tabela(&T_lok,&g_lok,i); //poziv funkcije po referenci preko pointera
T[i]=T_lok;
g[i]=g_lok;
cout<<"\nT["<<i<<"]="<<T[i]<<"[s]";
cout<<"\ng["<<i<<"]="<<g[i]<<"[m/s2]";
}
g_sr();
cout<<"\n\ngsr="<<gsr<<"[m/s2]\n";
for(i=1;i<=N;i++)
{
greske(dg_lok,bg_lok,i);
//poziv funkcije po referenci preko referenci
dg[i]=dg_lok;
bg[i]=bg_lok;
cout<<"\ndg["<<i<<"]="<<dg[i]<<"[m/s2]";
cout<<"\nbg["<<i<<"]="<<bg[i]<<"%";
}
stand_devijacija();
cout<<"\n\nstand.devijacija=(+/-)"<<stand_dev<<"[m/s2]\n";
system("pause");
return 0;
}
void tabela(float *T_lok,float *g_lok, int j)
{
cout<<"\n n="<<n<<"\t l="<<l;
38
*T_lok=t[j]/n;
*g_lok=l*(4*Pi*Pi)/((*T_lok)*(*T_lok));
}
float g_sr()
{
for(i=1;i<=N;i++)
{
gsr+=g[i];
}
gsr=gsr/N;
return gsr;
}
void greske(float &dg_lok,float &bg_lok,int j)
{
dg_lok=g[j]-gsr;
if(dg_lok<0)
bg_lok=((-dg_lok)/gsr)*100;
else
bg_lok=(dg_lok/gsr)*100;
}
float stand_devijacija()
{
for(i=1;i<=N;i++)
{
stand_dev+=dg[i]*dg[i];
}
stand_dev=sqrt((stand_dev)/(N-1));
return stand_dev;
}
39
40
return 0;
}
float maxtemp(int n, float *p)
{
float max=*p;
int i;
for(i=0;i<n;i++)
{
if(max<*p)
max=*p;
p++;
}
return max;
}
float prtemp(int n, float *p)
{
float pr=0;
int i;
for(i=0;i<n;i++)
{
pr=pr+*p;
p++;
}
return (pr/n);
}
8. Napisati program koji sadri funkciju koja vraa elemente niza u glavnu
funkciju.
#include <iostream.h>
int *funkcija(int a[20]);
41
int main()
{
int a[20],i;
funkcija(a); //poziva se funkcija koja vraa elemente niza
for(i=0;i<10;i++)
{
cout<<"a["<<i<<"]="<<a[i]<<"\n";
}
return 0;
}
//funkcija vraa pointer na prvi element niza, odnosno njegovu adresu, a
kompajler prevrti ostale //elemente
int *funkcija(int a[20])
{
int i;
for(i=0;i<10;i++)
{
a[i]=i;
}
return a;
}
42
for(i=1;i<=10;i++)
{
x=6.0*rand()/RAND_MAX+1;
[1,6]
cout<<"x="<<x<<"\n";
}
//
return 0;
}
2. 1 10.
. 1000 .
#include<iostream.h>
#include<time.h>
void van_opsega();
int main()
{
int x,y,poeni;
srand(time(0));
poeni=10000;
x=10.0*rand()/RAND_MAX+1;
[1,10]
//
while(y!=x)
{
cout<<"niste pogodili broj, pokusajte ponovo:";
poeni=poeni-1000;
cin>>y;
van_opsega();
}
43
if(y==x)
{
cout<<"Pogodili ste broj! Osvojili ste "<<poeni<<"poena";
}
return 0;
}
void van_opsega()
{
int y;
while(y<1 || y>10)
{
cout<<"\ngreska, birajte ponovo broj od 1 do 10\n";
cin>>y;
}
}
3. 1 10.
. 1000 .
#include<iostream.h>
#include<time.h>
void van_opsega();
int main()
{
int x,y,poeni;
srand(time(0));
poeni=10000;
x=10.0*rand()/RAND_MAX+1;
[1,10]
//
while(y!=x)
{
44
if(y==x)
{
cout<<"Pogodili ste broj! Osvojili ste "<<poeni<<"poena";
}
return 0;
}
void van_opsega()
{
int y;
while(y<1 || y>10)
{
cout<<"\ngreska, birajte ponovo broj od 1 do 10\n";
cin>>y;
}
}
45
void vec_unesen()
{
for(j=1;j<=i-1;j++)
{
46
#include<iostream.h>
#include<math.h>
int main()
{
int i,j;
float s=0;
47
float x,y;
srand(time(0));
for(i=0;i<=10000;i++)
{
x=3.0*rand()/RAND_MAX;
y=pow(x,2);
s+=y*0.0003;
}
cout<<s<<endl;
return 0;
}
while(opcija==1)
{
cout<<"Izaberite polje od 1 do 10:";
cin>>y;
while(y<1 || y>10)
{
cout<<"\n molimo, unesite broj od 1 do 10:\n";cin>>y;
48
}
cout<<"ulog:";
cin>>ulog;
x=11.0*rand()/RAND_MAX;
//cout<<x<<endl;
cout<<"Spin1\n";
Sleep(2000);
cout<<"Spin2\n";
Sleep(2000);
cout<<"Spin3\n\n";
if(x-1>0) //cout<<x-1<<endl;
// cout<<x<<endl;
if(x+1<11) //cout<<x+1;
Sleep(2000);
cout<<"\n izvucen je:"<<x<<endl;
if(x==y)
{poeni+=ulog +10*ulog; cout<<"Cestitamo! Osvojili ste "<<poeni<<"
poena\n";}
if(poeni==0)
{
49
cout<<"Nista!";ulog=0; poeni=0;
}
}
cout<<"Igrate?";
cout<<"\nAko zelite da igrate izaberite 1 \n Ako ne zelite da igrate unesite bilo
koji broj\n";
cin>>opcija;
// m=opcija;
}
return 0;
}
REENJA:
1. oblast
5. #include<iostream.h>
int main()
{
50
int p;
cout<<"broj:";
cin>>p;
if(p%2==0)
{
cout<<"je paran broj";
}
else
cout<<"nije paran broj";
system("pause");
return 0;
}
6. #include<iostream.h>
int main()
{
int m,n,r;
cout<<"m=";
cin>>m;
cout<<"\n";
cout<<"n=";
cin>>n;
if(m%2==0 && n%2==0)
{
if(m>n)
{
r=m-n;
cout<<"|m-n|="<<r;
}
if(m<n)
{
r=n-m;
cout<<"|m-n|="<<r;
}
}
else
51
if(opcija==1)
{
cout<<"\nUnesi vrednost struje";
cout<<"\nI=";
cin>>I;
U=(R1+R2)/I;
cout<<"Vrednost U je:"<<U;
}
if(opcija==2)
{
cout<<"\nUnesi vrednost napona";
cin>>U;
I=(1/R1+1/R2)*U;
P=U*I;
cout<<"\nVrednost I je:"<<I;
cout<<"\nVrednost P je:"<<P;
}
52
system("pause");
return 0;
}
2.oblast
4. #include<iostream.h>
int main()
{
int a1,d,n,Sn,m;
cout<<"a1=";
cin>>a1;
cout<<"\nd=";
cin>>d;
cout<<"\nn=";
cin>>n;
Sn=0;
m=0;
while(m<n)
{
Sn+=a1+m*d;
m+=1;
}
cout<<"Sn="<<Sn;
cout<<"\nprovera: Sn="<<0.5*n*(2*a1+(n-1)*d);
system("pause");
return 0;
}
5. #include<iostream.h>
#include<math.h>
int main()
53
{
int n,i;
float a,q;
float S=0;
cout<<"a=";
cin>>a;
cout<<"\nq=";
cin>>q;
cout<<"\nn=";
cin>>n;
i=0;
while(i<n)
{
S+=a*pow(q,i);
i+=1;
}
cout<<"S="<<S;
system("pause");
return 0;
}
3.oblast
4.
#include<iostream.h>
#include<math.h>
int main()
{
int i,n;
float S,z;
cout<<"\nn=";cin>>n;
cout<<"\nz=";cin>>z;
S=0;
54
for(i=1;i<=n;i++)
{
S+=pow(-1,i-1)*(1./i)*pow(z,i);
}
cout<<"ln("<<z+1<<")="<<S<<endl;
system("pause");
return 0;
}
5.
#include<iostream.h>
int main()
{
int i,n,s;
cout<<"Unesite broj:";
cin>>n;
s=0;
for(i=1;i<n;i++)
{
if(n%i==0)
{
s+=i;
}
}
if(n==s)
{
cout<<"\n"<<n<<"je savrsen broj";
}
else
cout<<"\n"<<n<<"nije savrsen broj";
system("pause");
return 0;
}
6. Srednja brzina
= , odnosno
55
, gde je
=
Kako su putevi jednake duine njihov zbir =n*s pa je
=
, odakle sledi
#include <iostream.h>
int main()
{
float v[100];
int n,i;
int s;
float vs,zbir;
zbir =0;
cout<<"n=";
cin>>n;
cout<<"unos brzina na delovima puta:";
for(i=1;i<=n;i++)
{
cout<<"v["<<i<<"]=";
cin>>v[i];
cout<<"\n";
}
for(i=1;i<=n;i++)
{
zbir+=1/v[i];
}
vs=n/zbir;
cout<<"srednja brzina vs="<<vs;
56
system("pause");
return 0;
}
7. #include<iostream.h>
int main()
{
int n,m,p;
bool prost=true;
cout<<"\nUnesite ceo pozitivan broj:";
cin>>n;
for(m=2;m<n;m++)
{
p=n%m;
if(p==0)
{
prost=false;
}
}
if(prost)
cout<<"\nBroj:"<<n<<"je prost broj";
else
cout<<"\nBroj:"<<n<<"nije prost broj";
system("pause");
return 0;
}
57
#include <iostream.h>
int main()
{
int x[10]={1,2,3,4,5,6,7,8,9,10};
float y[10]={0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1};
float X[5]={1,2.5,3.6,4,5};
float Y[5];
int i,j;
for(j=0;j<=4;j++)
{
for(i=0;i<=9;i++)
{
if(x[i]<X[j] && X[j]<=x[i+1])
{
Y[j]=y[i]+((y[i+1]-y[i])/(x[i+1]-x[i]))*(X[j]-x[i]);
}
else if(X[j]==x[i])
{
Y[j]=y[i];
}
}
cout<<X[j]<< "\t"<<Y[j]<< "\n";
}
system("pause");
return 0;
}
4. oblast
58
7. #include<iostream.h>
float stepen(float x,int n);
int fakt(int n);
int main()
{
float x,S;
int n,i;
S=0;
cout<<"x=";
cin>>x;
cout<<"\nn=";
cin>>n;
for(i=0;i<=n;i++)
{
S+=stepen(x,i)/fakt(i);
}
cout<<S;
system("pause") ;
return 0;
}
float stepen(float x,int n)
{
float b=1;
int i;
for(i=1;i<=n;i++)
{
b=b*x;
}
return b;
}
int fakt(int n)
{
59
int f=1;
int i;
for(i=1;i<=n;i++)
{
f*=i;
}
return f;
}
8. #include<iostream.h>
#include<math.h>
#define Pi 3.1415926
float sabiranje(float x,float y);
float oduzimanje(float x,float y);
float mnozenje(float x,float y);
float deljenje(float x,float y);
float sinus(float x);
float cosinus(float x);
float tangens(float x);
double expon(double x);
float ctg(float x);
float log(float x);
double ln(double x);
float stepen(float x,float y);
float faktorijel(float x);
int main()
{
float a,b;
double c,d;
int operacija;
do
{
cout<<"\nMeni:";
cout<<"\noperacija
cout<<"\noperacija
cout<<"\noperacija
cout<<"\noperacija
cout<<"\noperacija
1:sabiranje";
2:oduzimanje";
3:mnozenje";
4:deljenje";
5:sinus";
60
cout<<"\noperacija 6:cosinus";
cout<<"\noperacija 7:tangens";
cout<<"\noperacija 8:exp";
cout<<"\noperacija 9:ctg";
cout<<"\noperacija 10:log";
cout<<"\noperacija 11:ln";
cout<<"\noperacija 12:stepen";
cout<<"\noperacija 13:faktorijel";
cout<<"\nizlaz:14";
cout<<"\nIzaberite operaciju";
cin>>operacija;
cout<<"\nUnos:";
switch(operacija)
{
case 1:cout<<"\nUnesite dva
broja:";cin>>a;cin>>b;cout<<a<<"+"<<b<<"="<<sabiranje(a,b);break;
case 2:cout<<"\nUnesite dva
broja:";cin>>a;cin>>b;cout<<a<<"-"<<b<<"="<<oduzimanje(a,b);break;
case 3:cout<<"\nUnesite dva
broja:";cin>>a;cin>>b;cout<<a<<"*"<<b<<"="<<mnozenje(a,b);break;
case 4:cout<<"\nUnesite dva
broja:";cin>>a;cin>>b;cout<<a<<"/"<<b<<"="<<deljenje(a,b);break;
case 5:cout<<"\nUnesite broj:";cin>>a;cout<<"sin("<<a<<")="<<sinus(a);break;
case 6:cout<<"\nUnesite
broj:";cin>>a;cout<<"cos("<<a<<")="<<cosinus(a);break;
case 7:cout<<"\nUnesite
broj:";cin>>a;cout<<"tan("<<a<<")="<<tangens(a);break;
case 8:cout<<"\nUnesite broj:";cin>>c;cout<<"exp("<<c<<")="<<exp(c);break;
case 9:cout<<"\nUnesite broj:";cin>>a;cout<<"ctg("<<a<<")="<<ctg(a);break;
case 10:cout<<"\nUnesite broj:";cin>>a;cout<<"log("<<a<<")="<<log(a);break;
case 11:cout<<"\nUnesite broj:";cin>>c;cout<<"ln("<<c<<")="<<ln(c);break;
case 12:cout<<"\nUnesite dva
broja:";cin>>a;cin>>b;cout<<a<<"^"<<b<<"="<<pow(a,b);break;
case 13:cout<<"\nUnesite broj:";cin>>a;cout<<a<<"!="<<faktorijel(a);break;
default:cout<<"Nepostojeci izbor";break;
}
}
while (operacija!=15);
system("pause");
61
return 0;
}
float sabiranje(float x,float y)
{
return (x+y);
}
float oduzimanje(float x,float y)
{
return (x-y);
}
float mnozenje(float x,float y)
{
return (x*y);
}
float deljenje(float x,float y)
{
if (y==0)
cout<<"Nedozvoljena operacija";
return (x/y);
}
float sinus(float x)
{
return sin(x*(Pi/180));
}
float cosinus(float x)
{
return cos(x*(Pi/180));
}
float tangens(float x)
{
return tan(x*(Pi/180));
}
62
double expon(double x)
{
return exp(x);
}
float ctg(float x)
{
return atan(x);
}
float log(float x)
{
return log10(x);
}
double ln(double x)
{
return log(x);
}
float stepen(float x,float y)
{
return pow(x,y);
}
float faktorijel(float x)
{
int fact=1;
int i;
for(i=x;i>0;i--)
{
fact=fact*i;
}
return fact;
}
5. oblast
5.
#include <iostream.h>
63
int main()
{
int i,j,min,max;
int a[100][100],n,m;
int indexImin,indexJmin,indexImax,indexJmax;
cout<<"Ovo je program za odredjivanje minimuma i maksimuma matrice a(i)(j)";
cout<<"\nUnesite broj vrsta matrice n:";
cin>>n;
cout<<"\nUnesite broj kolona matrice m:";
cin>>m;
cout<<"\nUnesite clanove matrice:\n";
for(i=0;i<n;i++)
//for petlja za unos elemenata
{
for(j=0;j<m;j++)
{
cout<<"a("<<i+1<<")("<<j+1<<")=";
cin>>a[i][j];
}
}
min=a[0][0];
max=a[0][0];
indexImin=0;
indexJmin=0;
indexImax=0;
indexJmax=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(a[i][j]<min)
{
min=a[i][j];
indexImin=i;
indexJmin=j;
}
if(a[i][j]>max)
{
max=a[i][j];
64
indexImax=i;
indexJmax=j;
}
}
}
cout<<"\nMaksimalni clan niza:"<<max<<" i="<<indexImax+1<<"
j="<<indexJmax+1;
cout<<"\nMinimalni clan niza:"<<min<<" i="<<indexImin+1<<"
j="<<indexJmin+1;
return 0;
}
6. #include<iostream.h>
int main()
{
int i,j,k,min,index,temp;
int a[100][100],n,m;
cout<<"Ovo je program za uredjenje redova matrice u rastuci\n";
cout<<"\nUnesite broj elemenata vrste n:";
cin>>n;
cout<<"\nUnesite broj elemenata kolone m:";
cin>>m;
cout<<"\nUnesite elemente matrice:\n";
for(i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
cout<<"a("<<i+1<<"]["<<j+1<<"]=";
cin>>a[i][j];
}
}
cout<<"\n\n";
//unesena je
for(i=0;i<n;i++)
{
65
for (j=0;j<m;j++)
{
cout<<a[i][j]<<" ";
}
cout<<"\n";
}
for(i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
for(k=0;k<m;k++)
{cout<<"j="<<j<<endl;
min=a[i][k];
minimumom
for(j=k;j<m;j++)
j-tog uporeduju medusobno
{
if(a[i][j]<min)
promenljive min
{
min=a[i][j];
index=j;
datog clana
}
}
if(min<a[i][k])
//ako je min manji od j-tog clana, ta dva
elementa ce zameniti mesta
{
temp=a[i][k];
// temp cuva vrednost a(j)
a[i][k]=a[i][index];
//zatim a(j) uzima vrednost proglasenog
minimuma
a[i][index]=temp;
//sada je a(index) slobodan da uzme vrednost koju
je cuvao temp
}
}
}
}
cout<<"\n\n";
cout<<"Rastuci niz je:\n";
66
cout<<"\n\n";
for(i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
cout<<a[i][j]<<" ";
}
cout<<"\n";
}
system("pause");
return 0;
}
7. #include <iostream.h>
int main()
{
int n,i,j;
float a[10][10],b[10][10],S,M;
S=1; M=1;
// Unos matrice
cout<<"\nUnesite red matrice n=";cin >> n;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<"\nUnesi element matrice a(";cout<<i+1;cout<<")
(";cout<<j+1;cout<<")=";cin >> a[i][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
b[j][i]=a[i][j];
}
}
67
// Stampanje matrice
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<"\nElement matrice a(";cout<<i+1;cout<<")
(";cout<<j+1;cout<<")=";cout<<a[i][j];
}
}
// Stampanje transponovane matrice
cout<<"\nTransponovana matrica je: \n";
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<"\nElement matrice b(";cout<<i+1;cout<<")
(";cout<<j+1;cout<<")=";cout<<b[i][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(b[i][j]!=a[i][j])
{
S=0;
}
if(b[i][j]!=-a[i][j])
{
M=0;
}
}
}
if(S==1)
cout<<"\n\nMatrica je simetricna\n";
68
if(M==1)
cout<<"\n\nMatrica je antisimetricna\n";
if(S==0 && M==0)
cout<<"\n\nMatrica nije ni simetricna ni antisimetricna\n";
system("pause");
return 0;
}
8. U programu je upotrebljena kontrolna promenljiva S, koja uzima vrednost 1
ako su ispunjeni uslovi ortogonalnosti. U komentarima jeprikazan jos jedan nacin
upotrebe ove promenljive, objasniti ideju.
Napomena: Za slucaj kada su elementi matrice realni, moze se desiti da razlika
dva jednaka realna broja bude vrednost bliska nuli, ali razlicita od nule, npr. 0.480.48=-7*10-9. To je tzv. numericka nula. Kako bi program ispravno radio, umesto
oduzimanja, npr. a-b, a zatim postavljanja uslova if (rezultat==0), postavlja se
uslov if(a==b).
#include <iostream.h>
int main()
{
int n,i,j,k;
float a[10][10],b[10][10],I[10][10],S,d;
S=0;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
b[j][i]=a[i][j];
}
}
}
else
{
I[i][j]-=d;
}
}
}
}
cout<<"\nElementi matrice proizvoda:";
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<"\nI(";cout<<i+1;cout<<")
(";cout<<j+1;cout<<")=";cout<<I[i][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if((I[i][i]==1) && (I[i][j]==0))
S=1; // S++;
}
}
if(S==1) //
if(S==n)
cout<<"\nMatrica je ortogonalna";
else
cout<<"\nMatrica nije ortogonalna";
system("pause");
return 0;
71
6.oblast
3. #include<iostream.h>
float stepen(float x, int y);
int main()
{
int x,y;
cout<<"x=";
cin>>x;
cout<<"\ny=";
cin>>y;
cout<<"\n";
cout<<stepen(x,y);
system("pause");
return 0;
}
float stepen(float x, int y)
{
if (y < 0)
{
return ((1/x)*stepen(x,y+1));
}
if (y == 0)
return 1;
else
return (x * stepen(x, y - 1));
}
72