Pereiti prie turinio

C++ Trikampis ir taškas


Rekomenduojami pranešimai

http://i.gyazo.com/a280b85c77cc86531efb08e0f39418b7.png

 

Taigi paprasčiausiai neberandu klaidos, prasedėjau gal 3 valandas iš viso ir neradau kur kas blogai gal jūs pamatysit. Meta bloga atsakyma...

#

include <iostream>
#include <math.h>

using namespace std;

// Didelio trikampio krastines
double KrastinesD(int X[],int Y[], double K[]) // kiekvienos krastines ilgis
{
	for(int i=1; i<=3 ;i++){
	if (i==3)K[i]=sqrt(pow(X[i]-X[i-2],2)+pow(Y[i]-Y[i-2],2));
	else K[i]=sqrt(pow(X[i]-X[i+1],2)+pow(Y[i]-Y[i+1],2));
	}
}
// Didelio trikampio plotas
double Sdid(double K[])
{
	double perim=0;
	for(int i=1; i<=3;i++)
		perim+=K[i];
	double S;
	S=sqrt(perim/2*(perim/2-K[1])*(perim/2-K[2])*(perim/2-K[3]));
	return S;
}
// Krastines nuo tasko iki kiekvienos didelio trkampio krastines
double Krastmaz(int X[], int Y[],int xt,int yt, double M[]){
for(int i=1; i<=3 ;i++){
M[i]=sqrt(pow(xt-X[i],2)+pow(yt-Y[i],2));
}
}
// Mazuju trikampiu plotai
double Smaz(double M[], double K[], double N[], double MP[]){
    for(int i=1; i<=3; i++){
    N[i]=0;
	for(int i=1; i<=3;i++){ // mazuju trikampiu perimetrai
		if (i==3) N[i]+=K[i]+M[i]+M[i-2]; 
		else N[i]+=K[i]+M[i]+M[i+1];
}
		for(int i; i<=3; i++){
			if (i==3) MP[i]=sqrt(N[i]/2*(N[i]/2-K[i])*(N[i]/2-M[i])*(N[i]/2-M[i-2])); // herono formule
		}
	}

}

int main ()
{
int X[100], Y[100];
double K[100], N[100], M[100], MP[100];
int xt, yt;
double h;
cout<<"ivesk trikampio tasku kordinates 3 kartus"<<endl;
for(int i=1; i<=3; i++)
cin>>X[i]>>Y[i];
cout<<"iveskite tasko kordinates"<<endl;
cin>>xt>>yt;
KrastinesD(X, Y, K);
Krastmaz(X, Y, xt, yt, M);
Smaz(M, K, N, MP);
h=Sdid(K);
cout<<"Didelis trikampis="<<h<<endl;
if(Sdid(K)==MP[1]+MP[2]+MP[3]) cout<<" trikampio viduje"<<endl;
else cout<<"trikampio isoreje"<<endl;
return 0;
}



Redagavo xamer
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nesigilinai labai, bet ši vieta neaiškiai atrodo

for(int i=1; i<=3; i++){
           N[i]=0;
               for(int i=1; i<=3;i++){ // mazuju trikampiu perimetrai
                       if (i==3) N[i]+=K[i]+M[i]+M[i-2]; 
                       else N[i]+=K[i]+M[i]+M[i+1];
       }
                       for(int i; i<=3; i++){
                               if (i==3) MP[i]=sqrt(N[i]/2*(N[i]/2-K[i])*(N[i]/2-M[i])*(N[i]/2-M[i-2])); // herono formule
                       }
               }

Trys ciklai vienas kitame su tuo pačiu kintamuoju i, kam to reikia?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...