Форум программистов, компьютерный форум CyberForum.ru

Калькулятор комплексных чисел. Помогите плз найти ошибки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
sTudeNto4kAa
Сообщений: n/a
18.02.2012, 13:40     Калькулятор комплексных чисел. Помогите плз найти ошибки #1
Написала програмку для работы с комплексными числами, с С++ знакома поверхностно и прога эта не работает подскажите где я ошиблась, буду признательна))

Добавлено через 16 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# include <iostream>
# include <math.h>
using namespace std;
struct kompl
{ float x,y;};
 
kompl summ (kompl a, kompl b)
{kompl s,z1,z2;
s.x=z1.x+z2.x;
s.y=z1.y+z2.y;
return s;
}
 
kompl mult (kompl a, kompl b)
{kompl m,z1,z2;
m.x=z1.x*z2.x-z1.y*z2.y;
m.y=z1.x*z2.y+z1.y*z2.x;
return m;
}
 
float r(kompl a)
{float r;
kompl z1;
r=sqrt(z1.x*z1.x+z1.y*z1.y);
return r;
}
 
float fi(kompl a)
{float fi;
kompl z1;
if (z1.x==0)
{fi=3.1415926/2;}
else {fi=z1.y/z1.x;}
return fi;
}
 
kompl st(kompl a, float k)
{kompl z1,s;
float n;
s.x=(exp(n*log(r(z1))))*(cos((fi(z1)*n)));
s.y=(exp(n*log(r(z1))))*(sin((fi(z1)*n)));
return s;
}
 
void main()
{kompl k1,k2;
int v;
float e;
cout<<"Vvedite komleksnye chisla"<<endl;
cin>>k1.x;
cin>>k1.y;
cin>>k2.x;
cin>>k2.y;
cout<<"1-summa"<<endl;
cout<<"2-proizvedenie"<<endl;
cout<<"3-stepen"<<endl;
cin>>v;
if (v==1)
{cout<<summ(k1,k2).x<<", "<<summ(k1,k2).y<<endl;}
else 
{if (v==2)
{cout<<mult(k1,k2).x<<", "<<mult(k1,k2).y<<endl;}
else {cout<<"Vvedite stepen"<<endl;
cin>>e;
cout<<st(k1,e).x<<", "<<st(k1,e).y<<endl;
cout<<st(k2,e).x<<", "<<st(k2,e).y<<endl;
}
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2012, 13:40     Калькулятор комплексных чисел. Помогите плз найти ошибки
Посмотрите здесь:

Помогите найти ошибки, пожалуйста C++
ПРОВЕРТЕ НА ОШИБКИ ПЛЗ! C++
C++ помогите найти ошибки
C++ Помогите найти ошибки. С++. ООП
Помогите найти ошибки в программе. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
schdub
 Аватар для schdub
2902 / 1246 / 222
Регистрация: 19.01.2009
Сообщений: 3,211
Завершенные тесты: 1
18.02.2012, 17:23     Калькулятор комплексных чисел. Помогите плз найти ошибки #2
У вас много ошибок... начнем, например, с использования неинициализованной стековой переменной. Вот взгляните на вашу функцию:
C++
1
2
3
4
5
6
kompl mult (kompl a, kompl b)
{kompl m,z1,z2;
m.x=z1.x*z2.x-z1.y*z2.y;
m.y=z1.x*z2.y+z1.y*z2.x;
return m;
}
в ней нет смысла, т.к. в качестве аргументов функции вы передаете комплексные числа a и b, но в суммировании участвуют z1 и z2, к тому же не инициализированные.
Luckyz
Сообщений: n/a
18.02.2012, 23:38     Калькулятор комплексных чисел. Помогите плз найти ошибки #3
Сам не очень опытный программист и цель была, в том чтобы прога работала, вроде брэйкать перестала, проверьте правильность подсчета функций.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
#include <math.h>
using namespace std;
 
 
struct kompl
{ 
    float x,y;
};
 
kompl summ (kompl a, kompl b)
{
    kompl s;
    s.x=a.x+b.x;
    s.y=a.y+b.y;
    return s;
}
 
kompl mult (kompl a, kompl b)
{
    kompl m;
    m.x=a.x*b.x-a.y*b.y;
    m.y=a.x*b.y+a.y*b.x;
    return m;
}
 
float r(kompl a)
{
    float r;
    r=sqrt(a.x*a.x+a.y*a.y);
    return r;
}
 
float fi(kompl a)
{   
    float fi;
    if (a.x==0)
    {fi=3.1415926/2;}
    else {fi=a.y/a.x;}
    return fi;
}
 
kompl st(kompl a, float k)
{
    kompl s;
    s.x=(exp(k*log(r(a))))*(cos((fi(a)*k)));
    s.y=(exp(k*log(r(a))))*(sin((fi(a)*k)));
    return s;
}
 
void main()
{
    kompl k1,k2;
    int v;
    float e;
    cout<<"Vvedite komleksnye chisla"<<endl;
    cin>>k1.x;
    cin>>k1.y;
    cin>>k2.x;
    cin>>k2.y;
    cout<<"1-summa"<<endl;
    cout<<"2-proizvedenie"<<endl;
    cout<<"3-stepen"<<endl;
    cin>>v;
    if (v==1)
    {
        cout<<summ(k1,k2).x<<", "<<summ(k1,k2).y<<endl;
    }
    else 
    {
        if (v==2)
        {
            cout<<mult(k1,k2).x<<", "<<mult(k1,k2).y<<endl;
        }
        else 
        {
            cout<<"Vvedite stepen"<<endl;
            cin>>e;
            cout<<st(k1,e).x<<", "<<st(k1,e).y<<endl;
            cout<<st(k2,e).x<<", "<<st(k2,e).y<<endl;
        }
    }
}
sTudeNto4kAa
Сообщений: n/a
19.02.2012, 13:05     Калькулятор комплексных чисел. Помогите плз найти ошибки #4
большое спасибо))
Yandex
Объявления
19.02.2012, 13:05     Калькулятор комплексных чисел. Помогите плз найти ошибки
Ответ Создать тему
Опции темы

Текущее время: 04:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru