Калькулятор для работы с комплексными числами

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 09.06.2012
Размер файла 603,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Курсовой проект

по дисциплине

"Высокоуровневые методы информатики и программирования"

на тему:

"Калькулятор для работы с комплексными числами"

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).
  • 2. Ход работы
  • Классы:
  • public class ComplexNumber // класс, реализующий комплексное число
  • public float Re = 0f; // Действительная часть
  • public float Im = 1f; // Мнимая часть
  • Методы:
  • 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
  • 2.1 Работа с программой
  • Вычисляет сумму двух комплексных чисел:
  • 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;
  • }
  • Можно также складывать, вычитать, умножать и делить одного комплексного числа:
  • Складывание:
  • Вычитание:
  • Умножение:
  • Деление:
  • 2.2 Блок-схема
  • 2.3 Код программы
  • 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 с.
  • Размещено на Allbest.ru

Подобные документы

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

    курсовая работа [398,8 K], добавлен 01.02.2010

  • Изучение методов и этапов создания класса Complex, позволяющего работать с комплексными числами и производить с ними следующие операции: сложение, вычитание, умножение, деление двух комплексных чисел. Написание кода для ввода и вывода исходных данных.

    курсовая работа [628,4 K], добавлен 11.09.2010

  • Разработка программы для выполнения арифметических операций с комплексными числами. Разработка эскизного проекта. Диаграмма последовательностей и классов. Разработка и описание программы. Разработка программного кода и руководства пользователя.

    курсовая работа [1,2 M], добавлен 25.11.2011

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

    курсовая работа [25,9 K], добавлен 17.05.2013

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

    лабораторная работа [11,3 K], добавлен 13.02.2009

  • Анализ математических и алгоритмических значений величин, получающихся в результате решения квадратных уравнений, которые имеют название комплексных чисел. Особенности их сложения, вычитания, деления и произведения. Программная реализация решения задачи.

    курсовая работа [443,7 K], добавлен 22.01.2010

  • Теоретическая и практическая реализация комплексной арифметики на языке программирования Си. Разработка программы, производящей арифметические действия с комплексными числами. Автоматизации решения комплексных чисел. Матричная и стандартная модель.

    курсовая работа [495,4 K], добавлен 21.01.2012

  • Строение класса complex. Примеры использования класса complex. Результат выполнения программы. Цикл возведения первого числа во второе. Операции с комплексными числами. Конструкторы и операции присваивания для типа complex. Неявные преобразования типов.

    курсовая работа [1,5 M], добавлен 18.05.2011

  • Арифметические операции с целыми числами. Сложение и вычитание в дополнительном коде. Представление чисел в формате с плавающей точкой. Особенности выполнения арифметических операций в соответствии с IEEE. Точность выполнения арифметических операций.

    контрольная работа [5,6 M], добавлен 19.05.2010

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

    контрольная работа [824,4 K], добавлен 17.11.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.