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

Помогите написать учебно-демонстрационную прогу по работе с комплексными числами - C++

Восстановить пароль Регистрация
 
Flamy-man
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 6
30.04.2012, 14:10     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами #1
написать программу, демонстрирующую арифметические действия над комплексными числами.
обеспечить постраничный вывод теории из файла, пошаговую демонстрацию действий над комплексными числами и рандомный вывод вопросов и заданий для проверки усвоения материала пользователем.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2012, 14:10     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами
Посмотрите здесь:

Помогите написать прогу. C++
C++ Помогите написать простую прогу
Помогите пожалуйста с комплексными числами C++
C++ Помогите написать прогу..
Помогите написать прогу в С++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
30.04.2012, 15:22     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами #2
теория и вопросы и задания у вас есть? выкладывайте
Flamy-man
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 6
09.05.2012, 21:15  [ТС]     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами #3
это всё, что есть. сможете помочь? очень нужно
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,598
Записей в блоге: 17
09.05.2012, 21:18     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами #4
это всё, что есть. сможете помочь?
Не в математике.
Форум для помощи в программировании!
Flamy-man
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 6
09.05.2012, 21:20  [ТС]     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами #5
flamy-man@mail.ru - это мой электронный адрес. не могли бы вы мне написать, я подробнее расскажу о самом задании
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,598
Записей в блоге: 17
09.05.2012, 21:21     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами #6
не могли бы вы мне написать, я подробнее расскажу о самом задании
Не вижу смысла, пишите здесь
Flamy-man
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 6
09.05.2012, 22:12  [ТС]     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами #7
http://mat.1september.ru/2001/10/no10_1.htm

здесь теория по комплексным числам.

сама программа должна состоять из нескольких частей:

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

Добавлено через 4 минуты
демонстрация арифметических операций над комплексными числами:
сложение
вычитание
умножение
деление
возведение в степень
извлечение корня n-ой степени

Добавлено через 30 минут
так вы сможете помочь?
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,598
Записей в блоге: 17
09.05.2012, 22:15     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами #8
1. Вывод теории непосредственно в вашей программе проблематичный вопрос.Проблема соотоит в отображении формул.
Можно конечно использовать OLE объект, а теорию читать с документа MSWord.( Но и тут есть нюансы).Если это допустимо то думаю лучше запускать из вашей программы MSWord( или Браузер) и отображать в нем теорию
2. Можно реализовать используя std::complex или самописный класс вроде Класс Complex, ввод/вывод данных в 2 переменные
3. Ну это можно реализовать разными способами например как здесь Как написать программу тестирования

так вы сможете помочь?
Если вы имеете ввиду написать программу за вас (причем бесплатно), то - НЕТ
Flamy-man
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 6
09.05.2012, 22:18  [ТС]     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами #9
нет, я имел в виду то, что вы написали в предыдущем сообщении. дуаю, этого будет вполне достаточно. спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2012, 19:10     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами
Еще ссылки по теме:

C++ помогите написать прогу
C++ Операции и функции в работе в классе с комплексными числами С++ Visual Studio

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

Или воспользуйтесь поиском по форуму:
Flamy-man
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 6
24.05.2012, 19:10  [ТС]     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами #10
ниже код на программу.
помогите сделать функцию для перевода комплексного числа в тригонометрическую форму и обратно.

#include <iostream>
#include <fstream>
#include <ctime>
#include <complex>
#include <cmath>
#include <conio.h>
#include <windows.h>
#include <iomanip>
using namespace std;

int Test_FAQ[2][10];
int logic;
double Alpha = 0, N, real_, imag_, s_real_, s_imag_;
char i;

void teoriya();
void Calculator();
void ans(double rl, double im);
void Title_List();
void Menu();
void Statistic (int number, int logic);
void Rezult (int number, int right_answers);
int Test(int number);

int main()
{
ShowWindow( GetConsoleWindow() , SW_MAXIMIZE);
srand((unsigned)time(NULL));
setlocale(LC_ALL, "Russian");
fstream f("Statistic.txt",ios::out);
f.close();
Title_List();
_getch();
int navigator;
do
{
Menu();
cin>>navigator;
switch(navigator)
{
case 1:
{
system("cls");
teoriya();
} break;
case 2:
{
system("cls");
cout<<"Примеры выражений:"<<endl;
cout<<"Для операторов + - * / :"<<endl;
cout<<"a±bi'оператор'c±di"<<endl;
cout<<"Для операторов ^ - степень v - корень :"<<endl;
cout<<"a±bi'оператор'N"<<endl<<endl;
Calculator();
_getch();
}break;
case 3:
{
system("cls");
Test(0);
Rezult(0,0);
_getch();
cout<<endl<<"Вывести правильные ответы на экран? "<<endl<<"1 - да"<<endl<<"0 - нет"<<endl;
cin>>logic;
system("cls");
Statistic(0 , logic);
fstream f("Statistic.txt",ios:: app);
if (f.is_open())
{
f<<endl<<endl<<"**************************************************"<<endl;
}
f.close();
if (logic) _getch();
}break;
default:
{
system("cls");
break;
}
}
}
while (navigator!=0);
system("pause");
return 0;
}

void teoriya()
{
//teoriya
}

void ans(double rl, double im)
{
if (im>0)
{
cout<<rl<<"+"<<im<<"i";
}
else
{
cout<<rl;
if(im!=0)cout<<im<<"i";
}
cout<<endl<<endl;
}

void Calculator()
{
char operand;
cin>>real_;
cin>>imag_;
cin>>i;
cin>>operand;
complex<double> z (real_,imag_);
switch (operand)
{
case '+':
{
cin>>s_real_;
cin>>s_imag_;
cin>>i;
complex<double> j (s_real_,s_imag_);
complex<double> temp = z+j;
cout<<"("<<real_<<")+("<<imag_<<")*i"<<operand<<"("<<s_real_<<")+("<<s_imag_<<")*i";
cout<<"=(("<<real_<<")"<<operand<<"("<<s_real_<<"))+(("<<imag_<<")"<<operand<<"("<<s_imag_<<"))*i"<<"=";
ans(real(temp),imag(temp));
}break;
case '-':
{
cin>>s_real_;
cin>>s_imag_;
cin>>i;
complex<double> j (s_real_,s_imag_);
complex<double> temp = z-j;
cout<<"("<<real_<<")+("<<imag_<<")*i"<<operand<<"("<<s_real_<<")+("<<s_imag_<<")*i";
cout<<"=(("<<real_<<")"<<operand<<"("<<s_real_<<"))+(("<<imag_<<")"<<operand<<"("<<s_imag_<<"))*i"<<"=";
ans(real(temp),imag(temp));
}break;
case '*':
{
cin>>s_real_;
cin>>s_imag_;
cin>>i;
complex<double> j (s_real_,s_imag_);
complex<double> temp = z*j;
cout<<"(("<<real_<<")+("<<imag_<<")*i)"<<operand<<"(("<<s_real_<<")+("<<s_imag_<<")*i)";
cout<<"=(("<<real_<<")"<<operand<<"("<<s_real_<<"))+(("<<imag_<<")"<<operand<<"("<<s_real_<<"))*i";
cout<<"+(("<<real_<<")"<<operand<<"("<<s_imag_<<"))*i+(("<<imag_<<")"<<operand<<"("<<s_imag_<<"))*i^2";
cout<<"=(("<<real_<<")"<<operand<<"("<<s_real_<<")-("<<imag_<<")"<<operand<<"("<<s_imag_<<"))";
cout<<"*(("<<imag_<<")"<<operand<<"("<<s_real_<<")+("<<real_<<")"<<operand<<"("<<s_imag_<<"))*i"<<"=";
ans(real(temp),imag(temp));
}break;
case '/':
{
cin>>s_real_;
cin>>s_imag_;
cin>>i;
complex<double> j (s_real_,s_imag_);
complex<double> temp = z/j;
cout<<"(("<<setw(3)<<real_<<" )+("<<setw(3)<<imag_<<" )*i)";
cout<<" (("<<setw(3)<<real_<<" )*("<<setw(3)<<s_real_<<" ))+(("<<setw(3)<<imag_<<" )*("<<setw(3)<<s_imag_<<" ))";
cout<<" (("<<setw(3)<<imag_<<" )*("<<setw(3)<<s_real_<<" ))-(("<<setw(3)<<real_<<" )*("<<setw(3)<<s_imag_<<" ))";
cout<<endl<<"---------------- = ------------------------------ + ------------------------------- *i =";
ans(real(temp),imag(temp));
cout<<"(("<<setw(3)<<s_real_<<" )+("<<setw(3)<<s_imag_<<" )*i)";
cout<<" ( ("<<setw(3)<<s_real_<<" )^2+("<<setw(3)<<s_imag_<<" )^2 ) ";
cout<<" ( ("<<setw(3)<<s_real_<<" )^2+("<<setw(3)<<s_imag_<<" )^2 ) ";
}break;
case '^':
{
cin>>N;
double r = abs(z);
Alpha = acos((double)(real_/r))/atan(1.)*45;
complex<double> temp = pow(z,(N));
cout<<"r = |("<<real_<<")+("<<imag_<<")*i| = (("<<real_<<")^2+("<<imag_<<")^2)^(1/2) = "<<r<<endl;
cout<<"Alpha = arccos("<<real_<<"/"<<r<<") ="<<Alpha<<endl<<endl;
cout<<"(("<<real_<<")+("<<imag_<<"))"<<operand<<N;
cout<<" = ("<<r<<operand<<N<<")*(cos("<<N<<"*"<<Alpha<<") + i*sin("<<N<<"*"<<Alpha<<")) = ";
ans(real(temp),imag(temp));
}break;
case 'v':
{
cin>>N;
cout<<endl;
double r = abs(z);
Alpha = acos((double)(real_/r))/N;
cout<<"r = |("<<real_<<")+("<<imag_<<")*i| = (("<<real_<<")^2+("<<imag_<<")^2)^(1/2) = "<<r<<endl<<endl;
cout<<"Alpha = arccos("<<real_<<"/"<<r<<")/"<<N<<" = "<<Alpha/atan(1.)*45<<endl;
for (int counter=0 ; counter<N ; counter++)
{
if (counter) cout<<"Alpha = Alpha + 360/"<<N<<" = "<<Alpha/atan(1.)*45<<endl;
cout<<"(("<<real_<<")+("<<imag_<<"))^(1/"<<N<<")";
cout<<" = ("<<r<<"^(1/"<<N<<"))*(cos("<<Alpha/atan(1.)*45<<"/"<<N<<") + i*sin("<<Alpha/atan(1.)*45<<"/"<<N<<")) = ";
s_real_ = pow(r,(1./N))*cos(Alpha);
s_imag_ = pow(r,(1./N))*sin(Alpha);
ans(s_real_,s_imag_);
Alpha += (8.*atan(1.)/N);
}
_getch();
} break;
}
}

void Title_List()
{
cout<<" Астраханский государственный технический университет."<<endl;
cout<<" Учебно - демонстрационная программа операций над комплексными числами."<<endl;
cout<<" Выполнил студент группы ДИНР_11б - Денисенко Б."<<endl;
cout<<" г.АСТРАХАНЬ 2012г. "<<endl<<endl;
}

void Menu()
{
system("cls");
cout<<"1 - теория."<<endl;
cout<<"2 - калькулятор."<<endl;
cout<<"3 - тест."<<endl;
}

void Statistic (int number, int logic)
{
fstream f("Test_Q.txt",ios::in);
fstream g("Test_A.txt",ios::in);
fstream h("Statistic.txt",ios:: app);
if (f.is_open() && h.is_open())
{
int Nomer_Otveta;
char Vopros[100],otvet[50],Otvet[50],Otvet_2[50];
for (int i=0; i<Test_FAQ[1][number]; i++)
{
g>>Nomer_Otveta;
f.getline(Vopros,sizeof(Vopros));
if (Nomer_Otveta == 1) f.getline(Otvet,sizeof(Otvet));
else
{if (Test_FAQ[2][number] == 1) f.getline(Otvet_2,sizeof(Otvet_2));
else f.getline(otvet,sizeof(otvet));}
if (Nomer_Otveta == 2) f.getline(Otvet,sizeof(Otvet));
else
{if (Test_FAQ[2][number] == 2) f.getline(Otvet_2,sizeof(Otvet_2));
else f.getline(otvet,sizeof(otvet));}

if (Nomer_Otveta == 3) f.getline(Otvet,sizeof(Otvet));
else
{if (Test_FAQ[2][number] == 3) f.getline(Otvet_2,sizeof(Otvet_2));
else f.getline(otvet,sizeof(otvet));}

if (Nomer_Otveta == 4) f.getline(Otvet,sizeof(Otvet));
else
{if (Test_FAQ[2][number] == 4) f.getline(Otvet_2,sizeof(Otvet_2));
else f.getline(otvet,sizeof(otvet));}
}
number++;
h<<endl<< number <<" вопросом был: "<<endl;
h<< Vopros <<endl;
h<<"Правильный ответ: "<<Nomer_Otveta<<" - "<< Otvet <<endl;
if ( Nomer_Otveta == Test_FAQ[2][number-1]) h<<"Вы ответили правильно."<<endl;
else h<<"Вы ответили : "<<Test_FAQ[2][number-1]<<" - "<< Otvet_2 <<endl;
if (logic)
{
cout<<endl<< number <<" вопросом был: "<<endl;
cout<< Vopros <<endl;
cout<<"Правильный ответ: "<<Nomer_Otveta<<" - "<< Otvet <<endl;
if ( Nomer_Otveta == Test_FAQ[2][number-1]) cout<<"Вы ответили правильно."<<endl;
else cout<<"Вы ответили : "<<Test_FAQ[2][number-1]<<" - "<< Otvet_2 <<endl;
}
if (number < 5)
{
f.close();
h.close();
Statistic(number,logic);
}
}else cout<<"Файл не найден!";
f.close();
h.close();
}

void Rezult (int number, int right_answers)
{
fstream f("Test_A.txt",ios::in);
if (f.is_open())
{
int otvet;
for (int i=0; i<Test_FAQ[1][number]; i++) f>>otvet;
if (otvet == (Test_FAQ[2][number])) right_answers++;
if (number < 4)
{
f.close();
Rezult(number+1, right_answers);
}
else cout<<endl<<"Правильных ответов: "<< right_answers <<" из 5.";
} else cout<<"Файл не найден!";
f.close();
}

int Test(int number)
{
fstream f("Test_Q.txt",ios::in);
if (f.is_open())
{
bool work;
int randomizer,question_number=1;
char Vopros[100],otvet_1[50],otvet_2[50],otvet_3[50],otvet_4[50];
while (number < 5)
{
f.getline(Vopros,sizeof(Vopros));
f.getline(otvet_1,sizeof(otvet_1));
f.getline(otvet_2,sizeof(otvet_2));
f.getline(otvet_3,sizeof(otvet_3));
f.getline(otvet_4,sizeof(otvet_4));
randomizer = rand()%10; work = true;
for (int i=0 ; i<number; i++)
{
if (Test_FAQ[1][i] == question_number) work = false;
}
if (randomizer == 1 && work)
{
system("cls");
cout<<Vopros<<endl;
cout<<otvet_1<<endl;
cout<<otvet_2<<endl;
cout<<otvet_3<<endl;
cout<<otvet_4<<endl;
Test_FAQ[1][number] = question_number;
cout<<endl<<"Ваш ответ: ";
cin>>Test_FAQ[2][number];
while (Test_FAQ[2][number]<1 || Test_FAQ[2][number]>4)
{
cout<<"Такого ответа не существует. Выберите номер заново: ";
cin>>Test_FAQ[2][number];
}
number++;
}
if (question_number == 10)
{
f.close();
Test(number);
return 0;
}
else question_number++;
}
} else cout<<"Файл не найден!";
f.close();
return 0;
}
Yandex
Объявления
24.05.2012, 19:10     Помогите написать учебно-демонстрационную прогу по работе с комплексными числами
Ответ Создать тему
Опции темы

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