Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Комлексные числа  (Прочитано 4039 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Sanya_cccp
Гость
« : 23-12-2005 00:01 » 

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

Есть задача : прочитать неизвестное кол-во Комлексных чисел из фалйа ( file.txt вида :10.23+i*5.54 *6.66+i*7.77 +33.333+i*3.332 -3.25+i*45.344) , нужно вывести  ответ (суммы разности деления умножение комп.чисел)

вот в принципе и все .. конечно внизу я приложу формулировку того что действительно нужно сделать  Жжешь

вот то что я уж написал    Ха-ха-ха ( только чтени к.ч из файла , и попытка их в тупуюю сложть ,(на ето можно не смотреть)  но ето наверно грубоваот,  и так писать не желательно , к тому же работает все очень относительно.. 

Код:
//Main.cpp

#include <iostream>

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include "complex.h"
Double_Complex s;
#include <fstream>
using namespace std;


ifstream f;
void main ()
{

//s.summ(operand_1[0],operand_2[0]);
char zna='+';
char ii='i';
char mu='*';

double im[50];
double re[50];
int h=50;
s.indif(f,&im[1],&re[1]);
int g=1;
do
{

cout<<g<<")"<<im[g]<<zna<<ii<<mu<<re[g]<<endl;

g++;}
while(g!=9);

double otvet1;
double otvet2;
s.summ(&otvet1,&otvet2);
cout<<"\n"<<endl;
cout<<otvet1<<zna<<ii<<mu<<otvet2<<endl;
getch();
return;

}





Код:
//Complex.h
#ifndef __Complex_H
#define __Complex_H

#include <iostream>
#include <string>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

#include <fstream>
using namespace std;

class Double_Complex
{
private:
      //double Winkel;
      //double Betrag;
      double Im;
      double Re;
public:
double Double_Complex::indif(ifstream &f,double operand_1[50],double operand_2[50]);
double Double_Complex::summ(double operand_1[1],double operand_2[1]);
   /*   
     /* double sagIm()
    {
        return Im;
    }
       
      double sagRe()
    {
        return Re;
    }
       
      double sagBetrag()
    {
        return Betrag;
    }
       
      double sagRadWinkel()
    {
        return Winkel;
    }

       
          double sagGrad()
        {
            return toGrad(Winkel);
        }

     
       Double_Complex(double re, double im)
    {
        Re=re;
        Im=im;

        Betrag=berechneBetrag();
                Winkel=atan2(Im,Re);

}*/
};
#endif


Код:
//Complex.cpp

#include <math.h>
#include "Complex.h"
#include <conio.h>
#include <string>
#include <vector>
using namespace std;

double Double_Complex::indif(ifstream &f,double operand_1[1],double operand_2[1])
{
f.open("file.txt");
char znak,i, mul;
//double ff=0.0;
//double gg=0.0;



//char *buffer = "+";
int g=0;
do{

f>>operand_1[g]>>znak>>i>>mul>>operand_2[g];
if (znak!='+')
cout<<("prmer kopleksmnogo chesla : a+i*b,   ispravte !")<<endl;

//Double_Complex resultat(operand_1,operand_2);
//f>>operator;
if(znak=='-')
znak='+';

g++;
}
while(!f.eof());


return operand_1[g],operand_2[g];
}

double Double_Complex::summ(double operand_1[1],double operand_2[1])
{

char znak,i,mul;
double otv1=0.0;
double otv2=0.0;

int t=1;

//cout<<"ETO ONO---"<<operand_1[0]<<"  "<<operand_1[1]<<endl;

cout<<"\n"<<endl;
cout<<"Otvet, summa:"<<endl;

do
{
otv1=otv1+(operand_1[t]+operand_1[t]);
otv2=otv2+(operand_2[t]+operand_2[t]);
   

t++;}
while(t!=9);
return otv1,otv2;

}








Вот сама формулировка как оещал выше , более точнаяя, и требовательная (к решению которой я должен придти).
:

Постановка задачи
Создайте класс Complex для представления комплексных данных и инкапсулируйте в нём основные операции с комплексными данными.
По крайней мере, предусмотрите следующие методы:
   конструктор, с помощью которого можно инициализировать комплексное данное;
   метод, позволяющий задать произвольное значение комплексного данного;
   методы, обеспечивающие выполнение арифметических действий над комплексными данными (сложение, вычитание, умножение, деление, модуль);
   метод print, обеспечивающий печать комплексного данного на консоль или в любой файл;
   метод toString, обеспечивающий преобразование комплексного данного в строку символов.
Усовершенствуйте класс Complex, обеспечив реализацию следующей функциональности:
   Инициализация комплексного числа значением плавающего типа;
   Перегруженные арифметические операции для выполнения основных арифметических действий;
   Перегруженные операции >> и << для ввода и вывода комплексных данных (см. приложение II учебного пособия);
   Преобразование из типа Complex к типу double (когда возможно).
Продумайте как организовать обработку ошибок при выполнении некорректных операций с объектами класса Complex. Что это за некорректные операции?
Спроектируйте комплект тестирующих программ для проверки разработанного класса.
Используя и развивая определение класса Complex, спроектируйте набор классов для представления следующих абстракций:
   Список комплексных данных;
   Массив комплексных данных с контролем индексирования;
   Матрица комплексных данных . с контролем индексирования.
Напишите тестирующие программы, загружающие соответствующие контейнеры комплексных данных из файла, и обеспечивающие разнообразную обработку комплексных данных в рамках реализованной функциональности.
« Последнее редактирование: 12-12-2007 15:44 от Алексей1153++ » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines