6
1. Napisati program koji izračunava obim i površinu pravouglog trougla na osnovu dužina njegovih kateta koje se zadaju sa standaradnog ulaza. #include <stdio.h> #include <math.h> int main() { float a,b,c,t,p,o; printf("Unesite katete trougla (a, b, c):"); scanf("%f%f%f",&a,&b,&c); o=a+b+c; t=(a+b+c)/2; p=sqrt (t*(t-a)*(t-b)*(t-c)); printf("Povrsina trougla iznosi: %.2f\n",p); printf("Obim trougla iznosi: %.2f\n",o); system("pause"); return 0; } 2. Broj riba u nekom jezeru je S. Nakon koliko godina će broj riba postati manji od R ako se godišnje broj riba smanji za P%. Napraviti tabelu iz koje se za svaku godinu vidi za koliko se smanjio broj riba, kao i broj riba na kraju godine. #include <stdio.h> #include <math.h> int main() { int s,r,p,g; printf("Broj riba u jezeru:\n"); scanf("%d",&s); printf("Donja granica:\n"); scanf("%d",&r); printf("Procenat godisnjeg smanjenja:\n"); scanf("%d",&p); g=0; while(s>r) { s=s*(1-p/100); g=g+1; printf("%d godine smanjenje broja riba je %d\n",g,s*p/100); printf("Preostali broj riba je %d\n",s); break; } system("pause"); return 0; } 3. Data je površina kruga S i površina kvadrata P. Odrediti da li se može smestiti krug u kvadrat. #include <stdio.h> #include <math.h> #define PI 3.14 int main() { float p,s,a,d,r,z; printf("Unesite povrsinu kruga i povrsinu kvadrata:\n"); scanf("%f%f",&s,&p); a=sqrt(p); d=a*sqrt(2); r=sqrt(s/PI); if ( (2*r) >= d) { printf("Kvadrat moze da stane u krug!\n"); } else { printf("Kvadrat NE moze da stane u krug!\n"); } system("pause"); return 0; }

Programiranje - Zadaci

Embed Size (px)

Citation preview

Page 1: Programiranje - Zadaci

1. Napisati program koji izračunava obim i površinu pravouglog trougla na osnovu dužina njegovih kateta koje se zadaju sa standaradnog ulaza.

#include <stdio.h>#include <math.h>

int main() { float a,b,c,t,p,o; printf("Unesite katete trougla (a, b, c):"); scanf("%f%f%f",&a,&b,&c); o=a+b+c; t=(a+b+c)/2; p=sqrt (t*(t-a)*(t-b)*(t-c)); printf("Povrsina trougla iznosi: %.2f\n",p); printf("Obim trougla iznosi: %.2f\n",o); system("pause"); return 0;} 2. Broj riba u nekom jezeru je S. Nakon koliko godina će broj riba postati manji od R ako se godišnje broj riba smanji za P%. Napraviti tabelu iz koje se za svaku godinu vidi za koliko se smanjio broj riba, kao i broj riba na kraju godine.

#include <stdio.h>#include <math.h>

int main() { int s,r,p,g; printf("Broj riba u jezeru:\n"); scanf("%d",&s); printf("Donja granica:\n"); scanf("%d",&r);

printf("Procenat godisnjeg smanjenja:\n"); scanf("%d",&p); g=0; while(s>r) { s=s*(1-p/100); g=g+1; printf("%d godine smanjenje broja riba je %d\n",g,s*p/100); printf("Preostali broj riba je %d\n",s); break; }

system("pause"); return 0;}

3. Data je površina kruga S i površina kvadrata P. Odrediti da li se može smestiti krug u kvadrat.

#include <stdio.h>#include <math.h>#define PI 3.14

int main() { float p,s,a,d,r,z; printf("Unesite povrsinu kruga i povrsinu kvadrata:\n"); scanf("%f%f",&s,&p); a=sqrt(p); d=a*sqrt(2); r=sqrt(s/PI);

if ( (2*r) >= d) { printf("Kvadrat moze da stane u krug!\n"); } else { printf("Kvadrat NE moze da stane u krug!\n"); } system("pause"); return 0;}

Page 2: Programiranje - Zadaci

4. Vršeći eksperiment n puta (n ≤20) fizičar je zapisao rezultate merenja. Napisati program koji pronalazi redni broj merenja koje je dalo najveću vrednost, kao i koliko puta se dostizala najveća vrednost.

#include <stdio.h>#define MAX_BROJ_MERENJA 20

int main() { int a[MAX_BROJ_MERENJA]; int b[20]; int max=0; int n; int i; int j=0; int br; printf("Unesite broj merenja <=%d\n",MAX_BROJ_MERENJA); scanf("%d",&n); if(n > MAX_BROJ_MERENJA) { printf("Broj merenja ne sme biti veci od %d\n",MAX_BROJ_MERENJA); system("pause"); return 1; } printf("Merenja:\n"); printf("Unesite elemente niza:\n"); for(i = 0; i < n; i++) { printf("a[%d] = ?\n", i); scanf("%d", &a[i]); } for(i = 0; i < n; i++) { if(a[i] > max) { max = a[i]; } }

printf("Maximalna vrednost niza je %d\n",max); for(i = 0; i < n; i++) { if(a[i] == max) { j++; } } printf("Maximalna vrednost se ponavljala %d\n",j);

system("pause"); return 0;}

5. U redu u samoposluzi nalazi se n ≤ 20 kupaca. Vreme opsluživanja od strane kasirke za svakog kupca dato je nizom t[1 .. n]. Odrediti čekanje svakog kupca.

#include <stdio.h>#define MAX_BROJ_KUPACA 20

int main(){ int t[MAX_BROJ_KUPACA]; int n; int vreme_cekanja; int i; printf("Broj kupaca? (<= %d): \n", MAX_BROJ_KUPACA); scanf("%d",&n); printf("Vreme opsluzivanja?\n"); scanf("%d",&t[i]); vreme_cekanja=0; for(i=1;i=n;i++){ vreme_cekanja = vreme_cekanja + t[i]; printf("Vreme cekanja %d kupca je %d\n",i,vreme_cekanja); break; } system("pause"); return 0;}

Page 3: Programiranje - Zadaci

6. Tabelirati funkciju f (x) = e x - x - 6 x na intervalu [-6.5, -5.3] sa korakom h = 0.2

#include <stdio.h>

main(){ float x, xmin, xmax, dx,y; xmin=-6.5; xmax=-5.3; dx=0.2; printf(" x y\n"); for(x=xmin;x<xmax;x+=dx) { y=exp(x)-x-6; printf(" %6.3f %10.3f\n",x,y); } system("pause"); return 0;}

7. Napisati program koji za dva data intervala realne prave [a1, b1] i [a2, b2] određuje njihov presek, ako postoji, u suprotnom ispisuje odgovarajuću poruku.

#include <stdio.h>

int main() { int a1,b1,a2,b2,a,b; printf("Unesite prvi interval:\n"); scanf("%d%d",&a1,&b1); printf("Unesite drugi interval:\n"); scanf("%d%d",&a2,&b2); a=a1; if (a<a2) { a=a2; } b=b1; if (b>b2) { b=b2; } if(a<=b) { printf("Presek pravih je: (%d,%d)\n",a,b); } else { printf("Za date intervale ne postoji presek prave!\n"); } system("pause"); return 0;}

8. Tabelirati funkcijuln f(x) = x*ln(x)/(1+x 2 ) na intervalu [1.5, 2.3] sa korakom h = 0.1.

#include <stdio.h>

main(){ float x, xmin, xmax, dx,y; xmin=1.5; xmax=2.3; dx=0.1; printf(" x y\n"); for(x=xmin;x<xmax;x+=dx) { y=x*log(x)/(1+x*x); printf(" %6.3f %10.3f\n",x,y); } system("pause"); return 0;}

Page 4: Programiranje - Zadaci

9. Nizom realnih brojeva od n ≤ 20 elemenata dati su rezultati studenata na ispitu izProgramiranja. Urediti niz opadajuće i prikazati rezultate. Odrediti i broj studenata koji suimali broj poena veći od prosečnog.

#include<stdio.h>#define MAX_BROJ_STUDENATA 20

int main() { int a[MAX_BROJ_STUDENATA]; int suma=0; int sv=0; int n; int i; int j=0; int t; printf("Unesite broj studenata <=%d\n",MAX_BROJ_STUDENATA); scanf("%d",&n); if(n > MAX_BROJ_STUDENATA) { printf("Broj studenata ne sme biti veci od %d\n",MAX_BROJ_STUDENATA); system("pause"); return 1; } printf("Unesite ocene studenata:\n"); for(i = 0; i < n; i++) { printf("a[%d] = ?\n", i); scanf("%d", &a[i]); suma += a[i]; } sv=suma/n; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } } printf("\n Prosecna ocena je: %d \n Konacan raspored ocena \n",sv); for(i=0;i<n;i++) { if(a[i]<sv) { printf("Ovo ocena je manja od prosecne ocene %d\n",a[i]); } else if(a[i]>=sv) { printf("Ova ocena je veca od prosecne ocene %d\n",a[i]); } } system("pause"); return 0;}

10. Izračunati rastojanje između dve tačke. čije se koordinate zadaju sa standardnog ulaza.

#include <stdio.h>#include <math.h>

int main() { int a,b,c,d; float e,f; printf("Unesite koordinate prve tacke:\n"); scanf("%d%d",&a,&b);

printf("Unesite koordinate druge tacke:\n"); scanf("%d%d",&c,&d); e=a-c; f=b-d; printf("Rastojanje izmedju tacaka je: %.2f\n", sqrt(e*e+f*f)); system("pause"); return 0;}

Page 5: Programiranje - Zadaci

11. Odrediti za koliko godina ulog u banci od U dinara uz godišnju kamatu od P% naraste do R dinara. U, P i R su realne promenljive čije se vrednosti unose sa standardnog ulaza. Napraviti tabelu iz koje se za svaku godinu vidi iznos kamate i suma na kraju godine.

#include <stdio.h>

int main() { int u,r,p,g; printf("Osnovni iznos:\n"); scanf("%d",&u);

printf("Gornja granica:\n"); scanf("%d",&r); printf("Procenat kamate:\n"); scanf("%d",&p); g=0; while(u<r) { u=u*(1+p/100); g=g+1; printf("%d godine kamata je %d, iznos je %d\n",g,u*p/100,u); break; }

system("pause"); return 0;}

12. Napisati program kojim se sa standardnog ulaza prvo učitava dužina niza N ≤ 20 a zatim i elementi niza celih brojeva, i ispisuje da li su elementi uređeni u nerastućem poretku ili ne.

#include<stdio.h>#define MAX 20

int main() { int a[MAX]; int b[MAX]; int s; int n; int i; int j=0; int t=1; printf("Unesite duzinu niza <=%d\n",MAX); scanf("%d",&n); if(n > MAX) { printf("Broj elementat niza ne sme biti veci od %d\n",MAX); system("pause"); return 1; } printf("Unesite elemente niza:\n"); for(i = 0; i < n; i++) { printf("a[%d] = ?\n", i); scanf("%d", &a[i]); } for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(a[i]>a[j]) { s=a[i]; a[i]=a[j]; a[j]=s; } else { t=0; break; } } } if(t!=0) { printf(" Niz je opadajuci "); } else { printf(" Niz je rastuci "); } system("pause"); return 0; }

Page 6: Programiranje - Zadaci

13. Sa standardnog ulaza ucitavaju se koordinate centra i poluprecnik kruga zadat jednacinom (x-x0)^2+(y-y0)^2=r^2; i nakom toga se ucitavaju koordinate proizvoljne tacke. Odrediti da li ta tacka pripada kruznici.

#include <stdio.h>

int main() { int x,x0,y,y0,r,p,q; printf("Unesite koordinate centra:\n"); scanf("%d%d",&x0,&y0); printf("Unesite poluprecnik kruga:\n"); scanf("%d",&r); printf("Unesite koordinate proizvoljne tacke:\n"); scanf("%d%d",&x,&y); p=x-x0; q=y-y0; if(p*p+q*q==r*r) { printf("Tacka pripada kruznici!\n"); } else { printf("Tacka NE pripada kruznici!\n"); } system("pause"); return 0;}