Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 16
1

Программа для расчета комплексных чисел

04.07.2016, 22:19. Показов 4817. Ответов 7
Метки нет (Все метки)

Здравствуйте. В условии моей задачи присутсвуют комплекнсые числа.И некоторые действия с ними.
A = a1 + a2i; B = b1 + b2i;
A*A = C; n*A = C; B*A = C; модуль A = C; A - B = C; A + B = C; fi = arctg (a2i/a2). Так вот.Мне надо написать программу, которая будет все это считать.Точнее выше написанное это подпрограммы, и мне нужно написать основу. Потом мне преподаватель должен будет дать задание, значения которого я должна буду ввести в свою программу, и он должна будет посчитать.
Я написала, но в ней как я понимаю ошибки. Помогите пожалуйста рахобраться.
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
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
#include <iostream>
using namespace std;
int main ()
{
setlocale (0,"");
int a1,a,b,b1,i,n,x;
float A,B,fi;
    printf ("Vvedite a1,a,b,b1,n,x,fi\n");
    scanf ("%i%i%i%i%i%i%f",&a,&b, &c);
pow(i,2)=-1
A=a1*a2i;
B=b1+b2i
if (x==1)
{
C=A*A;
printf ("C=%d\n",C);
        
}
if (x==2)
{
C=nA;
printf ("C=%d\n",C);
        
}
if (x==3)
{
C=B*A;
printf ("C=%d\n",C);
        
}
if (x==3)
{
C=abs(A[i]);
printf ("C=%d\n",C);
        
}
if (x==4)
{
C=A-B;
printf ("C=%d\n",C);
        
}
if (x==4)
{
C=A+B;
printf ("C=%d\n",C);
        
}
if (x==3)
{
fi=arctg(ф2i/a2);
printf ("C=%d\n",C);
        
}
   } 
getch();
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.07.2016, 22:19
Ответы с готовыми решениями:

Программа–калькулятор комплексных чисел.
ребят срочно помогите ...... на с++ Напишите программу–калькулятор комплексных чисел. Для...

Программа с классами комплексных чисел и перегрузками операций
Задание состоит из таких частей: Для выбранного варианта определите класс, включив в него:...

Простейшая программа для начинающих, ввод и вывод комплексных чисел, структуры
Нужно ввести и вывести комплексные числа С языком си только начинаю знакомиться Где какие ошибки?...

Калькулятор для комплексных чисел
помогите пожалуйста сделать калькулятор для комплексных чисел в Delphi, обязательно с...

7
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
04.07.2016, 22:31 2
Лин17, наверное, преподаватель ждет от вас реализацию класса комплексных чисел. Попробуйте его реализовать.
0
Модератор
Эксперт С++
11482 / 9400 / 5649
Регистрация: 18.12.2011
Сообщений: 25,114
05.07.2016, 08:07 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
#include <clocale>
#include <iostream>
#include <cmath>
#include <complex>
 
using namespace std;
int main ()
{
    setlocale (LC_ALL,"Rus");
    cout<<"Введите первое комплексное число в виде (re,im):";
    complex<double> A;cin>>A;
    cout<<"Введите второе комплексное число в виде (re,im):";
    complex<double> B;cin>>B;
    cout<<"Введите\n"
        <<"1 - Возвести первое число в квадрат\n"
        <<"2 - Умножить первое число на константу \n"
        <<"3 - Умножить первое число на второе\n"
        <<"4 - Вычесть из первое числа второе\n"
        <<"5 - Сложить первое число со вторым\n"
        <<"6 - Сложить первое число со вторым\n"
        <<"7 - Определить аргумент первого числа\n";
    int x;cin>>x;
    complex<double> C;
    const double n=2.5;
    switch(x)
    {
    case 1:
        C=A*A;
        cout<<C;
        break;
    case 2:
        C=A*n;
        cout<<C;
        break;
    case 3:
        C=B*A;
        cout<<C;
        break;
    case 4:
        {
            double cd=abs(A);
            cout<<cd;
            break;
        }
    case 5:
        C=A-B;
        cout<<C;
        break;
    case 6:
        C=A+B;
        cout<<C;
        break;
    case 7:
        {
            double  fi=atan2(A.imag(),A.real());
            cout<<fi;
        }
    }
    system("pause>NUL");
    return 0;
}
0
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 16
07.07.2016, 22:13  [ТС] 4
Здравствуйте. Мне преподаватель дал форумулу, состоящую из комплексных чисел.
Я написала программу, но на моем компьютере она не работает, выделяет строчку с stdafx.h.
Можете помочь исправить ошибки если они будут?
Условие:
A = a1 + a2i; B = b1 + b2i;
A*A = C; n*A = C; B*A = C; модуль A = C; A - B = C; A + B = C; fi = arctg (a2i/a2);
Формула (A,B- комплексные вектора):
(2*AB-A^2)*(3B+2A)
Я сначала просто перемножила скобки,сначала для действительной части потом для мнимой. И ввела то, что полцчилось.
(6*a1*b1*b1^2 )+((a*1^2)*b1)-(2*a1^3)
(-6*a2*b2*b2^2)-((a2^2)*b2)+(2*a2^2) минус,т.к i^2=-1
Но я не знаю правильно ли я делала или нет
И на компьютерах в моемуниверситете, не проходит cin,cout и т.д
Программа:


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
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "math.h"
 
float summ1(float a1, float a2)
         {
           return a1+a2;
         }
       float summ2(float b1, float b2)
         {
           return b1+b2;
         }
  float raznost1(float a1, float a2)
         {
           return a1-a2;
         }
       float raznost2(float b1, float b2)
         {
           return b1-b2;
         }
float proiz1 (float a1,float a2,float b1,float b2) {
    return a1*b1-a2*b2;
}
float proiz2 (float a1,float a2,float b1,float b2) {
    return a1*b2+a2*b1;
}
float kvad1 (float a1, float a2) {
    return a1*a1+a1*a2;
}
float kvad2 (float a1, float a2) {
    return a2*a1-a2*a2;
}
float modul (float a1,float a2) {
    return sqrt(a1*a1+a2*a2);
}
 float nA1(float a1, float n)
         {
           return a1*n;
         }
       float nA2(float a2, float n)
         {
           return a2*n;
}
float  fi (float a2,float a1) {
    return atan(a2/a1);
}
 
int main()
{
    float a1,a2,b1,b2,c1,c2;
    printf("vvedite a1:");
    scanf("%f",&a1);
    printf("vvedite a2:");
    scanf("%f",&a2);
    printf("vvedite b1:");
    scanf("%f",&b1);
    printf("vvedite b2:");
    scanf("%f",&b2);
    c1=raznost1(summ(proiz1(a1,b1,b1,b1)6),proiz1(a1,a1,b1)),(a1,a1,a1,2));
    c2=summ2(raznost2(proiz1(a2,b2,b2,b2)(-6)),proiz1(a2,a2,b2)),(a2,a2,a2,2));
    printf("c=%f + %fi= %f(cos(%f) + sin(%f)i) \n ",c1,c2,modul(c1,c2),q(c2,c1),q(c2,c1));
    printf("|A|=%f |B|=%f |C|=%f",modul(a1,a2),modul(b1,b2),modul(c1,c2));
    getche();
    return 0;
}
0
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 16
08.07.2016, 03:33  [ТС] 5
Здравствуйте. Мне дано задание посчитать по формуле комплексные числа. Но мне выдает ошибку - выделяет последние скобочки. Если их нет, тоже ошибка. Уже голову сломала, как исправить?

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
#include*<stdio.h>
#include*<conio.h>
#include*<math.h>
#include*<locale.h>
float modulA(float &a1, float &ai2, float absA);
float modulC(float &c1, float &ci2, float absC);
float AxAxB(float &a1, float &ai2, float &b1, float &bi2, float &AxAxBRe, float &AxAxBIm);
float AxBxB(float &a1, float &ai2, float &b1, float &bi2, float &AxBxBRe, float &AxBxBIm);
float AxAxA(float &a1, float &ai2, float AAARe, float AAAIm);
 
int main()
{
    setlocale(LC_ALL, "RUS");
    
    float a1,ai2,b1,bi2,t,d,c1,ci2,C,absC,AAARe,AAAIm,AxAxBRe,AxAxBIm,AxBxBRe,AxBxBIm;
    printf("vvedite a1,ai2,b1,bi2\n");
    scanf("%f%f%f%f",&a1,&ai2,&b1,&bi2);
    AxAxB(a1,ai2,b1,bi2,AxAxBRe,AxAxBIm);
    AxBxB(a1,ai2,b1,bi2,AxBxBRe,AxBxBIm);
    AxAxA(a1,ai2,AAARe,AAAIm);
    c1 = AxBxBRe+AxAxBRe-AAARe;
    ci2 = AxBxBIm+AxAxBIm-AAAIm;
    if (ci2>0)
    {
        printf("C = %.2f+%.2fi\n",c1,ci2);
    }
    else
    {
        printf ("С = %.2f-%.2fi\n",c1,ci2);
    }
    modulC(c1,ci2,absC);
    getch();
    return 0;
}
float AxAxB(float &a1, float &ai2, float &b1, float &bi2, float &AxAxBRe, float &AxAxBIm)
{
    AxAxBRe = a1*a1*b1 - a1*ai2*bi2;
    AxAxBIm = ai2*a1*b1 - ai2*ai2*bi2;
    if (AxAxBIm>0)
    {
        printf("Произведение A*A*B = %.2f+%.2fi\n",AxAxBRe,AxAxBIm);
    }
    else
    {
        printf ("Произведение A*A*B = %.2f%.2fi\n",AxAxBRe,AxAxBIm);
    }
}
 
float AxAxA(float &a1, float &ai2, float AAARe, float AAAIm)
{
    AAARe = 2*a1*a1*a1 -a1*ai2*ai2;
    AAAIm = 2*ai2*a1*a1-ai2*ai2*ai2;
    if (AAAIm>0)
    {
        printf("Произведение A*A*A = %.2f+%.2fi\n",AAARe,AAAIm);
    }
    else
    {
        printf ("Произведение A*A*A = %.2f%.2fi\n",AAARe,AAAIm);
    }
}
 
float AxBxB(float &a1, float &ai2, float &b1, float &bi2, float &AxBxBRe, float &AxBxBIm)
{
    AxBxBRe = 6*a1*b1*b1;
    AxBxBIm = 6*(ai2*b1 + ai2*b1-ai2*bi2*bi2);
    if (AxBxBIm>0)
    {
        printf("Произведение A*B*B = %.2f+%.2fi\n",AxBxBRe,AxBxBIm);
    }
    else
    {
        printf ("Произведение A*B*B = %.2f%.2fi\n",AxBxBRe,AxBxBIm);
    }
}
0
0 / 0 / 1
Регистрация: 18.04.2016
Сообщений: 9
08.07.2016, 07:24 6
По поводу файла stdafx: если вы запускаете не через Visual Studio, то не будет работать, т.к. этот заголовок их фишка. Если используете другую ide, то удалите этот файл. Если хотите использовать cin и cout, то включать надо iostream. Код предоставлю чуть позже
0
Заблокирован
08.07.2016, 08:23 7
Я видел немножко другой вариант работы с комплексными числами. Этот код используется в преобразовании Фурье.
Вложения
Тип файла: zip FFT.ZIP (3.5 Кб, 10 просмотров)
0
Модератор
Эксперт С++
11482 / 9400 / 5649
Регистрация: 18.12.2011
Сообщений: 25,114
08.07.2016, 08:50 8
Цитата Сообщение от Лин17 Посмотреть сообщение
выделяет последние скобочки
Читайте сообщения об ошибках:
Ошибка 9 error C4716: AxAxB: должна возвращать значение d:\current\cpp\test\test.cpp 47
Эта функция должна возвратить переменную типа float.

У Вас еще ряд ошибок, которые выдаются как предупреждения
(я уж не говорю уж о том, что звездочка после include - это нонсенс).
Предупреждение 3 warning C4101: C: неиспользованная локальная переменная d:\current\cpp\test\test.cpp 15
Предупреждение 4 warning C4101: d: неиспользованная локальная переменная d:\current\cpp\test\test.cpp 15
Предупреждение 5 warning C4101: t: неиспользованная локальная переменная d:\current\cpp\test\test.cpp 15
Предупреждение 6 warning C4700: использована неинициализированная локальная переменная "AAAIm" d:\current\cpp\test\test.cpp 20
Предупреждение 7 warning C4700: использована неинициализированная локальная переменная "AAARe" d:\current\cpp\test\test.cpp 20
Предупреждение 8 warning C4700: использована неинициализированная локальная переменная "absC" d:\current\cpp\test\test.cpp 31
Ошибка 9 error C4716: AxAxB: должна возвращать значение d:\current\cpp\test\test.cpp 47
Ошибка 10 error C4716: AxAxA: должна возвращать значение d:\current\cpp\test\test.cpp 61
Ошибка 11 error C4716: AxBxB: должна возвращать значение d:\current\cpp\test\test.cpp 75
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2016, 08:50

Перегрузить () для комплексных чисел
Всем привет! Помогите пожалуйста с перегрузкой () для комплексных чисел. Условие: d1(0)=d2, d1,d2 -...

Программа расчета квадрата двух целых чисел
Создать программу расчета квадрата двух целых чисел, объявленных как переменные.

Калькулятор для подсчёта комплексных чисел с++
Ребята нужна помощь с написанием такой вот программы. Калькулятор комплексных чисел, на основе...

Вывод графика для комплексных чисел
ПОдскажите как это сделать. Нужно выводить график отдельно для действительной части, и отдельно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru