You are on page 1of 14

Univeryitet u Istočnom Sarajevu

Fakultet za proizvodnju i menaadžment Trebinje

Prvi kolokvijum iz
PROGRAMIRANJA I PROGRAMSKIH JEZIKA

1. (10%) Koju će vrijednost imati promjenjive A i B nakon datog niza naredbi?


(5%) Na koji način će se u promjenljivu B može upisati tačan rezultat date operacije?

int A;
float B;
A = 8;
B = 2 + (A++)/7; Najprije dodamo A i podjelimo ga sa 7, pa saberemo sa 2, a A tek tada
povećamo A i biće B = 3,14 I A = 9
A = A%5; Ovdje je ostatak dijeljenja sa 5 1.8, a pošto je a cijeli broj, uzima vrijednost 1.
U promjenjivu B se može upisati decimalni broj 3,14 zbog toga što je on definisan kao decimalni
broj (FLOAT)

b) (10%) Koju će vrijednost uzeti promjenjive x, y, z nakon izvršenja datih naredbi? Jasno
prikazati vrijednost promjenjivih nakon svake naredbe pojedinačno.

int x = 2, y, z = 3;
y = --x + 4; Prvo smanjimo x za 1 i saberemo sa 4 pa imamo, x = 1, y = 5, z =3;
x + =((z<2) && (++y)); Najprije ispitujemo uslov sa desne strane, da li je z<2 – uslov nije
zadovoljen, a pošto je ovdje logička funkcija i da bi jednačina bila tačna, moraju obje strane biti
zadovoljene, pošto to nije slučaj jednačina ima vrijednost nula. Prema tome promjenjive imaju
vrijednost x =1, y =5 , z = 3,
z+ = (x%3) + ((z>=11)||(x+3)); Najprije ispitujemo vrijednost uslova ((z>=11)||(x+3)) lijeva
strana je netačna ali pošto je upitanju logička funkcija ili uzimamo da je njena vrijednost 1.
Ostatak dijelnjenja x sa 3 je nula pa imamo z + 1 = 4. Sada promjenjive imaju vrijednosti x = 1, y
= 5, z = 4

2. a.) Napisati C program koji učitava dav cijela broja x, y i koji određuje i štampa broj z
dobijena na osnovu sljedećeg pravila:

2x x>y
  

Z= x<y
0 x=y

#include <stdio.h>
main () {
int x, y;
printf ('' unesi broj x \n'');
scanf (''%d'', & x);
printf ('' unesi broj y \n'');
scanf (''%d'', & y);
if(x >y)
z = 2x;
if (x<y)
z= [(x*x + 2) / (y-x)];
else
z = 0;
printf(''Rezultat je:%d'',z);
}

3. (35%) Napisati C program koji učitava niz realnih brojeva X, dužine M, i koji svaki element
niza koji je veći od M umanjuje za M, dok ostale umanjuje za 1. Štampati niz X na izlazu.

#include <stdio.h>
main () {
int X[M] , i, , M;
printf ('' unesite dužinu niza '');
scanf (''%d'', &M);
for (i = 0 ; i < M ; i++) {
printf (''Unesite elemente niza '');
scanf (''%d'', &X[M] );
if (X[M] > M])
X[M]+= M;
else
X[1]- = 1
}
printf ('' Niz ima oblik: %d, a broj izmjenjenih elemenata je :%d \n'', X[M],b);
}
Univerzitet u Istočnom Sarajevu
Fakultet za proizvodnju i menadžment Trebinje

Datum: 15. 12. 2009 g

Prvi kolokvijum iz
PROGRAMIRANJA I PROGRAMSKIH JEZKA

1. a) (10%) Koju će vrijednost imati promjenjive A i B nakon datog niza naredbi?


(5%) Na koji način se u promjenjivu B može upisati tačan rezultat date operacije?

int A;
float B;
A = 13;
B = 5*A/12; B = 5*13/12 = 5.41
A = A%5; Ovdje je ostatak dijeljenja sa 5 2.6, a pošto je a cijeli broj, uzima vrijednost 2.
U promjenjivu B se može upisati decimalni broj 5,41 zbog toga što je on definisan kao decimalni
broj (FLOAT).

b) (10%) Koju će vrijednost uzeti promjenjive x,y i z nakon izvršenja datih naredbi?
int x, y, z = 10;
x = 1;
y = 11;
x = 2+ ((z<11) && (--y)); Rezultat uslova je ((z<11) && (--y)) 1, pošto je z = 10,a to je <11 pa
je x = 2 + 1 = 3
y+=(x%4) + ((++z>=11)||(x--)); Najprije uvećamo z za 1 i onda je z = 11, pa je Rezultat uslova
((++z>=11)||(x--)) 1 pošto je zadovoljen uslov ++z>=11 pa je y + 3 % 4 + 1 = 11 + 0 + 1 = 12.

2. Napisati C program koji učitava dav cijela broja x, y i koji određuje i štampa broj z dobijena
na osnovu sljedećeg pravila:

x + y x>y
Z= x2 x<y
2x -y x=y

#include <stdio.h>
main () {
int x, y;
printf ('' unesi broj x \n'');
scanf (''%d'', & x);
printf ('' unesi broj y \n'');
scanf (''%d'', & y);
if(x >y)
z = x+y;
if (x<y)
z= x*x;
else
z = 2*x-y;
printf(''Rezultat je:%d'',z);
}

3. (35%) Napisati C program koji učitava realni niz X, dužine N, i realan broj K, i koji određuje
sumu elemenata niza X koji su veći broj K. Štampati dobijeni broj. Ukoliko nema nijednog
takvog elementa, potrebno je odštampati poruku “Nema elemenata većih od unesenog broja”.

#include <stdio.h>
main () {
int X[N] , i, s =0 ,N,K;
printf ('' unesite dužinu niza '');
scanf (''%d'', &N);
printf (''unesite broj K'');
scanf (''%d'', &K);
for (i = 0 ; i < M ; i++) {
printf (''Unesite elemente niza '');
scanf (''%d'', &X[N] );
if (X[N] > K])
s++
printf (“Broj brojeva koji su veći od K je %d”, s),
else
printf(“nema elemenata u nizu veći od broja K”);
}
}
Univerzitet u Istočnom Sarajevu
Fakultet za proizvodnju i menadžment Trebinje

Prvi kolokvijum iz
PROGRAMIRANJA I PROGRAMSKIH JEZKA

1. a) (2 poena) Koju će vrijednost imati projenljve A i B nakon datog niza naredbi?

int A, B = 6;
A = 5;
B = 3*(A--)/8 B = 3 * A/8, najprije uvrštavamo A pa ga zatim uvećavamo za 1, na kraju ove
operacije biće A = 6, B = 1
A* =3 A* 3= 6*3 = 18, Na kraju ove operacije je A =18, B =1

b) Koju će vrijednost imati promjenljive x, y, z i nakon izvršenja svake naredbe od sljedećih


naredbi?

int x = 2, y, z = 1;
y = 5;
z = (x*y)%3; z = (2*5)%3 = 3, x = 2, y = 5, z = 3;
x = ((--z>1)||(y ==5) + 3; Prvo ispitujemo desnu stranu uslova, najprije umanjimo z za jedan, a to
je 2, dakle uslov je ispunjen, a sa druge strane uslov je takođe ispunjen, pa je vrijednost 1, imamo
x = 1+ 3 = 4, dakle, x = 4, y = 5, z = 2
z+ = ((z ==4)&&(x--)); Ovdje, takođe gledamo prvo lijevu stranu uslov je ispunjen, pa je
vrijednost 1, dakle z = z + 1 = 2 + 1 = 3, dakle x = 4, y = 5, z = 3.

2. a). Napisati c program koji učitava dva realna broja, X, Y, i koji određuje i štampa broj Z dobijen
na osnovu sljedećeg pravila:

 +
 + 2 > 10
z=
   

#include <stdio.h>
main () {
float x, y,z;
printf ('' unesi broj x \n'');
scanf (''%f'', &x);
printf ('' unesi broj y \n'');
scanf (''%f'', & y);
printf ('' unesi broj y \n'');
scanf (''%f'', & z);
if((x+2)>y)
z = x+y;
else
z= x*x;
printf(''Rezultat je:%f'',z);
}

b) Napisati C program koji učitava prirodan broj N i koji određuje i štapmpa zbir prirodnih
brojeva sa kojima je djeljiv broj N. Na primjer ako korisnik unese broj N = 10, program treba da
štampa broj 18. (1+2+5+10=18).

#include <stdio.h>
main () {
int N, s = 0, i;
printf ('' unesi broj N \n'');
scanf (''%d'', & N);
for (i = 0 ; i < N ; i++) {
if(i%N = 0)
s+= N
printf(''Rezultat je:%d'',s);
}
}

3. (9 poena) Napisati C program koji učitava niz realnih brojeva X, dužine N, i jedan realan broj
K, i određuje broj elemenata niza X koji su veći od kvadrata broja K. Štampati dobijeni broj.
Ukoliko nema nijednog takvog elementa, potrebo je odštampati poruku ”Nema elemenata niza
koji zadovoljavaju dati uslov”.

#include <stdio.h>
main () {
int X[N], i, s =0 ,N, q= 1;
float K;
printf ('' unesite dužinu niza '');
scanf (''%d'', &N);
printf (''unesite broj K'');
scanf (''%f'', &K);
q = N*N;
for (i = 0 ; i < K ; i++) {
printf (''Unesite elemente niza '');
scanf (''%d'', &X[N] );
if (X[N] > k])
s++
printf (“Broj brojeva koji su veći od kvadrata broja K je %d”, s),
else
printf(“nema elemenata u nizu veći od kvadrata broja K”);
}
}
Univerzitet u Istočnom Sarajevu
Fakultet za proizvodnju i menadžment Trebinje

Popravak prvog kolokvijuma iz


PROGRAMIRANJA I PROGRAMSKIH JEZKA

1. a) (10% - 2,5 poena) Koju će vrijednost imati promjenljive A i B nakon datog niza naredbi?
int A = 5, B = 4;
A = --B; Najprije umanjimo B za jedan pa ga dodamo, biće A = 3, B =3
B = A ++; Najprije dodamo A, pa ga uvećamo za 1, biće B = 3, A = 4.
A+ =(B+2); A = A + (B+2) = 4 + (3 + 2) = 9, biće A = 9, B = 3;

b) (15% - 3,75 poena) Koju će vrijednost imati promjenljive x, y, z, nakon izvršenja svake od
sljedećih naredbi?

int x = 1, y = 3, z= 0;
z = (x*y)%4; z = (1*3)%4 = 0; x= 1, y = 3, z = 0
x = ((--z==2)&&(y==5)) + 1; Ovdje je uslov &&, znači potrebno je da izraz sa obje strane bude
tačan da bi čitav uslov bio tačan, najprije ispitujemo desnu stranu, najprije umanjimo z za jedan i
to je različito od dva, zatim ispitujemo izraz sa desne strane, i y je različito od jedan, znači izdaz
je tačan i uzima vrijednost 1, što znači da je x = 1, znači sada imamo x = 1, y=3,z=0;
y*=(x--); najprije dodamo x pa ga zatim umanjimo za jedan, znači y = y * x = 3*1=3; pa imamo
x = 1, y =3, z=0;

2. a) (20% - 5 poena) Napisati C program, koji učitava dva realna broja, X, Y, i koji određuje i
štampa broj Z dobijen na osnovu sljedećeg pravila


≠ 0

z= 
   

#include <stdio.h>
main () {
float x, y,z;
printf ('' unesi broj x \n'');
scanf (''%f'', &x);
printf ('' unesi broj y \n'');
scanf (''%f'', & y);
printf ('' unesi broj y \n'');
scanf (''%f'', & z);
if((y==0)
z = x/y;
else
z= x*x;
printf(''Rezultat je:%f'',z);
}
b) ( 20% - 5 poena) Napisati C program koji učitava cijeli broj N i koji određuje i štampa koliko
cifara ima unseen broj, program prilagoditi da radi i sa negativnim brojevima. Na prmjer, ako
korisnik unese N = -231, program treba da štampa broj 3.

3. Napisati C program koji učitava niz realnih brojeva X, dužine N, i koji u svaki element niza
čiji je kvadrat manji od 24 upisuje broj -1. Štampati koliko ima takvih elemenata, u slučaju da
nema takvog elementa, potrebno je odštampati poruku “Nema elemenata čiji je kvadrat manji od
24”
#include <stdio.h>
main () {
int i, s =0 ,N, K=24,b=0, q = 1;
float X[N],;
printf ('' unesite dužinu niza '');
scanf (''%d'', &N);
for (i = 0 ; i < K ; i++) {
printf (''Unesite elemente niza '');
scanf (''%f'', &X[N] );
q = X[N]* X[N]
if (Q < K])
X[N] = -1
b++
printf (“Broj brojeva koji su manji od 24 je %d”, b),
else
printf(“Nema elemenata čiji je kvadrat manji od 24”);
}
Univerzitet u Istočnom Sarajevu
Fakultet za proizvodnju i menadžment Trebinje

Popravak prvog kolokvijuma iz


PROGRAMIRANJA I PROGRAMSKIH JEZKA

1. a) (10% - 2,5 poena) Koju će vrijednost imati promjenljive A i B nakon datog niza naredbi?
int A = 4, B;
B = A++; Najprije dodamo A pa ga uvećamo za 1 dakle, B = 4, A =5;
A = (B--)%4; Prvo dodamo B pa ga umanjimo, A = 0, B = 3,
B*=2; B = B * 2 = 3*2 = 6

b) (15% - 3,75 poena) Koju će vrijednost uzeti promjenljive x, y, z nakon izvršenja datih naredbi?
Jasno prikazati vrijednost promjenljivih nakon svake naredbe pojedinačno.

int x = 1, y, z =4;
y = 4+x--; Najprije dodamo x i saberemo ga sa 4 pa ga umanjimo za 1, pa imamo y = 4 + x = 4+1
= 5; x=0, y=5, z = 4;
x+= ((z>2)&&(++z) Ovdje je u pitanju uslov && što znači da obje strane moraju biti tačne da bi
uslov imao vrijednost 1, znači ispitujemo da li je z>2, pošto je veći od dva izraz ima vrijednost 1
znači x = x + 1 = 0 + 1= 1; x =1,y=5, z=5;
z*=(x%3)+(z==6)||(x+3)); Najprije ispitujemo uslov, a ovdje je u pitanju uslov ||, koji je ispunjen
ako je bar jedan od izraza tačan, znači ispitujemo da li je z ==6, pošto jeste Izraz ima vrijednost 1,
pa imamo, z = z* (x%3) + 1 = 5 * (1%3) + 1 = 1, x = 1, y = 5, z = 5;

2. a) ( 20% - 5 poena) Napisati C program, koji učitava cio broj x i koji određuje i štampa broj y
dobijen na osnovu sljedećeg pravila:

         > 50


z=
 

  ! " #

#include <stdio.h>
main () {
int x,z;
printf ('' unesi broj x \n'');
scanf (''%d', &x);
if((x%2 = 0 || x>50)
z = x*x;
else
z= x+2/(x*x*x+3*x*x-1);
printf(''Rezultat je:%d'',z);
}

b) (20% - 5 poena) Napisati C program kojim se učitava cio broj M. U slučaju da je taj broj veći
od 100, štampati ostatak dijeljenja tog broja i broja 100. U suprotnom, uvećati broj M za 1 i
štampati njegov kvadrat.
#include <stdio.h>
main () {
int M, a = 1, ;
printf ('' unesi broj x \n'');
scanf (''%d', &m);
if(M>100)
a = M%100
printf(“unijeti broj je veći od 100 a ostatak njegovog dijeljenja sa brojem 100 je :a);
else
a = M*M
printf(''Unijeti broj nije veći od 100, a njegov kvadrat je %d'',a);
}

3. (35% - 8,75 poena) Napisati C program koji učitava niz realnih brojeva X, dužine N, i cio broj
K, i koji duplira svaki element niza koji je manji od K. Štampati niz X na izlazu.

#include <stdio.h>
main () {
int i, ,N, K=24,d=1;
float X[N];
printf ('' unesite dužinu niza '');
scanf (''%d'', &N);
printf ('' unesite broj K '');
scanf (''%d'', &K);
for (i = 0 ; i < N ; i++) {
printf (''Unesite elemente niza '');
scanf (''%f'', &X[N] );
if(X[N] < K)
d = X[N]*2
printf (“Rezultat je %d”, d),
}
}
Univerzitet u Istočnom Sarajevu
Fakultet za proizvodnju i menadžment Trebinje

Prvi kolokvijum iz
PROGRAMIRANJA I PROGRAMSKIH JEZKA

1. a) Koju će vrijednost imati promjenljive A i B nakon datog niza naredbi?

int A, B = 5;
A = B++; Najprije dodamo B pa ga povećamo za jedan, biće A = 5, B = 6;
B+=(--A)%7; B = B + 0 = 6 + 0 = 6, A = 4, B = 6;
B/=3; B = B/3; B = 6/3 =2; A = 4, B = 2;

b) Koju će vrijednost imati cjelobrojne promjenljive X i Y nakon izvršenja sljedećih naredbi


X = 1;
for(Y = 0; Y<10, Y+ =3), Y = 7,
X+=2*Y; X = X + 2*Y = 1 + 2* 7 = 15; X = 15, Y = 7;

2. a) ( 20% - 5 poena) Napisati C program, koji učitava realan broj x i koji određuje i štampa broj
y dobijen na osnovu sljedećeg pravila:

2 <  ≤ 4
#

z=$ # "


 
#
 " ! 

#include <stdio.h>
main () {
float x,z;
printf ('' unesi broj x \n'');
scanf (''%f', &x);
if((x> 2&& x=>4)
z = (x-1)/(1+x*x)
else
z= ((x*x+ 3*x)-2) ;
printf(''Rezultat je:%f'',z);
}

b) Napisati C program kojim se učitavaju dva cijela broja X i Y. Ako je X>Y treba odštampati
kvadrat broja X. Ako je X<Y, treba odštampati kvadrat zbira brojeva X i Y. Ako su brojevi isti,
odrediti i odštampati sumu svih neparnih prirodnih brojeva manjih od 150 (1 + 3+…+147+149)

#include <stdio.h>
main () {
int x,z,i,kb = 1, kz=1, s = 0;
printf ('' unesi broj x \n'');
scanf (''%d, &x);
printf ('' unesi broj y \n'');
scanf (''%d', &y);
if((x> y)
kb = x*x;
printf (“kvadrat broja x je:%d, kb”);
if((x< y)
kz = (x+y)*(x+y);
printf (“kvadrat zbira brojeva X i Y je %d, kz”);
else
for ( i=1; i<150;i+2){
s+=i
printf('Suma neparnih brojeva manjih od 15 je:%d'',s);
}
}

3. (30%) Napisati C program koji učitava niz cijelih brojeva X, dužine N. Program treba da
svaki element niza koji je manji od 100 zamijeni prvim elementom niza. Štampati izmjenjeni niz
i broj izvršenih zamjena.

#include <stdio.h>
main () {
int X[N] i, ,N,b = 0;
printf ('' unesite dužinu niza '');
scanf (''%d'', &N);
printf ('' unesite broj K '');
scanf (''%d'', &K);
for (i = 0 ; i < N ; i++) {
printf (''Unesite elemente niza '');
scanf (''%d'', &X[N] );
if(X[N] < 1)
X[N] = X[1]
b++
printf (“NIz sada ima oblik %d a broj izmjena je %d”, X[N],b),
}
}
Univerzitet u Istočnom Sarajevu
Fakultet za proizvodnju i menadžment Trebinje

Popravak prvog kolokvijuma iz


PROGRAMIRANJA I PROGRAMSKIH JEZKA

1. a) (10% - 2,5 poena) Koju će vrijednost imati promjenljive A i B nakon datog niza naredbi?

int A, B=5;
B+=(B<6); Najprije ispitujemo vrijednost logičkog izraza, B = 5, što je manje od 6 što znači da je
izraz tačan i ima vrijednost 1, dakle B = B+1= 5+1= 6, A = 0
A = (--B)%3;Najprije umanjimo B za 1 pa ga dodamo i izračunamo ostatak dijeljenja sa brojem 3,
dakle A = B/3 = 5/3 =1, B = 5, A = 1
A*=A; A = A*A = 1 * 1 = 1;

b) (15% - 3,75 poena) Koju će vrijednost uzeti promjenljive x i y, nakon izvršenja datih naredbi?
Jasno prikazati vrijednosti promjenljivih nakon svake naredbe pojedinačno.

int x, y=3,z=4;
x = 4+ y--; Najprije dodamo y pa ga umanjimo za jedan i saberemo sa brojem 4, x = 4 + 3 =7; x =
7, y = 2, z = 3;
y+=((z<3)&&(++z)); Ovdje se radi o uslovu && i obje strane uslova moraju biti tačne da bi čitav
izraz bio tačan, najprije ispitujemo desnu stranu, z je jedanko 3, što znači da je desna strana izraza
netačna, a time i čitav izraz y = y + 0 = 2, x = 7, y = 2, z = 3;
z*=(x%3)- ((z!=6)||(x+3)); Najprije ispitujemo uslov, odnosno njegovu desnu stranu. z! = 6, što
znači da je tačno i izraz ima vrijednost 1, pa imamo, z = z*(x%3) – 1 = 3 * 2 – 1 = 5; x = 7, y = 3,
z = 5.

2. a) ( 20% - 5 poena) Napisati C program, koji učitava cio broj x i koji određuje i štampa broj y
dobijen na osnovu sljedećeg pravila:

;      < 50


$ !#


,  
z= )
 " #

#include <stdio.h>
main () {
int x,z;
printf ('' unesi broj x \n'');
scanf (''%d", &x);
if(x%2==0 && x<50)
z = (x+2)/(x*x*x+3*x-1);
else
z= 7/(2*x*x+1);
printf(''Rezultat je:%d',z);
}
b) (20% - 5 poena) Napisati C program kojim se učitava realan broj K. U slučaju da je kvadrat
tog broja veći od 400, štampati kvadrat broj K. U suprotnom štampati petinu broja K.
#include <stdio.h>
main () {
float K;
int q=1;
printf ('' unesi broj x \n'');
scanf (''%f",&K);
q = K*K;
if(q>400)
K = K*K;
printf(“kvadrat broja K je %d”,K);
else
K = K/5;
printf(''Petina broja K je:%d',K);
}

3. (35% - 8,75 poena) Napisati C program koji učitava niz cijelih brojeva X, Dužine M, i dva
cijela broja K1 i K2, i koji broji koliko ima elemenata niza X koji su veći od K1 i istovremeno
djeljivi sa K2.

#include <stdio.h>
main () {
int X[N],M,K1,K2, i,,b = 0;
printf ('' unesite dužinu niza '');
scanf (''%d'', &N);
printf ('' unesite broj N '');
scanf (''%d'', &N);
printf ('' unesite brojeve K1 i K2 '');
scanf (''%d',%d', & K1, K2);
for (i = 0 ; i < M ; i++) {
printf (''Unesite elemente niza '');
scanf (''%d'', &X[N] );
if(X[N] > K1 && X[N]%K2 = 0)
b++
printf (“U ovom nizu ima %d elemenata koji su istovremeno veći od K1 i djeljivi sa K2”,b),
}
}

You might also like