/******************************************* * Ime i Prezime: Bojan Delic * Broj indexa: 11510 * Godina studija: 1 * Datum: 16.11.2005 * Verzija: 0.1 ********************************************/ /******************************************* * * Program koji racuna obim trouga na osnovu * unetih koordinata u koordinatnom sistemu * *******************************************/ #include #include main () { /*********************************************** * * x1, x2 i x3 su koordinate na X osi za tri tacke * y1, y2 i y3 su koordinate na Y osi za tri tacke * a, b i c su stranice trougle * O je obim trougla * ************************************************/ double x1, x2, x3, y1, y2, y3, a, b, c, O; /**************************************** * * again je pomocna promenljiva koja sluzi za vracanje programa na pocetak * ako korinsik hoce da ponovi program * *****************************************/ char again = 'y'; /***************************************** * * Prvo unosenje koordinata tacaka! * Kasnije sledi provera da li se neke tacke poklapaju * *******************************************/ printf("**Program za racunanje obima trougla pomocu koordinata**\n"); while(again=='y') { /**************************************** * * Unos prve tacke * *****************************************/ printf("\nUnesite koordinate prve tacke: "); printf("\n\tx= "); scanf("%lf", &x1); printf("\ty= "); scanf("%lf", &y1); /**************************************** * * Unos druge tacke * *****************************************/ printf("\nUnesite koordinate druge tacke: "); printf("\n\tx= "); scanf("%lf", &x2); printf("\ty= "); scanf("%lf", &y2); /**************************************** * * Unos trece tacke * *****************************************/ printf("\nUnesite koordinate trece tacke: "); printf("\n\tx= "); scanf("%lf", &x3); printf("\ty= "); scanf("%lf", &y3); /****************************************** * * Racunanje duzine stranice pomocu koordinata * dve tacke u koordinatnom sistemu! * *******************************************/ a = sqrt(pow((x1-x2), 2)+pow((y1-y2), 2)); b = sqrt(pow((x2-x3), 2)+pow((y2-y3), 2)); c = sqrt(pow((x1-x3), 2)+pow((y1-y3), 2)); /************************************************* * * Provera da li je bar jedna od stranica trugla jednaka nuli * Ako jeste to znaci da se neke koordinate poklapaju * U tom slucaju trazi se od korisnika da ponovo unese koordinate * krajnjih tacaka stranice koja je jedanaka nuli * ***************************************************/ while (a==0 || b==0 || c==0) { /********************************************************* * * Ako je stranica a jednaka nuli, prva i druga tacka se poklapaju * **********************************************************/ while (a==0) { printf("\nKoorinate prve i druge tacke se poklapaju!\n"); /**************************************** * * Unos prve tacke * *****************************************/ printf("\nUnesite koordinate prve tacke: "); printf("\n\tx= "); scanf("%lf", &x1); printf("\ty= "); scanf("%lf", &y1); /**************************************** * * Unos druge tacke * *****************************************/ printf("\nUnesite koordinate druge tacke: "); printf("\n\tx= "); scanf("%lf", &x2); printf("\ty= "); scanf("%lf", &y2); a = sqrt(pow((x1-x2), 2)+pow((y1-y2), 2)); } /******************************************************* * * Ako je stranica b jednaka nuli, druga i treca tacka se poklapaju * ********************************************************/ while (b==0) { printf("\nKoorinate druge i trece tacke se poklapaju!\n"); /**************************************** * * Unos druge tacke * *****************************************/ printf("\nUnesite koordinate druge tacke: "); printf("\n\tx= "); scanf("%lf", &x2); printf("\ty= "); scanf("%lf", &y2); /**************************************** * * Unos trece tacke * *****************************************/ printf("\nUnesite koordinate trece tacke: "); printf("\n\tx= "); scanf("%lf", &x3); printf("\ty= "); scanf("%lf", &y3); b = sqrt(pow((x2-x3), 2)+pow((y2-y3), 2)); } /****************************************************** * * Ako je stranica c jednaka nuli, prva i treca tacka se poklapaju * ********************************************************/ while (c==0) { printf("\nKoorinate prve i trece tacke se poklapaju!\n"); /**************************************** * * Unos prve tacke * *****************************************/ printf("\nUnesite koordinate prve tacke: "); printf("\n\tx= "); scanf("%lf", &x1); printf("\ty= "); scanf("%lf", &y1); /**************************************** * * Unos trece tacke * *****************************************/ printf("\nUnesite koordinate trece tacke: "); printf("\n\tx= "); scanf("%lf", &x3); printf("\ty= "); scanf("%lf", &y3); c = sqrt(pow((x1-x3), 2)+pow((y1-y3), 2)); } /***************************************************** * * Ponovno racunanje stranica je neophodno jer * moze da se desi da se na primer prva i treca koordinara * poklapaju, odnosno da je stranica c jednaka nulu. * Kada korinsik ponovo unese koordinate prve i treca tacke * moze da se desi da se jedan od njih dve poklopi sa dugom. * Zbog toga se ponovo racunaju stranice, * da bi se obezbedila veca sigurnost! * *********************************************************/ a = sqrt(pow((x1-x2), 2)+pow((y1-y2), 2)); b = sqrt(pow((x2-x3), 2)+pow((y2-y3), 2)); c = sqrt(pow((x1-x3), 2)+pow((y1-y3), 2)); } /************************************************ * * Ispis duzine stranica i obima trougla * *************************************************/ O = a+b+c; printf("\n\nStranica a je %.2f!\n", a); printf("\nStranica b je %.2f!\n", b); printf("\nStranica c je %.2f!\n", c); printf("\n Obim trougla je %.2f\n\n\n", O); /**************************************************** * * Provera da li korinsik zeli da ponovo izvrsi program * *****************************************************/ scanf("%c", &again); /*ovo je neophodno zbog entera iz bafera tastature */ printf("\n\nDa li zelite da ponovite program? (y/n) "); scanf("%c", &again); while (again!='y' && again!='n') { scanf("%c", &again); /*ovo je neophodno zbog entera iz bafera tastature */ printf("\nUnesite vrenost 'y' za DA ili 'n' za NE!\n"); printf("Da li zelite da ponovite program? (y/n) "); scanf("%c", &again); } } /**************************************************** * * Kraj programa * *****************************************************/ printf("\nKRAJ PROGRAMA\n\n\n"); }