zbirkac prvi deo

23
Mira Nikolić Zbirka rešenih zadataka iz programskog jezika C 1. DEO Sadržaj: PROGRAMI SA LINIJSKOM STRUKTUROM PROGRAMI SA GRAFIKOM USLOVNE NAREDBE CIKLUSI NIZOVI

Upload: ogija

Post on 27-Nov-2014

86 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: ZbirkaC prvi deo

Mira Nikolić

Zbirka rešenih zadataka

iz programskog

jezika C

1. DEO

Sadržaj:

PROGRAMI SA LINIJSKOM STRUKTUROM

PROGRAMI SA GRAFIKOM

USLOVNE NAREDBE CIKLUSI NIZOVI

Page 2: ZbirkaC prvi deo

Mira Nikolić PROGRAMI SA LINIJSKOM STRUKTUROM 1. Program za izračunavanje obima i povrsine pravougaonika ako su date

stranice #include<math.h> #include<conio.h> void main (void) { float a,b,O,P; clrscr(); printf("\nProgram racuna obim i povrsinu pravougaonika\n"); printf("a="); scanf("%f",&a); printf("b="); scanf("%f",&b); O=2*(a+b); P=a*b; printf("Obim je \tO=%.2f\n",O); printf("Povrsina je \tP=%.2f\n",P); }

2. Program za izračunavanje obima i povrsine pravouglog trougla ako su date

katete #include <stdio.h> #include <math.h> #include <conio.h> void main(void) {

double a,b,c,o,p ; clrscr(); printf("Program racuna hipotenuzu, obim i povrsinu trougla \n"); printf("Unesite duzune kateta pravouglog trougla\n\t"); printf("a="); scanf("%lf",&a); printf("\tb="); scanf("%lf",&b);

c=sqrt(a*a+b*b); o=a+b+c; p=a*b/2; printf("\nRezultati rada programa su: \n"); printf("Hipotenuza je \tc=%.2f\n",c); printf("obim je \to=%.2f\n",o); printf("Povrsina je \tp=%.2f\n",p);

} 3. Program za izračunavanje obima i površine trougla po Heronovom obrascu #include <stdio.h> #include <math.h> #include <conio.h> void main (void) {

float a,b,c,s,o,p; textbackground(28); textcolor(15); clrscr(); printf("\n\n\tProgram racuna obim i povrsinu trougla \n"); printf("\tpomocu Heronovog obrasca \n"); printf("\n\nUnesite duzine stranica trougla \n\t"); printf("a="); scanf("%f",&a); printf("\tb="); scanf("%f",&b); printf("\tc="); scanf("%f",&c); s=(a+b+c)/2; p=sqrt(s*(s-a)*(s-b)*(s-c)); o=2*s; printf("\n\n\nRezultati rada programa su: \n"); printf("Obim je \to=%.2f\n",o); printf("Povrsina je \tp=%.2f\n",p);

} 2

Page 3: ZbirkaC prvi deo

Zbirka rešenih zadataka iz C jezika – prvi deo

4. Program za izračunavanje zbira cifara trocifrenog broja abc

#include <stdio.h> #include <conio.h> void main(void) /* Ovaj program racuna koliki je zbir cifara broja abc */ { int a,b,c,n; clrscr(); printf("\n\tOvaj program racuna koliki je zbir cifara broja abc \n"); printf("\nabc= "); scanf("%d",&n); a= n / 100; b= n / 10 % 10; c= n % 10; printf("\n\tZa broj %d zbir cifara %d +%d +%d = %d",n,a,b,c,a+b+c); getch(); }

5. Program za izračunavanje neto i bruto dohotka

#include <stdio.h> #include <conio.h> void main(void) { int sati, cena, procenat; float bruto, neto; clrscr(); printf("\n\nUnesite broj radnih sati: "); scanf("%d",& sati); printf("\nUnesite cenu u dinarima po satu: "); scanf("%d",& cena); printf("\nUnesite procenat doprinosa koji se odbija: "); scanf("%d",& procenat); bruto=cena*sati; neto=bruto-bruto*procenat/100; printf("\nBruto dodatak je %10.2f dinara\n",bruto); printf("Neto dodatak je %10.2f dinara\n", neto); }

6. Program za izračunavanje otpornosti bakarnog provodnika ako se znaju dužina i prečnik.

#include <stdio.h> #include <conio.h> void main (void) {

# define ROcu 1.588e-8 # define PI 3.14 double R,L,d,S; textbackground(9); textcolor(15); clrscr(); printf("\n Duzina provodnika u [mm] je:\n\tl="); scanf("%lf",&L); printf("\n Precnik provodnika u [mm] je:\n\td="); scanf("%lf",&d); S=(d/1000)*(d/1000)*PI/4; R=ROcu*L/S; printf("\n\n Otpornost provodnika je %.5f [oma]",R);

}

7. Program za izračunavanje kapacitivnosti pločastog kondenzatora ako se

zna površina i rastojanje između obloga. #include <stdio.h> #include <math.h> #include <conio.h> void main (void) {

# define E0 8.854e-12 double c,d,s; int epsr; textbackground(9); textcolor(15); clrscr();

3

Page 4: ZbirkaC prvi deo

Mira Nikolić printf("\n Povrsina kondenzatora u [mm2] je:"); printf("\n\tS="); scanf("%lf",&s); printf("\n Rastojanje obloga kondenzatora u [mm] je:"); printf("\n\td="); scanf("%lf",&d); printf(" Relativna dielektricna konstanta je: "); scanf("%d",&epsr); c=epsr*E0*s/(d*1000); printf("\n\n Kapacitet kondenzatora je:"); /* Ovo je vrlo mala velicina */ /* pa se mora pisati eksponencijalno */ /* inace ce izgledati da je nula! */ printf("\n\tC=%e",c);

} 8. Program za pretvaranje otpornosti vezanih u zvezdu u otpore vezane u

trougao #include<stdio.h> #include<conio.h> #include<math.h> void main(void) {

int i; float Ra,Rb,Rc,Rab,Rbc,Rac; textbackground(12); textcolor(10); clrscr(); printf("\n\t OVAJ PROGRAM PRETVARA ELEMENTE ZVEZDE U ELEMENTE TROUGLA\n"); printf("\n\t UNESITE ELEMENTE ZVEZDE:\n\n\t Ra="); scanf("%f",&Ra); printf("\t Rb="); scanf("%f",&Rb); printf("\t Rc="); scanf("%f",&Rc);

Rab=Ra+Rb+Ra*Rb/Rc; Rac=Ra+Rc+Ra*Rc/Rb; Rbc=Rb+Rc+Rb*Rc/Ra; printf("\n\t ELEMENTI TROUGLA SU:\n\n"); printf("Ra\tRb\tRc\tRab\tRac\tRbc\n"); printf("%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",Ra,Rb,Rc,Rab,Rac,Rbc);

} 9. Program za pretvaranje R vezanih u trougao u otpore vezane u zvezdu

#include<stdio.h> #include<conio.h> void main(void) {

float Ra,Rb,Rc,Rab,Rbc,Rac; textbackground(9); textcolor(10); clrscr(); printf("Ovaj program pretvara elemente trougla u elemente zvezde"); printf("\n\t unesite otpornosti trougla u omima \n\n\t Rab="); scanf("%f",&Rab); printf("\t Rbc="); scanf("%f",&Rbc); printf("\t Rac="); scanf("%f",&Rac); Ra=Rac*Rab/(Rac+Rbc+Rab); Rc=Rac*Rbc/(Rac+Rbc+Rab); Rb=Rbc*Rab/(Rac+Rbc+Rab); printf("\n\n\n\n"); printf("Ra=\t%.2f\n\n", Ra); printf("Rb=\t%.2f\n\n",Rb); printf("Rc=\t%.2f\n\n",Rc); printf("Sve otpornosti su u Omima");

}

4

Page 5: ZbirkaC prvi deo

Zbirka rešenih zadataka iz C jezika – prvi deo Linijski programi sa grafikom

10. Program program koji na ekranu crta žutu tačku sa koordinatama (100, 100).

#include <conio.h> #include <graphics.h> void main() { int drv=VGA, mode=VGAHI; initgraph(&drv, &mode, "\\borlandc\\bgi"); putpixel(100,100,YELLOW); getch(); closegraph(); } 11. Program koji na ekranu crta liniju tačka-crta-tačka u zelenoj boji koja polazi

iz tačke A(40,50), a završava se u tački B(300, 400). #include <stdio.h> #include <conio.h> #include <graphics.h> void main() { int drv=VGA, mode=VGAHI; initgraph(&drv, &mode, "\\borlandc\\bgi"); setcolor(GREEN); setlinestyle(CENTER_LINE, 1, 1); line(40,50,300,400); getch(); closegraph(); }

12. Program koji na ekranu crta pravougaonik u plavoj boji čije je jedno teme u tački A(100,50), a drugo u tački B(600,400).

#include <stdio.h> #include <conio.h> #include <graphics.h> void main() { int drv=VGA, mode=VGAHI; initgraph(&drv, &mode, "\\borlandc\\bgi"); setcolor(BLUE); rectangle(100, 50, 600, 400); getch(); closegraph(); } 13. Program koji na ekranu crta pravougaonik sa crvenim tačkastim stranicama

popunjen svetloplavim romboidima sa temenima u tačkama A(150,150) i B(300, 300).

#include <conio.h> #include <graphics.h> void main() { int drv=VGA, mode=VGAHI; initgraph(&drv, &mode, "\\borlandc\\bgi"); setcolor(RED); setlinestyle(DOTTED_LINE,1,1); rectangle(150,150,300,300); setfillstyle(XHATCH_FILL, LIGHTBLUE); bar(151, 151, 299, 299); getch(); closegraph(); }

5

Page 6: ZbirkaC prvi deo

Mira Nikolić USLOVNE NAREDBE 14. Program za izračunavanje apsolutne vrednosti celog broja #include<stdio.h> void main() { int a; printf("Ukucajte ceo broj "); scanf("%d",&a); printf("Apsolutna vrednost broja %d je ", a); if(a<0) a=-a; printf(" %d", a); } 15. Program za izračunavanje izraza u kojem su minimum i maksimum učitanih

brojeva

),min(1),max(yx

yxz−

=

#include<math.h> #include<conio.h> void main (void) { float x,y,z; clrscr(); printf("\nProgram racuna z za ucitano x i y brojeva\n"); printf("x="); scanf("%f",&x); printf("y="); scanf("%f",&y); if (x>y) z=(x+1)/y; else if(y>x) z=(y+1)/x; printf("\nDobijeno z je: z=%.2f\n", z); }

16. Program za odredjivanje da li je karakter malo ili veliko slovo, cifra ili specijalni karakter - if else iskaz

#include<stdio.h> void main() { char c; printf("Ukucajte karakter?"); scanf("%c",&c); if(c>='a'&&c<='z') printf("Karakter %c je malo slovo\n",c); else if(c>='A'&&c<='Z') printf("Karakter %c je veliko slovo\n",c); else if(c>='0'&&c<='9') printf("Karakter %c je cifra\n",c); else printf("Karakter %c je specijalni karakter\n",c); } 17. Program koji proverava da li je ucitani broj abc Armstrongov

#include <stdio.h> #include <conio.h> void main(void) { int a,b,c,n; clrscr(); printf("\n\tOvaj program proverava da li je ucitani broj Armstrongov \n"); printf("n= "); scanf("%d",&n); a= n / 100; b= n / 10 % 10; c= n % 10; if (n==a*a*a+b*b*b+c*c*c) printf("\t %d = %d^3+%d^3+%d^3 jeste Armstrongov broj",n,a,b,c); else printf("\t nije Armstrongov broj"); getch(); }

6

Page 7: ZbirkaC prvi deo

Zbirka rešenih zadataka iz C jezika – prvi deo 18. Napiši program koji računa minimalni i maksimalni od dva učitana broja a i b

korišćenjem kraćeg zapisa naredbe if

#include <stdio.h> #include <conio.h> void main (void) { int a,b,min,max; clrscr(); printf("\n Ucitajte broj a="); scanf("%d",&a); printf("\n Ucitajte broj b="); scanf("%d",&b); (a>b)?(min=b,max=a):(min=a,max=b); printf("\n\n max=%d\tmin=%d",max,min); } 19. Program koji računa koliki je maksimalni od tri učitana broja a,b,c #include <stdio.h> #include <conio.h> void main(void) { int a,b,c,max; clrscr(); printf("\n\tOvaj program racuna max(a,b,c) "); printf("\na= "); scanf("%d",&a); printf("\nb= "); scanf("%d",&b); printf("\nc= "); scanf("%d",&c); max=a; if (b>max) max=b; if (c>max) max=c; printf("\n\tNajveci je broj %d ",max); getch(); }

20. Program koji računa koliki je zbir cifara broja abc umanjen za max(a,b,c) #include <stdio.h> #include <conio.h> void main(void) { int a,b,c,n,max; clrscr(); printf("\n\tOvaj program racuna koliki je zbir cifara broja abc \n"); printf(" \tumanjen za max(a,b,c) "); printf("\nabc= "); scanf("%d",&n); a= n / 100; b= n / 10 % 10; c= n % 10; max=a; if (b>max) max=b; if (c>max) max=c; printf("\n\tZa broj %d zbir cifara %d+%d+%d -max= %d",n,a,b,c,a+b+c-max); }

21. Napiši program koji ispisuje uspeh za učitanu ocenu korišćenjem naredbe switch-case

#include <stdio.h> #include <conio.h> void main (void) { int ocena; clrscr(); printf("\n Ucitajte ocenu "); scanf("%d",&ocena); switch (ocena) { case 5: printf("odlican");break; case 4: printf("vrlo dobar");break; case 3: printf("dobar");break; case 2: printf("dovoljan");break; default: printf("nekorektna ocena"); /*svi ostali slucajevi*/ } }

7

Page 8: ZbirkaC prvi deo

Mira Nikolić 22. Napiši program koji računa da li se dati krug može upisati u kvadrat i

obrnuto. Učitavaju se površine kvadrata i kruga. #include<math.h> #include<conio.h> #include<stdio.h> void main (void) { #define PI 3.14 float a,r,Pkv,Pkr; clrscr(); printf("\nProgram racuna da li se kvadrat moze upisati u krug i obrnuto\n"); printf("Povrsina kvadrata je Pkv="); scanf("%f",&Pkv); printf("Povrsina kruga je Pkr="); scanf("%f",&Pkr); a=sqrt(Pkv); r=sqrt(Pkr/PI); if (a*sqrt(2)<=2*r) printf("\nKvadrat stranice %.2f moze da se upise u krug precnika %.2f",

a,2*r); else printf("\nKvadrat stranice %.2f ne moze da se upise u krug precnika %.2f",

a,2*r); if (2*r<=a) printf("\nKrug precnika %.2f moze da se upise u kvadrat stranice %.2f",

2*r,a); else printf("\nKrug precnika %.2f ne moze da se upise u kvadrat stranice %.2f",

2*r,a); getch(); }

23. Napiši program koji računa vrednost f(x) za ucitano x. -2 x<-2

f(x)= x -2<x<2 10-2x x>2

#include <stdio.h> #include <math.h> #include <conio.h> void main(void) { double x,y; clrscr(); printf("Ovaj program racuna vrednost f(x) za ucitano x\n\n"); printf("\t -2 \t\t x<-2\n"); printf("f(x) \t x \t\t -2<x<2 \n"); printf("\t 10-2x \t x>2\n\n"); printf("Unesite vrednost promenljive x="); scanf("%lf",&x); if (x<-2) y=-2; else if (x<2) y=x; else if (x<4) y=2; else y=10-2*x; printf("\n\nVrednost funkcije je \ty=f(%.2lf)=%.2lf\n",x,y); }

8

Page 9: ZbirkaC prvi deo

Zbirka rešenih zadataka iz C jezika – prvi deo

24. Napiši program koji rešava kvadratnu jednačinu za ucitano a,b,c. #include<stdio.h> #include<conio.h> #include<math.h> void main(void) { float a,b,c,x1,x2,d; textbackground (0); textcolor (15); clrscr (); printf("\n\nOvaj program resava kvadratnu jednacinu"); printf("\n\tax^2+bx+c=0\n"); printf("a="); scanf("%f",&a); printf("b="); scanf("%f",&b); printf("c="); scanf("%f",&c); d=b*b-4*a*c; if(d>0) { x1=(-b-sqrt(d))/(2*a); x2=(-b+sqrt(d))/(2*a); printf("n\Kvadratna jednacina ima realna i razlicitaresenja:\n"); printf("n\x1=%f i x2=%f :\n",x1,x2); } else if(d==0) { x1=b/(2*a); printf("\nResenja su realna i jednaka:"); printf("\nx1=x2=%.2f",x1); } else { x1=-b/(2*a); x2=sqrt(-d)/(2*a); printf("\nResenja su konjugovano kompleksna:"); printf("\nx1=%.2f+i%.2f",x1,x2); printf("\nx2=%.2f-i%.2f",x1,x2); } }

CIKLUSI 25. Program za izračunavanje 1+2+3+...+n #include <stdio.h> #include <conio.h> void main(void) { int S,i,n; clrscr(); printf("\nOvaj program sabira 1+2+3+...+n\n"); printf("\tn="); scanf("%d",&n); for(i=1,S=0;i<=n;i++) S+=i; printf("\n\t%d",S); getch(); } 26. Program za izračunavanje m+(m+1)+(m+2)+...+n #include <stdio.h> #include <conio.h> void main(void) { int S,i,m,n; clrscr(); printf("\nOvaj program sabira m+(m+1)+(m+2)+...+n\n"); printf("\tm="); scanf("%d",&m); printf("\tn="); scanf("%d",&n); for(i=m,S=0;i<=n;i++) S+=i; printf("\n\t%d",S); getch(); }

9

Page 10: ZbirkaC prvi deo

Mira Nikolić 27. Program za izračunavanje faktorijela

#include <stdio.h> void main(void) { int i,n; long fak=1; printf("Ovaj program racuna n! za ucitano n\n"); printf("Ucitajte n, n<23 "); scanf("%d",&n); for(i=1;i<=n;i++) fak*=i; printf("%d!=%ld\n",n,fak); }

28. Program za izračunavanje m*(m+1)*(m+2)+...*n

#include <stdio.h> #include <conio.h> void main(void) { int i,m,n; long P; clrscr(); printf("\nOvaj program mnozi m*(m+1)*(m+2)+...*n\n"); printf("\tm="); scanf("%d",&m); printf("\tn="); scanf("%d",&n); for(i=m,P=1;i<=n;i++) P*=i; printf("\n\t%ld",P); getch(); }

29. Program za izračunavanje 1-1/2+3-1/4...+n #include <stdio.h> #include <conio.h> void main(void) { int i,n; float S; clrscr(); printf("\nOvaj program sabira 1-1/2+3-1/4...+n\n"); printf("\tn="); scanf("%d",&n); for(i=1,S=0;i<=n;i++) if(i%2==0) S+=i; else S-=1.0/i; /*ili (float)1/...*/ printf("\n\t%.2f",S); getch(); } 30. Program za odredjivanje srednje vrednosti n celih pozitivnih brojeva-while

iskaz #include<stdio.h> void main() { int n, i=1; float suma=0, x; printf("Ukupno brojeva n=\n"); scanf("%d",&n); while(i<=n) { printf("Ukucajte %d. broj ", i); scanf("%f",&x); suma+=x; i++; } printf("Srednja vrednost ovih brojeva je %f\n",suma/n); }

10

Page 11: ZbirkaC prvi deo

Zbirka rešenih zadataka iz C jezika – prvi deo 31. Program za traženje srednje vrednosti n celih pozitivnih brojeva-for iskaz

#include<stdio.h> void main() { int n, i; float suma=0, x; printf("Ukupno brojeva n=\n"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("Ukucajte %d. broj ", i); scanf("%f",&x);

suma+=x; } printf("Srednja vrednost ovih brojeva je %f\n",suma/n); } 32. Program koji računa sumu kvadrata parnih, a kubova neparnih brojeva

izmedju m i n

#include <stdio.h> #include <conio.h> void main(void) { int m,n,i; long S=0; clrscr(); printf("Ovaj program racuna sumu kvadrata parnih, \n"); printf("a kubova neparnih brojeva izmedju m i n\n\n"); printf("m="); scanf("%d",&m); printf("n="); scanf("%d",&n); i=m; while (i<=n) { if(i%2==0) S+=i*i; /* i je paran */ else S+=i*i*i; /* i je neparan */ i++; } printf("\nSuma kvadrata parnih, a kubova neparnih brojeva

izmedju %d i %d je %ld\n",m,n,S); }

33. Program računa zbir kubova parnih, a recipročnih vrednosti kvadrata neparnih brojeva izmedju m i n

#include<stdio.h> #include<conio.h> #include<math.h> void main(void) { int i,m,n; float s=0; clrscr(); printf("\n\n Ovaj program racuna zbir kubova parnih,"); printf("\n a reciprocnih vrednosti kvadrata nep.brojeva izmedju m i n"); printf("m="); scanf("%d",&m); printf("n="); scanf ("%d",&n); i=m; while(i ++<=n) /* i moze da se uveca i ovde*/ if(i%2==0) s+=i*i*i; else s+=(float)1/(i*i); /*bez float, smatrace se da je s ceo broj, a ne razlomljen!*/ printf("\n \n Suma brojeva je %.2f",s); }

34. Program računa n puta koren za učitano n 3.....333 +++ #include <stdio.h> #include <conio.h> #include <math.h> void main(void) { int i,n; float S=0; clrscr(); printf("\nOvaj program racuna n korenova iz 3+...\n"); printf("\tn="); scanf("%d",&n); for(i=1,S=0;i<=n;i++)

S=sqrt(3+S); printf("\n\t%.4f",S); getch();

11 }

Page 12: ZbirkaC prvi deo

Mira Nikolić 35. Program računa x+x2+x3+...xn za učitano n i x #include <stdio.h> #include <conio.h> #include <math.h> void main(void) { int i,n; float S,x,clan; clrscr(); printf("\nOvaj program racuna sumu eksponenata x\n"); printf("\tn="); scanf("%d",&n); printf("\tx="); scanf("%f",&x); for(i=1,S=0,clan=x;i<=n;i++) { S+=clan; clan*=x; } printf("\n\t%.4f",S); getch(); } 36. Program računa x+2x2+3x3+...nxn za učitano n i x #include <stdio.h> #include <conio.h> #include <math.h> void main(void) { int i,n; float S,x,clan; clrscr(); printf("\nOvaj program racuna sumu eksponenata x\n");

printf("\tn="); scanf("%d",&n); printf("\tx="); scanf("%f",&x); for(i=1,S=0,clan=x;i<=n;i++) { S+=i*clan; clan*=x; } printf("\n\t%.4f",S); getch(); } 37. Program računa sumu faktorijela 1!+2!+...+n! za učitano n #include <stdio.h> #include <conio.h> #include <math.h> void main(void) { int i,n; float S,x,clan; clrscr(); printf("\nOvaj program racuna 1!+2!+...+n!\n"); printf("\tn="); scanf("%d",&n); for(i=1,S=0,clan=1;i<=n;i++) { S+=i*clan; clan*=i; } if (S<1e+06) printf("\n\t%.0f",S); else printf("\n\t%e",S); getch(); }

12

Page 13: ZbirkaC prvi deo

Zbirka rešenih zadataka iz C jezika – prvi deo 38. Program koji ispisuje tabelu funkcije od a sa korakom dx u n tacaka #include <stdio.h> #include <math.h> #include <conio.h> void main(void) { int i,n; double a,x,dx,y; clrscr(); printf("Ovaj program ispisuje tabelu funkcije od a sa korakom dx u n tacaka\n\n"); printf("\nUcitajte broj tacaka n="); scanf("%d",&n); printf("\nUcitajte granicu intervala (a,b) i prirastaj dx\n a="); scanf("%lf",&a); printf(" dx="); scanf("%lf",&dx); printf("\n\tx\ty=-3*x^2+2*x+1\n\n "); for(i=0,x=a;i<n;i++) { y=-3*x*x+2*x+1; printf("\t%6.2lf\t %6.2lf\n",x,y); x+=dx; } getch(); } 39. Program koji ispisuje tabelu funkcije u intervalu od a do b u n tacaka #include <stdio.h> #include <math.h> #include <conio.h> void main(void) { int i,n; double a,b,x,dx,y; clrscr(); printf("Ovaj program ispisuje tabelu funkcije u intervalu od a do b u n tacaka\n\n"); printf("\nUcitajte broj tacaka n="); scanf("%d",&n);

printf("\nUcitajte granice intervala (a,b)\n a="); scanf("%lf",&a); printf(" b="); scanf("%lf",&b); printf("\n\tx\t\ty=2*x^2-2*x+3\n\n "); dx=(b-a)/(n-1); for(i=0,x=a;i<n;i++) { y=2*x*x-2*x+3; printf("\t %8.4lf\t %8.4lf\n",x,y); x+=dx; } } 40. Program za odredjivanje n-tog Fibonačijevog broja

f1=1, f2=1, fn=f(n-2)+f(n-1)#include <stdio.h> #include <conio.h> void main(void) { int f1=1,f2=1,fn,n,i=3; clrscr(); printf("\n\tOvaj program racuna n-ti Fibonacijev broj \n"); printf("n= "); scanf("%d",&n); f1=f2=1; while (i++<=n) { fn=f1+f2; f2=f1; f1=fn; } printf("\t %d-ti fibonacijev broj je %d",n,fn); }

13

Page 14: ZbirkaC prvi deo

Mira Nikolić 41. Program za odredjivanje trocifrenih Armstrongovih brojeva

abc=a3+ b3+ c3

#include <stdio.h> #include <conio.h> void main(void) { int a,b,c,m; clrscr(); printf("\nOvaj program odredjuje trocifrene Armstrongove brojeve\n"); printf("abc=a^3+b^3+c^3 \n\n"); for(m=100;m<=999;m++) { a=m/100; b=(m%100)%10; c=m%10; if (m==a*a*a+b*b*b+c*c*c) printf("%d\n",m); } } 42. Program za nalaženje najvećeg zajednickog delioca dva nenegativna cela

broja

#include<stdio.h> void main() { int prvi, drugi, pomocni; printf("Ukucajte dva nenegativna cela broja?\n"); scanf("%d%d",&prvi,&drugi); while(drugi!=0) { pomocni=prvi%drugi; prvi=drugi; drugi=pomocni; } printf("Najveci zajednicki delilac ovih brojeva je %d\n",prvi); }

43. Program za odredjivanje Pitagorinih brojeva manjih od 40 a2+ b2= c2

#include <stdio.h> #include <conio.h> #include <math.h> void main(void) { int a,b,c; clrscr(); printf("\nOvaj program odredjuje Pitagorine brojeve a,b<40\n"); printf("\ta*a+b*b=c*c\n\n"); for(a=1;a<=40;a++) for(b=a;b<=40;b++) { c=sqrt(a*a+b*b); if(a*a+b*b==c*c) printf("\t%d*%d+%d*%d=%d*%d\n",a,a,b,b,c,c); } } 44. Program za odredjivanje prostih faktora broja n (za 42: 2, 3 i 7) #include <stdio.h> #include <conio.h> void main(void) { int n,i=2; clrscr(); printf("\n\tOvaj program stampa proste faktore broja n \n\n"); printf("n="); scanf("%d",&n); while (n>=2) { while (n%i==0) { n/=i; printf("%d\t",i); } i++; /*sledeci delitelj*/ } }

14

Page 15: ZbirkaC prvi deo

Zbirka rešenih zadataka iz C jezika – prvi deo 45. Program za odredjivanje trocifrenih prostih brojeva #include <stdio.h> #include <conio.h> void main(void) { int n=101,i; clrscr(); printf("\n\tOvaj program stampa trocifrene proste brojeve \n\n"); while (n<=999) { i=3; while ((n%i!=0)&&(i<=n/2)) i+=2; /*sledeci delitelj*/ if (i>n/2) /*broj je prost*/ printf("%d\t",n); n+=2; } } 46. Program za odredjivanje savršenih brojeva do učitanog m (broj je savršen

ako je jednak sumi svojih činilaca 6=1+2+3)

#include <stdio.h> #include <conio.h> void main(void) { int i,n,m,suma; clrscr(); printf("\nOvaj prog. racuna savrsene brojeve od 2 do ucitanog m\n"); printf("\nUcitajte m "); scanf("%d",&m); for(n=2;n<=m;n++) { suma=1; for(i=2;i<=n/2;i++) if (n%i==0) suma+=i; if (suma==n) printf("%d\n",n); } }

47. Program za permutovanje cifara celog broja-do while iskaz #include<stdio.h> void main() { int broj; printf("Ukucajte ceo broj \n"); scanf("%d",&broj); printf("Permutovan broj je\n"); do { printf("%d",broj%10); broj/=10; } while(broj!=0); } 48. Program koji određuje maksimalnu i minimalnu temperaturu tokom n dana #include <stdio.h> #include <conio.h> void main(void) { int i,n,t,danmax,danmin,maxT=-50,minT=50; clrscr(); printf("\n\tOdredjivanje minimalne i maksimalne temperature\n"); printf("\nKoliko dana je mereno n= "); scanf("%d",&n); for (i=1;i<=n;i++) { printf("t= "); scanf("%d",&t); if (t>maxT) {maxT=t;danmax=i;} if (t<minT) {minT=t;danmin=i;} } printf("\n\tNajtoplije je bilo %d. dana: %d stepeni\n",danmax,maxT); printf("\n\tNahladnije je bilo %d. dana: %d stepeni\n",danmin,minT); getch(); }

15

Page 16: ZbirkaC prvi deo

Mira Nikolić 49. Program koji određuje koliko sati se planinar penje na vrh #include<stdio.h> #include<conio.h> #include<math.h> void main (void) { int i,v,a,h,s; clrscr(); printf("\nProgram racuna koliko sati se planinar penje na vrh\n"); printf("ako svakog sata ide 25 posto sporije\n"); printf("\nUcitajte polaznu visinu, v= "); scanf(" %d",&v); printf("\nUcitajte ciljnu visinu, h= "); scanf(" %d",&h); printf("\nUcitajte visinu koju savlada prvog sata "); scanf(" %d",&a); s=v+a; i=1; while(s<h) { a*=0.75; /* koliko savlada tekuceg sata */ s+=a; /* na koliko se popo do sada */ i++; } printf("\nPosle %d sati planinar stize na vrh",i); getch(); } 50. Program koji određuje posle koliko godina će broj riba u jezeru pasti na

kritičnu vrednost ako se godišnje smanjuje za dati procenat #include<stdio.h> #include<conio.h> #include<math.h> void main (void) { int i,r,rkrit; float p; clrscr(); printf("\nProgram racuna posle koliko godina ce broj riba u jezeru\n"); printf("pasti na kriticnu vrednost ako se godisnje smanjuje za p%\n");

printf("\nUcitajte trenutni broj riba u jezeru, r= "); scanf(" %d",&r); printf("\nUcitajte kritican broj riba u jezeru, rkrit= "); scanf(" %d",&rkrit); printf("\nUcitajte procenat godisnjeg opadanja riba u jezeru, p= "); scanf(" %f",&p); i=0; while(r>=rkrit) { r*=1-p/100; i++;} printf("\nNakon %d godina broj riba u jezeru ce biti manji od %d", i,rkrit); getch(); } 51. Program koji određuje koliko dana će se moći kupovati sok od kaucije #include<stdio.h> #include<conio.h> #include<math.h> void main (void) { int i,n,c,s,p; clrscr(); printf("\nProgram racuna koliko dana ce se moci kupovati sok\n"); printf("od novca od kaucije\n"); printf("\nUcitajte pocetni iznos novca, n= "); scanf(" %d",&n); printf("\nUcitajte cenu flase soka, c= "); scanf(" %d",&c); printf("\nUcitajte cenu prazne flase (kaucije), p= "); scanf(" %d",&p); i=0; while(n>=c) { i++; s=n/c; /* s-broj kupljenih flasa */ n=n%c+s*p; /* n-novac za sledeci dan */ } printf("\nSok ce se kupovati jos %d dana od kaucije",i-1); getch(); }

16

Page 17: ZbirkaC prvi deo

Zbirka rešenih zadataka iz C jezika – prvi deo 52. Program koji određuje optimalnu proizvodnju #include <stdio.h> #include <conio.h> void main(void) { int k1,k2,a,b,h,x,y,max=0,max1,max2; clrscr(); printf("\n\tOdredjivanje optimalne proizvodnje za artikle a i b\n"); printf("\nKoliko sati traje proizvodnja 1. artikla a= "); scanf("%d",&a); printf("\nKoliko sati traje proizvodnja 2. artikla b= "); scanf("%d",&b); printf("\nKolika je cena 1. artikla x= "); scanf("%d",&x); printf("\nKolika je cena 2. artikla y= "); scanf("%d",&y); printf("\nKoliko je mesecno trajanje proizvodnje h= "); scanf("%d",&h); for (k1=0;k1<=h/a;k1++) /*k1 probamo da je 0, 1, ... do h/a*/ { k2=(h-k1*a)/b; /*k2 je preostala kolicina*/ if (k1*x+k2*y>max) /*ovo je najbolje do sada, pamtimo*/ {max=k1*x+k2*y;max1=k1,max2=k2;} } printf("Optimalna proizvodnja sa zaradom od %d dinara\n",max); printf("zahteva sledece kolicine:\n"); printf("\t%d komada prvog artikla i %d komada drugog",max1,max2); getch(); } 53. Program za ispis na ekranu trougla

#include <stdio.h> #include <conio.h> void main(void) { int i,j; clrscr(); for (i=5;i>=1;i--,printf("\n")) for (j=1;j<=i;j++,printf("1 ")); getch(); }

54. Program za ispis na ekranu trougla 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1 #include <stdio.h> #include <conio.h> void main(void) { int i,j; clrscr(); printf("\n\tOvaj program ispisuje trougao od 1 do 5 \n"); for (i=1;i<=5;i++,printf("\n")) for (j=1;j<=i;j++) printf("%d ",j); getch(); }

55. Program za ispis na ekranu trougla 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 #include <stdio.h> #include <conio.h> void main(void) { int i,j; clrscr(); printf("\n\tOvaj program ispisuje trougao od 1 do 5 \n"); for (i=1;i<=5;i++,printf("\n")) for (j=1;j<=5;j++) if (j<i) printf(" "); else printf("5 "); getch(); }

1 1 1 1 11 1 1 1 1 1 1 1 1 1

17

Page 18: ZbirkaC prvi deo

Mira Nikolić

18 }

56. Program za ispis na ekranu trougla 1 2 3 4 5 2 3 4 5 3 4 5 4 5 5 #include <stdio.h> #include <conio.h> void main(void) { int i,j; clrscr(); printf("\n\tOvaj program ispisuje trougao od 1 do 5 \n"); for (i=1;i<=5;i++,printf("\n")) for (j=i;j<=5;j++) printf("%d ",j); getch(); }

57. Program koji crta romb zvezdica veličine učitanog n

#include<stdio.h> #include<conio.h> void main(void) { int n,m,i,j; clrscr(); printf("\n n="); scanf("%d",&n); for(i=1;i<=n;i++) /*gornja polovina*/ { for(j=1;j<=n-i+1;j++)printf(" "); for(j=1;j<=n+2*(i-1);j++)printf("*"); printf("\n"); } m=n+2*(i-1)-2; for(i=1;i<=n-1;i++) /*donja polovina*/ { for(j=1;j<=i+1;j++)printf(" "); for(j=1;j<m-1;j++)printf("*"); m-=2; printf("\n");

58. Program kojii simulira kretanje dve linije zvezdica dužine n #include<stdio.h> #include<conio.h> #include<dos.h> void main(void) { int n,k=1,x,y=13,z=1; clrscr(); printf("\n Ovaj program simulira kretanje dve linije"); printf("\n sa po n (0<n<12) zvezdica\n"); printf("\n\t Unesite vrednost promenljive n="); scanf("%d",&n); while((z+n-1)!=41) { clrscr(); for(x=z;x<=n+z-1;x++) { gotoxy(x,y+k-1); cprintf("*"); gotoxy(x,y-k+1); cprintf("*"); gotoxy(80-x+1,y+k-1); cprintf("*"); } gotoxy(1,25); delay(300); k=1; z++; x=z; } }

Page 19: ZbirkaC prvi deo

Zbirka rešenih zadataka iz C jezika – prvi deo NIZOVI 59. Program koji učitava niz, računa zbir i srednju vrednost

#include <stdio.h> #include <math.h> #include <conio.h> void main(void) { int i; float x[10],n,s; clrscr(); gotoxy(5,5); printf("Ovaj program ucitava niz, racuna zbir i srednju vrednost\n\n"); printf("Unesite 10 elemenata niza \n\n"); for (s=0,i=0;i<10;i++) { printf("x[%2d]= ",i+1); scanf("%f",&x[i]); s+=x[i]; } n=s/10; printf("\n\nZbir clanova niza je %f , a prosecna vrednost je %f\n\n",s,n); }

60. Program koji učitava niz i broji neparne elemente niza #include<stdio.h> #include<conio.h> void main (void) { int i, a[6],br; clrscr(); printf("\nProgram broji neparne elemente niza\n"); for(i=0,br=0;i<6;i++) { printf("\t a[%d]=",i+1); scanf(" %d",&a[i]); if(a[i]%2==1) br++; } printf("\nUkupan broj neparnih brojeva je\tbr=%d",br); }

61. Program koji učitava niz i broji koliko je elemenata niza deljivo sa 3 #include<stdio.h> #include<conio.h> void main(void) { int n,i,br=0,a[50]; clrscr(); printf("\n\tUnesi broj elemenata niza "); scanf("%d",&n); for(i=0;i<n;i++) { printf("\ta[%d]=",i+1); scanf("%d",&a[i]); if(a[i]%3==0) br+=1; } printf("\n\tU ovom nizu ima %d elemenata deljivih sa 3\n",br); }

62. Program koji učitava niz i menja predznak elementima sa parnim indeksom

#include<stdio.h> #include<conio.h> void main(void) { int i,n,a[50]; clrscr(); printf(" Ovaj program za ucitanu duzinu niza\n"); printf(" obrce predznak brojevima sa parnim indeksom\n"); printf("\n Ucitaj duzinu niza:"); scanf("%d",&n); for(i=0;i<n;i++) { printf("\t a[%d]=",i+1); scanf("%d",&a[i]); if(i%2==1) a[i]=-a[i]; } for(i=0;i<n;i++) printf("\n a[%d]=%d",i+1,a[i]); }

19

Page 20: ZbirkaC prvi deo

Mira Nikolić 63. Program za brojanje različitih cifara velikog celog broja

#include<stdio.h> #include<conio.h> void main (void) { int i, s, cifra; int a[10]={0,0,0,0,0,0,0,0,0,0}; long n; clrscr(); printf("\nProgram broji razlicite cifre velikog broja\n"); printf("\nUcitajte veliki ceo broj n<2e9, n= "); scanf(" %ld",&n); do{ cifra=n%10; a[cifra]=1; n=n/10; } while(n>0); /*sve dok se ne prebroje sve cifre*/ for(i=0,s=0;i<10;i++) s+=a[i]; printf("\nBroj razlicitih cifara u ovom broju je %d",s); }

64. Program za odredjivanje broja elemenata niza pre prve nule

#include<stdio.h> #include<conio.h> void main (void) { int i, a[16]; clrscr(); printf("\nProgram broji elemente niza pre prve nule\n"); for(i=0;i<12;i++) { printf("\t a[%d]=",i+1); scanf(" %d",&a[i]); } i=0; while(i<12 && a[i]!=0) i++; printf("\nBroj elemenata niza pre prve nule je %d",i); }

65. Program za odredjivanje broja elemenata niza posle prve nule #include<stdio.h> #include<conio.h> void main (void) { int i, n, a[50]; clrscr(); printf("\nProgram broji elemente niza posle prve nule\n"); printf("\nUkupan broj elemenata niza je "); scanf(" %d",&n); for(i=0;i<n;i++) { printf("\t a[%d]=",i+1); scanf(" %d",&a[i]); } i=0; while(i<n && a[i]!=0) i++; printf("\nBroj elemenata niza posle prve nule je %d",n-1-i); }

66. Program za sabiranje elemenata niza pre prvog neparnog elementa

#include<stdio.h> #include<conio.h> void main (void) { int i, n, s=0, a[50]; clrscr(); printf("\nProgram sabira elemente pre prvog neparnog elementa\n"); printf("\nUkupan broj elemenata niza je "); scanf(" %d",&n); for(i=0;i<n;i++) { printf("\t a[%d]=",i+1); scanf(" %d",&a[i]); }

20

Page 21: ZbirkaC prvi deo

Zbirka rešenih zadataka iz C jezika – prvi deo i=0; while(i<n && a[i]%2==0) /*sve dok su elementi parni*/ { s+=a[i]; i++; } printf("\nSuma elemenata niza pre prvog neparnog je %d",s);

67. Program za sabiranje elemenata niza izmedju prve dve nule

#include<stdio.h> #include<conio.h> void main (void) { int i, n, s=0, a[50]; clrscr(); printf("\nProgram sabira elemente niza izmedju prve dve nule"); printf("\nili od nule do kraja ako je samo jedna nula\n"); printf("\nUkupan broj elemenata niza je "); scanf(" %d",&n); for(i=0;i<n;i++) { printf("\t a[%d]=",i+1); scanf(" %d",&a[i]); } i=0; while(i<n && a[i]!=0) i++; /*prolaz kroz niz do prve nule*/ i++; while(i<n && a[i]!=0) /*sabiranje od prve do druge nule*/ { s+=a[i]; i++; } printf("\nSuma elemenata niza izmedju prve dve nule je %d",s); }

68. Program koji učitava niz a duzine 2n, pa od njega formira dva niza, b i c, duzine n, tako da elementi b budu 2,4,,6..., 2n-ti element a, a elementi c pretposlednji (2n-1), 2n-3..., 1. element a #include<stdio.h> #include<math.h> #include<conio.h> void main(void) { int n,i,a[100],b[50],c[50]; clrscr(); printf("\n\nProgram pravi nizove b i c od niza a"); printf("\n\nUcitajte duzinu nizova b i c "); scanf("%d",&n); printf("\n\nUcitaj niz a koji je dugacak %d elemenata \n",2*n); for(i=0;i<2*n;i++) { printf("\ta[%d]=",i+1); scanf("%d",&a[i]); } printf("\n\nElementi nizova b i c su:\n "); for(i=0;i<n;i++) { b[i]=a[2*i+1]; c[i]=a[2*(n-i-1)]; printf("\tb[%d]=%d\tc[%d]=%d\n",i+1,b[i],i+1,c[i]); } }

21

Page 22: ZbirkaC prvi deo

Mira Nikolić 69. Program za odredjivanje minimuma i maksimuma niza

#include<stdio.h> #include<conio.h> void main(void) { int i,x[20],min=32767,max=-32768; clrscr(); printf("\n Ovaj program racuna maksimum i minimum niza duzine 20"); printf("\n\n Uneti clanove niza:\n"); for(i=0;i<20;i++) { printf("\tx[%d]=",i+1); scanf("%d",&x[i]); if(x[i]>max) max=x[i]; if(x[i]<min) min=x[i]; } printf("\n\n\n Najveci element niza je %d",max); printf("\n Najmanji element niza je %d",min); }

70. Program koji učitava niz i pronalazi maksimalan element i njegovu poziciju #include<stdio.h> #include<conio.h> void main (void) { int n,i,max,maxpoz=0,x[30]; clrscr(); printf("\n\t Program odredjuje maksimalan element niza:"); printf("\n Broj elemenata celobrojnog niza X je:"); scanf("%d",&n); printf("\n Unesite niz X:\n\n"); for(i=0;i<n;i++) scanf("%d",&x[i]); max=x[0]; /*pretpostavka da je prvi najveci*/ for(i=0;i<n;i++) if (x[i]>max) { max=x[i]; /*nadjen je veci*/ maxpoz=i; } printf("\n\n\t%d. element niza je maksimalan \n",maxpoz+1); printf("\t Xmax=%d \n",max);

}

71. Program koji za poznate nizove a i b formira niz c tako što sabira/množi odgovarajuće parove a i b

#include <stdio.h> #include <math.h> #include <conio.h> void main(void) {

int i,a[20]={4,3,45,5,6,2,3,4,5,9,8,12,23,4,56,64,3,4,1,2}, b[20]={23,7,6,8,2,3,4,5,6,7,1,2,4,5,6,5,4,7,6,5},c[20]; clrscr(); /* mogu se nizovi po potrebi ovako ucitati: for (i=0;i<20;i++) {

printf("%2d broj a= ",i+1); scanf("%d",&a[i]);

} for (i=0;i<20;i++)

printf("%2d broj b= ",i+1); scanf("%d",&b[i]);

} */ clrscr(); printf("Ovaj program ucitava dva niza A i B od dvadeset clanova\n"); printf("i ispisuje treci niz C tako da je:\n"); printf("\tc[i]=a[i]+b[i], ako je i parno,\n"); printf("\tc[i]=a[i]*b[i], ako je i neparno\n\n"); printf("\t a\t b\t\t c\n"); printf(" --------------------------------------\n"); for(i=0;i<20;i++) {

if(i%2==0) c[i]=a[i]+b[i]; else c[i]=a[i]*b[i]; printf("\t%2d\t%2d\t\tc[%2d]=%3d\n",a[i],b[i],i,c[i]);

} }

22

Page 23: ZbirkaC prvi deo

Zbirka rešenih zadataka iz C jezika – prvi deo 72. Program koji učitava niz od 10 kompleksnih brojeva i računa njihove

module (efektivne vrednosti) #include<stdio.h> #include<math.h> void main(void) { int i; double Re[10], Im[10], m=0; char predzn='-'; clrscr(); printf("\tProgram ispisuje kompleksni broj i racuna \n"); printf("\tnjegov moduo (efektivnu vrednost)\n\n\n"); for(i=0;i<10;i++) { printf(" Re[%d]=",i+1); scanf("%lf",&Re[i]); printf(" Im[%d]=",i+1); scanf("%lf",&Im[i]); } clrscr(); printf("\n\tKompleksno\t\tEfektivno"); for(i=0;i<=9;i++) { m=sqrt((Re[i]*Re[i])+(Im[i]*Im[i])); if(Im[i]>=0) predzn='+'; else predzn='-'; printf("\n\t\ %4.2lf%cj%4.2lf\t\t %6.3lf",Re[i],predzn,fabs(Im[i]),m); } }

73. Program za sortiranje jednodimenzionalnih nizova realnih brojeva od najmanjeg do najvećeg

#include<stdio.h> void main() {

int n,i,j; float priv, x[100]; printf("Koliko brojeva za sortiranje?[<100]:"); scanf("%d",&n);

/*Ucitavanje n brojeva*/ for(i=0;i<n;++i) { printf("? x[%2d]=",i); scanf("%f",&x[i]); } /*Sortiranje*/ for(j=0;j<n-1;++j) for(i=j+1;i<n;++i) if(x[i]<x[j]) { priv=x[j]; x[j]=x[i]; x[i]=priv; } /*Stampanje sortiranih brojeva*/

printf("\nSortiranji brojevi:\n"); for(i=0;i<n;++i) printf("x[%2d]=%15.6e\n",i,x[i]);

}

23