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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vodmis
1 / 1 / 0
Регистрация: 18.10.2012
Сообщений: 15
#1

Класс "Комплексное число". Как считать и записать данные в файл? - C++

27.07.2014, 23:51. Просмотров 649. Ответов 1
Метки нет (Все метки)

Надо переделать код программы, чтобы данные шли из входного файла и записывались в выходной

Во входном файле 2 комплексных числа a и b. И думаю, их записать в виде,например,
1 3 2 4
5 3 6 2
И считать его в отдельные массивы или в один и тот же?
А в выходном файле записываются результаты вычислений с,d,f
Помогите с написанием самого кода вышеописанного..



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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#include <stdio.h>
#include <conio.h>
#include <math.h>
using namespace std;
 
class Complex
{
    private:
    double Re;
    double Im;
    double Imj;
    double Imk;
    double Mod;
    public:
        Complex();
        Complex(double re,double im,double imj,double imk);
        void PrintComplex();
        double Modul();
        void Sopr();
   friend Complex operator+(Complex&Add1,Complex&Add2);
   friend Complex operator*(Complex&Add1,Complex&Add2);
   friend Complex operator-(Complex&Add1,Complex&Add2);
   friend Complex operator/(Complex&Addd1,Complex&Add2);
        };
        Complex::Complex()
        {
            Re=0;
            Im=0;
            Imj=0;
            Imk=0;
        }
        Complex::Complex(double re,double im,double imj,double imk)
        {
            Re=re;
            Im=im;
            Imj=imj;
            Imk=imk;
 
        }
        void Complex::PrintComplex()
        {
            if (Im<0&&Imj<0&&Imk<0)
            {
         printf("%.2lf %.2lf*i %.2lf*j %.2lf*k\n",Re,Im,Imj,Imk);
            }
            if (Im>0&&Imj>0&&Imk>0)
            {
         printf("%.2lf+%.2lf*i+%.2lf*j+%.2lf*k\n",Re,Im,Imj,Imk);
            }
               if (Im<0&&Imj>0&&Imk>0)
        {
            printf("%.2lf %.2lf*i+%.2lf*j+%.2lf*k\n",Re,Im,Imj,Imk);
            }
        if (Im<0&&Imj<0&&Imk>0)
            {
            printf("%.2lf %.2lf*i %.2lf*j+%.2lf*k\n",Re,Im,Imj,Imk);
 
            }
 
            if (Im>0&&Imj<0&&Imk<0)
            {
                printf("%.2lf+ %.2lf*i%.2lf*j %.2lf*k\n",Re,Im,Imj,Imk);
 
            }
               if (Im>0&&Imj>0&&Imk<0)
            {
                printf("%.2lf+%.2lf*i+%.2lf*j %.2lf*k\n",Re,Im,Imj,Imk);
 
            }
 
            if (Im>0&&Imk>0&&Imj<0)
            {
                printf("%.2lf+%.2lf*i %.2lf*j +%.2lf*k\n",Re,Im,Imj,Imk);//потвор
 
            }
            if (Im<0&&Imk<0&&Imj>0)
            {
                printf("%.2lf% .2lf*i+%.2lf*j %.2lf*k\n",Re,Im,Imj,Imk);
 
            }
        }
        double Complex::Modul()
        {
           Mod=(pow(Re,2)+pow(Im,2)+pow(Imj,2)+pow(Imk,2));
           return Mod;
                        }
        void Complex::Sopr()
        {
            Re=Re;
            Im=Im*-1;
            Imj=Imj*-1;
            Imk=Imk*-1;
            }
 
         Complex operator+(Complex&Add1,Complex&Add2)
         {
             Complex znach1;
             znach1.Re=Add1.Re+Add2.Re;
             znach1.Im=Add1.Im+Add2.Im;
             znach1.Imj=Add1.Imj+Add2.Imj;
             znach1.Imk=Add1.Imk+Add2.Imk;
             return Complex(znach1.Re,znach1.Im,znach1.Imj,znach1.Imk);
 
             }
             Complex operator*(Complex&Add1,Complex&Add2)
             {
             Complex znach1;
             znach1.Re=((Add1.Re*Add2.Re)-(Add1.Im*Add2.Im)-(Add1.Imj*Add2.Imj)-(Add1.Imk*Add2.Imk));
             znach1.Im=((Add1.Re*Add2.Im)+(Add1.Im*Add2.Re)+(Add1.Imj*Add2.Imk)-(Add1.Imk*Add2.Imj));
             znach1.Imj=((Add1.Re*Add2.Imj)+(Add1.Imj*Add2.Re)+(Add1.Imk*Add2.Im)-(Add1.Im*Add2.Imk));
             znach1.Imk=((Add1.Re*Add2.Imk)+(Add1.Imk*Add2.Re)+(Add1.Im*Add2.Imj)-(Add1.Imj*Add2.Im));
             return Complex(znach1.Re,znach1.Im,znach1.Imj,znach1.Imk);
             }
             Complex operator-(Complex&Add1,Complex&Add2)
         {
             Complex znach1;
             znach1.Re=Add1.Re-Add2.Re;
             znach1.Im=Add1.Im-Add2.Im;
             znach1.Imj=Add1.Imj-Add2.Imj;
             znach1.Imk=Add1.Imk-Add2.Imk;
             return Complex(znach1.Re,znach1.Im,znach1.Imj,znach1.Imk);
 
 
             }
             Complex operator/(Complex&Add1,Complex&Add2)
             {
               double q;
               double Mod;
              Complex znach1;
              Mod=Add2.Modul();
              Add2.Re=Add2.Re;
              Add2.Im=Add2.Im*-1;
              Add2.Imj=Add2.Imj*-1;
              Add2.Imk=Add2.Imk*-1;
              q=1/Mod;
             znach1.Re=(((Add1.Re*Add2.Re)-(Add1.Im*Add2.Im)-(Add1.Imj*Add2.Imj)-(Add1.Imk*Add2.Imk))*q);
             znach1.Im=(((Add1.Re*Add2.Im)+(Add1.Im*Add2.Re)+(Add1.Imj*Add2.Imk)-(Add1.Imk*Add2.Imj))*q);
             znach1.Imj=(((Add1.Re*Add2.Imj)+(Add1.Imj*Add2.Re)+(Add1.Imk*Add2.Im)-(Add1.Im*Add2.Imk))*q);
             znach1.Imk=(((Add1.Re*Add2.Imk)+(Add1.Imk*Add2.Re)+(Add1.Im*Add2.Imj)-(Add1.Imj*Add2.Im))*q);
             znach1.PrintComplex();
             Complex znach2;
             Add1.Re=Add1.Re;
             Add1.Im=Add1.Im*-1;
             Add1.Imj=Add1.Imj*-1;
             Add1.Imk=Add1.Imk*-1;
              znach2.Re=(((Add1.Re*Add2.Re)-(Add1.Im*Add2.Im)-(Add1.Imj*Add2.Imj)-(Add1.Imk*Add2.Imk))*q);
             znach2.Im=(((Add1.Re*Add2.Im)+(Add1.Im*Add2.Re)+(Add1.Imj*Add2.Imk)-(Add1.Imk*Add2.Imj))*q);
             znach2.Imj=(((Add1.Re*Add2.Imj)+(Add1.Imj*Add2.Re)+(Add1.Imk*Add2.Im)-(Add1.Im*Add2.Imk))*q);
             znach2.Imk=(((Add1.Re*Add2.Imk)+(Add1.Re*Add2.Re)+(Add1.Im*Add2.Imj)-(Add1.Imj*Add2.Im))*q);
             znach2.PrintComplex();
                         }
 
         int main()
         {
    Complex a(1,4,2,3);
    a.PrintComplex();
    Complex b(2,1,5,4);
    b.PrintComplex();
    Complex c=a+b;
    c.PrintComplex();
    Complex d=a*b;
    d.PrintComplex();
    Complex f=a-b;
    f.PrintComplex();
    Complex e=a/b;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2014, 23:51     Класс "Комплексное число". Как считать и записать данные в файл?
Посмотрите здесь:

Класс "комплексное число" - C++
Здрасти!!!! Я не могу никак написать программу!!!! А завтра уже сдавать!!! Пожалста помогите моя жизнь в ваших руках!!!!! Задание: ...

Класс "Комплексное число" - C++
Нужно создать класс Complex и реализовать +-*/ возведение в степень комплексного числа и Получение корня n-й степени +-*/ я...

Класс "Комплексное число" - C++
Сразу скажу, что я умею пользоваться поиском. Однако необходимого решения на форуме я не нашёл. Новую тему я создал по причине того, что...

Класс "Комплексное число" - C++
Уважаемые программеры, я еще не совсем силен в C++, так что подскажите: нужно вносить какие-то изменения в код? Заранее благодарю. ...

Класс "Комплексное число" - C++
Написать программу с базовым классом для реализации комплексных чисел в алгебраической форме и основных операций с ними : сложения,...

Класс "Комплексное число" - C++
Производный от СТРОКА класс КОМЛЕКСНОЕ_ЧИСЛО. Строки данного класса состоят из двух полей, разделенных символом i. Первое поле задает...

Sos! Записать класс Stack в файл, "крашит" - C++
Ребятки!! Помогайте! Не могу разобраться с записью\чтением в файл(методы Read и Write)...По коду вроде всё прозрачно,но намудрил с...

В файл с помощью структуры записать следующие данные: "название папки, ее размер, дата создания" - C++
Добрый день! Есть файл в нем с помощью структуры надо записать такие данные: &quot;название папки,ее размер, и дата создания&quot;. После заполнения...

Определить перегруженный бинарный и унарный оператор* для класса "Комплексное число" - C++
Как можно реализовать перегруженный бинарный и унарный оператор* для класса &quot;Комплексное число&quot;?

Структура "Комплексное число", проблемы с выводом - C++
Задание - массив структур типа &quot;Комплексное число&quot;. Неправильно работает, точнее, неправильный вывод. Будто проверяет только первое условие...

Разработка класса "Комплексное число" - C++
помогите решить задание,вот оно: Разработать класс, набор методов (конструктор, деструктор и указаны методы) для программной модели...

Описать структуру "комплексное число" - C++
Можете пож-ста проверить правильно ли написана программа по условию Описать структуру &quot;комплексное число&quot;, и написать функцию которая...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
28.07.2014, 05:48     Класс "Комплексное число". Как считать и записать данные в файл? #2
Это кватернионы какие-то.

Во входном файле 2 комплексных числа a и b
И считать его в отдельные массивы или в один и тот же?
Если вам известно, что там ровно два числа, зачем вам массивы? Если уж писать на Си++, перегрузите operator<< и operator>>.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru