Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: KernelPanic   (19.05.2012 в 17:47)
Без классов примерно так получилось.

#include<math.h>
#include<iostream>

using namespace std;

double dlinna(double a, double b)
{
             a=sqrt(pow(b,2)+pow(a,2));
             return a;
             }
double scal(double a,double b,double e,double f)
{
       double ab;
       ab=a*e+b*f;
       return ab;
}
main()
{
    cout<<"Vvedite chislo vibrannogo puncta, najmite enter"<<endl;
    cout<<"1. dlinna vectora"<<endl<<"2. Umnojenie na chislo"<<endl<<"3. scalar proizved vectorov"<<endl<<"4. slojenie vectorov"<<endl<<"5. exit"<<endl;
      int sw;
      cin>>sw;
      
   switch(sw)
{

     case 1: //Длинна вектора A
      {
           double a,b,d;
      cout<<"Vector A="<<endl;
      cin>>a;
      cin>>b;
      d=dlinna(a,b);
      cout<<"Dlina A="<<d<<endl;
            return 0;
      }
      case 2://умножение вектора на число
      {
           double a,b,c,ca,cb;
      cout<<"Vector A="<<endl;
      cin>>a;
      cin>>b;
          cout<<"vvedite chislo"<<endl;
          cin>>c;

ca=c*a;
cb=c*b;
cout<<"Proizvedenie A na chislo="<<endl;
cout<<ca<<endl;
cout<<cb<<endl;
            return 0;
      }
      case 3:// Скалярное произведение векторов
      {
           double a,b;
      cout<<"Vector A="<<endl;
      cin>>a;
      cin>>b;
      
      cout<<"vector B="<<endl;
      double e, f;
      cin>>e;
      cin>>f;
      
      double ab;
      ab=scal(a,b,e,f);

      cout<<"proizvedenie="<<ab<<endl;
            return 0;
      }
      case 4://сложение векторов
      {
      cout<<"Vector A="<<endl;
      double a,b;
      cin>>a;
      cin>>b;
      
      cout<<"vector B="<<endl;
      double e, f;
      cin>>e;
      cin>>f;
            
      if(a==e||b==f)
      {
      double ab;
      ab=scal(a,b,e,f);
      double d,t;
      d=dlinna(a,b);//Длина вектора A
      t=dlinna(e,f);//Длина вектора B
      double alpha;
      alpha=(ab/d*t);//cos alpha м.у векторами
      cout<<"cos a="<<alpha<<endl;
      double summ;
      d=fabs(d);
      t=fabs(t);
      summ=pow(d,2)+pow(t,2)+2*d*t*alpha;
      summ=sqrt(summ);
      cout<<summ<<endl;
      }
      if(a==f||b==e)
      {
                    double ab;
      ab=scal(a,b,e,f);
      double d,t;
      d=dlinna(a,b);//Длина вектора A
      t=dlinna(e,f);//Длина вектора B
      double alpha;
      alpha=(ab/d*t);//cos alpha м.у векторами
      double summ;
      d=fabs(d);
      t=fabs(t);
      summ=sqrt(pow(d,2)+pow(t,2)-2*d*t*alpha);      
      cout<<summ<<endl;
                    }
      else
      {
          cout<<"pri zadannih coordinatah slojenie nevozmojno"<<endl;
            
            }
            return 0;
      }
      case 5:
      {
            
            return 0;
      }  
      }
}

Почему второе условие if не отрабатывает?
Входные параметры пробовал различные.


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: