273
Programski jazik C PISI 1 1. Broevi 1. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta sumata 1 k +2 k +3 k +...n k kade {to n i k se vnesuvaat od tastatura. Re{enie: Vlezni promenlivi Izlezni promenlivi n kraj na intervalot i broja~ vo interval k stepen vo intervalot s suma (zbir) stepen(n,m) funkcija koja ja presmetuva vrednosta n m #include<stdio.h> long int stepen(int n,int m) { if(m==0) return 1; if(m==1) return 1; else return(n*stepen(n,m-1)); } int main() { int n,k,i; long int s=0; printf("Vnesete n: "); scanf("%d",&n); printf("Vnesete k: "); scanf("%d",&k); for(i=1;i<=n;i++) s+=stepen(i,k); printf("Sumata e: %ld \n",s); return 0; } _______________________________________________________Test primer: VLEZ: Vnesete n: 5 Vnesete k: 3 Sumata e: 225.

Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Embed Size (px)

Citation preview

Page 1: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

1

1. Broevi 1. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta sumata 1k+2k+3k+...nk kade {to n i k se vnesuvaat od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n kraj na intervalot

i broja~ vo interval

k stepen vo intervalot

s suma (zbir)

stepen(n,m) funkcija koja ja presmetuva vrednosta nm

#include<stdio.h> long int stepen(int n,int m) { if(m==0) return 1; if(m==1) return 1; else return(n*stepen(n,m-1)); } int main() { int n,k,i; long int s=0; printf("Vnesete n: "); scanf("%d",&n); printf("Vnesete k: "); scanf("%d",&k); for(i=1;i<=n;i++) s+=stepen(i,k); printf("Sumata e: %ld \n",s); return 0; } _______________________________________________________Test primer: VLEZ: Vnesete n: 5 Vnesete k: 3 Sumata e: 225.

Page 2: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

2

2. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta sumata 1+4+7+...(n pati) kade {to n se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n kraj na intervalot

i broja~ vo interval

j ~lenovi na sumata

s suma (zbir)

#include<stdio.h> int main() { int i,n,j,s=0; printf("Vnesete n="); scanf("%d",&n); j=1; for(i=0;i<n;i++) { s+=j; j+=3; } printf("Sumata e: %d\n",s); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete n: 8 Sumata e: 92.

Page 3: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

3

3. Da se napi{e programa vo programskiot jazik C koja }e gi ispe~ati site trojki broevi od daden interval za koi e ispolnet uslovot a2+b2=c2 (Pitagorini broevi). Re{enie:

Vlezni promenlivi Izlezni promenlivi

poc po~etokot na interval

kraj kraj na intervalot

a,b,c broja~i vo intervalot

#include<stdio.h> int main() { int poc,kraj,a,b,c; printf("Vnesete pocetok i kraj na intervalot:"); scanf("%d %d",&poc,&kraj); for(a=poc;a<kraj;a++) for(b=poc;b<kraj;b++) for(c=poc;c<kraj;c++) if(a*a+b*b==c*c) {

printf("Uslovot go zadovoluvaat broevite %d, %d i %d.\n",a,b,c);

printf("%d+%d=%d\n\n",a*a,b*b,c*c); } return 0; }

Page 4: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

4

_______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:5 15 Programata pe~ati: Uslovot go zadovoluvaat broevite 5, 12 i 13. 25+144=169 Uslovot go zadovoluvaat broevite 6, 8 i 10. 36+64=100 Uslovot go zadovoluvaat broevite 8, 6 i 10. 64+36=100 Uslovot go zadovoluvaat broevite 8, 15 i 17. 64+225=289 Uslovot go zadovoluvaat broevite 9, 12 i 15. 81+144=225 Uslovot go zadovoluvaat broevite 12, 5 i 13. 144+25=169 Uslovot go zadovoluvaat broevite 12, 9 i 15. 144+81=225

Page 5: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

5

4. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta sumata a+(a+c)+(a+2c)+...+b kade {to a e po~etok na intervalot, b e kraj na intervalot, a c e ~ekor. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a po~etok na interval

b kraj na interval

c ~ekor

k faktorot na zgolemuvawe na ~ekorot c

s suma

#include<stdio.h> int main() { int a,b,c,k=0,s=0; printf("Vnesete pocetok i kraj na intervalot: "); scanf("%d %d",&a,&b); printf("Vnesete cekor: "); scanf("%d",&c); while((a+k*c)<b) { printf("%d+",a+k*c); s=s+(a+k*c); k++; } printf("0=%d\n",s); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot: 1 15 Vnesete ~ekor: 3 Programata pe~ati: 1+4+7+10+13+0=35

Page 6: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

6

5. Da se napi{e programa vo programskiot jazik C so koja }e se izbrojat broevite bliznaci do n. (Broevi bliznaci se dva prosti broja koi se razlikuvaat za 2). Brojot n se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n kraj na intervalot pom prost broj

i broja~ vo interval

j deliteli na sekoj broj od intervalot

prost prima vrednost 1 za prost broj i 0 za broj koj ne e prost

#include<stdio.h> int main() { int n,pom,i,j,prost; printf("Vnesete n="); scanf("%d",&n); for(i=2;i<n;i++) { prost=1; j=2; while(prost && j<=(i/2)) { if(i%j==0) prost=0; j++; } if (prost) { if(pom+2==i) printf("Takvi broevi se %d i %d.\n",pom,i); pom=i; } } return 0; }

Page 7: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

7

_______________________________________________________ Test primer: VLEZ: Vnesete n=50 Programata pe~ati: Takvi broevi se 3 i 5. Takvi broevi se 5 i 7. Takvi broevi se 11 i 13. Takvi broevi se 17 i 19. Takvi broevi se 29 i 31. Takvi broevi se 41 i 43.

Page 8: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

8

6. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~atat site broevi koi se delivi so svoite cifri vo zadaden interval. Po~etokot i krajot na intervalot se vnesuvaat od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

poc po~etok na interval

kraj kraj na interval

pom pomo{na promenliva

i broja~ vo interval

a cifra od interval

deliv

prima vrednost 1 ako brojot e deliv so svoite cifri i 0 ako brojot ne e deliv so svoite cifri

#include<stdio.h> int main() { int pom,poc,kraj,i,a,deliv; printf("Vnesete pocetok i kraj na intervalot="); scanf("%d %d",&poc,&kraj); for(i=poc;i<=kraj;i++) { pom=i; deliv=1; while(pom>0) { a=pom%10; if(a!=0) { if(i%a!=0) deliv=0; } pom/=10; } if(deliv==1) printf("Uslovot e ispolnet kaj brojot %d\n",i);

Page 9: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

9

} return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot=20 30 Programata pe~ati: Uslovot e ispolnet kaj brojot 20 Uslovot e ispolnet kaj brojot 22 Uslovot e ispolnet kaj brojot 24 Uslovot e ispolnet kaj brojot 30

Page 10: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

10

7. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~atat broevite vo zadaden interval koi imaat odreden broj na deliteli. Brojot na deliteli se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

poc po~etok na interval

kraj kraj na interval

i broja~ vo interval

n broj na deliteli

j deliteli na broevite

br broj na deliteli

#include<stdio.h> #include<math.h> int main() { int poc,kraj,i,j,n,br; printf("Vnesete pocetok i kraj na intervalot="); scanf("%d %d",&poc,&kraj); printf("Vnesete kolku deliteli da se baraat po broj="); scanf("%d",&n); for(i=poc;i<=kraj;i++) { j=2; br=1; while(j<=i/2) { if(i%j==0) br++; j++; } if(br==n) printf("Uslovot e ispolnet kaj brojot %d.\n",i); } return 0; }

Page 11: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

11

_______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot=1 20 Vnesete kolku deliteli da se baraat po broj=3 Programata pe~ati: Uslovot e ispolnet kaj brojot 6. Uslovot e ispolnet kaj brojot 8. Uslovot e ispolnet kaj brojot 10. Uslovot e ispolnet kaj brojot 14. Uslovot e ispolnet kaj brojot 15.

Page 12: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

12

8. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat broevite od zadaden interval delivi barem so eden od broevite 3, 5 ili 7. Re{enie:

Vlezni promenlivi Izlezni promenlivi

poc po~etok na interval

kraj kraj na interval

i broja~ vo interval

#include<stdio.h> int main() { int poc,kraj,i; printf("Vnesete pocetok i kraj na intervalot:"); scanf("%d %d",&poc,&kraj); for(i=poc;i<=kraj;i++) if(i%3==0 || i%5==0 || i%7==0) printf("Brojot %d e deliv so eden od broevite 3, 5 ili 7.\n",i); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot 10 e deliv so eden od broevite 3, 5 ili 7. Brojot 12 e deliv so eden od broevite 3, 5 ili 7. Brojot 14 e deliv so eden od broevite 3, 5 ili 7. Brojot 15 e deliv so eden od broevite 3, 5 ili 7. Brojot 18 e deliv so eden od broevite 3, 5 ili 7. Brojot 20 e deliv so eden od broevite 3, 5 ili 7.

Page 13: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

13

9. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat broevite od zadaden interval delivi so broevite 2, 3 i 6. Re{enie:

Vlezni promenlivi Izlezni promenlivi

poc po~etok na interval

kraj kraj na interval

i broja~ vo interval

#include<stdio.h> int main() { int poc,kraj,i; printf("Vnesete pocetok i kraj na intervalot:"); scanf("%d %d",&poc,&kraj); for(i=poc;i<=kraj;i++) if(i%2==0 && i%3==0 && i%6==0) printf("Brojot %d e deliv so broevite 2, 3 i 6.\n",i); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot 12 e deliv so broevite 2, 3 i 6. Brojot 18 e deliv so broevite 2, 3 i 6.

Page 14: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

14

10. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~atat site cifri upotrebeni vo zapisot na daden broj. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n proizvolen broj

a cifri od brojot

pom pomo{na promenliva koja go pomni vneseniot broj

#include<stdio.h> int main() { int n,a,pom; printf("Vnesete broj:"); scanf("%d",&n); pom=n; printf("Brojot e sostaven od cifrite: "); while(pom>0) { a=pom%10; printf("%d ",a); pom/=10; } printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete broj:9564 Programata pe~ati: Brojot e sostaven od cifrite: 4 6 5 9

Page 15: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

15

11. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~atat site dekadni broevi vo zadaden interval koi se palindromi vo binaren broen sistem. Re{enie:

Vlezni promenlivi Izlezni promenlivi

poc po~etok na intervalot

kraj kraj na intervalot

i broja~ vo intervalot

a cifra vo dekaden ili binaren broj

pom pomo{na promenliva vo koja se ~uva dekadniot broj

m obraten broj na binarniot broj

poz pozicija na cifrata

bin binaren broj

#include<stdio.h> int main() { int poc,kraj,i,pom,a,poz; long int bin,bin2,m; printf("Vnesete pocetok i kraj na intervalot:"); scanf("%d %d",&poc,&kraj); for(i=poc;i<=kraj;i++) { pom=i; bin=0; poz=1; while(pom>0) { a=pom%2; bin+=a*poz; poz*=10; pom/=2; } bin2=bin; m=0;

Page 16: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

16

while(bin2>0) { a=bin2%10; m=m*10+a; bin2/=10; } if(bin==m) printf("Dekadniot broj %d, pretvoren vo binaren e palindrom i e %d.\n",i,bin); } return 0; } _______________________________________________________Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:15 40 Programata pe~ati: Dekadniot broj 15, pretvoren vo binaren e palindrom i e 1111. Dekadniot broj 17, pretvoren vo binaren e palindrom i e 10001. Dekadniot broj 21, pretvoren vo binaren e palindrom i e 10101. Dekadniot broj 27, pretvoren vo binaren e palindrom i e 11011. Dekadniot broj 31, pretvoren vo binaren e palindrom i e 11111. Dekadniot broj 33, pretvoren vo binaren e palindrom i e 100001.

Page 17: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

17

12. Da se napi{e programa vo programskiot jazik C so koja }e se pronajde najgolemiot od tri broja. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a,b,c proizvolni broevi

#include<stdio.h> int main() { float a,b,c; printf("Vnesete gi trite broja:"); scanf("%f %f %f",&a,&b,&c); if(a>=b && a>=c) printf("Najgolem e %.1f\n",a); if(b>=a && b>=c) printf("Najgolem e %.1f\n",b); if(c>=a && c>=b) printf("Najgolem e %.1f\n",c); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete gi trite broja: 12.5 98.8 102.5 Programata pe~ati: Najgolem e 102.5

Page 18: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

18

13. Da se napi{e programa vo programskiot jazik C so koja }e se pronajde najmaliot delitel na daden broj ili da se utvrdi deka toj broj e prost. Re{enie:

Vlezni promenlivi Izlezni promenlivi

x proizvolen broj

j delitel na brojot x

br broj na deliteli

i najmal delitel na brojot x

#include<stdio.h> int main() { int x,i,j,br=0; printf("Vnesete broj="); scanf("%d",&x); j=2; while(br==0 && j<=(x/2)) { if(x%j==0) { br++; i=j; } j++; } if(br!=0) printf("Najmaliot delitel e %d.\n",i); else printf("Brojot e prost.\n"); return 0; }

Page 19: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

19

_______________________________________________________ Test primer: VLEZ: Vnesete broj=39 Programata pe~ati: Najmaliot delitel e 3.

Page 20: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

20

14. Da se napi{e programa vo programskiot jazik C so koja }e se pronajde obratniot broj na daden broj. Obraten broj na daden broj e broj zapi{an so istite cifri no vo obraten redosled. Na primer obraten broj na brojot 3254 e brojot 4523. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n proizvolen broj

a cifra od brojot

pom pomo{na promenliva vo koja se pomni brojot n

m obratniot broj na brojot n

#include<stdio.h> int main() { int n,a,pom,m=0; printf("Vnesete priroden broj="); scanf("%d",&n); pom=n; while (pom>0) { a=pom%10; m=m*10+a; pom/=10; } printf("Obratniot broj e %d.\n",m); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete priroden broj=123456 Programata pe~ati: Obratniot broj e 654321

Page 21: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

21

15. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat site broevi koi se palindromi vo daden interval. (Eden broj e palindrom ako se ~ita isto od dvete strani). Re{enie:

Vlezni promenlivi Izlezni promenlivi

poc po~etok na intervalot

kraj kraj na intervalot

i broja~i vo intervalot

m obraten broj na brojot od intervalot

a cifra od brojot

pom pomo{na promenliva vo koja se pomni broj od intervalot

#include<stdio.h> int main() { int m,poc,kraj,i,pom,a; printf("Vnesete pocetok i kraj na intervalot: "); scanf("%d %d",&poc,&kraj); for(i=poc;i<=kraj;i++) { m=0; pom=i; while (pom>0) { a=pom%10; m=m*10+a; pom/=10; } if(i==m) printf("Palindrom e brojot %d.\n",i); }

Page 22: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

22

return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot: 150 250 Programata pe~ati: Palindrom e brojot 151. Palindrom e brojot 161. Palindrom e brojot 171. Palindrom e brojot 181. Palindrom e brojot 191. Palindrom e brojot 202. Palindrom e brojot 212. Palindrom e brojot 222. Palindrom e brojot 232. Palindrom e brojot 242.

Page 23: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

23

16. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat site dvojki broevi od intervalot od 1 do 100 ~ij {to proizvod e obraten broj od nivniot zbir. Re{enie:

Vlezni promenlivi Izlezni promenlivi

i,j broja~i

m obraten broj

a cifra od brojot

s zbir na dva broja

pom pomo{na promenliva vo koja se ~uva broj

p proizvod na dva broja

#include<stdio.h> int main() { int i,j,s,p,a,pom,m; for(i=1;i<100;i++) for(j=1;j<100;j++) { m=0; s=i+j; p=i*j; pom=p; while(pom>0) { a=pom%10; m=m*10+a; pom/=10; } if(s==m) { printf("Uslovot e zadovolen kaj parot broevi %d i %d.\n",i,j); printf("%d+%d=%d, a %d*%d=%d\n",i,j,s,i,j,p); printf("\n"); } }

Page 24: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

24

return 0; } _______________________________________________________ Test primer: VLEZ: Programata pe~ati: Uslovot e zadovolen kaj parot broevi 2 i 2. 2+2=4, a 2*2=4 Uslovot e zadovolen kaj parot broevi 2 i 47. 2+47=49, a 2*47=94 Uslovot e zadovolen kaj parot broevi 3 i 24. 3+24=27, a 3*24=72 Uslovot e zadovolen kaj parot broevi 5 i 26. 5+26=31, a 5*26=130 Uslovot e zadovolen kaj parot broevi 9 i 9. 9+9=18, a 9*9=81 Uslovot e zadovolen kaj parot broevi 24 i 3. 24+3=27, a 24*3=72 Uslovot e zadovolen kaj parot broevi 26 i 5. 26+5=31, a 26*5=130 Uslovot e zadovolen kaj parot broevi 47 i 2. 47+2=49, a 47*2=94

Page 25: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

25

17. Da se napi{e programa vo programskiot jazik C so koja }e se najdat site prosti broevi vo zadaden interval. Re{enie:

Vlezni promenlivi Izlezni promenlivi

poc po~etok na intervalot

kraj kraj na intervalot

i broja~ vo intervalot

j deliteli na brojot od intervalot

prost prima vrednost 1 ako brojot e prost i 0 ako brojot ne e prost

#include<stdio.h> #include<math.h> int main() { int poc,kraj,i,j,prost=1; printf("Vnesete pocetok i kraj na intervalot="); scanf("%d %d",&poc,&kraj); for(i=poc;i<=kraj;i++) { prost=1; j=2; while(prost && j<(i/2)) { if(i%j==0) prost=0; j++; } if (prost) printf("Prost broj e %d.\n",i); } return 0; }

Page 26: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

26

_______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot=20 60 Programata pe~ati: Prost broj e 23. Prost broj e 29. Prost broj e 31. Prost broj e 37. Prost broj e 41. Prost broj e 43. Prost broj e 47. Prost broj e 53. Prost broj e 59.

Page 27: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

27

18. Da se napi{e programa vo programskiot jazik C so koja }e se najdat prostite faktori na eden priroden broj. (Prosti faktori na eden broj se negovite prosti mno`iteli). Re{enie:

Vlezni promenlivi Izlezni promenlivi

n proizvolen priroden broj

i deliteli na brojot

x prost faktor (mno`itel) na brojot

#include<stdio.h> int main() { int n,x,i; printf("Vnesete pozitiven cel broj:"); scanf("%d",&x); n=x; i=2; do { if(n%i==0) { n=n/i; printf("%d X ",i); } else i++; } while(n!=1); printf("1=%d\n",x); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete pozitiven cel broj: 228 Programata pe~ati: 2 X 2 X 3 X 19 X 1=228

Page 28: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

28

19. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat dvojkite tricifreni i ednocifreni broevi ~ii zbirovi se obratni broevi so nivnite proizvodi. Re{enie:

Vlezni promenlivi Izlezni promenlivi

i,j broja~i

a cifra od broj s suma na dva broja

pom pomo{na promenliva vo koja se pomni broj

invS obraten broj p

proizvod na dva broja

#include<stdio.h> int main() { int i,j,pom,a,p,s,invS; for(i=1;i<10;i++) for(j=100;j<1000;j++) { p=i*j; s=i+j; pom=s; invS=0; while(pom>0) { a=pom%10; invS=invS*10+a; pom/=10; } if(p==invS) printf("Parot broevi e: %d i %d.\n",i,j); } return 0; }

Page 29: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

29

_______________________________________________________ Test primer: VLEZ: Programata pe~ati: Parot broevi e 2 i 497 2+497=499 2*497=994

Page 30: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

30

20. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta vkupniot broj na deliteli na broevi vo daden segment. Re{enie:

Vlezni promenlivi Izlezni promenlivi

poc po~etok na interval

kraj kraj na intervalot

i broja~ vo intervalot

pom pomo{na promenliva vo koja se pomni odreden broj

br broj na deliteli

#include<stdio.h> int main() { int i,poc,kraj,br=0,j=0,pom; printf("Vnesete pocetok i kraj na intervalot: "); scanf("%d %d",&poc,&kraj); for(i=poc;i<=kraj;i++) { j=1; pom=i; while(j<=pom/2) { if(i%j==0) br++; j++; } } printf("Vkupen broj na deliteli e %d.\n",br); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot: 10 30 Programata pe~ati: Vkupen broj na deliteli e 67.

Page 31: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

31

21. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat site tricifreni broevi koi go ispolnuvaat uslovot: xyz=x+y2+z3. Re{enie:

Vlezni promenlivi Izlezni promenlivi

i broja~ vo intervalot

x,y,z

cifrite na stotkite, desetkite i edinicite na sekoj broj od intervalot

#include<stdio.h> int main() { int i,x,y,z; for(i=100;i<1000;i++) { z=i%10; y=(i/10)%10; x=i/100; if (i==x+y*y+z*z*z) { printf("%d",i); printf("\n"); } } return 0; } _______________________________________________________ Test primer: VLEZ: Programata pe~ati: 135 175 518 598

Page 32: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

32

22. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat site broevi vo zadaden interval za koi e ispolnet uslovot :

zbirot na cifrite⋅n=proizvodot na cifrite. Vrednosta na n se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

i broja~ vo intervalot

kraj kraj na intervalot

i broja~ vo intervalot

n odnos pome|u proizvodot i zbirot od cifrite

pom pomo{na promenliva vo koja se pomni broj

s zbir od cifrite

p proizvod od cifrite

a cifra od broj

#include<stdio.h> int main() { int i,pom,n,p=1,s=0,a,poc,kraj; printf("Vnesete pocetok i kraj na intervalot: "); scanf("%d %d",&poc,&kraj); printf("Vnesete n (kolku pati da e pomal zbirot od proizvodot na cifrite) ="); scanf("%d",&n); for(i=poc;i<=kraj;i++) { s=0; p=1; if(i<10) { printf("Mnogu mal broj!\n"); return 0; }

Page 33: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

33

pom=i; while(pom>0) { a=pom%10; p*=a; s+=a; pom/=10; } if(s*n==p) printf("Uslovot e ispolnet kaj brojot %d\n",i); } return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot: 50 1000 Vnesete n (kolku pati da e pomal zbirot od proizvodot na cifrite) =4 Programata pe~ati: Uslovot e ispolnet kaj brojot 88 Uslovot e ispolnet kaj brojot 189 Uslovot e ispolnet kaj brojot 198 Uslovot e ispolnet kaj brojot 246 Uslovot e ispolnet kaj brojot 264 Uslovot e ispolnet kaj brojot 426 Uslovot e ispolnet kaj brojot 462 Uslovot e ispolnet kaj brojot 624 Uslovot e ispolnet kaj brojot 642 Uslovot e ispolnet kaj brojot 819 Uslovot e ispolnet kaj brojot 891 Uslovot e ispolnet kaj brojot 918 Uslovot e ispolnet kaj brojot 981

Page 34: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

34

23. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat site broevi od zadaden interval na koi zbirot od kubovite na cifrite i proizvodot od kubovite na cifrite go davaat samiot broj. Re{enie:

Vlezni promenlivi Izlezni promenlivi

poc po~etok na interval

kraj kraj na intervalot

i broja~ vo intervalot

s suma (zbir)

p proizvod

x cifra od brojot

pom pomo{na promenliva vo koja se pomni broj od intervalot

#include<stdio.h> int main() { int i,x,s,p,poc,kraj,pom; printf("Vnesete pocetok i kraj na intervalot ="); scanf("%d %d",&poc,&kraj); for(i=poc;i<=kraj;i++) { s=0; p=1; pom=i; while(pom>0) { x=pom%10; s+=x*x*x; p*=x*x*x; pom/=10; } if(i==s+p) printf("Uslovot e ispolnet kaj brojot %d.\n",i); } return 0; }

Page 35: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

35

_______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot =100 1000 Programata pe~ati: Uslovot e ispolnet kaj brojot 370. Uslovot e ispolnet kaj brojot 407.

Page 36: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

36

24. Da se napi{e programa vo programskiot jazik C koja }e gi ispe~ati site sovr{eni broevi pomali od daden broj n. (Sovr{eni broevi se broevite koi se ednakvi na zbirot od nivnite deliteli). Re{enie:

Vlezni promenlivi Izlezni promenlivi

n kraj na intervalot

i broja~ vo intervalot

j deliteli na broj od intervalot

broj zbir na deliteli

#include<stdio.h> int main() { int broj,i,j,n; printf("Vnesete do koj broj da se proveruva:\t"); scanf("%d",&n); printf("Sovrseni broevi pomali od brojot %d se brooevite: ",n); for (i=1;i<=n;i++) { broj=0; for (j=1;j<=i/2;j++) { if (i%j==0) broj+=j; } if (broj==i) printf("%d ,",i); } printf("\n\n"); system("pause"); return 0; }

Page 37: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

37

_______________________________________________________ Test primer: VLEZ: Vnesete do koj broj da se proveruva: 100 Sovr{eni broevi pomali od brojot 100 se broevite 6, 28

Page 38: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

38

25. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~ati onoj priroden broj pomal od n ~ij zbir na deliteli e najgolem kako i vrednosta na toj zbir. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n kraj na interval

i broja~ vo intervalot

pom

pomo{na promenliva vo koja se pomni brojot ~ij zbir na deliteli e najgolem

j deliteli na broj od intervalot

zbird zbir na deliteli max

najgolema vrednost od zbirot na delitelite

#include<stdio.h> int main() { int n,i,j,zbird,max=0,pom; do { printf("Vneste do koj broj da se proveruva:\t"); scanf("%d",&n); } while (n<0); for (i=1;i<=n;i++) { zbird=0; for (j=1;j<=i;j++) { if (i%j==0) zbird+=j; } if (max<zbird) { max=zbird; pom=i; } } printf("\n\nOd site broevi pomali od brojot %d najgolem zbir na deliteli\n",n); printf("ima brojot %d i toj zbir iznesuva %d.\n\n\n",pom,max);

Page 39: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

39

system("pause"); return 0; }

_______________________________________________________ Test primer VLEZ: Vnesete do koj broj da se proveruva 748 Od site broevi pomali od brojot 748 najgolem zbir na deliteli ima brojot 720 i toj zbir iznesuva 2418.

Page 40: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

40

2. Matemati~ki zada~i 1. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta koli~nikot na dva broja na n decimali. Re{enie:

Vlezni promenlivi Izlezni promenlivi

x,y broevi koi se delat

n broj na decimalni mesta

i broja~

ost ostatok pri deleweto na brojot x so brojot y

r cifra od rezultatot

#include<stdio.h> int main() { int x,y,i; int n,ost,r; printf("Vnesete dva broja:"); scanf("%d %d",&x,&y); printf("Na kolku decimali da se presmeta:"); scanf("%d",&n); printf("%d/%d=%d.",x,y,x/y); ost=x%y; for(i=1;i<=n;i++) { ost*=10; r=ost/y; printf("%d",r); ost=ost-y*r; } printf("\n"); return 0; }

Page 41: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

41

_______________________________________________________ Test primer: VLEZ: Vnesete dva broja: 22 7 Na kolku decimali da se presmeta: 8 Programata pe~ati: 22/7=3.14285714

Page 42: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

42

2. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta plo{tinata na triagolnikot so zadadeni strani a,b i c. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a,b,c strani na triagolnikot

s vrednosta s vo Heronovata formula

p plo{tina na triagolnikot

#include<stdio.h> #include<math.h> int main() { float a,b,c; double p,s; printf("Vnesete gi stranite na triagolnikot: "); scanf("%f %f %f",&a,&b,&c); if(a+b>c && a+c>b && c+a>b) { s=(a+b+c)/(2*1.0); p=sqrt(s*(s-a)*(s-b)*(s-c)); printf("Plostinata na triagolnikot so strani %.1f %.1f i %.1f = %.1f\n",a,b,c,p); } else printf("Vnesenite strani ne mozat da formiraat triagolnik.\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete gi stranite na triagolnikot: 12 25 18 Programata pe~ati: Plo{tinata na triagolnikot so strani 12.0 25.0 i 18.0 = 100.6

Page 43: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

43

3. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta kolku vreme pominalo od datumot na ra|awe. Re{enie:

Vlezni promenlivi Izlezni promenlivi

d1,m1, g1

datum na ra|awe (den, mesec i godina)

d2,m2, g2

dene{en datum (den, mesec i godina)

d3,m3,g3 starost vo denovi, meseci i godini

#include<stdio.h> int main() { int g1,m1,d1,g2,m2,d2,g3,m3,d3; printf("Vnesete datum na raganje (den, mesec, godina):"); scanf("%d %d %d",&d1,&m1,&g1); printf("Vnesete denesen datum (den, mesec, godina):"); scanf("%d %d %d",&d2,&m2,&g2); if(d2<d1) { d2=d2+30; m2-=1; } d3=d2-d1; if(m2<m1) { m2=m2+12; g2-=1; } m3=m2-m1; g3=g2-g1; printf("Vasata starost e: %d godini, %d meseci, %d dena.\n",g3,m3,d3); return 0; }

Page 44: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

44

_______________________________________________________ Test primer: VLEZ: Vnesete datum na ra|awe (den, mesec, godina): 1 6 1992 Vnesete dene{en datum (den, mesec, godina): 28 9 2005 Programata pe~ati: Va{ata starost e: 13 godini, 3 meseci, 27 dena.

Page 45: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

45

4. Da se napi{e programa vo programskiot jazik C so koja }e se

izvr{i tabelirawe na funckiite x2 x i x3 vo intervalot od 1

do 10. Re{enie:

Vlezni promenlivi Izlezni promenlivi

x vrednost za tabelirawe

#include<stdio.h> #include<math.h> int main() { int x; printf(" Tabela na funkcii \n"); x=0; printf("--------------------------------\n"); while(x<=10) { printf(" %d | %d %.2f %d \n",x,x*x,float(sqrt(x)),x*x*x); x++; } return 0; } _______________________________________________________ Test primer: VLEZ: Programata pe~ati: Tabela na funkcii -------------------------------- 0 | 0 0.00 0 1 | 1 1.00 1 2 | 4 1.41 8 3 | 9 1.73 27 4 | 16 2.00 64 5 | 25 2.24 125 6 | 36 2.45 216 7 | 49 2.65 343 8 | 64 2.83 512 9 | 81 3.00 729 10 | 100 3.16 1000

Page 46: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

46

5. Da se napi{e programa vo programskiot jazik C so koja }e se opredeli zaemniot odnos pome|u dve kru`nici. Re{enie:

Vlezni promenlivi Izlezni promenlivi

x1,y1,r1 koordinati na centarot i radiusot na prvata kru`nica

x2,y2,r2 koordinati na centarot i radiusot na vtorata kru`nica

d rastojanie pome|u centrite na dvete kru`nici

#include<stdio.h> #include<math.h> int main() { int x1,y1,x2,y2,r1,r2; float d; printf("Vneste ja x koordinatata na centarot na prvata kruznica\t"); scanf("%d",&x1); printf("Vneste ja y koordinatata na centarot na prvata kruznica\t"); scanf("%d",&y1); printf("Vneste go radiusot na prvata kruznica\t"); scanf("%d",&r1); printf("Vneste ja x koordinatata na centarot na vtorata kruznica\t"); scanf("%d",&x2); printf("Vneste ja y koordinatata na centarot na vtorata kruznica\t"); scanf("%d",&y2); printf("Vneste go radiusot na vtorata kruznica\t"); scanf("%d",&r2); d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); printf("\n\n"); if (d==(r1+r2)) printf("Kruznicite se dopiraat od nadvor\n\n"); if (d>(r1+r2)) printf("Kruznicite se razminuvaat\n\n"); if ((d>abs(r1-r2)) && (d<(r1+r2))) printf("Kruznicite se secat\n\n"); if (d==abs(r1-r2))

Page 47: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

47

printf("Kruznicite se dopiraat od vnatre\n\n"); if (d<abs(r1-r2)) printf("Kruznicite se edna vo druga\n\n"); system ("pause"); return 0;

} _______________________________________________________ Test primer:

VLEZ: Vnesete ja x koordinatata na centarot od prvata kru`nica 5 Vnesete ja y koordinatata na centarot od prvata kru`nica -6 Vnesete go radiusot na prvata kru`nica 4 Vnesete ja x koordinatata na centarot od vtorata kru`nica -4 Vnesete ja y koordinatata na centarot od vtorata kru`nica 3 Vnesete go radiusot na prvata kru`nica 2 Kru`nicite se razminuvaat.

Page 48: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

48

6. Da se napi{e programa vo programskiot jazik C so koja }e se

presmeta vrednosta na izrazot n

n nE

+= 11 za n=1,2,3,... se

dodeka e ispolnet uslovot ε<− −1nn EE . (Vrednosta na ε se

vnesuva preku tastatura). Re{enie:

Vlezni promenlivi Izlezni promenlivi

e vrednost za to~nost do koja }e se proveruva

i broja~ vo intervalot

prethodna prethodna vrednost na E

x vrednost na sekoj ~len od razvojot E koja se stepenuva na n

E vrednost na izrazot

#include<stdio.h> #include<math.h> int main() { float n=1,x,prethodna=2,E,e; printf("Vneste vrednost do koja ke se proveruva\t"); scanf("%f",&e); n++; x=1+1/n; E=pow(x,n); while ((E-prethodna)>e) { prethodna=E; n++; x=1+1/n; E=pow(x,n); } printf("\n\nVrednosta na brojot e so tocnost do %8.7f iznesuva e=%8.7f.",e,E); printf("\n\n\n"); system("pause"); return 0; }

Page 49: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

49

_______________________________________________________ Test primer:

VLEZ:

Vnesete vrednost do koja }e se proveruva 0.0001

Vrednosta na brojot e so to~nost do 0.0001 iznesuva e=2.7060256

Page 50: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

50

7. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta najmaliot broj na banknoti od po 10, 20 i 50 denari so koi mo`e da se isplati sumata S. Re{enie:

Vlezni promenlivi Izlezni promenlivi

brojbank vkupen broj na banknoti suma vrednost na sumata

bank10 broj na banknoti od po 10 denari

bank20 broj na banknoti od po 20 denari pom

pomo{na promenliva vo koja se pomni vkupnata suma bank50

broj na banknoti od po 50 denari

#include<stdio.h> int main() { int suma,brojbank=0,bank50=0,bank20=0,bank10=0,pom; do { printf("Vnesete ja vkupnata suma (sumata da e deliva so 10):\t"); scanf("%d",&suma); } while (suma%10!=0); pom=suma; bank50=suma/50; brojbank+=bank50; suma-=bank50*50; if (suma>0) { bank20=suma/20; brojbank+=bank20; suma-=bank20*20; } if (suma>0) { bank10=suma/10; brojbank+=bank10; } printf("\n\nVkupnata suma od %d denari moze da se isplati so pomos na %d banknoti\n",pom,brojbank);

Page 51: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

51

printf("i toa so %d banknoti od 50 den., %d banknoti od 20 den. i %d banknoti od 10 den.",bank50,bank20,bank10); printf("\n\n\n"); system("pause"); return 0;

} _______________________________________________________ Test primer: VLEZ: Vnesete ja vkupnata suma (sumata da e deliva so 10) 5440 Vkupnata suma od 5440 denari mo`e da se isplati so pomo{ na 110 banknoti i toa so 108 banknoti od 50 denari, 2 banknoti od 20 denari i 0 banknoti od 10 denari

Page 52: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

52

8. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta geometriska sredina od n broevi x1,x2,...,xn koi se vnesuvaat preku tastatura. (Geometriska sredina na broevite

se presmetuva spored formulata: nnxxxGS ⋅⋅⋅= L21 ).

Re{enie:

Vlezni promenlivi Izlezni promenlivi

n vkupen broj na broevi

i broja~

x proizvolen broj

proizvod proizvod od broevite

t me|uvrednost vo presmetkite

gsredina geometriska sredina od n broevi

#include<stdio.h> #include<math.h> main() { int i,n,x; float gsredina,t,proizvod=1; printf("Vnesete od kolku broevi da se bara geometriska sredina\t"); scanf("%d",&n); for (i=1;i<=n;i++) { printf("Vnesete go %d-iot broj: \t",i); scanf("%d",&x); proizvod=proizvod*x; }; t=log(proizvod)/n; gsredina=exp(t); printf("\n\n\nGeometriskata sredina od broevite iznesuva %6.3f\n",gsredina); system("Pause"); }

Page 53: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

53

_______________________________________________________ Test primer: VLEZ: Vnesete od kolku broevi da se bara geometriska sredina 6 Vnesete go 1-iot broj 3 Vnesete go 2-iot broj 5 Vnesete go 3-iot broj 6 Vnesete go 4-iot broj 4 Vnesete go 5-iot broj 8 Vnesete go 6-iot broj 7 Geometriskata sredina od broevite iznesuva 5.217

Page 54: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

54

9. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat site re{enija na kvadratnata ravenka

02 =+⋅+⋅ cxbxa . Re{enie:

Vlezni promenlivi Izlezni promenlivi

a vrednost na koeficientot pred kvadratniot ~len

koren1 prvoto realno re{enie na kvad-ratnata ravenka

b vrednost na koeficientot pred linearniot ~len

koren 2 vtoroto realno re{enie na kvad-ratnata ravenka

c vrednost na slobodniot ~len

re

realen del od kompleksnoto re-{enie na kvad-ratnata ravenka

d vrednost na diskriminantata na kvadratnata ravenka

im

imaginarniot del od kompleksnoto re{enie na kvadratnata ravenka

#include<stdio.h> #include<math.h> int main() { float a,b,c; float d,koren1,koren2,re,im; do { printf("Vneste go koeficientot pred kvadratniot clen (a!=0):\t"); scanf("%f",&a); } while (a==0); printf("Vneste go koeficientot pred linearniot clen(b):\t"); scanf("%f",&b); printf("Vnesete go slobodniot clen (c):\t"); scanf("%f",&c); d=b*b-4*a*c; if (d>=0) { koren1=(-b-sqrt(d)/(2*a);

Page 55: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

55

koren2=(-b+sqrt(d)/(2*a); printf("\n\nResenijata na kvadratnata ravenka se: x1=%4.2f i x2= %4.2 f\n\n" ,koren1, koren2); } else { re=-b/(2*a); im=sqrt(-1*d)/(2*a); printf("\n\nResenijata na kvadratnata ravenkata se x1=%4.2f-i*%4.2f i\n", re, im); printf("x2=%4.2f+i*%4.2f\n\n\n",re,im); } system("pause"); return 0;

} _______________________________________________________ Test primer

VLEZ Vnesete go koeficientot pred kvadratniot ~len (a!=0) 2 Vnesete go koeficientot pred linearniot ~len (b) 3 Vnesete go slobodniot ~len (c) -4 Re{enijata na kvadratnata ravenka se x1=-2.35 i x2=0.85

Page 56: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

56

10. Da se napi{e programa vo programskiot jazik C so koja }e se

presmeta vrednosta na izrazot 444 3444 21

L

n

222 +++ .

Re{enie:

Vlezni promenlivi Izlezni promenlivi

n vkupen broj na koreni

i broja~

zbir me|uvrednost pri presmetkite

koren vrednost na izrazot

#include<stdio.h> #include<math.h> main() { float i,n; float koren=0,zbir; zbir=2+sqrt(2); printf("Vnesete go brojot na korenite\t"); scanf("%f",&n); for (i=1; i<n; i++) { koren =sqrt(zbir); zbir=koren+2; } printf("\n\nVrednosta na izrazot iznesuva %6.4f.\n\n",koren); system("pause"); }

_______________________________________________________ Test primer

VLEZ: Vnesete go brojot na korenite 4 Vrednosta na izrazot iznesuva 1.9904

Page 57: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

57

11. Da se napi{e funkcija vo programskiot jazik C {to prima dva parametri x i n i vra}a vrednost :

( )

<+

+−

≥+

−+= +−

+

0,11

0,211

2

xn

x

n

x

xn

x

n

xx

xf nn

nn

. Potoa da se sostavi programa {to

}e ja tabelira ovaa funkcija za vrednost na n koja se vnesuva

preku tastatura vo interval [ ]4,4−∈x , so ~ekor 0.5.

Re{enie:

Vlezni promenlivi Izlezni promenlivi

n vrednost na parametarot n

x broja~ vo intervalot

y vrednost na funkcijata

#include<stdio.h> #include<math.h> int main() { float n,x,y; printf("Vneste vrednost za parametarot n:\t"); scanf("%f",&n); printf("\n\n_______________________________________\n"); printf(" x y\n"); printf("_______________________________________\n"); for (x=-4;x<=4;x+=0.5) { if (x>=0) { y=x+pow(x,n)/n-pow(x,n+2)/(n+2); printf(" %4.2f %6.4f\n",x,y); } else { y=-pow(x,n-1)/(n-1)+pow(x,n+1)/(n+1); printf(" %4.2f %6.4f\n",x,y); } } printf("\n____________________________________\n\n\n");

Page 58: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

58

system("pause"); return 0; }

_______________________________________________________ Test primer VLEZ: Vnesete vrednost za parametarot n: 5 ___________________________________ x y ___________________________________ -4.00 618.6667 -3.50 268.8620 -3.00 101.2500 -2.50 30.9245 -2.00 6.6667 -1.50 0.6328 -1.00 -0.0833 -0.50 -0.0130 0.00 0.0000 0.50 0.5051 1.00 1.0571 1.50 0.5779 2.00 -9.8857 2.50 -65.1618 3.00 -260.8286 3.50 -810.5891. 4.00 -2131.7715 ______________________________________

Page 59: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

59

3. Nizi 1. Da se napi{e programa vo programskiot jazik C so koja }e se izbri{at site elementi od dadena niza koi se javuvaat pove}e od edna{. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100] niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n brojot na elementi na nizata

p,i,j broja~i za nizata

#include<stdio.h> int main() { int a[100],j,i,n,p; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } i=0; while(i<n) { for(j=i+1;j<n;j++) if(a[i]==a[j]) { for(p=j;p<n;p++) { a[p]=a[p+1]; } n--;

Page 60: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

60

} if(a[i]!=a[i+1]) i++; } printf("Novata niza e: "); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 10 Vnesete ja nizata. a[0]=5 a[1]=15 a[2]=22 a[3]=38 a[4]=15 a[5]=5 a[6]=57 a[7]=38 a[8]=102 a[9]=89 Programata pe~ati: Novata niza e: 5 15 22 38 57 102 89

Page 61: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

61

2. Da se napi{e programa vo programskiot jazik C so koja }e se izbri{e prvoto pojavuvawe na daden element vo nizata. Nizata i elementot se vnesuvaat od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100],b[100]

nizi od celi broevi koi mo`e da imaat najmnogu 100 elementi

n brojot na elementite vo nizata

x elementot {to treba da se izbri{e od nizata

i broja~ vo prvata niza

j broja~ vo vtorata niza

br broja~ so koj se vr{i popolnuvawe na vtorata niza

#include<stdio.h> int main() { int i,n,a[100],b[100],j,x,br; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata:\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Vnesete broj="); scanf("%d",&x); br=0; j=0; i=0; while(br==0 && i<n)

Page 62: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

62

{ if(a[i]!=x) { b[j]=a[i]; j++; } else br++; i++; } for(i=j;i<n-1;i++) b[i]=a[i+1]; printf("Novata niza e:\n"); for(i=0;i<n-1;i++) printf("%d ",b[i]); printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja nizata: a[0]=15 a[1]=2 a[2]=48 a[3]=15 a[4]=8 Vnesete broj=15 Programata pe~ati: Novata niza e: 2 48 15 8

Page 63: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

63

3. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~atat polnite kvadrati vo dadena niza i nivnite kvadratni koreni. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

nizi od celi broevi koi mo`e da imaat najmnogu 100 elementi

n brojot na elementite vo nizata

i broja~ vo nizata

pom kvadraten koren od elementite od nizata

#include<stdio.h> #include<math.h> int main() { int a[100],i,n,pom; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=0;i<n;i++) { pom=int(sqrt(a[i])); if(sqrt(a[i])==pom) printf("Broj koj sto e poln kvadrat e %d, a korenuvan e %d.\n",a[i],pom); } return 0; }

Page 64: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

64

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=15 a[1]=25 a[2]=48 a[3]=36 a[4]=59 a[5]=49 Programata pe~ati: Broj koj {to e poln kvadrat e 25, a korenuvan e 5. Broj koj {to e poln kvadrat e 36, a korenuvan e 6. Broj koj {to e poln kvadrat e 49, a korenuvan e 7.

Page 65: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

65

4. Da se napi{e programa vo programskiot jazik C koja }e gi izbroi pojavuvawata na maksimalniot i minimalniot element od dadena niza. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

min najmaliot element a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

max najgolemiot element

n brojot na elementite vo nizata

brMin broj na pojavuvawa na najmaliot element

i broja~ vo nizata brMax

broj na pojavuvawa na najgolemiot element

#include<stdio.h> int main() { int a[100],brMin=0,brMax=0,min,max,i,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata:\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } max=a[0]; for(i=0;i<n;i++) if(a[i]>max) max=a[i]; min=a[0]; for(i=0;i<n;i++) if(a[i]<min) min=a[i]; for(i=0;i<n;i++) if(a[i]==max) brMax++;

Page 66: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

66

for(i=0;i<n;i++) if(a[i]==min) brMin++; printf("Najgolemiot broj se javuva %d pati.\n",brMax); printf("Najmaliot broj se javuva %d pati.\n",brMin); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 8 Vnesete ja nizata: a[0]=20 a[1]=5 a[2]=64 a[3]=2 a[4]=59 a[5]=64 a[6]=54 a[7]=2 Programata pe~ati: Najgolemiot broj se javuva 2 pati. Najmaliot broj se javuva 2 pati.

Page 67: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

67

5. Da se napi{e programa vo programskiot jazik C so koja }e se najde elementot od nizata koj e najblisku do daden element (koj se vnesuva od tastatura) na brojna oska. Re{enie:

Vlezni promenlivi Izlezni promenlivi

pom element od nizata najblizok do brojot m a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n brojot na elementite vo nizata

i broja~ vo nizata

m proizvolen broj

ras razlika pome|u vrednosta vo pom i brojot m

#include<stdio.h> #include<math.h> int main() { int a[100],i,ras=0,m,n,pom; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Vnesete broj="); scanf("%d",&m); ras=abs(m-a[0]); pom=a[0]; for(i=1;i<n;i++) if(abs(m-a[i])<ras) { pom=a[i];

Page 68: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

68

ras=abs(m-a[i]); } printf("Najblisku do %d e %d.\n",m,pom); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja nizata. a[0]=1 a[1]=5 a[2]=6 a[3]=8 a[4]=10 Vnesete broj=2 Programata pe~ati: Najblisku do 2 e 1.

Page 69: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

69

6. Da se napi{e programa vo programskiot jazik C so koja }e se pronajde na koja pozicija i kolku pati se pojavil daden element vo nizata. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n brojot na elementite vo nizata

i broja~ vo nizata

m proizvolen broj koj se bara

br broj na pojavuvawa na brojot m

#include<stdio.h> int main() { int a[100],i,br=0,m,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Koj broj da se bara? "); scanf("%d",&m); for(i=0;i<n;i++) { if(a[i]==m) { printf("Brojot e najden na %d-ta pozicija.\n",i+1); br++; } }

Page 70: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

70

printf("I se pojavil %d pati.\n",br); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=5 a[1]=8 a[2]=2 a[3]=3 a[4]=8 a[5]=10 Koj broj da se bara? 8 Programata pe~ati: Brojot e najden na 2-ta pozicija. Brojot e najden na 5-ta pozicija. I se pojavil 2 pati.

Page 71: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

71

7. Da se napi{e programa vo programskiot jazik C so koja }e se izbroi kolku pati dadena bukva se pojavila vo daden zbor. Re{enie:

Vlezni promenlivi Izlezni promenlivi

str[20]

niza od karakteri koja mo`e da ima najmnogu 20 karakteri

ch element od nizata

i broja~ vo nizata

a bukva koja se proveruva

br broj na pojavuvawe na bukvata

#include<stdio.h> int main() { char ch,str[20],a,i=0,br=0; printf("Vnesete go zborot: "); while(i<20 && (ch=getchar())!='\n') { str[i]=ch; i++; } str[i]='\0'; printf("Vnesete ja bukvata: "); scanf("%c",&a); i=0; while(i<20 && (str[i])!='\0') { if(str[i]==a) br++; i++; } printf("Bukvata %c se pojavila %d pati\n",a,br); return 0; }

Page 72: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

72

_______________________________________________________ Test primer: VLEZ: Vnesete go zborot: Makedonija Vnesete ja bukvata: a Programata pe~ati: Bukvata a se pojavila 2 pati

Page 73: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

73

8. Da se napi{e programa vo programskiot jazik C so koja }e se normalizira eden zbor. (So prva golema bukva a ostanatite mali) Re{enie:

Vlezni promenlivi Izlezni promenlivi

zbor[20]

niza od karakteri koja mo`e da ima najmnogu 20 karakteri

a element od nizata

i broja~ vo nizata

#include<stdio.h> #include<ctype.h> int main() { char zbor[20],a; int i=0; printf("Vnesete go zborot: "); while(i<20 && (a=getchar())!='\n') zbor[i++]=a; zbor[i]=0; i=1; zbor[0]=toupper(zbor[0]); while(zbor[i]!=0) { zbor[i]=tolower(zbor[i]); i++; } printf("Normaliziraniot zbor e %s\n",zbor); return 0; }

Page 74: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

74

_______________________________________________________ Test primer: VLEZ: Vnesete go zborot: kompJutER Programata pe~ati: Normaliziraniot zbor e Kompjuter

Page 75: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

75

9. Da se napi{e programa vo programskiot jazik C so koja }e se proveri dali daden zbor e pravilno napi{an. (So prva golema bukva, a ostanatite mali) Re{enie:

Vlezni promenlivi Izlezni promenlivi

zbor[20]

niza od karakteri koja mo`e da ima najmnogu 20 karakteri

a element od nizata

i broja~ vo nizata

tocno

prima vrednost 1 ako zborot e to~no napi{an i 0 ako zborot ne e to~no napi{an

#include<stdio.h> int main() { char zbor[20],a; int i=0, tocno=1; printf("Vnesete go zborot: "); while(i<20 && (a=getchar())!='\n') { zbor[i]=a; i++; } zbor[i]=0; if(zbor[0]>='A' && zbor[0]<='Z') { i=1; while(tocno==1 && zbor[i]!='\0') { if(zbor[i]>='A' && zbor[i]<='Z') tocno=0; i++; }

Page 76: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

76

} else tocno=0; if(tocno) printf("Zborot e pravilno napisan.\n"); else printf("Zborot e nepravilno napisan.\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete go zborot: list Programata pe~ati: Zborot list e nepravilno napi{an.

Page 77: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

77

10. Da se napi{e programa vo programskiot jazik C so koja }e se proveri dali eden zbor e palindrom. Zborot se vnesuva od tastatura. (Eden zbor e palindrom ako se ~ita isto i od ednata i od drugata strana). Re{enie:

Vlezni promenlivi Izlezni promenlivi

zbor[20]

niza od karakteri koja mo`e da ima najmnogu 20 karakteri

a element od nizata

i,j broja~i vo nizata

tocno

prima vrednost 1 ako zborot e palindrom i vrednost 0 ako zborot ne e palindrom

#include<stdio.h> int main() { char zbor[20],a; int i=0,j,tocno; printf("Vnesete go zborot: "); while(i<20 && (a=getchar())!='\n') zbor[i++]=a; zbor[i]=0; j=0; while(j<i/2) { if(zbor[j]==zbor[i-j-1]) tocno=1; else tocno=0; j++; } if(tocno) printf("Zborot %s e palindrom.\n",zbor);

Page 78: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

78

else printf("Zborot %s ne e palindrom.\n",zbor); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete go zborot: rotor Programata pe~ati: Zborot rotor e palindrom.

Page 79: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

79

11. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~ati unijata na dve nizi koi se vnesuvaat od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100],b[100] c[100]

nizi od celi broevi koi mo`e da imaat najmnogu 100 elementi

n broj na elementi vo prvata niza

m elementi vo vtorata niza

i,j,k,p broja~i vo intervalot

#include<stdio.h> int main() { int a[100],b[100],c[100],j,i,m,n,p,k=0; printf("Kolku elementi da ima prvata niza: "); scanf("%d",&n); printf("Vnesete ja prvata niza.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Kolku elementi da ima vtorata niza: "); scanf("%d",&m); printf("Vnesete ja vtorata niza.\n"); for(i=0;i<m;i++) { printf("b[%d]=",i); scanf("%d",&b[i]); } printf("Unijata na nizite e: "); for(i=0;i<n;i++)

Page 80: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

80

{ c[k]=a[i]; k++; } for(j=0;j<m;j++) { c[k]=b[j]; k++; } i=0; while(i<k) { for(j=i+1;j<k;j++) if(c[i]==c[j]) { for(p=j;p<k;p++) { c[p]=c[p+1]; } k--; } if(c[i]!=c[i+1]) i++; } for(i=0;i<k;i++) printf("%d ",c[i]); printf("\n",k); return 0; }

Page 81: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

81

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima prvata niza: 5 Vnesete ja prvata niza. a[0]=5 a[1]=9 a[2]=4 a[3]=3 a[4]=6 Kolku elementi da ima vtorata niza: 3 Vnesete ja vtorata niza. b[0]=8 b[1]=4 b[2]=6 Programata pe~ati: Unijata na nizite e: 5 9 4 3 6 8

Page 82: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

82

12. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~ati presekot na dve nizi koi se vnesuvaat od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100],b[100] c[100]

nizi od celi broevi koi mo`e da imaat najmnogu 100 elementi

n broj na elementi vo prvata niza

m elementi vo vtorata niza

i,j,k,p broja~i vo intervalot

#include<stdio.h> int main() { int a[100],b[100],c[100],j,i,m,n,p,k=0; printf("Kolku elementi da ima prvata niza: "); scanf("%d",&n); printf("Vnesete ja prvata niza.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Kolku elementi da ima vtorata niza: "); scanf("%d",&m); printf("Vnesete ja vtorata niza.\n"); for(i=0;i<m;i++) { printf("b[%d]=",i); scanf("%d",&b[i]); } printf("Presekot na nizite e: "); for(i=0;i<n;i++) for(j=0;j<m;j++) if(a[i]==b[j])

Page 83: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

83

{ c[k]=a[i]; k++; } i=0; while(i<k) { for(j=i+1;j<k;j++) if(c[i]==c[j]) { for(p=j;p<k;p++) { c[p]=c[p+1]; } k--; } if(c[i]!=c[i+1]) i++; } for(i=0;i<k;i++) printf("%d ",c[i]); printf("\n",k); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima prvata niza: 5 Vnesete ja prvata niza. a[0]=5 a[1]=9 a[2]=4 a[3]=3 a[4]=6 Kolku elementi da ima vtorata niza: 3 Vnesete ja vtorata niza. b[0]=8 b[1]=4 b[2]=6 Programata pe~ati: Presekot na nizite e: 4 6

Page 84: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

84

13. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~ati razlikata na dve nizi koi se vnesuvaat od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100] b[100] c[100]

nizi od celi broevi koi mo`e da imaat najmnogu 100 ele-menti

n broj na elementi vo prvata niza

m elementi vo vtorata niza

i,j,k,p broja~i vo intervalot

nasol

prima vrednost 1 ako se pronajdat zaedni~ki elementi i 0 ako nema zaedni~ki elementi

#include<stdio.h> int main() { int a[100],b[100],c[100],j,i,m,n,p,k=0,nasol=0;; printf("Kolku elementi da ima prvata niza: "); scanf("%d",&n); printf("Vnesete ja prvata niza.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Kolku elementi da ima vtorata niza: "); scanf("%d",&m); printf("Vnesete ja vtorata niza.\n"); for(i=0;i<m;i++) { printf("b[%d]=",i); scanf("%d",&b[i]); }

Page 85: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

85

printf("Razlikata na nizite e: "); for(i=0;i<n;i++) { nasol=0; for(j=0;j<m;j++) if(a[i]==b[j]) nasol=1; if(nasol==0) { c[k]=a[i]; k++; } } i=0; while(i<k) { for(j=i+1;j<k;j++) if(c[i]==c[j]) { for(p=j;p<k;p++) { c[p]=c[p+1]; } k--; } if(c[i]!=c[i+1]) i++; } for(i=0;i<k;i++) printf("%d ",c[i]); printf("\n",k); return 0; }

Page 86: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

86

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima prvata niza: 5 Vnesete ja prvata niza. a[0]=5 a[1]=9 a[2]=4 a[3]=3 a[4]=6 Kolku elementi da ima vtorata niza: 3 Vnesete ja vtorata niza. b[0]=8 b[1]=4 b[2]=6 Programata pe~ati: Razlikata na nizite e: 5 4 6

Page 87: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

87

14. Da se napi{e programa vo programskiot jazik C so koja }e se pomestat elementite na nizata cikli~no na desno za k mesta. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo prvata niza

k vrednost za pomestuvawe

i,j broja~i vo intervalot

pom pomo{na promenliva koja se upotrebuva za smena

#include<stdio.h> int main() { int a[100],i,k,n,j,pom; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Za kolku mesta da se pomesti nizata na desno: "); scanf("%d",&k); for(j=0;j<k;j++) { pom=a[n-1]; for(i=n-1;i>0;i--) { a[i]=a[i-1];

Page 88: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

88

} a[0]=pom; } printf("Novodobienata niza e: "); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja nizata. a[0]=4 a[1]=7 a[2]=5 a[3]=9 a[4]=8 Za kolku mesta da se pomesti nizata na desno: 3 Programata pe~ati: Novodobienata niza e: 5 9 8 4 7

Page 89: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

89

15. Da se napi{e programa vo programskiot jazik C so koja }e se pronajde najgolemata raste~ka podniza na dadena niza. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo prvata niza

i,j broja~i vo nizata

pom pomo{na promenliva vo koja se pomni dol`inata na podnizata

poz1 po~etok na podnizata

dolz dol`ina na podnizata

#include<stdio.h> int main() { int i,j,n,a[100],dolz,pom,poz1; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata:\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } dolz=0; for(i=0;i<n;i++) { pom=1; j=i; while(a[j]<a[j+1]) { pom++; j++;

Page 90: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

90

} if(pom>dolz) { poz1=i; dolz=pom; } } printf("Najgolemata rastecka podniza ima dolzina %d i taa e: ",dolz); for(i=poz1;i<=poz1+dolz-1;i++) printf("%d ",a[i]); printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja nizata: a[0]=5 a[1]=4 a[2]=1 a[3]=2 a[4]=3 Programata pe~ati: Najgolemata raste~ka podniza ima dol`ina 3 i taa e: 1 2 3

Page 91: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

91

16. Da se napi{e programa vo programskiot jazik C so koja }e se generiraat elementite na Fibona~ievata niza do n-tiot element. (Fibona~ieva niza se generira na toj na~in {to sekoj sleden element e zbir na prethodnite dva elementi. Po definicija se zema a1=1 i a2=1). Re{enie:

Vlezni promenlivi Izlezni promenlivi

n broj na elementi vo nizata

i broja~ vo intervalot

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

#include<stdio.h> int main() { int a[100],i,n; printf("Vnesete n="); scanf("%d",&n); a[1]=1; a[2]=1; for(i=1;i<n-1;i++) { a[i+1]=a[i]+a[i-1]; } printf("fibonacievata niza e: "); for(i=1;i<n;i++) printf("%d ",a[i]); printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete n=8 Programata pe~ati: Fibona~ievata niza e: 1 1 2 3 5 8 13

Page 92: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

92

17. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~atat k-te najmali elementi od niza. Nizata i brojot na najmalite elementi se vnesuvaat od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo vleznata niza

k broj na elementi {to treba da se pronajdat

i,j broja~i vo nizata

pom pomo{na promenliva vo koja se pomni element od nizata za smena

b[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

#include<stdio.h> int main() { int a[100],b[100],pom; int i,k,n,j; printf("Kolku elementi da ima nizata? ="); scanf("%d",&n); printf("Kolku najmali da se najdat? ="); scanf("%d",&k); if(k>n) return 0; printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=0;i<n;i++) b[i]=a[i]; for(i=0;i<n;i++)

Page 93: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

93

for(j=0;j<n-i-1;j++) if(b[j]>b[j+1]) { pom=b[j]; b[j]=b[j+1]; b[j+1]=pom; } printf("%d-te najmali elementi se: ",k); for(i=0;i<k;i++) printf("%d ",b[i]); printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? =7 Kolku najmali da se najdat? =4 Vnesete ja nizata. a[0]=16 a[1]=12 a[2]=5 a[3]=49 a[4]=48 a[5]=47 a[6]=20 Programata pe~ati: 4-te najmali elementi se: 5 12 16 20

Page 94: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

94

18. Da se napi{e programa vo programskiot jazik C so koja }e se izbroi kolku pati se pojavil maksimalniot element vo dadena niza. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

max najgolem element vo nizata

br broj na pojavuvawe na najgolemiot element vo nizata

#include<stdio.h> int main() { int a[100],br=0,max,i,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata:\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } max=a[0]; for(i=1;i<n;i++) if(a[i]>max) max=a[i]; for(i=0;i<n;i++) if(a[i]==max) br++; printf("Najgolemiot broj se javuva %d pati.\n",br); return 0; }

Page 95: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

95

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja nizata: a[0]=15 a[1]=8 a[2]=4 a[3]=15 a[4]=9 Programata pe~ati: Najgolemiot broj se javuva 2 pati.

Page 96: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

96

19. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~atat site kombinacii so i bez povtoruvawe na zadadeni broevi od vtora klasa. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i,j broja~i vo nizata

#include<stdio.h> int main() { int a[100],i,j,n; printf("Vensete n="); scanf("%d",&n); printf("Vnesete gi broevite: "); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("Kombinaciite bez povtoruvanje se :\n"); for(i=0;i<n;i++) { printf("\n"); for(j=i;j<n;j++) if(a[i]!=a[j]) printf("%d%d ",a[i],a[j]); } printf("\n"); printf("\n"); printf("Kombinaciite so povtoruvanje se :\n"); for(i=0;i<n;i++) { printf("\n"); for(j=i;j<n;j++) printf("%d%d ",a[i],a[j]);

Page 97: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

97

} printf("\n"); printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete n=5 Vnesete gi broevite: 2 5 4 9 8 Programata pe~ati: Kombinaciite bez povtoruvawe se : 25 24 29 28 54 59 58 49 48 98 Kombinaciite so povtoruvawe se : 22 25 24 29 28 55 54 59 58 44 49 48 99 98 88

Page 98: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

98

20. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~atat site varijacii so i bez povtoruvawe na zadadeni broevi od vtora klasa. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i,j broja~ vo nizata

#include<stdio.h> int main() { int a[100],i,j,n; printf("Vensete n="); scanf("%d",&n); printf("Vnesete gi broevite: "); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("Varijaciite bez povtoruvanje se :\n"); for(i=0;i<n;i++) { printf("\n"); for(j=0;j<n;j++) if(a[i]!=a[j]) printf("%d%d ",a[i],a[j]); } printf("\n"); printf("\n"); printf("Varijaciite so povtoruvanje se :\n"); for(i=0;i<n;i++) { printf("\n"); for(j=0;j<n;j++) printf("%d%d ",a[i],a[j]);

Page 99: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

99

} printf("\n"); printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete n=5 Vnesete gi broevite: 5 9 4 8 3 Programata pe~ati: Varijaciite bez povtoruvawe se : 59 54 58 53 95 94 98 93 45 49 48 43 85 89 84 83 35 39 34 38 Varijaciite so povtoruvawe se : 55 59 54 58 53 95 99 94 98 93 45 49 44 48 43 85 89 84 88 83 35 39 34 38 33

Page 100: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

100

21. Na ispit po informatika u~estvuvale n<100 kandidati. Minimalniot broj na poeni za upis e min. Da se napi{e programa vo programskiot jazik C so koja }e se opredeli brojot na kandidatite koi steknale pravo na upis i ke go presmeta nivniot sreden uspeh poka`an na ispitot. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na kandidati

i broja~ vo nizata

min najmal broj poeni potrebni za polo`uvawe

vk vkupen broj na poeni na site studenti koi polo`ile

br broj na kandidati koi polo`ile

#include<stdio.h> int main() { int a[100],i,br=0,min,n,vk=0;; printf("Kolku kandidati ucestvuvale? "); scanf("%d",&n); printf("Vnesete gi bodovite za sekoj kandidat.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Kolku e minimumot na poenite: "); scanf("%d",&min); for(i=0;i<n;i++) { if(a[i]>=min)

Page 101: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

101

{ printf("Polozil %d-tiot ucenik,\n",i+1); br++; vk+=a[i]; } } printf("Sredniot uspeh na ucenicite sto polozile na broj %d, e %.1f\n",br,float(vk)/float(br)); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku kandidati u~estvuvale? 8 Vnesete gi bodovite za sekoj kandidat. a[0]=20 a[1]=14 a[2]=18 a[3]=10 a[4]=13 a[5]=19 a[6]=20 a[7]=11 Kolku e minimumot na poenite: 15 Programata pe~ati: Polo`il 1-tiot u~enik, Polo`il 3-tiot u~enik, Polo`il 6-tiot u~enik, Polo`il 7-tiot u~enik, Sredniot uspeh na u~enicite {to polo`ile na broj 4, e 19.3 poeni.

Page 102: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

102

22. Da se napi{e programa vo programskiot jazik C so koja }e se promenat znacite na elementite vo edna niza. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

#include<stdio.h> int main() { int a[100],i ,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=0;i<n;i++) a[i]*=(-1); printf("Novata niza e: "); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); return 0; }

Page 103: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

103

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja nizata. a[0]=5 a[1]=-2 a[2]=3 a[3]=-4 a[4]=6 Programata pe~ati: Novata niza e: -5 2 -3 4 -6

Page 104: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

104

23. Da se napi{e programa vo programskiot jazik C so koja }e se pronajde na koja najmalata i najgolemata pozicija se pojavil zadaden element vo edna niza. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100] niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

maxPoz najgolema pozicija na koja se javuva elementot x

i broja~ vo nizata

x vrednost na elementot koja se bara

minPoz najmala pozicija na koja se javuva elementot x

#include<stdio.h> int main() { int a[100],i,n,x,maxPoz,minPoz; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata:\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Koj element se bara:"); scanf("%d",&x); maxPoz=-1; minPoz=-1; for(i=0;i<n;i++) { if(a[i]==x) maxPoz=i; } i=0; while(minPoz==-1 && i<n) {

Page 105: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

105

if(a[i]==x) minPoz=i; i++; } if(minPoz!=-1 || maxPoz!=-1) printf("Elementot se pojavuva na minimalna pozicija %d i na maksimalna pozicija %d.\n",minPoz+1,maxPoz+1); else printf("Elementot ne se pojavuva.\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 8 Vnesete ja nizata: a[0]=15 a[1]=4 a[2]=-10 a[3]=15 a[4]=68 a[5]=23 a[6]=15 a[7]=8 Koj element se bara:15 Programata pe~ati: Elementot se pojavuva na minimalna pozicija 1 i na maksimalna pozicija 7.

Page 106: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

106

24. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta n-tiot (n<100) element od nizata 0 1 3 6 10 ... Re{enie:

Vlezni promenlivi Izlezni promenlivi

n broj na elementi vo nizata

i broja~ vo nizata

ps parcijalna suma

s vkupna suma koja go dava n-iot element

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

#include<stdio.h> int main() { int a[100],n,i,s=0,ps=0; printf("Vnesete n="); scanf("%d",&n); for(i=0;i<n;i++) { ps=ps+i; s=s+ps; a[i]=ps; } printf("%d-tiot element vo nizata e: %d\n",n,a[n-1]); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete n=26 Programata pe~ati: 26-tiot element vo nizata e: 325

Page 107: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

107

25. Da se napi{e programa vo programskiot jazik C so koja }e se pronajde najgolemata razlika na dva sosedni elementi od niza koja se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100] niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

pom pomo{na promenliva vo koja se pomni razlikata

raz razlika pome|u dva sosedni elementi vo nizata

#include<stdio.h> #include<math.h> int main() { int i,n; float a[100],raz,pom; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%f",&a[i]); } raz=fabs(a[1]-a[0]); for(i=2;i<n;i++) { pom=fabs(a[i]-a[i-1]); if(pom>raz) raz=pom; } printf("Najgolemata razlika na dva sosedni elementi vo nizata e %.2f\n",raz);

Page 108: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

108

return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=12 a[1]=5 a[2]=59 a[3]=60 a[4]=72 a[5]=12 Programata pe~ati: Najgolemata razlika na dva sosedni elementi vo nizata e 60.00

Page 109: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

109

26. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta najmaliot delitel razli~en od 1 i vkupniot broj na deliteli na priroden broj koj se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n proizvolen broj

i broja~ a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

j deliteli na brojot n

x vrednost na elementot koja se bara

br broj na deliteli na brojot n

#include<stdio.h> int main() { int n,br=0,j=2,a[100],i=0; printf("Vnesete priroden broj:"); scanf("%d",&n); while(j<=n/2) { if(n%j==0) { a[i]=j; br++; i++; } j++; } printf("Najmal delitel e %d, a vkupno gi ima %d.\n",a[0],br); return 0; }

Page 110: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

110

_______________________________________________________ Test primer: VLEZ: Vnesete priroden broj:48 Programata pe~ati: Najmal delitel e 2, a vkupno gi ima 8.

Page 111: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

111

27. Da se napi{e programa vo programskiot jazik C so koja }e se kopiraat neparnite elementi od edna niza vo nova i taa }e se ispe~ati. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100] niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i,j broja~i vo nizata

b[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

#include<stdio.h> int main() { int a[100],b[100],i,j,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } j=0; for(i=0;i<n;i++) { if(a[i]%2!=0) { b[j]=a[i]; j++; } } printf("Novata niza e: "); for(i=0;i<j;i++) printf("%d ",b[i]); printf("\n"); return 0; }

Page 112: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

112

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=12 a[1]=546 a[2]=15 a[3]=225 a[4]=5 a[5]=97 Programata pe~ati: Novata niza e: 15 225 5 97

Page 113: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

113

28. Da se napi{e programa vo programskiot jazik C so koja }e se podredi edna niza vo neopa|a~ki redosled. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100] niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i,j broja~i vo nizata

p pomo{na promenliva vo koja se ~uvaat elementite za smena

#include<stdio.h> int main() { int a[100],i,j,n,p; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=0;i<n;i++) for(j=0;j<n-i-1;j++) if(a[j]>=a[j+1]) { p=a[j]; a[j]=a[j+1]; a[j+1]=p; } printf("Novata niza e:"); for(i=0;i<n;i++) printf("%d ",a[i]); return 0; }

Page 114: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

114

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=15 a[1]=6 a[2]=89 a[3]=15 a[4]=2 a[5]=46 Programata pe~ati: Novata niza e: 2 6 15 15 46 89

Page 115: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

115

29. Da se napi{e programa vo programskiot jazik C so koja }e se soberat dve nizi. (Elementite na novodobienata niza se dobivaat kako zbir na soodvetnite elementi od dadenite nizi t.e. c[i]=a[i]+b[i]). Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100], b[100]

nizi od celi broevi koi mo`e da imaat najmnogu 100 elementi

n broj na elementi vo nizite

i broja~i vo nizite

c[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

#include<stdio.h> int main() { int a[100],b[100],c[100],i,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja prvata niza.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Vnesete ja vtorata niza.\n"); for(i=0;i<n;i++) { printf("b[%d]=",i); scanf("%d",&b[i]); } printf("Rezultantnata niza e:\n"); for(i=0;i<n;i++) { c[i]=a[i]+b[i]; printf("c[%d]=%d \n",i,c[i]); } return 0; }

Page 116: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

116

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja prvata niza. a[0]=15 a[1]=20 a[2]=5 a[3]=8 a[4]=64 Vnesete ja vtorata niza. b[0]=70 b[1]=23 b[2]=58 b[3]=14 b[4]=3 Programata pe~ati: Rezultantnata niza e: c[0]=85 c[1]=43 c[2]=63 c[3]=22 c[4]=67

Page 117: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

117

30. Da se napi{e programa vo programskiot jazik C so koja }e se pomno`at dve nizi. (Elementite na novodobienata niza se dobivaat kako proizvod na soodvetnite elementi od dadenite

nizi t.e. c[i]=a[i] ⋅b[i]). Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100], b[100]

nizi od celi broevi koi mo`e da imaat najmnogu 100 elementi

n broj na elementi vo nizite

i broja~i vo nizite

c[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

#include<stdio.h> int main() { int a[100],b[100],c[100],i,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja prvata niza.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Vnesete ja vtorata niza.\n"); for(i=0;i<n;i++) { printf("b[%d]=",i); scanf("%d",&b[i]); } printf("Rezultantnata niza e:\n"); for(i=0;i<n;i++) { c[i]=a[i]*b[i]; printf("c[%d]=%d \n",i,c[i]); } return 0; }

Page 118: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

118

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja prvata niza. a[0]=5 a[1]=9 a[2]=12 a[3]=24 a[4]=10 Vnesete ja vtorata niza. b[0]=23 b[1]=48 b[2]=5 b[3]=5 b[4]=14 Programata pe~ati: Rezultantnata niza e: c[0]=115 c[1]=432 c[2]=60 c[3]=120 c[4]=140

Page 119: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

119

31. Da se napi{e programa vo programskiot jazik C so koja }e se pronajde n-tiot po golemina prost priroden broj. Re{enie:

Vlezni promenlivi Izlezni promenlivi

m red na prostiot na broj

prost prima vrednost 1 ako brojot e prost ili 0 ako ne e prosr broj

i,k broja~i

j deliteli na brojot

b[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

#include<stdio.h> int main() { int b[100],m,i,j,k=0,prost; printf("Koj po red prost priroden broj se bara? "); scanf("%d",&m); for(i=2;i<700;i++) { prost=1; j=2; while(prost && j<=(i/2)) { if(i%j==0) prost=0; j++; } if (prost) { b[k]=i; k++; } } printf("Brojot e: %d\n",b[m-1]); return 0; }

Page 120: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

120

_______________________________________________________ Test primer: VLEZ: Koj po red prost priroden broj se bara? 15 Programata pe~ati: Brojot e: 47

Page 121: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

121

32. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat pozitivnite elementi od niza i }e se ispe~ati nivnite kvadratni koreni. Nizata se vnesuva od tastatura.

Vlezni promenlivi Izlezni promenlivi

a[100],

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

#include<stdio.h> #include<math.h> int main() { int a[100],i,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=0;i<n;i++) if(a[i]>0) printf("%d, a korenot iznesuva: %.2f.\n",a[i], sqrt(a[i])); return 0; }

Page 122: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

122

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja nizata. a[0]=12 a[1]=225 a[2]=-55 a[3]=69 a[4]=-5 Programata pe~ati: 12, a korenot iznesuva: 3.46. 225, a korenot iznesuva: 15.00. 69, a korenot iznesuva: 8.31.

Page 123: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

123

33. Da se napi{e programa vo programskiot jazik C so koja }e se podredi odreden del od niza vo raste~ki redosled. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i,j broja~i vo nizata

x po~etok na podnizata za podreduvawe

y kraj na podnizata za podreduvawe

pom

pomo{na promenliva vo koja se pomnat elementite od nizata

#include<stdio.h> int main() { int a[100],i,j,n,x,y,pom; printf("Kolku elementi da ima nizata:"); scanf("%d",&n); printf("Vnesete ja nizata: \n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Vnesete pocetok i kraj na podnizata sto treba da se podredi:"); scanf("%d %d",&x,&y); for(i=x;i<y;i++) for(j=i+1;j<=y;j++)

Page 124: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

124

if(a[j]<a[i]) { pom=a[j]; a[j]=a[i]; a[i]=pom; } for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata: 6 Vnesete ja nizata: a[0]=5 a[1]=1 a[2]=8 a[3]=4 a[4]=10 a[5]=2 Vnesete po~etok i kraj na podnizata {to treba da se podredi: 1 4 Programata pe~ati: 5 1 4 8 10 2

Page 125: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

125

34. Da se napi{e programa vo programskiot jazik C so koja }e se pronajde ostatokot koj se dobiva pri delewe na elementite od dadena niza so 3. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~i vo nizata

#include<stdio.h> int main() { int a[100],i,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=0;i<n;i++) printf("Brojot %d ima ostatok pri delenje so 3 -> %d.\n",a[i],a[i]%3); return 0; }

Page 126: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

126

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja nizata. a[0]=12 a[1]=14 a[2]=20 a[3]=22 a[4]=25 Programata pe~ati: Brojot 12 ima ostatok pri delewe so 3 -> 0. Brojot 14 ima ostatok pri delewe so 3 -> 2. Brojot 20 ima ostatok pri delewe so 3 -> 2. Brojot 22 ima ostatok pri delewe so 3 -> 1. Brojot 25 ima ostatok pri delewe so 3 -> 1.

Page 127: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

127

35. Da se napi{e programa vo programskiot jazik C so koja }e se preuredi dadena niza taka {to }e ostanat samo parnite elementi vo nea. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

j broj na elementi vo novata niza

#include<stdio.h> int main() { int a[100],n,i,j; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); j=0; printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=0;i<n;i++) { if(a[i]%2==0) { a[j]=a[i]; j++; } } printf("Novata niza e: "); for(i=0;i<j;i++)

Page 128: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

128

printf("%d ",a[i]); printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=15 a[1]=50 a[2]=12 a[3]=4 a[4]=9 a[5]=22 Programata pe~ati: Novata niza e: 50 12 4 22

Page 129: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

129

36. Da se napi{e programa vo programskiot jazik C so koja }e se podredat tri broja po golemina. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[3] niza od 3 realni broevi

pom

pomo{na promenliva vo koja se ~uvaat elementite od nizata a

i,j broja~i

#include<stdio.h> int main() { float a[3],pom; int i,j; printf("Vnesete gi trite broja:"); for(i=0;i<3;i++) scanf("%f",&a[i]); for(i=0;i<3;i++) for(j=0;j<3-i-1;j++) if(a[j]>a[j+1]) { pom=a[j]; a[j]=a[j+1]; a[j+1]=pom; } printf("Podredeni se: "); for(i=0;i<3;i++) printf("%.1f ",a[i]); printf("\n"); return 0; }

Page 130: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

130

_______________________________________________________ Test primer: VLEZ: Vnesete gi trite broja:120 45 39 Programata pe~ati: Podredeni se: 39.0 45.0 120.0

Page 131: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

131

37. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta aritmeti~kata sredina na elementite od nizata, a potoa da se isfrlat elementite pomali od taa vrednost. (Aritmeti~kata sredina se presmetuva spored formulata

n

aaa n+++ L21 ).

Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100] niza od realni broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

j broj na elementi vo izleznata niza

i broja~ vo nizite

as aritmeti~ka sredina na elementite od niza

b[100]

niza od realni broevi koja mo`e da ima najmnogu 100 elementi

#include<stdio.h> int main() { int i,j=0,n; float as=0.0,a[100],b[100]; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%f",&a[i]); } for(i=0;i<n;i++) as+=a[i]; as=as/float(n); for(i=0;i<n;i++) {

Page 132: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

132

if(a[i]>as) { b[j]=a[i]; j++; } } printf("Novodobienata niza e: "); for(i=0;i<j;i++) printf("%.2f ",b[i]); printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja nizata. a[0]=12 a[1]=60 a[2]=-18 a[3]=34 a[4]=27 Programata pe~ati: Novodobienata niza e: 60.00 34.00 27.00

Page 133: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

133

38. Da se napi{e programa vo programskiot jazik C so koja }e se pronajde na koja pozicija se pojavuva prviot element od dadena podniza vo dadena niza. Nizite se vnesuvaat od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]b[100]

nizi od realni broevi koi mo`e da imaat najmnogu 100 elementi

n broj na elementi vo prvata niza

m broj na elementi vo vtorata niza

i broja~ vo nizite

#include<stdio.h> int main() { int a[100],b[100],i,n,m; printf("Kolku elementi da ima prvata niza? "); scanf("%d",&n); printf("Vnesete ja prvata niza:\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Kolku elementi da ima vtorata niza? "); scanf("%d",&m); printf("Vnesete ja vtorata niza:\n"); for(i=0;i<m;i++) { printf("b[%d]=",i); scanf("%d",&b[i]); } for(i=0;i<n;i++) if(a[i]==b[0])

Page 134: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

134

printf("Elementot se pojavuva na %d-ta pozicija.\n",i+1); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima prvata niza? 5 Vnesete ja prvata niza: a[0]=64 a[1]=24 a[2]=89 a[3]=15 a[4]=34 Kolku elementi da ima vtorata niza? 3 Vnesete ja vtorata niza: b[0]=15 b[1]=2 b[2]=39 Programata pe~ati: Elementot 5 se pojavuva na 4-ta pozicija.

Page 135: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

135

39. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta kolku pati se promenal znakot na sosednite elementi vo dadena niza. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100] niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

br

broj na promeni na znacite pome|u dva sosedni elementi vo nizata

#include<stdio.h> int main() { int a[100],i,br=0,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=1;i<n;i++) if(a[i]*a[i-1]<0) br++; printf("Promeni na znacite bo nizata se na broj: %d\n",br); return 0; }

Page 136: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

136

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=5 a[1]=-4 a[2]=-2 a[3]=4 a[4]=3 a[5]=-10 Programata pe~ati: Promeni na znacite vo nizata se na broj: 3

Page 137: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

137

40. Da se napi{e programa vo programskiot jazik C so koja }e se izbrojat i prika`at site negativni elementi od dadena niza. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100] niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~i vo nizite

br broj na negativni elementi vo nizata

#include<stdio.h> int main() { int a[100],i,n,br=0; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata:\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=0;i<n;i++) if(a[i]<0) { br++; printf("%d ",a[i]); } printf("\nNivniot broj e %d.\n",br); return 0; }

Page 138: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

138

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata: a[0]=15 a[1]=-64 a[2]=28 a[3]=-89 a[4]=-1 a[5]=55 Programata pe~ati: -64 -89 -1 Nivniot broj e 3.

Page 139: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

139

41. Da se napi{e programa vo programskiot jazik C so koja }e se smenat mestata na najmaliot i najgolemiot element od edna niza. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

min element so najmala vrednost vo nizata

max element so najgolema vrednost vo nizata

iMin pozicija na elemenot so najmala vrednost vo nizata

iMax

pozicija na elementot so najgolema vrednost vo nizata

pom pomo{na promenliva vo koja se pomni element vo nizata

#include<stdio.h> int main() { int a[100],i,iMin,iMax,n,min,max,pom; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata:\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); }

Page 140: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

140

min=a[0]; max=a[0]; iMin=0; iMax=0; for(i=0;i<n;i++) { if(a[i]<min) { min=a[i]; iMin=i; } if(a[i]>max) { max=a[i]; iMax=i; } } pom=a[iMin]; a[iMin]=a[iMax]; a[iMax]=pom; printf("Novata niza e: "); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 8 Vnesete ja nizata: a[0]=48 a[1]=-10 a[2]=58 a[3]=79 a[4]=483 a[5]=42 a[6]=15 a[7]=-23 Programata pe~ati: Novata niza e: 48 -10 58 79 -23 42 15 483

Page 141: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

141

42. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta zbirot i proizvodot na elementite od edno-dimenzionalno pole. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

s suma (zbir)

n broj na elementi vo nizata

i broja~ vo nizata p proizvod

#include<stdio.h> int main() { int a[100],s=0,p=1,i,n; printf("Kolku elementi da ima poleto? = "); scanf("%d",&n); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=0;i<n;i++) { s+=a[i]; p*=a[i]; } printf("Zbirot e %d, a proizvodot %d.\n",s,p); return 0; }

Page 142: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

142

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima poleto? = 6 a[0]=15 a[1]=-5 a[2]=50 a[3]=6 a[4]=-10 a[5]=12 Programata pe~ati: Zbirot e 68, a proizvodot 2700000.

Page 143: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

143

43. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta sumata na kvadratite na elementite od niza. Nizata se vnesuva od tastaura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

s suma (zbir)

#include<stdio.h> int main() { int a[100],i,n,s=0; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata:\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=0;i<n;i++) s+=a[i]*a[i]; printf("Sumata kvadratite na elementite od nizata e %d.\n",s); return 0; }

Page 144: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

144

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja nizata: a[0]=5 a[1]=15 a[2]=12 a[3]=20 a[4]=35 Programata pe~ati: Sumata na kvadratite na elementite od nizata e 2019.

Page 145: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

145

44. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta zbirot od proizvodot na soodvetnite ~lenovi od dve nizi. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100] b[100]

nizi od celi broevi koi mo`e da imaat najmnogu 100 elementi

n broj na elementi vo nizite

i broja~ vo nizata

p proizvod

s suma (zbir)

#include<stdio.h> int main() { int a[100],b[100],n,i,s=0,p; printf("Kolku elementi da imaat nizite? "); scanf("%d",&n); printf("Vnesete ja prvata niza.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Vnesete ja vtorata niza.\n"); for(i=0;i<n;i++) { printf("b[%d]=",i); scanf("%d",&b[i]); } for(i=0;i<n;i++) { p=a[i]*b[i]; s+=p; } printf("Rezultatot e: %d.\n",s); return 0; }

Page 146: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

146

_______________________________________________________ Test primer: VLEZ: Kolku elementi da imaat nizite? 6 Vnesete ja prvata niza. a[0]=10 a[1]=8 a[2]=19 a[3]=40 a[4]=35 a[5]=49 Vnesete ja vtorata niza. b[0]=15 b[1]=0 b[2]=-10 b[3]=5 b[4]=-9 b[5]=44 Programata pe~ati: Rezultatot e: 2001.

Page 147: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

147

45. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta sumata na sekoi dva sosedni elementi od edna niza, taka {to sekoj nov element da e zbir na sosednite dva se dodeka ne se dobie samo eden element. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i,j broja~i vo nizata

k kraj na intervalot

#include<stdio.h> int main() { int a[100],i,j,n,k; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } k=n-1; for(j=1;j<=k;j++) { for(i=1;i<n;i++) { a[i-1]=a[i]+a[i-1]; printf("%d ",a[i-1]); } n--; printf("\n"); } return 0; }

Page 148: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

148

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja nizata. a[0]=15 a[1]=20 a[2]=22 a[3]=40 a[4]=-38 35 42 62 2 Programata pe~ati: 77 104 64 181 168 349

Page 149: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

149

46. Da se napi{e programa vo programskiot jazik C so koja za dadena niza }e se presmeta vrednosta na funkcijata

∑=

⋅=n

iix

nF

1

21 kade {to xi gi pretstavuva ~lenovite na nizata.

Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[50]

niza od celi broevi koja mo`e da ima najmnogu 50 elementi

n broj na elementi vo nizata

j broja~

suma zbir

F vrednost na funkcijata

#include<stdio.h> #include<math.h> int main() { int n,i,a[50]; float suma=0,F; do { printf("Vnesete go brojot na clenovi na nizata:\t"); scanf("%d",&n); } while ((n<0) || (n>50)); for (i=1;i<=n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for (i=1;i<=n;i++) suma+=a[i]*a[i]; F=sqrt(suma/float (n)); printf("\n\nVrednosta na funkcijata iznesuva %8.3f.\n\n",F); system("pause"); return 0; }

Page 150: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

150

_______________________________________________________ Test primer VLEZ: Vnesete go brojot na ~lenovi na nizata: 6 a[1]=3 a[2]=5 a[3]=8 a[4]=2 a[5]=7 a[6]=11 Vrednosta na funkcijata iznesuva 6.733

Page 151: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

151

47. Da se napi{e programa vo programskiot jazik C so koja }e

se pronajde onaa podniza vo nizata broevi [ ]nia ~ij zbir na

elementi e najblizok do vrednosta v koja se vnesuva preku tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

j broja~ vo nizata

v vrednost koja se bara

brclen broj na ~lenovi vo podnizata

brojac broja~ vo podnizata

min najmala vrednost

poz pozicija od kade zapo~nuva podnizata

indeks pozicija za izleznata podniza

razlika razlika pome|u v i suma

suma zbir na elementite vo podnizata

#include<stdio.h> int main() { int i,n,v,poz,brojac,brclen; int razlika,suma,min,indeks,a[100]; do { printf("Vnesete go brojot na clenovi na nizata (n<100):\t"); scanf("%d",&n); } while ((n<0) && (n>100)); printf("\n\n"); for (i=1;i<=n;i++) {

Page 152: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

152

do { printf("a[%d]=",i); scanf("%d",&a[i]); } while (a[i]<0); } do { printf("\n\nVnesete ja vrednosta na brojot v(v>0):\t"); scanf("%d",&v); } while (v<0); min=v; for (i=1;i<=n;i++) { poz=i; suma=0; brojac=0; while ((suma<=v) && (poz+brojac<=n)) { suma+=a[poz+brojac]; brojac++; } razlika=v-suma+a[poz+brojac-1]; if (min>=razlika) { min=razlika; indeks=poz; brclen=brojac-1; } } printf("\n\nDo vrednosta %d najbliska e sumata %d sostavena od podnizata: ",v,v-min); for (i=indeks;i<=indeks+brclen-1;i++) printf("%d, ",a[i]); printf("\n\n"); system("pause"); return 0; }

Page 153: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

153

_______________________________________________________ Test primer VLEZ: Vnesete go brojot na ~lenovi na nizata (n<100): 6 a[1]=8 a[2]=6 a[3]=5 a[4]=4 a[5]=3 a[6]=2 Vnesete ja vrednosta na brojot v (v>0) 25 Do vrednosta 25 najbliska e sumata 23 sostavena od podnizata 8, 6, 5, 4

Page 154: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

154

48. Da se napi{e programa vo programskiot jazik C so koja od n to~ki vo ramnina }e se ispe~ati onaa to~ka ~ij zbir na rastojanija do ostanatite to~ki ima najgolema vrednost. Re{enie:

Vlezni promenlivi Izlezni promenlivi

xk[50] yk[50]

nizi od celi broevi vo koi se ~uvaat koordinatite na to~kite koi mo`e da imaat najmnogu 50 elementi

d[50]

niza od realni broevi koja mo`e da ima najmnogu 50 elementi i vo nea se ~uvaat rastojanijata na soodvetnata to~ka do ostanatite to~ki

max najgolemo rastojanie

poz pozicija na to~kata {to go ispolnuva uslovot

#include<stdio.h> #include<math.h> int main() { int xk[50],yk[50],i,n,j,poz; float d[50],max; do { printf("Vneste kolku tocki da ima vo ramninata (n<50):\t"); scanf("%d",&n); } while ((n<0) || (n>50)); for (i=1;i<=n;i++) { printf("Vnesete ja x koordinatata na %d-ta tocka:\t",i); scanf("%d",&xk[i]); printf("Vnesete ja y koordinatata na %d-ta tocka:\t",i); scanf("%d",&yk[i]); } for (i=1;i<=n;i++)

Page 155: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

155

{ d[i]=0; for (j=1;j<=n;j++) d[i]+=sqrt((xk[i]-xk[j])*(xk[i]-xk[j]) +(yk[i]-yk[j])*(yk[i]-yk[j])); } max=d[1]; poz=1; for (i=2;i<=n;i++) { if (max<d[i]) { max=d[i]; poz=i; } } printf("\n\nOd site tocki vo ramninata najmalo rastojanie do ostanatite tocki ima"); printf("\ntockata so x koordinata %d i y koordinata %d i toa iznesuva %6.2f.\n\n\n",xk[poz],yk[poz],max); system("pause"); return 0; }

Page 156: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

156

_______________________________________________________ Test primer VLEZ: Vnesete kolku to~ki da ima vo ramninata (n<50): 8 Vnesete ja x koordinatata na 1-ta to~ka: 5 Vnesete ja y koordinatata na 1-ta to~ka: 3 Vnesete ja x koordinatata na 2-ta to~ka: 8 Vnesete ja y koordinatata na 2-ta to~ka: -5 Vnesete ja x koordinatata na 3-ta to~ka: -4 Vnesete ja y koordinatata na 3-ta to~ka: 0 Vnesete ja x koordinatata na 4-ta to~ka: 8 Vnesete ja y koordinatata na 4-ta to~ka: -2 Vnesete ja x koordinatata na 5-ta to~ka: 1 Vnesete ja y koordinatata na 5-ta to~ka: 1 Vnesete ja x koordinatata na 6-ta to~ka: 2 Vnesete ja y koordinatata na 6-ta to~ka: -5 Vnesete ja x koordinatata na 7-ta to~ka:- -5 Vnesete ja y koordinatata na 7-ta to~ka: 4 Vnesete ja x koordinatata na 8-ta to~ka: 7 Vnesete ja y koordinatata na 8-ta to~ka: -1 Od site to~ki vo ramninata najmalo rastojanie do ostanatite to~ki ima to~kata so x koordinata -5 i y koordinata -4 i toa iznesuva 69.77.

Page 157: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

157

49. Da se napi{e programa vo programskiot jazik C so koja za dadena niza A od N (N <100) realni broevi }e se preseta aritmeti~kata sredina na elementite. (Aritmeti~ka sredina

se presmetuva spored formulata n

aaa n+++ L21 ).Potoa

nizata da se transformira taka {to }e se isfrlat elementite pomali od taa vrednost i novodobienata niza da se ispe~ati na ekran. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od realni broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

b[100] niza od realni broevi koja mo`e da ima najmnogu 100 elementi

brojac broj na ~lenovi vo izleznata niza

zbir zbir na elementite od nizata

prosek aritmeti~ka sredina na elementite vo nizata

#include<stdio.h> int main() { int i,n,brojac=0; float a[100],b[100],zbir=0,prosek; do { printf("Vnesete kolku clenovi da ima vo nizata(n<100)\t"); scanf("%d",&n); } while ((n<0) || (n>100)); printf("\n"); for (i=1;i<=n;i++) { printf("a[%d]=",i); scanf("%f",&a[i]); } for (i=1;i<=n;i++)

Page 158: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

158

zbir+=a[i]; prosek=zbir/float(n); for (i=1;i<=n;i++) { if (a[i]>prosek) { brojac++; b[brojac]=a[i]; } } printf("\n\nProsecnata vrednost na elementite vo nizata iznesuva %4.2f",prosek); printf("\n\nNovodobienata niza glasi: "); for (i=1;i<=brojac;i++) printf("%4.2f ",b[i]); printf("\n\n\n"); system("pause"); return 0; }

_______________________________________________________ Test primer VLEZ: Vnesete kolku ~lenovi da ima nizata(n<100) 8 a[1]=7 a[2]=3 a[3]=-2 a[4]=0 a[5]=6 a[6]=10 a[7]=-5 a[8]=4 Prose~nata vrednost na elementite vo nizata iznesuva 2.88

Novodobienata niza glasi 7.00, 3.00, 6.00, 10.00, 4.00

Page 159: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

159

50. Da se napi{e programa vo programskiot jazik C so koja za dadena niza A od n elementi }e ja presmeta najgolemata razlika me|u dva sosedni elementi od taa niza. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od realni broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

max najgolema razlika me|u dva sosedni elementi

i broja~ vo nizata

razlika razlika me|u dva sosedni elementi

poz pozicija na prviot element koj go zadovoluva uslovot

#include<stdio.h> int main() { int i,n,poz; float razlika,max,a[100]; do { printf("Vnesete go brojot na clenovi na nizata (n<100):\t"); scanf("%d",&n); } while ((n<0) && (n>100)); printf("\n\n"); for (i=1;i<=n;i++) { printf("a[%d]=",i); scanf("%f",&a[i]); } max=a[2]-a[1]; for (i=2;i<n;i++) { razlika=a[i+1]-a[i]; if (max<=razlika) { max=razlika; poz=i;

Page 160: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

160

} } printf("\n\nMaksimalna razlika koja iznesuva %4.2f e megu clenovite a[%d] i a[%d]",max,poz,poz+1); printf("\n\n"); system("pause"); return 0; }

_______________________________________________________ Test primer VLEZ: Vnesete go brojot na ~lenovi na nizata(n<100) 7 a[1]=5 a[2]=-3 a[3]=0 a[4]=2 a[5]=-8 a[6]=7 a[7]=10 Maksimalnata razlika koja iznesuva 15.00 e me|u ~lenovite a[5] i a[6].

Page 161: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

161

4. Matrici 1. Da se napi{e programa vo programskiot jazik C so koja }e se soberat dve matrici. Matricite se vnesuvaat od tastatura. (Zbir na dve matrici pretstavuva matrica kaj koja sekoj element e zbir od soodvetnite elementi na dvete matrici t.e c[i][j]=a[i][j]+b[i][j]). Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100][100] b[100][100]

matrici od realni broevi koi mo`e da imaat najmnogu 100 redovi i 100 koloni

m broj na redovi vo matricata

n broj na koloni vo matricata

i,j broja~i vo matricite

c[100][100]

matrica od realni broevi koja mo`e da ima najmnogu 100 redovi i 100 koloni

#include<stdio.h> int main() { float a[100][100],b[100][100],c[100][100]; int i,j,n,m; printf("Vnesete kolku redovi da ima prvata matrica="); scanf("%d",&m); printf("Vnesete kolku koloni da ima prvata matrica="); scanf("%d",&n); printf("Vnesete ja prvata matrica\n"); for(i=0;i<m;i++) for(j=0;j<n;j++) { printf("a[%d][%d]=",i,j); scanf("%f",&a[i][j]); } printf("Vnesete ja vtorata matrica.\n"); for(i=0;i<m;i++)

Page 162: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

162

for(j=0;j<n;j++) { printf("b[%d][%d]=",i,j); scanf("%f",&b[i][j]); } for(i=0;i<m;i++) for(j=0;j<n;j++) c[i][j]=a[i][j]+b[i][j]; printf("Rezultantnata matrica e:\n"); for(i=0;i<m;i++) { printf("\n"); for(j=0;j<n;j++) printf("c[%d][%d]=%.2f ",i,j,c[i][j]); } printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete kolku redovi da ima prvata matrica=3 Vnesete kolku koloni da ima prvata matrica=2 Vnesete ja prvata matrica. a[0][0]=12 a[0][1]=15 a[1][0]=60 a[1][1]=33 a[2][0]=48 a[2][1]=-10 Vnesete ja vtorata matrica. b[0][0]=22 b[0][1]=-15 b[1][0]=49 b[1][1]=64 b[2][0]=-28 b[2][1]=30 Programata pe~ati: Rezultantnata matrica e:

Page 163: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

163

c[0][0]=34.00 c[0][1]=0.00 c[1][0]=109.00 c[1][1]=97. c[2][0]=20.00 c[2][1]=20.00

Page 164: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

164

2. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta zbirot na elementite od glavnata i sporednata dijagonala na edna matrica. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100][100]

matrica od realni broevi koja mo`e da ima najmnogu 100 redovi i 100 koloni

n broj na redovi i koloni vo matricata

i,j broja~i vo matricata

s suma (zbir)

#include<stdio.h> int main() { int i,j,n; float a[100][100],s=0; printf("Vnesete borj na redovi=koloni="); scanf("%d",&n); for(i=0;i<n;i++) for(j=0;j<n;j++) { printf("a[%d][%d]=",i,j); scanf("%f",&a[i][j]); } for(i=0;i<n;i++) for(j=0;j<n;j++) { if(i==j) s+=a[i][j]; if(i+j==n-1) s+=a[i][j]; } printf("Zbirot na elementite na glavnata i sporednata dojagonala =%2.f\n",s); return 0; }

Page 165: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

165

_______________________________________________________ Test primer: VLEZ: Vnesete broj na redovi=koloni=3 a[0][0]=15 a[0][1]=-10 a[0][2]=20 a[1][0]=-33 a[1][1]=48 a[1][2]=28 a[2][0]=-18 a[2][1]=60 a[2][2]=-50 Programata pe~ati: Zbirot na elementite na glavnata i sporednata dijagonala =63.00

Page 166: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

166

3. Da se napi{e programa vo programskiot jazik C so koja }e se promenat mestata na najmaliot i najgolemiot element vo edna matrica. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100][100]

matrica od realni broevi koja mo`e da ima najmnogu 100 redovi i 100 koloni

n broj na redovi vo matricata

m broj na koloni vo matricata

i,j broja~i vo matricite

min element so najmala vrednost

max element so najgolema vrednost

pom pomo{na promenliva koja se upotrebuva pri smena

iMax redot vo koj se nao|aelementot so najgolema vrednost

jMax kolona vo koja se nao|a elementot so najgolema vrednost

iMin redot vo koj se nao|a elementot so najmala vrednost

jMin kolona vo koja se nao|a elementot so najmala vrednost

#include<stdio.h> int main() { float a[100][100]; int i,j,n,m,iMax,jMax,iMin,jMin; float min,max,pom; printf("Vnesete kolku redovi da ima matricata=");

Page 167: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

167

scanf("%d",&n); printf("Vnesete kolku koloni da ima matricata="); scanf("%d",&m); printf("Vnesete ja matricata.\n"); for(i=0;i<n;i++) for(j=0;j<m;j++) { printf("a[%d][%d]=",i,j); scanf("%f",&a[i][j]); } min=a[0][0]; iMin=0; jMin=0; max=a[0][0]; iMax=0; jMax=0; for(i=0;i<n;i++) for(j=0;j<m;j++) { if(a[i][j]>max) { max=a[i][j]; iMax=i; jMax=j; } if(a[i][j]<min) { min=a[i][j]; iMin=i; jMin=j; } } pom=a[iMax][jMax]; a[iMax][jMax]=a[iMin][jMin]; a[iMin][jMin]=pom; for(i=0;i<n;i++) for(j=0;j<m;j++) printf("a[%d][%d]=%.2f\n",i,j,a[i][j]); return 0; }

Page 168: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

168

_______________________________________________________ Test primer: VLEZ: Vnesete kolku redovi da ima matricata=3 Vnesete kolku koloni da ima matricata=3 Vnesete ja matricata. a[0][0]=12 a[0][1]=22 a[0][2]=15 a[1][0]=-33 a[1][1]=102 a[1][2]=99 a[2][0]=87 a[2][1]=62 a[2][2]=-50 Programata pe~ati: a[0][0]=12.00 a[0][1]=22.00 a[0][2]=15.00 a[1][0]=-33.00 a[1][1]=-50.00 a[1][2]=99.00 a[2][0]=87.00 a[2][1]=62.00 a[2][2]=102.00

Page 169: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

169

4 Da se napi{e programa vo programskiot jazik C so koja }e se pomno`at dve matrici vneseni od tastatura. Mno`ewe na dve matrici se vr{i so pomo{ na formulata:

∑=

⋅=n

k

jkbkiajic1

]][[]][[]][[

Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100][100] b[100][100]

matrici od realni broevi koi mo`e da imaat najmnogu 100 redovi i 100 koloni

n broj na redovi vo prvata matrica

m broj na koloni vo vtorata matrica

p broj na koloni vo vtorata matrica

i,j,k broja~i vo matricite

c[100][100]

matrica od realni broevi koja mo`e da ima najmnogu 100 redovi i 100 koloni

#include<stdio.h> int main() { float a[100][100],b[100][100],c[100][100]; int i,j,n,m,k,p; printf("Vnesete kolku redovi da ima prvata matrica="); scanf("%d",&n); printf("Vnesete kolku koloni da ima prvata matrica(==so redovi na vtorata matrica)="); scanf("%d",&m); printf("Vnesete kolku koloni da ima vtorata matrica="); scanf("%d",&p); printf("Vnesete ja prvata matricata.\n"); for(i=0;i<n;i++) for(j=0;j<m;j++) { printf("a[%d][%d]=",i,j); scanf("%f",&a[i][j]);

Page 170: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

170

} printf("Vnesete ja vtorata matricata.\n"); for(i=0;i<m;i++) for(j=0;j<p;j++) { printf("b[%d][%d]=",i,j); scanf("%f",&b[i][j]); } for(i=0;i<n;i++) for(j=0;j<p;j++) { c[i][j]=0; for(k=0;k<m;k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; } printf("Rezultantnata matrica e:\n"); for(i=0;i<n;i++) { printf("\n"); for(j=0;j<p;j++) printf("c[%d][%d]=%.2f ",i,j,c[i][j]); } printf("\n"); return 0; }

Page 171: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

171

_______________________________________________________ Test primer: VLEZ: Vnesete kolku redovi da ima prvata matrica=3 Vnesete kolku koloni da ima prvata matrica(==so redovi na vtorata matrica)=2 Vnesete kolku koloni da ima vtorata matrica=2 Vnesete ja prvata matricata. a[0][0]=5 a[0][1]=6 a[1][0]=10 a[1][1]=-5 a[2][0]=9 a[2][1]=12 Vnesete ja vtorata matricata. b[0][0]=15 b[0][1]=-10 b[1][0]=1 b[1][1]=5 Programata pe~ati: Rezultantnata matrica e: c[0][0]=81.00 c[0][1]=-20.00 c[1][0]=145.00 c[1][1]=-125.00 c[2][0]=147.00 c[2][1]=-30.00

Page 172: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

172

5. Da se napi{e programa vo programskiot jazik C so koja }e se

proveri dali matricata CBAX +⋅= e dolno triagolna.

Matricite A, B i C se kvadratni matrici od red n. ( Site elementi nad glavnata dijagonala na dolnotriagolna matrica se ednakvi na nula). Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[25][25] b[25][25] c[25][25]

matrici od celi broevi koi mo`e da imaat najmnogu po 25 redovi i 25 koloni

n broj na redovi i koloni vo matricata

i,j,k broja~i vo matricata

dtr

prima vrednost 1 ako matricata e dolnotriagolna i 0 ako matricata ne e dolnotriagolna

x[25][25]

matrica od celi broevi koja mo`e da ima najmnogu po 25 redovi i 25 koloni

#include<stdio.h> int main() { int a[25][25],b[25][25],c[25][25],x[25][25]; int i,n,j,k,dtr=1; do { printf("Vnesete ja dimenzijata na matricite (n<25)\t"); scanf("%d",&n); } while ((n<0) && (n>25)); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { printf("a[%d][%d]=",i,j); scanf("%d",&a[i][j]);

Page 173: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

173

} } printf("\n\n"); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { printf("b[%d][%d]=",i,j); scanf("%d",&b[i][j]); } } printf("\n\n"); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { printf("c[%d][%d]=",i,j); scanf("%d",&c[i][j]); } } for (i=1;i<=n;i++) { x[i][j]=0; for (j=1;j<=n;j++) { for (k=1;k<=n;k++) x[i][j]+=a[i][k]*b[k][j]; } } printf("\n\n"); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) x[i][j]+=c[i][j]; } for (i=1;i<=n;i++) { for (j=i+1;j<=n;j++) { if (a[i][j]!=0) { dtr=0;

Page 174: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

174

break; } } } printf("\n\nMatricata:\n"); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { printf("%d ",x[i][j]); } printf("\n"); } if (dtr) printf("\n\n e dolnotriagolna.\n\n"); else printf("\n\n ne e dolnotriagolna.\n\n"); system("pause"); return 0; }

_______________________________________________________ Test primer VLEZ: Vnesete ja dimenzijata na matricite (n<25) 3 a[1][1]=1 a[1][2]=3 a[1][3]=0 a[2][1]=5 a[2][2]=-2 a[2][3]=4 a[3][1]=7 a[3][2]=6 a[3][3]=-3 b[1][1]=5 b[1][2]=-4 b[1][3]=3 b[2][1]=1

Page 175: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

175

b[2][2]=0 b[2][3]=7 b[3][1]=6 b[3][2]=4 b[3][3]=3 c[1][1]=-5 c[1][2]=4 c[1][3]=1 c[2][1]=2 c[2][2]=-3 c[2][3]=7 c[3][1]=8 c[3][2]=-6 c[3][3]= Matricata: 3 0 25 49 -7 20 31 -46 63 ne e dolnotriagolna.

Page 176: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

176

6. Dadena e kvadratnata matrica [ ]mxnijaA = . Da se napi{e

programa vo programskiot jazik C so koja }e se presmeta

vrednosta na funkcijata: ∏ ∏∏= ==

+=

n

i

n

jji

n

jij aaf

1 11

.

Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[25][25]

matrica od celi broevi koja mo`e da ima najmnogu 25 redovi i 25 koloni

n broj na redovi i koloni vo matricata

i,j broja~i vo matricata

proizvod1 proizvod na elementite po redovi

proizvod 2 proizvod na elementite po koloni

proizvod vrednost na funkcija-ta f

#include<stdio.h> int main() { int a[25][25],proizvod=1,proizvod1,proizvod2,i,n,j; do { printf("Vnesete ja dimenzijata na matricata (n<25)\t"); scanf("%d",&n); } while ((n<0) && (n>25)); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { printf("a[%d][%d]=",i,j); scanf("%d",&a[i][j]); }

Page 177: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

177

} for (i=1;i<=n;i++) { proizvod1=1; proizvod2=1; for (j=1;j<=n;j++) { proizvod1*=a[i][j]; proizvod2*=a[j][i]; } proizvod*=(proizvod1+proizvod2); } printf("\n\n"); printf("\n\nVrednosta na funkcijata iznesuva %d.\n\n", proizvod); system("pause"); return 0; }

_______________________________________________________ Test primer VLEZ: Vnesete ja dimenzijata na matricata (n<25) 3 a[1]][1]=6 a[1][2]=5 a[1][3]=9 a[2][1]=-4 a[2][2]=3 a[2][3]=-1 a[3][1]=-7 a[3][2]=5 a[3][3]=-2 Vrednosta na funkcijata iznesuva 3353328

Page 178: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

178

7. Kvadratna matrica so ist broj redici i koloni se narekuva simetri~na ako A ij=Aji za sekoe ji ≠ . Da se napi{e programa vo

programskiot jazik C so koja }e se proveri dali matricata Anxn e simetri~na. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[25][25]

matrica od celi broevi koja mo`e da ima najmnogu 25 redovi i 25 koloni

n broj na redovi i koloni vo matricata

i,j broja~i vo matricata

simetricna

prima vrednost 1 ako matricata e simetr~na i 0 ako ne e

#include<stdio.h> int main() { int a[25][25],simetricna=1,i,n,j; do { printf("Vnesete ja dimenzijata na matricata (n<25)\t"); scanf("%d",&n); } while ((n<0) && (n>25)); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { printf("a[%d][%d]=",i,j); scanf("%d",&a[i][j]); } } for (i=1;i<=n;i++) {

Page 179: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

179

for (j=1;j<i;j++) { if (a[i][j]!=a[j][i]) { simetricna=0; break; } } } printf("\n\nMatricata:\n\n"); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { printf("%d ",a[i][j]); } printf("\n"); } if (simetricna) printf("\n\n e simetricna.\n\n"); else printf("\n\n ne e simetricna.\n\n"); system("pause"); return 0; }

Page 180: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

180

_______________________________________________________ Test primer VLEZ: Vnesete ja dimenzijata na matricata (n<25) 4 a[1][1]=1 a[1][2]=5 a[1][3]=8 a[1][4]=6 a[2][1]=5 a[2][2]=3 a[2][3]=0 a[2][4]=4 a[3][1]=8 a[3][2]=0 a[3][3]=7 a[3][4]=10 a[4][1]=6 a[4][2]=4 a[4][3]=10 a[4][4]=9 Matricata: 1 5 8 6 5 3 0 4 8 0 7 10 6 4 10 9 e simetri~na.

Page 181: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

181

8. Da se napi{e programa vo programskiot jazik C so koja elementite na matricata Amxn ogledalno se preslikuvaat vo odnos na horizontalata. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[25][25]

matrica od celi broevi koja mo`e da ima najmnogu 25 redovi i 25 koloni

n broj na redovi i koloni vo matricata

i,j broja~i vo matricata

pom

pomo{na promen-liva vo koja se pomnat elementite od matricata

#include<stdio.h> int main() { int a[25][25],i,n,j,pom; do { printf("Vnesete ja dimenzijata na matricata (n<25)\t"); scanf("%d",&n); } while ((n<0) && (n>25)); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { printf("a[%d][%d]=",i,j); scanf("%d",&a[i][j]); } } printf("\n\n Matrica:\n"); for (i=1;i<=n;i++) { for (j=1;j<=n;j++)

Page 182: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

182

printf("%d ",a[i][j]); printf("\n"); } printf("\n\n"); for (i=1;i<=n/2;i++) { for (j=1;j<=n;j++) { pom=a[i][j]; a[i][j]=a[n-i+1][j]; a[n-i+1][j]=pom; } } printf("\n\nogledalno preslikana vo odnos na horizontalata iznesuva:\n\n"); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) printf("%d ",a[i][j]); printf("\n"); } printf("\n\n"); system("pause"); return 0; }

Page 183: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

183

_______________________________________________________ Test primer VLEZ: Vnesete ja dimenzijata na matricata (n<25) 3 a[1][1]=5 a[1][2]=6 a[1][3]=3 a[2][1]=3 a[2][2]=1 a[2][3]=0 a[3][1]=7 a[3][2]=9 a[3][3]=10 Matricata: 5 6 3 3 1 0 7 9 10 ogledalno preslikana vo odnos na horizontalata iznesuva 7 9 10 3 1 0 5 6 3

Page 184: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

184

9. Da se napi{e programa vo programskiot jazik C so koja elementite od dadena matrica }e se pomestat na sledniot na~in:

876

543

219

987

654

321

Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[10][10]

matrica od celi broevi koja mo`e da ima najmnogu 10 redovi i 10 koloni

b[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na redovi i koloni na matricata

i,j broja~i

brojac broja~ vo nizata

pom

pomo{na promenliva vo koja se pomnat el;ementite od nizata

#include<stdio.h> int main() { int i,j,n,pom,a[10][10],b[100],brojac=0; do { printf("Vnesete ja dimenzijata na matricata (n<10);\t"); scanf("%d",&n); } while ((n<0) || (n>10)); printf("\n\n"); for (i=1;i<=n;i++) {

Page 185: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

185

for (j=1;j<=n;j++) { printf("a[%d][%d]=",i,j); scanf("%d",&a[i][j]); } } for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { brojac++; b[brojac]=a[i][j]; } } printf("\n\nOrginalnata matrica \n"); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) printf("%d ",a[i][j]); printf("\n"); } printf("\n\n\n"); pom=b[brojac]; for (i=brojac;i>=2;i--) b[i]=b[i-1]; b[1]=pom; brojac=0; for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { brojac++; a[i][j]=b[brojac]; } } printf("\n\ja dobiva slednata forma:\n"); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) printf("%d ",a[i][j]); printf("\n");

Page 186: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

186

} printf("\n\n\n"); system("pause"); return 0; }

_______________________________________________________ Test primer VLEZ: Vnesete ja dimenzijata na matricata (n<25) 3 a[1][1]=72 a[1][2]=53 a[1][3]=69 a[2][1]=94 a[2][2]=13 a[2][3]=7 a[3][1]=67 a[3][2]=23 a[3][3]=45 Orginalnata matrica: 72 53 69 94 13 7 67 23 45 ja dobiva slednata forma 45 72 53 69 94 13 7 67 23

Page 187: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

187

10. Dadena e kvadratna matrica A. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta zbirot na elementite od, nad i pod glavnata dijagonala kako i od, pod i nad sporednata dijagonala. Re{enie:

Vlezni promenlivi Izlezni promenlivi

sgl zbir na elementite od glavnata dijagonala a[25][25]

matrica od celi broevi koja mo`e da ima najmnogu 25 redovi in 25 koloni ssp

zbir na elementite od eporednata dijagonala

spg zbir na elementite pod glavnata dijagonala

n broj na redovi i koloni vo matricata

sng zbir na elementite nad glavnata dijagonala

sps zbir na elementite pod sporednata dijagonala

i,j broja~i vo matricata

sns zbir na elementite nad sporednata dijagonala

#include<stdio.h> int main() { int i,j,n,sgl=0,ssp=0,spg=0; int sng=0,sps=0,sns=0; int a[25][25]; do { printf("Vnesete go redot na matricata\t"); scanf("%d",&n); } while ((n<0) || (n>25)); printf("\n\n"); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) {

Page 188: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

188

printf("a[%d][%d]=",i,j); scanf("%d",&a[i][j]); } } for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { if (j==i) sgl+=a[i][j]; else if(j<i) spgl+=a[i][j]; else sng+=a[i][j]; } } for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { if (j==n-i+1) ssp+=a[i][j]; else if (j<n-i+1) sns+=a[i][j]; else sps+=a[i][j]; } } printf("\n\nZbirot na elementite od glavnata dijagonala iznesuva %d.",sgl); printf("\nZbirot na elementite pod glavnata dijagonala iznesuva %d.",spg); printf("\nZbirot na elementite nad glavnata dijagonala iznesuva %d.",sng); printf("\n\nZbirot na elementite od sporednata dijagonala iznesuva %d.",ssp); printf("\nZbirot na elementite nad sporednata dijagonala iznesuva %d.",sns); printf("\nZbirot na elementite pod sporednata dijagonala iznesuva %d.",sps); printf("\n\n\n"); system("pause");

Page 189: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

189

return 0; } _______________________________________________________ Test primer VLEZ: Vnesete go redot na matricata 3 a[1][1]=10 a[1][2]=12 a[1][3]=4 a[2][1]=6 a[2][2]=13 a[2][3]=7 a[3][1]=8 a[3][2]=9 a[3][3]=15 Zbirot na elementite od glavnata dijagonala iznesuva 38

Zbirot na elementite pod glavnata dijagonala iznesuva 23

Zbirot na elementite nad glavnata dijagonala iznesuva 23 Zbirot na elementite od sporednata dijagonala iznesuva 25 Zbirot na elementite pod sporednata dijagonala iznesuva 28 Zbirot na elementite nad sporednata dijagonala iznesuva 31

Page 190: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

190

11. Da se napi{e programa vo programskiot jazik C so koja }e se pronajde elementot so najgolema vrednost kako i negovata pozicija vo matricata ANxM. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[25][25]

matrica od celi broevi koja mo`e da ima najmnogu 25 redovi in 25 koloni

max element so najgolema vrednost

m broj na redovi vo matricata

pozr red vo koj se nao|a elementot so najgole-ma vrednost

n broj na koloni vo matricata

i,j broja~i pozk

kolona vo koja se nao|a elementot so najgolema vrednost

#include<stdio.h> int main() { int i,j,n,m,max,pozr,pozk,a[25][25]; do { printf("Vnesete go brojot na redovi na matricata (m<25):\t"); scanf("%d",&m); printf("Vnesete go brojot na koloni na matricata (n<25):\t"); scanf("%d",&n); } while ((n<0) || (m<0) || (n>25) || (m>25)); for (i=1;i<=m;i++) { for (j=1;j<=n;j++) { printf("a[%d][%d]=",i,j); scanf("%d",&a[i][j]); } } max=a[1][1]; pozr=1; pozk=1;

Page 191: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

191

for (i=1;i<=m;i++) { for (j=1;j<=n;j++) { if (max<=a[i][j]) { max=a[i][j]; pozr=i; pozk=j; } } } printf("\n\nMaksimalna vrednost vo matricata ima elementot a[%d][%d]=%d\n\n",pozr,pozk,max); system("pause"); return 0;

} _______________________________________________________ Test primer VLEZ: Vnesete go brojot na redovi na matricata (m<25) 4 Vnesete go brojot na koloni na matricata (n<25) 3 a[1][1]=1 a[1][2]=2 a[1][3]=8 a[2][1]=-5 a[2][2]=6 a[2][3]=7 a[3][1]=4 a[3][2]=-3 a[3][3]=12 a[4][1]=10 a[4][2]=7 a[4][3]=9 Maksimalna vrednost vo matricata ima elementot a[3][3]=12.

Page 192: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

192

12. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat najmalite elementi vo sekoja redica od matricata ANxM, a potoa od niv da se najde najgolemiot element. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[25][25]

matrica od celi broevi koja mo`e da ima najmnogu 25 redovi in 25 koloni

b[25]

niza od celi broevi koja mo`e da ima najmnogu 25 elementi

m broj na redovi vo matricata

max

element so najgolema vrednost od najmalite vrednosti po redovi

n broj na koloni vo matricata

i,j broja~i

min elementi so najmala vrednost po redovi

poz pozicija na brojot koj se ~uva vo max

#include<stdio.h> int main() { int i,j,n,m,min,poz,b[25],a[25][25],max; do { printf("Vnesete go brojot na redovi na matricata (m<25):\t"); scanf("%d",&m); printf("Vnesete go brojot na koloni na matricata (n<25):\t"); scanf("%d",&n); } while ((n<0) || (m<0) || (n>25) || (m>25)); for (i=1;i<=m;i++) { for (j=1;j<=n;j++) { printf("a[%d][%d]=",i,j);

Page 193: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

193

scanf("%d",&a[i][j]); } printf("\n"); } for (i=1;i<=m;i++) { min=a[i][1]; for (j=1;j<=n;j++) { if (min>=a[i][j]) min=a[i][j]; } b[i]=min; } max=b[1]; poz=1; for (i=2;i<=m;i++) { if (max<=b[i]) { max=b[i]; poz=i; } } printf("\n\nNajgolema vrednost od najmalite vrednosti po redovi vo matricata\n"); printf("ima elementot od %d-ta redica so vrednost %d\n\n",poz,max); system("pause"); return 0; }

Page 194: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

194

_______________________________________________________ Test primer VLEZ: Vnesete go brojot na redovi na matricata (m<25) 3 Vnesete go brojot na koloni na matricata (n<25) 2 a[1][1]=5 a[1][2]=6 a[2][1]=7 a[2][2]=1 a[3][1]=4 a[3][2]=3 Najgolema vrednost od najmalite vrednosti po redovi vo matricata ima elementot od 1-ta redica so vrednost 5.

Page 195: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

195

13. Da se napi{e programa vo programskiot jazik C so koja }e se pronajde transponiranata matrica na matricata ANxM. (Transponirana matrica se dobiva koga kaj matricata redovite }e si gi promenat mestata so kolonite). Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[25][25]

matrica od celi broevi koja mo`e da ima najmnogu 25 redovi in 25 koloni

m broj na redovi vo matricata

n broj na koloni vo matricata

i,j broja~i vo matricata

t[25][25]

matrica od celi broevi koja mo`e da ima najmnogu 25 redovi in 25 koloni

#include<stdio.h> int main() { int i,j,n,m,t[25][25],a[25][25]; do { printf("Vnesete go brojot na redovi na matricata (m<25):\t"); scanf("%d",&m); printf("Vnesete go brojot na koloni na matricata (n<25):\t"); scanf("%d",&n); } while ((n<0) || (m<0) || (n>25) || (m>25)); for (i=1;i<=m;i++) { for (j=1;j<=n;j++) { printf("a[%d][%d]=",i,j); scanf("%d",&a[i][j]); } printf("\n"); } for (j=1;j<=m;j++) {

Page 196: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

196

for (i=1;i<=n;i++) t[i][j]=a[j][i]; } printf("\n\nTransponiranata matrica na matricata:\n"); for (i=1;i<=m;i++) { for (j=1;j<=n;j++) printf("%d ",a[i][j]); printf("\n"); } printf("\n\n"); printf("\n\ne slednata:\n"); for (i=1;i<=n;i++) { for (j=1;j<=m;j++) printf("%d ",t[i][j]); printf("\n"); } printf("\n\n"); system("pause"); return 0; }

Page 197: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

197

_______________________________________________________ Test primer VLEZ: Vnesete go brojot na redovi na matricata (m<25) 4 Vnesete go brojot na koloni na matricata (n<25) 3 a[1][1]=-5 a[1][2]=4 a[1][3]=2 a[2][1]=0 a[2][2]=1 a[2][3]=6 a[3][1]=-7 a[3][2]=-8 a[3][3]=-3 a[4][1]=10 a[4][2]=8 a[4][3]=9 Transponiranata matrica na matricata: -5 4 2 0 1 6 -7 8 -3 10 8 9 e slednata -5 0 -7 10 4 1 8 8 2 6 -3 9

Page 198: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

198

5. Funkcii 1. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta sumata 11+22+33+...+nn kade {to n se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n kraj na intervalot

i broja~ vo interval s suma (zbir)

stepen(n,m) funkcija koja ja presmetuva vrednosta nm

#include<stdio.h> long int stepen(int n,int m) { if(m==0) return 1; if(m==1) return 1; else return(n*stepen(n,m-1)); } int main() { long int s=0; int i,n; printf("Vnesete n: "); scanf("%d",&n); for(i=1;i<=n;i++) s+=stepen(i,i); printf("Sumata e: %d \n",s); return 0; } _______________________________________________________ Test primer: Vnesete n: 5 Sumata e: 3413.

Page 199: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

199

2. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta sumata 1+(1+2)+(1+2+3)+...+(1+2+...+n) kade {to n se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n kraj na intervalot ps parcijalna suma

i broja~ vo interval s vkupna suma

stepen(n,m) funkcija koja ja presmetuva vrednosta nm

#include<stdio.h> int main() { int i,s=0,ps=0,n; printf("Vnesete n="); scanf("%d",&n); for(i=1;i<=n;i++) { ps=ps+i; s=s+ps; } printf("Sumata e = %d\n",s); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete n: 10 Sumata e: 220.

Page 200: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

200

3. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat Armstrongovite broevi vo zadaden interval. (Armstrongovi broevi se broevi za koi va`i:

nnnn

n

kcbakabc L43421 L +++= ).

Re{enie:

Vlezni promenlivi Izlezni promenlivi

poc po~etok na interval

kraj kraj na interval br brojot na cifrite

pom pomo{na promenliva

i broja~ vo interval

a cifri na sekoj broj od intervalot

s

zbirot na site cifri stepenuvani na broj koj e ednakov so brojot na cifrite

stepen(n,m) funkcija koja ja presmetuva vrednosta nm

brcif(n) funkcija koja go opredeluva brojot na cifrite na brojot n

#include<stdio.h> long int stepen(int n,int m) { if(m==0) return 1; if(m==1) return 1; else return(n*stepen(n,m-1)); } int brcif(int n) { int br=0,pom; pom=n; while(pom>0) { br++; pom/=10; }

Page 201: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

201

return br; } int main() { int poc,kraj,i,br,s=0,a,pom; printf("Vnesete pocetok i kraj na intervalot: "); scanf("%d %d",&poc,&kraj); for(i=poc;i<=kraj;i++) { s=0; br=brcif(i); pom=i; while(pom>0) { a=pom%10; s+=stepen(a,br); pom/=10; } if(s==i) printf("Takov e brojot %d \n",i); } return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot: 100 1000 Programata pe~ati: Takov e brojot 153 Takov e brojot 370 Takov e brojot 371 Takov e brojot 407

Page 202: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

202

4. Da se napi{e programa vo programskiot jazik C so koja }e se pretvori binaren broj vo dekaden broj. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a binarniot broj

dek(n) funkcija so koja se vr{i pretvoruvawe na daden binaren broj n vo dekaden broj

#include<stdio.h> int dek(long int n) { int pom,dek=0,x=1,a; pom=n; while(pom>0) { a=pom%10; dek=dek+a*x; x*=2; pom/=10; } return dek; } int main() { long int a; printf("Vnesete eden broj vo binaren broen sistem: "); scanf("%ld",&a); printf("Brojot vo dekaden broen sistem e: %ld.\n",dek(a)); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete eden broj vo binaren broen sistem: 1010 Programata pe~ati: Brojot 1010 vo dekaden broen sistem e: 10.

Page 203: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

203

5. Da se napi{e programa vo programskiot jazik C so koja ke se izbrojat elementite vo niza koi imaat paren broj na cifri. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100],b[100]

nizi od celi broevi koi mo`e da imaat najmnogu 100 elementi

n brojot na elementite vo nizata

x elementot {to treba da se izbri{e od nizata

i broja~ vo nizata

br broj na elementi so paren broj na cifri

cifri (n) funkcija so koja se opredeluva brojot na cifrite na brojot n.

#include<stdio.h> int cifri(int n) { int br=0; while(n>0) { br++; n/=10; } return br; } int main() { int i,n,a[100],br=0; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata:\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]);

Page 204: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

204

} for(i=0;i<n;i++) { if(cifri(a[i])%2==0) br++; } printf("Broevite so paren broj na cifri se %d.\n",br); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata: a[0]=102 a[1]=458 a[2]=44 a[3]=6890 a[4]=12 a[5]=5 Programata pe~ati: Broevite so paren broj na cifri se 3.

Page 205: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

205

6. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta brojot na cifrite i zbirot na cifrite od daden broj. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n proizvolen broj

broj(n) funkcija koja go dava brojot na cifrite na daden broj n

zbir(n) Funkcija koja go presmetuva zbirot od cifrite na daden broj n

#include<stdio.h> int broj(int n) { int pom,br=0; pom=n; while(pom>0) { br++; pom/=10; } return br; } int zbir(int n) { int pom,a,s=0; pom=n; while(pom>0) { a=pom%10; s+=a; pom/=10; } return s; } int main() { int n; printf("Vnesete broj: "); scanf("%d",&n);

Page 206: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

206

printf("Brojot na cifrite na brojot %d e %d, a nivniot zbir e %d\n",n,broj(n),zbir(n)); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete broj: 584 Programata pe~ati: Brojot na cifrite na brojot 584 e 3, a nivniot zbir e 17

Page 207: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

207

7. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta kolku kombinacii so i bez povtoruvawe ima za daden broj na cifri i dadena klasa. Brojot na cifrite i klasata se vnesuvaat od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n broj na elementi k klasa

fakt(n) funkcija {to presemetuva faktoriel od broj n #include<stdio.h> long int fakt(int n) { if(n==1) return n; else return(n*fakt(n-1)); } int main() { int n,k; printf("Od kolku elementi i od koja klasa: "); scanf("%d %d",&n,&k); printf("Brojot na kombinaciite bez povtoruvanje e %d, so povtoruvanje e %d\n",fakt(n)/(fakt(k)*fakt(n-k)),fakt(k+n-1)/(fakt(k)*fakt(n-1))); return 0; } _______________________________________________________ Test primer: VLEZ: Od kolku elementi i od koja klasa: 5 2 Programata pe~ati: Brojot na kombinaciite bez povtoruvawe e 10, so povtoruvawe e 15

Page 208: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

208

8. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta kolku varijacii so i bez povtoruvawe ima za daden broj na cifri i dadena klasa. Brojot na cifrite i klasata se vnesuvaat od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n broj na elementi

k klasa

fakt(n) funkcija {to presemetuva faktoriel od broj n stepen(n,m) funkcija {to ja presmetuva vrednosta nm

#include<stdio.h> long int stepen(int n,int m) { if(m==0) return 1; if(n==1) return 1; else return(n*stepen(n,m-1)); } long int fakt(int n) { if(n==1) return n; else return(n*fakt(n-1)); } int main() { int n,k; printf("Vnesete broj na elementi i klasa: "); scanf("%d %d",&n,&k); printf("Varijacii so povtoruvanje na broj se %d, a bez povtoruvanje %d \n" ,stepen(n,k),fakt(n)/fakt(n-k)); return 0; }

Page 209: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

209

_______________________________________________________ Test primer: VLEZ: Vnesete broj na elementi i klasa: 5 3 Programata pe~ati: Varijacii so povtoruvawe na broj se 125, a bez povtoruvawe 60

Page 210: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

210

9. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta faktoriel na daden broj. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a proizvolen pozitiven broj

faktoriel(n) funkcija koja presmetuva faktoriel od daden broj n

#include<stdio.h> long int faktoriel(int n) { if(n==1) return n; else return(n*faktoriel(n-1)); } int main() { int a; printf("Vnesete broj: "); scanf("%d",&a); printf("Faktoriel od %d e: %ld\n",a,faktoriel(a)); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete broj: 5 Programata pe~ati: Faktoriel od 5 e: 120

Page 211: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

211

10. Da se napi{e funkcija vo programskiot jazik C so koja }e se vr{i broewe na cifrite na daden broj. Potoa da se iskoristi taa funkcija za da se izbrojat cifrite na broevite od dadena niza. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo intervalot

cifri(n) funkcija koja gi broi cifrite na daden broj n

#include<stdio.h> int cifri(int n) { int br=0; while(n>0) { br++; n/=10; } return br; } int main() { int a[100],n,i; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata:\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); }

Page 212: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

212

for(i=0;i<n;i++) printf("%d-tiot broj ima %d cifri.\n",i+1,cifri(a[i])); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 5 Vnesete ja nizata: a[0]=485 a[1]=56 a[2]=12 a[3]=5 a[4]=47 Programata pe~ati: 1-tiot broj ima 3 cifri. 2-tiot broj ima 2 cifri. 3-tiot broj ima 2 cifri. 4-tiot broj ima 1 cifri. 5-tiot broj ima 2 cifri.

Page 213: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

213

11. Da se napi{e programa vo programskiot jazik C so koja }e se skrati edna dropka taka {to broitelot i imenitelot }e stanat vzaemno prosti broevi. Re{enie:

Vlezni promenlivi Izlezni promenlivi

br broitel na dropkata

im imenitel na dropkata

c NZD od imenitelot i broitelot na dropkata

nzd(m,n) funkcija koja presmetuva NZD na dadeni broevi m i n

#include<stdio.h> #include<math.h> int nzd(int m,int n) { if (n==0) return m; else return(nzd(n,m%n)); } int main() { int br,im,c; printf("Vnesete broitel na dropkata: "); scanf("%d",&br); printf("Vneseti imenitel na dropkata: "); scanf("%d",&im); c=nzd(abs(br),abs(im)); br/=c; im/=c; printf("Dropkata skratena e %d/%d.\n",br,im); return 0; }

Page 214: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

214

_______________________________________________________ Test primer: VLEZ: Vnesete broitel na dropkata: 40 Vnesete imenitel na dropkata: 52 Programata pe~ati: Dropkata skratena e 10/13

Page 215: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

215

12. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta zbirot na dve dropki. Re{enie:

Vlezni promenlivi Izlezni promenlivi

br1 broitel na prvata dropka

im1 imenitel na prvata dropka

br2 broitel na vtorata dropka

br3 broitel na zbirot od dvete dropki

im2 imenitel na vtorata dropka

c NZD od imenitelot i broitelot na dropkata

im3 imenitel na zbirot od dvete dropki

nzd(m,n) funkcija koja presmetuva NZD na dadeni broevi m i n

#include<stdio.h> #include<math.h> int nzd(int m,int n) { if (n==0) return m; else return(nzd(n,m%n)); } int main() { int br1,im1,br2,im2,br3,im3,c; printf("Vnesete broitel i imenitel na prvata dropka:"); scanf("%d %d",&br1,&im1); printf("Vnesete broitel i imenitel na vtorata dropka:"); scanf("%d %d",&br2,&im2); if (im1==im2) { br3=br1+br2; im3=im1; }

Page 216: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

216

else { im3=im2*im1; br3=br1*im2+br2*im1; } c=nzd(abs(br3),abs(im3)); br3/=c; im3/=c; printf("Zbirot = %d/%d\n",br3,im3); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete broitel i imenitel na prvata dropka: 2 3 Vnesete broitel i imenitel na vtorata dropka: 3 4 Programata pe~ati: Zbirot = 17/12

Page 217: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

217

13. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta razlikata na dve dropki. Re{enie:

Vlezni promenlivi Izlezni promenlivi

br1 broitel na prvata dropka

im1 imenitel na prvata dropka

br2 broitel na vtorata dropka

br3 broitel na razlikata od dvete dropki

im2 imenitel na vtorata dropka

c NZD od imenitelot i broitelot na dropkata

im3 imenitel na razlikata od dvete dropki

nzd(m,n) funkcija koja presmetuva NZD na dadeni broevi m i n

#include<stdio.h> #include<math.h> int nzd(int m,int n) { if (n==0) return m; else return(nzd(n,m%n)); } int main() { int br1,im1,br2,im2,br3,im3,c; printf("Vnesete broitel i imenitel na prvata dropka:"); scanf("%d %d",&br1,&im1); printf("Vnesete broitel i imenitel na vtorata dropka:"); scanf("%d %d",&br2,&im2); if (im2==im1) { br3=br1-br2; im3=im1;

Page 218: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

218

} else { im3=im2*im1; br3=br1*im2-br2*im1; } c=nzd(abs(br3),abs(im3)); br3/=c; im3/=c; printf("Razlika = %d/%d\n",br3,im3); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete broitel i imenitel na prvata dropka: 2 3 Vnesete broitel i imenitel na vtorata dropka: 3 4 Programata pe~ati: Razlika = -1/12

Page 219: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

219

14. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta proizvodot na dve dropki. Re{enie:

Vlezni promenlivi Izlezni promenlivi

br1 broitel na prvata dropka

im1 imenitel na prvata dropka

br2 broitel na vtorata dropka

br3 broitel na proizvodot od dvete dropki

im2 imenitel na vtorata dropka

c NZD od imenitelot i broitelot na dropkata

im3 imenitel na proizvodot od dvete dropki

nzd(m,n) funkcija koja presmetuva NZD na dadeni broevi m i n

#include<stdio.h> #include<math.h> int nzd(int m,int n) { if (n==0) return m; else return(nzd(n,m%n)); } int main() { int br1,im1,br2,im2,br3,im3,c; printf("Vnesete broitel i imenitel na prvata dropka:"); scanf("%d %d",&br1,&im1); printf("Vnesete broitel i imenitel na vtorata dropka:"); scanf("%d %d",&br2,&im2); br3=br1*br2; im3=im2*im1; c=nzd(abs(br3),abs(im3)); br3/=c; im3/=c;

Page 220: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

220

printf("Proizvodot = %d/%d\n",br3,im3); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete broitel i imenitel na prvata dropka: 2 3 Vnesete broitel i imenitel na vtorata dropka: 5 8 Programata pe~ati: Proizvodot = 5/12

Page 221: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

221

15. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta koli~nikot na dve dropki. Re{enie:

Vlezni promenlivi Izlezni promenlivi

br1 broitel na prvata dropka

im1 imenitel na prvata dropka

br2 broitel na vtorata dropka

br3 broitel na koli~nikot od dvete dropki

im2 imenitel na vtorata dropka

c NZD od imenitelot i broitelot na dropkata

im3 imenitel na koli~nikot od dvete dropki

nzd(m,n) funkcija koja presmetuva NZD na dadeni broevi m i n

#include<stdio.h> #include<math.h> int nzd(int m,int n) { if (n==0) return m; else return(nzd(n,m%n)); } int main() { int br1,im1,br2,im2,br3,im3,c; printf("Vnesete broitel i imenitel na prvata dropka:"); scanf("%d %d",&br1,&im1); printf("Vnesete broitel i imenitel na vtorata dropka:"); scanf("%d %d",&br2,&im2); br3=br1*im2; im3=br2*im1; c=nzd(abs(br3),abs(im3)); br3/=c; im3/=c; printf("Kolicnikot = %d/%d\n",br3,im3);

Page 222: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

222

return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete broitel i imenitel na prvata dropka: 4 9 Vnesete broitel i imenitel na vtorata dropka: 20 3 Programata pe~ati: Koli~nikot = 1/15

Page 223: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

223

16. Da se napi{e programa vo programskiot jazik C so koja }e se izbroi kolku elementi od dadena niza imaat paren broj na cifri a kolku neparen broj na cifri. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

brp broj na elementi so paren broj na cifri

n broj na elementi vo nizata

i broja~ vo nizata brnp

broj na elementi so neparen broj na cifri

broj(n) funkcija koja go odreduva brojot na cifrite na daden broj n

#include<stdio.h> int broj(int n) { int pom,br=0; pom=n; while(pom>0) { br++; pom/=10; } return br; } int main() { int a[100],i,brp=0,brnp=0,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); }

Page 224: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

224

for(i=0;i<n;i++) if(broj(a[i])%2==0) brp++; else brnp++; printf("Vo nizata ima %d broevi so paren broj na cifri, a %d broevi so neparen broj na cifri.\n",brp,brnp); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=1551 a[1]=1968 a[2]=152 a[3]=128 a[4]=78 a[5]=8 Programata pe~ati: Vo nizata ima 3 broevi so paren broj na cifri, a 3 broevi so neparen broj na cifri.

Page 225: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

225

17. Da se napi{e funkcija vo programskiot jazik C so koja }e se presmeta najgolemiot od tri broja. Koristej}i ja taa funkcija da se najde najgolemiot od zadadenite tri broja. Re{enie:

Vlezni promenlivi Izlezni promenlivi

x,y,z proizvolni broevi

max(a,b,c) funkcija koja go pronao|a najgolemiot broj od tri proizvolni broevi a,b i c

#include<stdio.h> int max(int a,int b,int c) { if(a>=b && a>=c) return a; if(b>=a && b>=c) return b; if(c>=a && c>=a) return c; return 0; } int main() { int x,y,z; printf("Vnesete gi trite broja: "); scanf("%d %d %d",&x,&y,&z); printf("Najgolem e %d\n",max(x,y,z)); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete gi trite broja: 48 26 33 Programata pe~ati: Najgolem e 48

Page 226: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

226

18. Da se napi{e programa vo programskiot jazik C so koja }e se pretvori dekaden broj vo binaren broj. Potoa da se soberat dva binarni broja. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a,b proizvolni dekadni broevi

m,n binarni zapisi na dekadnite broevi a i b

ost1 cifra od binarniot broj m

ost2 cifra od binarniot broj n

ost cifra od rezultatot

poz te`inska pozicija na cifrite

rez zbir na dvata binarni broevi m i n

bin(n) funkcija koja vr{i pretvorawe na daden dekaden broj n vo binaren broj

#include<stdio.h> int bin(int n) { int pom,poz,a,bin; pom=n; bin=0; poz=1; while(pom>0) { a=pom%2; bin+=a*poz; poz*=10; pom/=2; } return bin; } int main()

Page 227: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

227

{ int a,b,m,n,ost,ost1,ost2,poz=1,rez; printf("Vnesete dva broja:"); scanf("%d %d",&a,&b); m=bin(a); n=bin(b); printf("Vo binaren broen sistem se: %d i %d.\n",m,n); rez=0; ost=0; while(m!=0 || n!=0) { ost1=m%10; ost2=n%10; rez=((ost1+ost2+ost)%2)*poz+rez; ost=(ost1+ost2+ost)/2; poz*=10; m/=10; n/=10; } if (ost==1) rez=rez+ost*poz; printf("Rezultatot=%d.\n",rez); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete dva broja: 20 15 Vo binaren broen sistem se: 10100 i 1111. Programata pe~ati: Rezultatot=100011

Page 228: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

228

19. Da se napi{e programa vo programskiot jazik C koja na parnite pozicii na edna niza }e gi zapi{e obratnite broevi na elementite, a na neparnite pozicii }e gi zapi{e kvadratite na elementite. Nizata se vnesuva od tastatura. (Nultiot element se smenuva so obratniot). Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100] niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

obr(n) funkcija koja go presmetuva obratniot broj na brojot n

#include<stdio.h> int obr(int n) { int pom,m=0,a; pom=n; while(pom>0) { a=pom%10; m=m*10+a; pom/=10; } return m; } int main() { int a[100],i,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) {

Page 229: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

229

printf("a[%d]=",i); scanf("%d",&a[i]); } a[0]=obr(a[0]); for(i=1;i<n;i++) { if(i%2==0) a[i]=obr(a[i]); else a[i]=a[i]*a[i]; } printf("Novodobienata niza e:\n"); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); return 0; } ______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=15 a[1]=64 a[2]=492 a[3]=23 a[4]=18 a[5]=5 Programata pe~ati: Novodobienata niza e: 51 4096 294 529 81 25

Page 230: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

230

20. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta NZD na elementite od dadena niza. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

pom NZD na elementite vo nizata

nzd(m,n) funkcija koja presmetuva NZD na dva proizvolni broevi m i n

#include<stdio.h> int nzd(int m,int n) { if (n==0) return m; else return(nzd(n,m%n)); } int main() { int a[100],n,i,pom; printf("Od kolku broevi da se bara NZD:"); scanf("%d",&n); printf("Vnesete gi broevite:\n"); for(i=0;i<n;i++) scanf("%d",&a[i]); pom=nzd(a[0],a[1]); for(i=1;i<n;i++) pom=nzd(pom,a[i]); printf("NZD=%d \n",pom); return 0; }

Page 231: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

231

_______________________________________________________ Test primer: VLEZ: Od kolku broevi da se bara NZD: 5 Vnesete gi broevite: 40 25 60 15 35 Programata pe~ati: NZD=5

Page 232: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

232

21. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta NZS na elementite od dadena niza. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

nzs NZS na elementite vo nizata

nzs(m,n) funkcija koja presmetuva NZS na dva proizvolni broevi m i n

vnesete (a[],n)

funkcija so koja se vnesuvaat elementi vo edna niza a[n] koja ima n elementi

#include<stdio.h> int NZS(int m,int n) { int pom,j; pom=1; j=2; do { while(m%j==0 || n%j==0) { if(m%j==0) m/=j; if(n%j==0) n/=j; pom*=j; } j++; } while(m!=1 || n!=1); return pom; }

Page 233: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

233

void Vnesete(int a[],int n) { int i; for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } } int main() { int a[100],i,n,nzs; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); Vnesete(a,n); nzs=NZS(a[0],a[1]); for(i=2;i<n;i++) nzs=NZS(nzs,a[i]); printf("NZS za broevite od nizata e %d\n",nzs); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=20 a[1]=4 a[2]=5 a[3]=2 a[4]=40 a[5]=8 Programata pe~ati: NZS za broevite od nizata e 40

Page 234: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

234

22. Da se napi{e programa vo programskiot jazik C so koja }e se proveri dali obratniot broj na zadaden broj (vo daden interval) mu e delitel. Re{enie:

Vlezni promenlivi Izlezni promenlivi

poc po~etok na intervalot

kraj kraj na intervalot

i broja~ vo intervalot

obr(n) funkcija koja go opredeluva obratniot broj na daden broj n

#include<stdio.h> int obr(int n) { int a,pom,m=0; pom=n; while (pom>0) { a=pom%10; m=m*10+a; pom/=10; } return m; } int main() { int i,poc,kraj; printf("Vnesete pocetok i kraj na intervalot: "); scanf("%d %d",&poc,&kraj); for(i=poc;i<=kraj;i++) if(i%obr(i)==0) printf("%d / %d = %d\n",i,obr(i),i/obr(i)); return 0; }

Page 235: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

235

_______________________________________________________ Test primer: VLEZ: Vnesete po~etok i kraj na intervalot: 10 45 Programata pe~ati: 10 / 1 = 10 11 / 11 = 1 20 / 2 = 10 22 / 22 = 1 30 / 3 = 10 33 / 33 = 1 40 / 4 = 10 44 / 44 = 1

Page 236: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

236

23. Da se napi{e funkcija vo programskiot jazik C so koja }e se proveri dali daden broj e prost. Potoa da se najdat site prosti broevi od 2 do n. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n kraj na intervalot za proveruvawe

i broja~ vo intervalot

prost(n) funkcija koja proveruva dali eden daden broj n e prost broj

#include<stdio.h> int prost(int n) { int j,pr; pr=1; j=2; while(pr && j<=(n/2)) { if(n%j==0) pr=0; j++; } return pr; } int main() { int n,i; printf("Vnesete n="); scanf("%d",&n); for(i=2;i<n;i++) if(prost(i)) printf("%d\n",i); return 0; }

Page 237: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

237

_______________________________________________________ Test primer: VLEZ: Vnesete n=20 Programata pe~ati: 2 3 5 7 11 13 17 19

Page 238: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

238

24. Da se napi{e funkcija vo programskiot jazik C so koja }e se presmetuva stepen nk. Potoa da se presmeta stepenot nk kade {to n i k se vnesuvaat od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a proizvolen broj

b eksponent

stepen (n,m)

funkcija {to presmetuva nm

#include<stdio.h> long int stepen(int n,int m) { if(m==0) return 1; if(n==1) return 1; else return(n*stepen(n,m-1)); } int main() { int a,b; printf("Vnesete broj i eksponent: "); scanf("%d %d",&a,&b); printf("%d na stepen %d = %ld\n",a,b,stepen(a,b)); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete broj i eksponent: 2 8 Programata pe~ati: 2 na stepen 8 = 256

Page 239: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

239

25. Da se napi{e programa vo programskiot jazik C so koja }e se stepenuva dadenata niza na k-ti stepen. Nizata i vrednosta na k se vnesuvaat od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

m eksponent

stepen (n,m)

funkcija {to presmetuva nm

#include<stdio.h> long int stepen(int n,int m) { if(m==0) return 1; if(n==1) return 1; else return(n*stepen(n,m-1)); } int main() { int i,n,m; long int a[100]; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Na koj stepen da se stepenuvaat: ");

Page 240: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

240

scanf("%d",&m); printf("Stepenuvanata niza e: "); for(i=0;i<n;i++) { a[i]=stepen(a[i],m); printf("%d ",a[i]); } printf("\n"); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=8 a[1]=10 a[2]=15 a[3]=16 a[4]=5 a[5]=20 Na koj stepen da se stepenuvaat: 3 Programata pe~ati: Stepenuvanata niza e: 512 1000 3375 4096 125 8000

Page 241: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

241

26. Da se napi{e programa vo programskiot jazik C so koja }e se

presmeta sumata: 12322110 −− ⋅++⋅+⋅+⋅ nn aaaaaaaa L

Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

s suma(zbir)

#include<stdio.h> int main() { int a[100],i,s=0,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=0;i<n-1;i++) s+=a[i]*a[i+1]; printf("Sumata e: %d\n",s); return 0; } _______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=15 a[1]=29 a[2]=-5 a[3]=89 a[4]=-1 a[5]=3 Programata pe~ati: Sumata e: -247

Page 242: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

242

27. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta aritmeti~kata sredina na parnite i neparnite elementi od edna niza. Nizata se vnesuva od tastatura. (Aritmeti~kata sredina se presmetuva spored formulata:

n

aaa n+++ L21 ).

Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

ar1 aritmeti~ka sredina na parnite elementi

brp broj na parni elementi vo nizata

brn broj na neparni elementi vo nizata

sp suma na parnite elementi

snp suma na neparnite elementi vo nizata

ar2 aritmeti~ka sredina na neparnite elementi

#include<stdio.h> int main() { float ar1,ar2; int i,n,a[100],brp=0,brnp=0,sp=0,snp=0; printf("Vnesete n="); scanf("%d",&n); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=0;i<n;i++) { if(a[i]%2==0) {

Page 243: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

243

brp++; sp+=a[i]; } else { brnp++; snp+=a[i]; } } ar1=float(sp)/float(brp); ar2=float(snp)/float(brnp); printf("Aritmetictkata sredina na parnite elementi e %.1f, a na neparnite %.1f.\n",ar1,ar2); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete n=5 a[0]=120 a[1]=54 a[2]=89 a[3]=77 a[4]=23 Programata pe~ati: Aritmeti~kata sredina na parnite elementi e 87.0, a na neparnite 63.0.

Page 244: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

244

28. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta sumata x1+x2+...+xn. Vrednosta na x i n se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

x broj koj pretstavuva osnova vo sumata

n kraj na intervalot

i broja~ vo intervalot

s suma (zbir)

stepen (n,m)

funkcija {to presmetuva nm

#include<stdio.h> long int stepen(int n,int m) { if(m==0) return 1; if(n==1) return 1; else return(n*stepen(n,m-1)); } int main() { int i,x,n,s=0; printf("Vnesete broj: "); scanf("%d",&x); printf("Vnesete n: "); scanf("%d",&n); for(i=1;i<=n;i++) s+=stepen(x,i); printf("Sumata e: %d\n",s); return 0; }

Page 245: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

245

_______________________________________________________ Test primer: VLEZ: Vnesete broj: 3 Vnesete n: 4 Programata pe~ati: Sumata e: 120

Page 246: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

246

29. Da se napi{e programa vo programskiot jazik C so koja }e se presmeta vrednosta na funkcijata cos(x) spored formulata

....!6!4!2

1cos642

+−+−= xxxx so upotreba na prvite n ~lenovi.

Re{enie:

Vlezni promenlivi Izlezni promenlivi

pi konstantata π

alfa agol vo stepeni

alfarad agol vo radijani

i broja~

n kraj na interval

br vrednost na koja se stepenuva vrednosta (-1)

pom pomo{na promenliva vo koja se pomni agolot

cosinus vrednosta cos(alfa)

faktoriel (x)

funkcija {to presemtuva faktoriel na daden broj x

#include<stdio.h> #include<math.h> float faktoriel(int x); int main() { float cosinus=1,alfa,alfarad,pi=3.141592,pom; int i,n,br=0; do { printf("Vnesete ja vrednosta na agolot alfa vo stepeni\t"); scanf("%f",&alfa); } while (alfa>180); pom=alfa; if (alfa>=90) alfa=180-alfa; alfarad=alfa*pi/180;

Page 247: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

247

printf("\n\nVnesete do koj clen da se presmetuva\t"); scanf("%d",&n); for (i=2;i<=n;i+=2) { br++; cosinus+=pow(-1,br)*pow(alfarad,i)/faktoriel(i); } if (pom>=90) printf("\n\ncos%3.0f=%8.7f",pom,-1*cosinus); else printf("\n\ncos%3.0f=%8.7f",pom,cosinus); printf("\n\n\n"); system("pause"); return 0; } float faktoriel(int x) { float izlez=1; int j; for (j=1;j<=x;j++) izlez*=j; return izlez;

} _______________________________________________________ Test primer: VLEZ: Vnesete ja vrednosta na agolot alfa vo stepeni 45 Vnesete do koj ~len da se presmetuva 6 cos 45=0.701034

Page 248: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

248

30. Da se napi{e programa vo programskiot jazik C so koja }e se

presmeta sumata .....!4

1

!3

1

!2

11 ++++=nS se dodeka e ispolnet

uslovot ε<− −1nn SS .(Vrednosta na ε se vnesuva preku

tastatura). Re{enie:

Vlezni promenlivi Izlezni promenlivi

granica vrednost za to~nost do koja }e se proveruva

i broja~ vo intervalot

prethodna prethodna vrednost na suma

suma suma (zbir)

faktoriel (x)

funkcija {to presmetuva faktoriel na daden broj x

#include<stdio.h> float faktoriel(int x); int main() { float prethodna=0,suma=1,granica; int i=1; printf("Vnesete ja granicata za presmetuvanje na sumata:\t"); scanf("%f",&granica); while((suma-prethodna)>granica) { i++; prethodna=suma; suma+=1/faktoriel(i); } printf("\n\nVrednosta na sumata iznesuva %7.6f.\n\n",suma); system("pause"); return 0; } float faktoriel(int x) { float izlez=1; int j; for (j=1;j<=x;j++) izlez*=j; return izlez;

}

Page 249: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

249

_______________________________________________________ Test primer:

VLEZ: Vnesete ja granicata za presmetuvawe na sumata: 0.0001 Vrednosta na sumata iznesuva 1.718279

Page 250: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

250

31. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat site prirodni broevi pomali od prirodniot broj n ~ii cifri se podredeni vo raste~ki redosled. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n kraj na intervalot

i broja~ vo intervalot

rezultat

prima vrednost 1 dokolku daden broj go zadovoluva uslovot i 0 dokolku daden broj ne go zadovoluva uslovot

cif(x) funkcija koja {to proveruva dali cifrite na daden broj x mu se vo raste~ki redosled

#include<stdio.h> int cif(int x); int main() { int n,i,rezultat; do { printf("Vnesete do koj broj da se proveruva\t"); scanf("%d",&n); } while (n<9); printf("\n\nBroevi kaj koi cifrite se vo rastecki redosled se broevite:\n"); for (i=10;i<=n;i++) { rezultat=cif(i); if (rezultat==1) printf ("%d ,",i); } printf("\n\n\n"); system("pause"); return 0; }

Page 251: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

251

int cif(int x) { int min,da=1,cifra; min=x%10; x/=10; while ((x!=0)&& da==1) { cifra=x%10; if (cifra >= min) da=0; else { min=cifra; x/=10; } } return da; }

_______________________________________________________ Test primer VLEZ: Vnesete do koj broj da se proveruva 100 Broevi kaj koi cifrite se vo raste~ki redosled se broevite: 12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 45, 46, 47, 48, 49, 56, 57, 58, 59, 67, 68, 69, 78, 79, 89

Page 252: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

252

32. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~atat site prosti broevi pomali od daden broj n kaj koi zbirot i proizvodot od negovite cifri e prost broj. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n kraj na intervalot

i broja~ vo intervalot

prost(x) funkcija koja proveruva dali daden broj x e prost broj

zbircifri(y) funkcija koja go presmetuva zbrot od cifrite na daden broj y

proizvodcifri (z)

funkcija koja go presmetuva proizvodot od cifrite na daden broj z

#include<stdio.h> int prost(int x); int zbircifri(int y); int proizvodcifri(int z); int main() { int i,n; do { printf("Vnesete do koj broj da se proveruva:\t"); scanf("%d",&n); } while (n<=0); printf("\n\nBroevi pomali od brojot %d koi go ispolnuvaat uslovot se: ",n); for (i=3;i<=n;i+=2) { if (prost(i) && prost(zbircifri(i)) && prost(proizvodcifri(i))) printf("%d, ",i); } printf("\n\n\n"); system("pause"); return 0; } int prost(int x)

Page 253: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

253

{ int DA=1,j; for (j=2;j<=x/2;j++) { if (x%j==0) { DA=0; break; } } return DA; } int zbircifri(int y) { int zbir=0; while (y>0) { zbir+=y%10; y/=10; } return zbir; } int proizvodcifri(int z) { int proizvod=1; while(z>0) { proizvod*=z%10; z/=10; } return proizvod; }

_______________________________________________________ Test primer

VLEZ: Vnesete do koj broj da se proveruva 1000 Broevi pomali od brojot 1000 koi go ispolnuvaat uslovot se: 3, 5, 7, 11, 101, 113, 131, 151, 311, 401, 409, 601, 809

Page 254: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

254

33. Da se sostavi programa vo programskiot jazik C so koja }e se

presmeta sumata ∑= +

n

ii in

i

1 !

! .

Re{enie:

Vlezni promenlivi Izlezni promenlivi

n broj na ~lenovi vo zbirot

i broja~

suma suma (zbir)

faktoriel (x)

funkcija {to presmetuva faktoriel na daden broj x

#include<stdio.h> #include<math.h> float faktoriel(float x); int main() { float n,i,suma=0; do { printf("Vneste kolku clenovi da ima sumata:\t"); scanf("%f",&n); } while (n<0); for (i=1;i<=n;i++) { suma+=faktoriel(i)/(pow(n,i)+faktoriel(i)); } printf("\n\nSumata iznesuva %8.7f.\n\n",suma); system("pause"); return 0; } float faktoriel(float x) { float izlez=1,j; for (j=1;j<=x;j++) { izlez*=j; } return izlez; }

Page 255: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

255

_______________________________________________________ Test primer VLEZ: Vnesete kolku ~lenovi da ima sumata 5 Sumata iznesuva 0.3605022

Page 256: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

256

34. Prirodniot broj n se sobira so svojot obraten broj, novodobieniot broj se sobira so svojot obraten itn. Da se napi{e programa vo programskiot jazik C koja }e odredi dali i po kolku sobirawa }e se dobie palindrom . (Palindrom e broj koj e ednakov i od dvete strani). Re{enie:

Vlezni promenlivi Izlezni promenlivi

n proizvolen broj m

broj koj se dobiva kako zbir na brojot n i negoviot obraten broj

kraj

dobiva vrednost 1 koga ne e ispolnet uslovot i 0 koga toj uslov e ispolnet

brojac broj na svrtuvawa

obraten (x)

funkcija koja go presmetuva obratniot broj na daden broj x

#include<stdio.h> int obraten(int x); int main() { int n,m,brojac=0,kraj=1; do { printf("Vneste eden pozitiven priroden broj:\t"); scanf("%d",&n); } while (n<0); m=n+obraten(n); brojac++; while (kraj) { if (m==obraten(m)) { kraj=0; printf("\n\nSe dobiva palindrom posle %d svrtuvanja, a toa e brojot %d.\n\n",brojac,m); } else {

Page 257: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

257

m+=obraten(m); brojac++; } if (brojac==10) { printf("\n\nNe se dobi pailndrom ni posle 10 svrtuvanja.\n\n"); kraj=0; } } system("pause"); return 0; } int obraten(int x) { int izlez=0; while (x>0) { izlez=10*izlez+x%10; x/=10; } return izlez; }

_______________________________________________________ Test primer VLEZ: Vnesete eden pozitiven priroden broj 263 Se dobiva palindrom posle 3 svrtuvawa, a toa e brojot 2662.

Page 258: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

258

35. Da se napi{e programa vo programskiot jazik C so koja }e se

presmeta binomniot koeficient ( )!!

!

knk

n

k

n

−⋅=

. Broevite n i k

se vnesuvaat preku tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n vrednost na grupata

k vrednost na klasata kf

vrednost na binomniot koeficient

faktoriel (x)

funkcija {to presmetuva faktoriel na daden broj x

#include<stdio.h> float faktoriel(float x); int main() { float n,k,kf; do { printf("Vneste ja vrednosta na grupata(n>0):\t"); scanf("%f",&n); printf("Vnesete ja klasata (k>0 i k<n)"); scanf("%f",&k); } while ((n<0) || (k<0) || (k>n)); kf=faktoriel(n)/(faktoriel(k)*faktoriel(n-k)); printf("\n\nBinomniot koeficient na grupata %4.2f i klasata %4.2f iznesuva %8.3f\n\n",n,k,kft); system("pause"); return 0; } float faktoriel(float x) { float izlez=1,i; for (i=1;i<=x;i++) izlez*=i; return izlez;

}

Page 259: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

259

_______________________________________________________ Test primer VLEZ: Vnesete ja vrednosta na grupata (n>0): 30 Vnesete ja klasata (k>0) i (k<n) 10 Binomniot koeficient na grupata 30 i klasata 10 iznesuva 30 045 018

Page 260: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

260

36. Da se napi{e programa vo programskiot jazik C so koja za daden priroden broj se presmetuva razlikata me|u najbliskiot pogolem od nego prost broj i toj broj. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n proizvolen broj

m broj koj e pogolem od n

k

prima vrednost 1 ako brojot m e prost broj i 0 ako ne e prost broj

razlika razlika pome|u broevite m ako e prost broj i n

prost(x) funkcija koja odreduva dali daden broj x e prost broj

#include<stdio.h> int prost(int x); int main() { int n,razlika,m,k; do { printf("Vnesete eden priroden broj:\t"); scanf("%d",&n); } while(n<0); m=n+1; k=prost(m); while (k!=1) { m++; razlika=m-n; k=prost(m); } printf("\n\nPrv prost broj pogolem od brojot %d e brojot %d i razlikata megu niv iznesuva %d.\n\n",n,m,razlika); system("pause"); return 0; } int prost(int x) {

Page 261: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

261

int DA=1,i; for (i=2;i<=x/2;i++) { if (x%i==0) { DA=0; break; } } return DA;

} _______________________________________________________ Test primer

Vnesete eden priroden broj 75 Prv prost broj pogolem od brojot 75 e brojot 79 i razlikata me|u niv iznesuva 4.

Page 262: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

262

37. Da se napi{e programa vo programskiot jazik C koja }e gi ispe~ati site prosti broevi pomali od daden broj n ~ij {to zbir na cifri e isto taka prost broj. Na krajot da se ispe~ati kolku vakvi broevi bile pronajdeni. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n kraj na interval

i broja~ vo interval

brojac broj na broevi koi go ispolnuvaat zadadeniot uslov

prost(x) funkcija koja proveruva dali daden broj x e prost broj

zbircifri(y) funkcija koja go presmetuva zbirot od cifrite na daden broj y

#include<stdio.h> int prost(int x); int zbircifri(int y); int main() { int i,brojac=0,n; printf("Vnesete do koj broj da se proveruva:\t); scanf("%d",&n) printf("Broevi koi se pomali od brojot %d i koi go ispolnuvaat postaveniot uslov se broevite: ",n); for (i=3;i<n;i+=2) { if (prost(i) && prost(zbircifri(i))) { printf("%d, ",i); brojac++; } } printf("\n\nVkupno se %d takvi broevi.\n\n",brojac); system("pause"); return 0; } int prost(int x) { int DA=1,i; for (i=2;i<=x/2;i++)

Page 263: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

263

{ if (x%i==0) { DA=0; break; } } return DA; } int zbircifri(int y) { int izlez=0; while (y>0) { izlez+=y%10; y/=10; } return izlez; }

_______________________________________________________ Test primer

VLEZ: Vnesete do koj broj da se proveruva: 100 Broevi koi se pomali od brojot 100 i koi go ispolnuvaat postaveniot uslov se broevite: 3, 5, 7, 11, 23, 29, 41, 43, 47, 61, 67, 83, 89 Vkupno se 13 takvi broevi

Page 264: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

264

6. Poka`uva~i 1. Da se napi{e programa vo programskiot jazik C so koja }e se ispe~ati obratniot zbor na daden zbor. Re{enie:

Vlezni promenlivi Izlezni promenlivi

zbor[20] copy[20]

nizi od karakteri koi mo`e da imaat najmnogu 20 karakteri

a element od nizata

i broja~ vo nizata

obr(*c) funkcija so koja se dobiva obraten zbor

#include<stdio.h> #include<string.h> void obr(char *c) { int i,n; n=strlen(c); char pom; for(i=0;i<n/2;i++) { pom=c[i]; c[i]=c[n-i-1]; c[n-i-1]=pom; } } int main() { int a,i=0; char zbor[20],copy[20]; printf("Vnesete go zborot: "); while(i<20 && (a=getchar())!='\n') zbor[i++]=a;

Page 265: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

265

zbor[i]=0; strcpy(copy,zbor); obr(copy); printf("Obratniot zbor e %s\n",copy); return 0; } _______________________________________________________ Test primer: VLEZ: Vnesete go zborot: Telefon Programata pe~ati: Obratniot zbor e nofeleT

Page 266: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

266

2. Da se napi{e programa vo programskiot jazik C so koja }e se pronajdat najgolemite tri broja od n koi ne se vo niza. Re{enie:

Vlezni promenlivi Izlezni promenlivi

n broj na elementi

i broja~

max1, max2, max3,

x

proizvolni broevi

sort(*a,*b,*c) funkcija koja vr{i sortirawe na tri proizvolni broevi a,b i c

#include<stdio.h> void sort(int *a,int *b,int *c) { int pom; if(*a>*b) { pom=*a; *a=*b; *b=pom; if(*a>*c) { pom=*a; *a=*c; *c=pom; } if(*b>*c) { pom=*b; *b=*c; *c=pom; } } else

Page 267: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

267

if(*b>*c) { pom=*b; *b=*c; *c=pom; } if(*a>*b) { pom=*a; *a=*b; *b=pom; } } int main() { int i,n,max1,max2,max3,x; printf("Vnesete n="); scanf("%d",&n); printf("Vnesete tri broja:"); scanf("%d %d %d",&max1,&max2,&max3); sort(&max1,&max2,&max3); for(i=4;i<=n;i++) { sort(&max1,&max2,&max3); printf("Vnesete go %d-tiot broj: ",i); scanf("%d",&x); if(x>=max1) max1=x; } sort(&max1,&max2,&max3); printf("Trite najgolemi broevi se: %d %d i %d.\n",max1,max2,max3); return 0; }

Page 268: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

268

_______________________________________________________ Test primer: VLEZ: Vnesete n=6 Vnesete tri broja: 50 49 102 Vnesete go 4-tiot broj: 56 Vnesete go 5-tiot broj: 70 Vnesete go 6-tiot broj: 15 Programata pe~ati: Trite najgolemi broevi se: 56 70 i 102.

Page 269: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

269

3. Da se napi{at funkcii vo programskiot jazik C so koi }e se vr{i vnesuvawe, pe~atewe i podreduvawe na dadena niza. Potoa da se podredi nizata vo raste~ki redosled. Nizata se vnesuva od tastatura. Re{enie:

Vlezni promenlivi Izlezni promenlivi

a[100]

niza od celi broevi koja mo`e da ima najmnogu 100 elementi

n broj na elementi vo nizata

i broja~ vo nizata

vnesete (a[],n)

funkcija so koja se vr{i vnesuvawe na edna niza od n elementi

pecati (a[],n)

Funkcija so koja se pe~ati edna niza od n elementi

smeni (*m,*n)

funkcija so koja se vr{i promena na mestata na elementite od nizata

simplesort(a[],n)

funkcija so koja se sortira niza

#include<stdio.h> void Vnesete(int a[],int n) { int i; for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } } void pecati(int a[],int n) { int i; for(i=0;i<n;i++)

Page 270: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

270

printf("%d ",a[i]); printf("\n"); } void smeni(int *m,int *n) { int pom; pom=*m; *m=*n; *n=pom; } void SimpleSort(int a[],int n) { int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) { if(a[i]>a[j]) smeni(&a[i],&a[j]); pecati(a,n); } } int main() { int a[100],i,n; printf("Kolku elementi da ima nizata? "); scanf("%d",&n); printf("Vnesete ja nizata.\n"); for(i=0;i<n;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } printf("Podreduvanjeto na nizata e:\n"); SimpleSort(a,n); return 0; }

Page 271: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

271

_______________________________________________________ Test primer: VLEZ: Kolku elementi da ima nizata? 6 Vnesete ja nizata. a[0]=15 a[1]=-4 a[2]=64 a[3]=-20 a[4]=12 a[5]=33 Programata pe~ati: Podreduvaweto na nizata e: -4 15 64 -20 12 33 -4 15 64 -20 12 33 -20 15 64 -4 12 33 -20 15 64 -4 12 33 -20 15 64 -4 12 33 -20 15 64 -4 12 33 -20 -4 64 15 12 33 -20 -4 64 15 12 33 -20 -4 64 15 12 33 -20 -4 15 64 12 33 -20 -4 12 64 15 33 -20 -4 12 64 15 33 -20 -4 12 15 64 33 -20 -4 12 15 64 33 -20 -4 12 15 33 64

Page 272: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

272

4. Da se napi{e funkcija vo programskiot jazik C so koja }e se izvr{i smena na dve vrednosti. Potoa da se podredat tri broja po golemina so koristewe na taa funkcija. Re{enie:

Vlezni promenlivi Izlezni promenlivi

x,y,z proizvolni broevi

smeni (*a,*b)

funkcija so koja se vr{i promena na mestata na broevite a i b

#include<stdio.h> void smeni(int *a,int *b) { int pom; pom=*a; *a=*b; *b=pom; } int main() { int x,y,z; printf("Vnesete gi trite broja: "); scanf("%d %d %d",&x,&y,&z); if(x>y) { smeni(&x,&y); if(x>z) smeni(&x,&z); if(y>z) smeni(&y,&z); } else { if(y>z) smeni(&y,&z); if(x>y) smeni(&x,&y); } printf("Broevite podredeni (so smena) se: %d %d %d.\n",x,y,z); return 0; }

Page 273: Programski jazik C 1. Broevi - matematika.mkmatematika.mk/wp-content/uploads/Zbirka-C-1.pdf · Test primer: VLEZ: Vnesete po~etok i kraj na intervalot:10 20 Programata pe~ati: Brojot

Programski jazik C PISI

273

_______________________________________________________ Test primer: VLEZ: Vnesete gi trite broja: 15 -10 25 Programata pe~ati: Broevite podredeni (so smena) se: -10 15 25.