Функции за геометрични фигури

Да се създаде програма с функции, улесняващи решаването на геометрични задачи:

  1. Функция за проверка дали една един правоъгълник е квадрат
  2. Функция за проверка дали 3 числа са валидни страни на триъгълник
  3. * Функция за проверка вида на триъгълник – равнобедрен, равностранен, правоъгълен, друг
  4. Функции за пресмятане на лице и обиколка на квадрат, правоъгълник, кръг, триъгълник
  5. Функция, която получава параметрите на правоъгълник и извежда пълната информация за него: дали е квадрат и лицето и обиколката му
  6. Функция, която получава три числа и извежда пълната информация: дали са страни на триъгълник, видът му и и лицето и обиколката му

Напишете програма, която демонстрира тези функции.

Публикувано в СИП с етикети . Постоянна връзка.

12 Responses to Функции за геометрични фигури

  1. Ivelina Krsteva каза:
     
    #include <iostream>
    
    using namespace std;
    
    // dali  e kvadrat?
    void kvadrat_li (int a, int b)
    {
    
    	if (a==b) 
    	{
    		cout<<"yes"<<endl;
    	} 
    	else 
    	{
    		cout<<"no"<<endl;	
    	} 
    
    }
    // dali e triugulnik?
    void triugulnik_li (int a, int b, int c)
    
    {
    	if ((a+b>c)or(b+c>a)or(c+a>b))
    	{
    		cout<<"yes"<<endl;
    	} 
    	else 
    	{
    		cout<<"no"<<endl;
    	}
    }
    
    int main(int argc, char** argv) {
    	int a, b, c;
    	cin>>a>>b>>c;
    	
    	//dali e kvadrat
    	kvadrat_li(a,b);
    	
    	//dali e tiugulnik
    	triugulnik_li(a,b,c);
    	
    	return 0;
    }
     
  2. Marin каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char** argv) {
    
    //    dali edin pravougulnik e kvadrat
    {
    int a, b;
    a=2;
    b=2;
    if (a==b)
    	cout << "kvadrat e" <<endl;
    else
    	cout << "ne e kvadrat"<<endl;
    	
    	
    }
    //   dali 3 chisla sa validni strani  na triugulnik
    {
    int a, b,c;
    a=2;
    b=5;
    c=10;
    if ((a+b>c) and (a+c>b) and (b+c>a))
    	cout<<"cislata sa validni strani";
    else
    	cout<<"chislata ne sa validini strani";
    
    
    }
    
  3. Alexander1 каза:
    #include <cstdlib>
    #include <iostream>
    #include <math.h>
    using namespace std;
    //namirane na vida na triugulnika
    void kakuv_e (int a,int b,int c){
    	if ((a==b)&&(b==c)){
    		cout<<"triugulnika e ravnostranen"<<endl;
    		
    	}
    	else if ((a!=b)&&(b!=c)&&(a!=c)){
    	cout<<"triugulnika e raznostranen"<<endl;	
    	}
    	else if (((a=b)!=c)||((a=c)!=b)||((b=c)!=a)){
    		cout<<"triugulnika e ravnobedren"<<endl;
    	}
    	if (((c*c)==(a*a)+(b*b))||((a*a)==(c*c)-(b*b))||((b*b)==(c*c)-(a*a))){
    		cout<<"triugulnika e pravougulen"<<endl;
    	}		
    }
    int main(int argc, char** argv) {
    	double a,b,c;
    	cin>>a>>b>>c;
    	
    	kakuv_e(a,b,c);
    	
    	//ot Alex, Veli, Kalo :D
    	
    	return 0;
    }
  4. MartinPlamenov каза:
    #include <iostream>
    #include <cstdlib>
    #include <iostream>
    #include <cmath>
      
    using namespace std;
    
    bool proverkaKvadrat(double a,double b){
    	if(a==b)
    	return true;
    	else return false;
    }
    bool provekraTriugulnik(double a,double b,double c){
    	if ((a+b>c)&&(a+c>b)&&(b+c>a))
    		return true;
    		else return false;
    	}
    double proverkaAllTrigulnik(double a,double b,double c){
    
    	if ((c*c==(a*a)+b*b)||(a*a==(c*c)-b*b)||(b*b==(c*c)-a*a)){
    	cout<<"Pravougulen triugulnik!";
    }
    if ((a==b)||(b==c)||(c==a)){
    	cout<<"Ravnobedren triugulnik!";
    }
    if (a==b==c){
    	cout<<"Ravnostranen triugulnik";
    }
    }
    double daliEKvadrat(double a,double b){
    	if (a==b)
    	cout<<"Kvadrat s lice S="<<a*a<<" i obikolka P="<<4*a;
    	else 
    	cout<<"Pravougulnik s lice S="<<a*b<<" i obikolka P="<<2*(a+b);
    }
    
    double proverkaTri(double a,double b,double c){
    		double p;
    		p=a+b+c;
    		if ((a+b>c)&&(a+c>b)&&(b+c>a)){
    			if ((a==b)||(b==c)||(c==a))
    			cout<<"Ravnobedren triugulnik s lice S="<<(sqrt((c/2)*(c/2)+b*b)*c)/2<<" i obikolka P="<<p;
    			if(a==b==c)
    			cout<<"Ravnostranen triugulnik s lice S="<<(a*sqrt(3))/2<<" i obikolka P="<<p;
    			else cout<<"Raznostranen triugulnik s lice S="<<sqrt((p/2)*(p/2-a)*(p/2-b)*p/2-c)<<" i boikolka P="<<p;
    		}
    		else {
    			cout<<"Ne e triugulnik!";
    		}
    }
    
    
      int main(){
      	if(proverkaKvadrat(1,4)){
      		cout<<"Kvadrat e!";
    	  }else {
    	  	cout<<"Ne e kvadrat!";
    	  }
    	  if (provekraTriugulnik(2,7,8)){
    	  cout<<"Triugulnik e!";
    	  }else {
    	  	cout<<"Ne e triugulnik";
    	  }
      
        return 0;
    }
  5. MartinPlamenov каза:

    Fixed

    #include <iostream>
    #include <cstdlib>
    #include <iostream>
    #include <cmath>
       
    using namespace std;
     
    //------------------------------------------------------------
    bool proverkaKvadrat(double a,double b){
        if(a==b)
        return true;
        else return false;
    }
    
    //------------------------------------------------------------
    bool provekraTriugulnik(double a,double b,double c){
        if ((a+b>c)&&(a+c>b)&&(b+c>a))
            return true;
            else return false;
        }
    
    //------------------------------------------------------------
    void proverkaAllTrigulnik(double a,double b,double c){
     
        if ((c*c==(a*a)+b*b)||(a*a==(c*c)-b*b)||(b*b==(c*c)-a*a))
    	{
        	cout<<"Pravougulen triugulnik!";
    	}
    	if ((a==b)||(b==c)||(c==a))
    	{
        	cout<<"Ravnobedren triugulnik!";
    	}
    	if (a==b==c)
    	{
        	cout<<"Ravnostranen triugulnik";
    	}
    }
    //------------------------------------------------------------
    void daliEKvadrat(double a,double b){
        if (a==b)
        cout<<"Kvadrat s lice S="<<a*a<<" i obikolka P="<<4*a;
        else
        cout<<"Pravougulnik s lice S="<<a*b<<" i obikolka P="<<2*(a+b);
    }
     
    //------------------------------------------------------------
    void proverkaTri(double a,double b,double c){
            double p;
            p=a+b+c;
            if ((a+b>c)&&(a+c>b)&&(b+c>a))	
    		{
                if ((a==b)||(b==c)||(c==a))
                	cout<<"Ravnobedren triugulnik s lice S="<<(sqrt((c/2)*(c/2)+b*b)*c)/2<<" i obikolka P="<<p;
                if(a==b==c)
                	cout<<"Ravnostranen triugulnik s lice S="<<(a*sqrt(3))/2<<" i obikolka P="<<p;
                else cout<<"Raznostranen triugulnik s lice S="<<sqrt((p/2)*(p/2-a)*(p/2-b)*p/2-c)<<" i boikolka P="<<p;
            }
            else 	
    		{
                cout<<"Ne e triugulnik!";
            }
    }
     
     
      int main(){
        if(proverkaKvadrat(1,4))
    	  {
            cout<<"Kvadrat e!";
          }else {
            cout<<"Ne e kvadrat!";
          }
          if (provekraTriugulnik(2,7,8))
    	  {
          	cout<<"Triugulnik e!";
          }else 
    	  {
            cout<<"Ne e triugulnik";
          }
       
        return 0;
    }
  6. Ivelina Krsteva каза:
     
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    //proverqva dali e kvadrat
    void kvadrat_li_e (int a, int b)
    {
     
        if (a==b) 
        {
            cout<<"yes"<<endl;
        } 
        else
        {
            cout<<"no"<<endl;   
        } 
     
    }
    
    //proverqva dali dadenite 3 strani obrazuvat triugulnik
    void triugulnik_li (int a, int b, int c)
     
    {
        if ((a+b>c)or(b+c>a)or(c+a>b))
        {
            cout<<"yes"<<endl;
        } 
        else
        {
            cout<<"no"<<endl;
        }
    }
    
    //informaciq za pravougulnik
    void pravougulnik (int x, int y)
    {
    	if (x==y)
    	{
    		cout<<"kvadrat"<<endl;
    	}
    	else if (x!=y)
    	{
    		cout<<"pravougulnik"<<endl;
    	}
    	
    	int S=x*y;
    	int P=x+y;
    	cout<<"S="<<S<<endl;
    	cout<<"P="<<P<<endl;
    	
    }
    
    //vid na triugulnika
    void triugulnik (int a, int b, int c)
    {
    	if ((a==b)or(a==c)or(b==c))
    	{
    		cout<<"ravnobedren"<<endl;
    	}
    	if ((a==b)and(b==c))
    	{
    		cout<<"ravnostranen"<<endl;
    	}
    	if  ((a!=b)and(b!=c))
    	{
    		cout<<"raznostranen"<<endl;
    	}
    }
    
    int main(int argc, char** argv) {
    	int x, y,z;
    	cin>>x>>y;
    	kvadrat_li_e(x,y);
    	triugulnik_li(x,y,z);
    	pravougulnik(x,y);
    	triugulnik(x,y,z);
    	return 0;
    }
    
    
  7. Alexander1 каза:
    #include <iostream>
    #include<cmath>
    
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    using namespace std;
    
    double okrujnost(double a){
    	double pi=3.14;
    	double P=2*pi*a;
    	double S=a*a*pi;
    	cout<<"Obikolkata na okrujnostta e: "<<P<<endl;
    	cout<<"liceto na okrujnostta e: "<<S<<endl;
    }
    double  kakuv_e_triugulnika (int a,int b,int c){
        if ((a==b)&&(b==c)){
            cout<<"triugulnika e ravnostranen"<<endl;
             int P=a+b+c;
             int S=(a*a+sqrt(3))/2;
             cout<<"P="<<P<<endl;
             cout<<"S="<<S<<endl;
        }
        else if ((a!=b)&&(b!=c)&&(a!=c)){
        cout<<"triugulnika e raznostranen"<<endl;
    	int P=a+b+c;
    	int p=(a+b+c)/2;
    	int S=sqrt(p*(p-a)*(p-b)*(p-c));
    	cout<<"P="<<P<<endl;
    	cout<<"S="<<S<<endl;
        }
        else if (((a=b)!=c)||((a=c)!=b)||((b=c)!=a)){
            cout<<"triugulnika e ravnobedren"<<endl;
            int P=((2*a)+b)||((2*c)+a)||((2*b)+c);
            int p=(a+b+c)/2;
    		int S=sqrt(p*(p-a)*(p-b)*(p-c));
    		cout<<"P="<<P<<endl;
    		cout<<"S="<<S<<endl;
            
        }
        if (((c*c)==(a*a)+(b*b))||((a*a)==(c*c)-(b*b))||((b*b)==(c*c)-(a*a))){
            cout<<"triugulnika e pravougulen"<<endl;
            int S=(a*b)/2;
            int P=a+b+c;
            cout<<"S="<<S<<endl;
            cout<<"P="<<P<<endl;
        }   
    }
        double daliEKvadrat(double a,double b){
        if (a==b){
        	cout<<"kvadrat e "<<endl;
        	int P=4*a;
        	int S=a*a;
        	cout<<"P="<<P<<endl;
        	cout<<"S="<<S<<endl;
        }
        	else{
        		cout<<"pravougulnik e "<<endl;
        	int P=2*(a+b);
        	int S=a*b;
        	cout<<"P="<<P<<endl;
        	cout<<"S="<<S<<endl;
    		}	
    	}
    	double Usporednik(double a, double b, double h){
    		if(a!=b){
    			cout<<"usporednik e"<<endl;
    			int P=2*(a+b);
    			int S=a*h;
    			cout<<"P="<<P<<endl;
    			cout<<"S="<<S<<endl;
    		}
    	}	
    
    
    int main(int argc, char** argv) {
    double a,b,c,h;
    cout<<"vavedete stoinosti za a,b,c,h"<<endl;
    cin>>a>>b>>c>>h;
    kakuv_e_triugulnika(a,b,c);
    okrujnost(a);
    daliEKvadrat(a,b);
    Usporednik(a,b,h);
    	return 0;
    }
    • Данаил каза:

      Алекс, много изчерпателно и добре оформено, но пробвай функциите от първите 4 точки не да отпечатват стойността, а да я връщат като резултат. Например отделна функция за лице на квадрат и отделна за обиколка и т.н. И после да използваш тези стойности във функциите от 5-та и 6-та точка, като извикаш първите функции.

Вашият коментар