Prikazi cijelu temu 28.12.2010 21:32
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Lokacija:Tuzla


Predmet:Re: C rijeseni zadaci
Napisati program koji ce izracunati presjek skupova S1 i S2. Skupovi S1 i S2 definirani su intervalima realnih brojeva:
S1=[A, B] S2=[C, D].
Na primjer, za slijedeci ulaz: A=3, B=9, C=7, D=11
program kao izlaz treba dati: Rezultantni interval je REZ=[7, 9].

RJEÅ ENJE:
PreuzmiIzvorni kôd (C#):
  1. #include <stdio.h>
  2. main() {
  3. // Definisanje varijabli float A,B,C,D,MAX,MIN;
  4. // Unos skupova
  5. printf("\n Unesi prvi skup X[A,B] A>B: ");
  6. scanf("%f,%f", &A,&B);
  7. printf("\n Unesi drugi skup Y[C,D] C>D: ");
  8. scanf("%f,%f", &C,&D);
  9.  
  10. /* Logika zadatka je sljedeca: Prvo moramo pretpostaviti da je prvi broj intervala veci ili jednak drugom, A>=B i C>=D, jer ako ovo ne vrijedi interval nije matematicki ispravan (taj uslov nismo ispitivali da nebi komplikovali zadatak). Presjek skupa ce biti neki interval [MIN,MAX].
  11. Uslov da zadatak ima RJEÅ ENJE je da je B < C kao i D < A sto je i logicno jer
  12. u suprotnom presjeka nema!
  13. Broj MIN je ustvari jedan od brojeva A ili C (manji broj od ova 2 broja),
  14. a MAX je manji broj od brojeva B i D. Ako je A=C ili B=D uzima se vrijednost pod ELSE ali tada nam je svakako svejedno koja ce se uzeti vrijednost kao MIN ili MAX jer je tada A=C odnosno B=D */
  15.  
  16. if (A>C) MAX=A; else MAX=C;
  17. if (B<D) MIN=B; else MIN=D;
  18. if ((B<C)||(A>D)) printf("\n Nema presjeka!"); else {
  19. printf ("\n Presjek je: [%.f,%.f]", MAX, MIN); }
  20. // Kraj programa getch();
  21. return 0;
  22. }

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 1 puta. Posljednja izmjena 08.01.2011 19:30 od strane zxz.