Top Banner
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
23

ZbirkaC prvi deo

Nov 27, 2014

Download

Documents

ogija
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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