Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Операции с комплексными числами - файл курсовая.doc


Операции с комплексными числами
скачать (204.9 kb.)

Доступные файлы (24):

ComplexNums.exe
ComplexNums.pdb
ComplexNums.vshost.exe
ComplexNums.vshost.exe.manifest
ComplexNums.csproj
ComplexNums.csproj.user
ComplexNums.sln
ComplexNums.suo
Form1.cs
Form1.Designer.cs
Form1.resx
ComplexNums.csproj.FileListAbsolute.txt2kb.06.06.2010 21:47скачать
ComplexNums.csproj.GenerateResource.Cache
ComplexNums.exe
ComplexNums.Form1.resources
ComplexNums.pdb
ComplexNums.Properties.Resources.resources
Program.cs
AssemblyInfo.cs
Resources.Designer.cs
Resources.resx
Settings.Designer.cs
Settings.settings
курсовая.doc263kb.06.01.2011 14:47скачать

содержание
Загрузка...

курсовая.doc

Реклама MarketGid:
Загрузка...
Министерство образования Российской Федерации
Государственное образовательное учреждение высшего

профессионального образования
КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра _____________ВТ и АСУ_____________________


ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту (работе)
по дисциплине Объектно-ориентированое программирование__

(наименование дисциплины)

На тему_________операции с комплексными числами.________

(тема курсового проекта (работы)
Выполнил студент группы______________________

________________________________________________

(ф.и.о.)

Допущен к защите __________________________________________
Руководитель проекта ________________________________________
Защищен _______________ Оценка ________________________

(дата)

Члены комиссии _____________________________________________ ____________________________________________________________

(подпись, дата, расшифровка подписи)
2010 г.
Государственное образовательное учреждение высшего

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

(КубГТУ)
Кафедра__________ ВТ и АСУ _______________________


З А Д А Н И Е

на курсовое проектирование
Студенту:___ _____ группы_______2___________ курса

факультета ________КТАС и ЗИ_______________________________

специальности ______________230105__________________

тов. _____ _________________________

ф.и.о., шифр
Тема проекта:_____операции с комплексными числами ________

___________________________________________________________

Содержание задания:___ 1.Сложение,вычитание,деление,

возведение в степень__комплексных чисел.___________________

Рекомендуемая литература:____________________________________

___________________________________________________________

___________________________________________________________

Срок выполнения проекта: с " ^ 23 " _января_по "_1_"июня 2010_г.

Срок защиты: "____"_______20___г.

Дата выдачи задания: "_23_" января 2010г.
Руководитель проекта ________________________________________

подпись , ф.и.о., звание, степень

Задание принял студент _______________________________

подпись, дата
Содержание


Реферат

Курсовая работа 18 листов, 10 рисунков, 6 источников литературы.
C#, деление, сложение, комплексные числа
Цель работы – закрепление приобретенных на лабораторных занятиях навыков алгоритмизации задач с использованием структурного подхода, а также программирования на языке высокого уровня.
1. Задание курсовой работы:
Написать программу, позволяющую осуществлять операции с комплексными числами.

Программа должна обеспечить ввод с клавиатуры одного или двух комплексных чисел и вычисление требуемых параметров одного числа или осуществление арифметических операций с двумя числами.


1.1 ^ Назначение программы:
Программа предназначена для работы с комплексными числами. Программа может складывать, вычитать, умножать, делить одного или двух комплексных чисел, и вывести результат. На форме располагаются шесть текстовых окон. Верхние четыре окна, для ввода чисел z1 и z2, а нижнее для вывода расчетов. В нижнем правом углу окно для возведения в степень n.
1.2 ^ Математическая постановка задачи

Комплексным числом называется выражение вида a + ib, где a и b – любые действительные числа, i – специальное число, которое называется мнимой единицей. Для таких выражений понятия равенства и операции сложения и умножения вводятся следующим образом:

а) Два комплексных числа a + ib и c + id называются равными тогда и только тогда, когда a = b и c = d.

б) Суммой двух комплексных чисел a + ib и c + id называется комплексное число a + c + i(b + d).

в) Произведением двух комплексных чисел a + ib и c + id называется комплексное число ac – bd + i(ad + bc).

Комплексные числа часто обозначают одной буквой, например, z = a + ib. Действительное число a называется действительной частью комплексного числа z, действительная часть обозначается a = Re z. Действительное число b называется мнимой частью комплексного числа z, мнимая часть обозначается b = Im z. Заметим, что арифметические операции над комплексными числами вида z = a + i · 0 осуществляются точно так же, как и над действительными числами. Действительно,

frame1

frame2
В отличие от действительных чисел, числа вида 0 + ib называются чисто мнимыми. Часто просто пишут bi, например, 0 + i3 = 3i.


1.3

Описание классов:

public class ComplexNumber //класс, реализующий комплексное число

public float Re = 0f; // Действительная часть

public float Im = 1f; // Мнимая часть


1.4

Методы:

public static float Abs(ComplexNumber cn)

// Вычисляет модуль комплексного числа

public static ComplexNumber Summa(ComplexNumber cn1, ComplexNumber cn2)

// Вычисляет сумму двух комплексных чисел

public static ComplexNumber Raznost(ComplexNumber cn1, ComplexNumber cn2)

// Вычисляет разность двух комплексных чисел

public static ComplexNumber Multipli(ComplexNumber cn1, ComplexNumber cn2)

// Вычисляет произведение двух комплексных чисел

public static ComplexNumber Delen(ComplexNumber cn1, ComplexNumber cn2)

// Вычисляет деление двух комплексных чисел

public static ComplexNumber Pow(ComplexNumber cn, float n) // Возводит комплексное число в степень n
^ 1.5 Работа с программой:

Вычисляет сумму двух комплексных чисел:

public static ComplexNumber Summa(ComplexNumber cn1, ComplexNumber cn2)

{

//переменная для записи результата суммы

ComplexNumber CN = new ComplexNumber();

//сумма вычисляется по формуле

//z1+z2=(x1+x2)+i(y1+y2)

//вычисляем действительную часть

CN.Re = cn1.Re + cn2.Re;

//вычисляем мнимую часть

CN.Im = cn1.Im + cn2.Im;

//возвращаем результат

return CN;


Вычисляет разность двух комплексных чисел:

public static ComplexNumber Raznost(ComplexNumber cn1, ComplexNumber cn2)

{

//переменная для записи результата разности

ComplexNumber CN = new ComplexNumber();

//разность вычисляется по формуле

//z1-z2=(x1-x2)+i(y1-y2)

//вычисляем действительную часть

CN.Re = cn1.Re - cn2.Re;

//вычисляем мнимую часть

CN.Im = cn1.Im - cn2.Im;

//возвращаем результат

return CN;

}



Вычисляет произведение двух комплексных чисел:

public static ComplexNumber Multipli(ComplexNumber cn1, ComplexNumber cn2)

{

//переменная для записи результата умножения

ComplexNumber CN = new ComplexNumber();

//произведение вычисляется по формуле

//z1*z2=(x1*x2-y1*y2)+i(x1*y2+y1*x2)

//вычисляем действительную часть

CN.Re = cn1.Re * cn2.Re - cn1.Im * cn2.Im;

//вычисляем мнимую часть

CN.Im = cn1.Re * cn2.Im + cn1.Im * cn2.Re;

//возвращаем результат

return CN;

}



Вычисляет деление двух комплексных чисел:

public static ComplexNumber Delen(ComplexNumber cn1, ComplexNumber cn2)

{

//переменная для записи результата деления

ComplexNumber CN = new ComplexNumber();

//сумма вычисляется по формуле

//z1/z2=(x1*x2+y1*y2)/(x2^2+y2^2)+i(y1*x2-x1*y2)/(x2^2+y2^2)

//вычисляем действительную часть

CN.Re = (cn1.Re * cn2.Re + cn1.Im * cn2.Im) / (cn2.Re * cn2.Re + cn2.Im * cn2.Im);

//вычисляем мнимую часть

CN.Im = (cn1.Im * cn2.Re - cn1.Re * cn2.Im) / (cn2.Re * cn2.Re + cn2.Im * cn2.Im);

//возвращаем результат

return CN;

}



Вычисляет модуль комплексного числа:

public static float Abs(ComplexNumber cn)

{

//модуль вычисляем по формуле

//|z|=sqrt(x^2+y^2)

float m = (float)Math.Sqrt(cn.Re * cn.Re + cn.Im * cn.Im);

//возвращаем результат

return m;

}




Возводит комплексное число в степень n:

public static ComplexNumber Pow(ComplexNumber cn, float n)

{

//комплексное число 1+i0

ComplexNumber CN = new ComplexNumber(1, 0);

//перемножаем данное число друг с другом n раз

//где n - показатель степени, в которую возводят число

for (int i = 0; i < n; i++)

CN = Multipli(CN, cn);

//возвращаем результат

return CN;

}



Можно также складывать, вычитать, умножать и делить одного комплексного числа:


Складывание:



Вычитание:


Умножение:



Деление:




1.6

Блок-схема:



1.7

Код программы:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;
namespace ComplexNums

{

public partial class Form1 : Form

{

public Form1()

{

//инициализация компонентов формы

InitializeComponent();

}
//Меняет местами значения чисел z1 и z2

private void button1_Click(object sender, EventArgs e)

{

//временная переменная

string s;

//считываем значение действительной части z1...

s = textBox1.Text;

//заменяем ее значением действительной части z2...

textBox1.Text = textBox3.Text;

//и записываем это значение в поле действительной части z2

textBox3.Text = s;

//считываем значение мнимой части z1...

s = textBox2.Text;

//заменяем ее значением мнимой части z2...

textBox2.Text = textBox4.Text;

//и записываем это значение в поле мнимой части z2

textBox4.Text = s;

}
//производит операции над комплексными числами

private void button2_Click(object sender, EventArgs e)

{

//переменная для записи результата

ComplexNumber CN = new ComplexNumber(0, 0);

//комплексное число 1

ComplexNumber cn1 = new ComplexNumber();

//комплексное число 2

ComplexNumber cn2 = new ComplexNumber();

//обрабатываем исключения при считывании чисел

try

{

//Определяем комплексные числа

//считываем действительную часть z1

//если поле пусто, то ставим значение = 0

if (textBox1.Text == "") cn1.Re = 0f;

//иначе, считываем значение из элемента

else cn1.Re = (float)Convert.ToDouble(textBox1.Text);

//считываем мнимую часть z1

//если поле пусто, то ставим значение = 0

if (textBox2.Text == "") cn1.Im = 0f;

//иначе, считываем значение из элемента

else cn1.Im = (float)Convert.ToDouble(textBox2.Text);

//если на z2 не стоит флажок, значит второе число

//не используется

if (!checkBox2.Checked)

{

//поэтому второе число будет являтся первым

//т.е. все действия будут совершаться с одним

//и тем же числом

cn2.Re = cn1.Re;

cn2.Im = cn1.Im;

}

//иначе, если второе чило используется...

else

{

//считываем действительную часть z2

//если поле пусто, то ставим значение = 0

if (textBox3.Text == "") cn2.Re = 0f;

//иначе, считываем значение из элемента

else cn2.Re = (float)Convert.ToDouble(textBox3.Text);

//считываем мнимую часть z2

//если поле пусто, то ставим значение = 0

if (textBox4.Text == "") cn2.Im = 0f;

//иначе, считываем значение из элемента

else cn2.Im = (float)Convert.ToDouble(textBox4.Text);

}

}

catch

{

//если найдена ошибка, выводим в поле результата сообщение

textBox5.Text = "Ошибка при вводе чисел";

//выходим из функции

return;

}

//обрабатываем исключения при вычислениях

try

{

//В зависимости от того, какая операция выбрана

//вызываем соответствующие функции

if (radioButton1.Checked) CN = ComplexNumber.Summa(cn1, cn2); //сложение

if (radioButton2.Checked) CN = ComplexNumber.Raznost(cn1, cn2); //вычитание

if (radioButton3.Checked) CN = ComplexNumber.Multipli(cn1, cn2); //умножение

if (radioButton4.Checked) CN = ComplexNumber.Delen(cn1, cn2); //деление

if (radioButton5.Checked) CN.Re = ComplexNumber.Abs(cn1); //модуль

//возведение в степень

if (radioButton6.Checked)

{

//считываем показатель степени

float n = (float)Convert.ToDouble(textBox6.Text);

//вызываем необходимую функцию

CN = ComplexNumber.Pow(cn1, n);

}

}

catch

{

//если найдена ошибка, выводим в поле результата сообщение

textBox5.Text = "Ошибка при вычислении";

//выходим из функции

return;

}

//Вывод результата

//если мнимая часть положительная, выводим результат в виде Re + iIm

if (CN.Im > 0) textBox5.Text = CN.Re.ToString() + " + i" + CN.Im.ToString();

//если мнимая часть отрицательная, выводим результат в виде Re - i(-Im)

else if (CN.Im < 0) textBox5.Text = CN.Re.ToString() + " - i" + (-CN.Im).ToString();

//если мнимая часть равна нулю, то выводим только действительную часть

else textBox5.Text = CN.Re.ToString();
//Если выбран флажок '>>z1'

if (checkBox1.Checked)

{

//заносим результат в поле z1

//копируем действительную часть

textBox1.Text = CN.Re.ToString();

//копируем мнимую часть

textBox2.Text = CN.Im.ToString();

}

//Если выбран флажок '>>z2'

if (checkBox3.Checked)

{

//заносим результат в z2

//копируем действительную часть

textBox3.Text = CN.Re.ToString();

//копируем мнимую часть

textBox4.Text = CN.Im.ToString();

}

}
//вызывается при смене флажка элемента checkBox2

private void checkBox2_CheckedChanged(object sender, EventArgs e)

{

//если флажек стоит...

if (checkBox2.Checked)

{

//то разрешаем вводить значение числа z2

textBox3.Enabled = true;

textBox4.Enabled = true;

}

else //иначе...

{

//если z2 не выбрано, то запрещаем вводить

//его значение

textBox3.Enabled = false;

textBox4.Enabled = false;

}

}

}
//класс, реализующий комплексное число

public class ComplexNumber

{

// Действительная часть

public float Re = 0f;

// Мнимая часть

public float Im = 1f;
//пустой конструктор

public ComplexNumber() { }

//перегруженный конструктор

public ComplexNumber(float re, float im)

{

//присваиваем значение действительной части

Re = re;

//присваиваем значение мнимой части

Im = im;

}
// Вычисляет модуль комплексного числа

public static float Abs(ComplexNumber cn)

{

//модуль вычисляем по формуле

//|z|=sqrt(x^2+y^2)

float m = (float)Math.Sqrt(cn.Re * cn.Re + cn.Im * cn.Im);

//возвращаем результат

return m;

}

// Вычисляет сумму двух комплексных чисел

public static ComplexNumber Summa(ComplexNumber cn1, ComplexNumber cn2)

{

//переменная для записи результата суммы

ComplexNumber CN = new ComplexNumber();

//сумма вычисляется по формуле

//z1+z2=(x1+x2)+i(y1+y2)

//вычисляем действительную часть

CN.Re = cn1.Re + cn2.Re;

//вычисляем мнимую часть

CN.Im = cn1.Im + cn2.Im;

//возвращаем результат

return CN;

}

// Вычисляет разность двух комплексных чисел

public static ComplexNumber Raznost(ComplexNumber cn1, ComplexNumber cn2)

{

//переменная для записи результата разности

ComplexNumber CN = new ComplexNumber();

//разность вычисляется по формуле

//z1-z2=(x1-x2)+i(y1-y2)

//вычисляем действительную часть

CN.Re = cn1.Re - cn2.Re;

//вычисляем мнимую часть

CN.Im = cn1.Im - cn2.Im;

//возвращаем результат

return CN;

}

// Вычисляет произведение двух комплексных чисел

public static ComplexNumber Multipli(ComplexNumber cn1, ComplexNumber cn2)

{

//переменная для записи результата умножения

ComplexNumber CN = new ComplexNumber();

//произведение вычисляется по формуле

//z1*z2=(x1*x2-y1*y2)+i(x1*y2+y1*x2)

//вычисляем действительную часть

CN.Re = cn1.Re * cn2.Re - cn1.Im * cn2.Im;

//вычисляем мнимую часть

CN.Im = cn1.Re * cn2.Im + cn1.Im * cn2.Re;

//возвращаем результат

return CN;

}

// Вычисляет деление двух комплексных чисел

public static ComplexNumber Delen(ComplexNumber cn1, ComplexNumber cn2)

{

//переменная для записи результата деления

ComplexNumber CN = new ComplexNumber();

//сумма вычисляется по формуле

//z1/z2=(x1*x2+y1*y2)/(x2^2+y2^2)+i(y1*x2-x1*y2)/(x2^2+y2^2)

//вычисляем действительную часть

CN.Re = (cn1.Re * cn2.Re + cn1.Im * cn2.Im) / (cn2.Re * cn2.Re + cn2.Im * cn2.Im);

//вычисляем мнимую часть

CN.Im = (cn1.Im * cn2.Re - cn1.Re * cn2.Im) / (cn2.Re * cn2.Re + cn2.Im * cn2.Im);

//возвращаем результат

return CN;

}

// Возводит комплексное число в степень n

public static ComplexNumber Pow(ComplexNumber cn, float n)

{

//комплексное число 1+i0

ComplexNumber CN = new ComplexNumber(1, 0);

//перемножаем данное число друг с другом n раз

//где n - показатель степени, в которую возводят число

for (int i = 0; i < n; i++)

CN = Multipli(CN, cn);

//возвращаем результат

return CN;

}

}

}
Заключение:

В результате курсового проектирования была разработана программа осуществляющий операции с комплексными числами с помощью языка программирования С#. Программа обеспечивает ввод с клавиатуры одного или двух комплексных чисел и вычисление требуемых параметров одного числа или осуществление арифметических операций с двумя числами.

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

  1. Чарльз Петцольд. Программирование для Microsoft Windows на C#. Том 1./М.:Издательство «Русская Редакция»,2002. -576с,:ил.

  2. Лабор В.В. C#: Создание приложений для Windows/ В.В. Лабор.-Мн,:Харвест,2003.-384 с.

  3. Трегуб С.Н. Использование C#. Специальное издание. – Санкт Петербург: «Питер», 2005. – 980 с.

  4. Фролов А.В. Язык C#. Самоучитель. – Москва: «Бином Пресс», 2003. – 890 с.

  5. Фаронов. Создание приложений с помощью С#. – Санкт Петербург: «Эксмо», 2008. - 576 с.

  6. Хорспул Н., Дж. Бишоп. C# в кратком изложении. – Санкт Петербург: «Питер», 2007. – 780 с.








Скачать файл (204.9 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации