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#):#include <stdio.h>
main() {
// Definisanje varijabli float A,B,C,D,MAX,MIN;
// Unos skupova
printf("\n Unesi prvi skup X[A,B] A>B: ");
scanf("%f,%f", &A,&B);
printf("\n Unesi drugi skup Y[C,D] C>D: ");
scanf("%f,%f", &C,&D);
/* 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].
Uslov da zadatak ima RJEĊ ENJE je da je B < C kao i D < A sto je i logicno jer
u suprotnom presjeka nema!
Broj MIN je ustvari jedan od brojeva A ili C (manji broj od ova 2 broja),
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 */
if (A>C) MAX=A; else MAX=C;
if (B<D) MIN=B; else MIN=D;
if ((B<C)||(A>D)) printf("\n Nema presjeka!"); else {
printf ("\n Presjek je: [%.f,%.f]", MAX, MIN); }
// Kraj programa getch();
return 0;
}
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden
1
puta. Posljednja izmjena 08.01.2011 20:30 od strane zxz.