Программирование на языке высокого уровня - Программирование, компьютеры и кибернетика контрольная работа

Программирование на языке высокого уровня - Программирование, компьютеры и кибернетика контрольная работа




































Главная

Программирование, компьютеры и кибернетика
Программирование на языке высокого уровня

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


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Министерство образования и науки Российской Федерации
По дисциплине "Программирование на языке высокого уровня"
Решение многих задач физики и техники приводит к квадратным уравнениям с отрицательным дискриминантом. Эти уравнения не имеют решения в области действительных чисел. Но решение многих таких задач имеет вполне определенный физический смысл. Значение величин, получающихся в результате решения указанных уравнений, назвали комплексными числами.
Комплексные числа широко использовал отец русской авиации Н.Е. Жуковский (1847 - 1921) при разработке теории крыла, автором которой он является.
Комплексные числа и функции от комплексного переменного находят применение во многих вопросах науки и техники.
Цель настоящей курсовой работы: разработка программного обеспечения для реализации арифметических операций над комплексными числами.
Требуется разработать программу, реализующую арифметические операции над комплексными числами, опираясь на следующие правила выполнения операций:
Выполнить сложение двух комплексных чисел:
Выполнить вычитания двух комплексных чисел:
Выполнить умножение двух комплексных чисел:
Выполнить деление двух комплексных чисел:
2. Математические и алгоритмические основы решения задачи
Для решения алгебраических уравнений недостаточно действительных чисел. Поэтому естественно стремление сделать эти уравнения разрешимыми, что в свою очередь приводит к расширению понятия числа. Например, для того чтобы любое уравнение x+a=b имело корни, положительных чисел недостаточно и поэтому возникает потребность ввести отрицательные числа и нуль.
Древнегреческие математики считали, что a=c и b=а только натуральные числа, но в практических расчетах за два тысячелетия до нашей эры в Древнем Египте и Древнем Вавилоне уже применялись дроби. Следующим важным этапом в развитии понятия о числе было введение отрицательных чисел - это было сделано китайскими математиками за 2 века до нашей эры. Отрицательные числа применял в 3 веке нашей эры древнегреческий математик Диофант, знавший уже правила действий над ними, а в 7 веке нашей эры эти числа подробно изучили индийские ученые, которые сравнивали такие числа с долгом. С помощью отрицательных чисел можно было единым образом описывать изменение величин. Уже в 8 веке нашей эры было установлено, что квадратный корень из положительного числа имеет два значение - положительное и отрицательное, а из отрицательных чисел квадратные корни извлечь нельзя: нет такого числа х, чтобы х 2 = -9. В 16 веке в связи с изучением кубических уравнений оказалось необходимым извлекать квадратные корни из отрицательных чисел. В формуле для решения кубических уравнений содержатся кубические и квадратные корни. Эта формула безотказно действует в случае, когда уравнение имеет один действительный корень (например, для уравнения х 3 +3х-4=0), а если оно имело 3 действительных корня (например, х 3 -7х+6=0), то под знаком квадратного корня оказывалось отрицательное число. Получалось, что путь к этим 3 корням уравнения ведет через невозможную операцию извлечения квадратного корня из отрицательного числа.
Чтобы объяснить получившийся парадокс, итальянский алгебраист Дж. Кардано в 1545 предложил ввести числа новой природы. Он показал, что система уравнений х+у=10, ху=40 не имеющая решений в множестве действительных чисел, имеет решение всегда , , нужно только условиться действовать над такими выражениями по правилам обычной алгебры и считать, что . Кардано называл такие величины "чисто отрицательными" и даже "софистически отрицательными", считая их бесполезными и стремился не применять их. В самом деле, с помощью таких чисел нельзя выразить ни результат измерения какой-нибудь величины, ни изменение этой величины. Но уже в 1572 г. вышла книга итальянского алгебраиста Р. Бомбелли, в котором были установлены первые правила арифметических операций над такими числами, вплоть до извлечения из них кубических корней. Название "мнимые числа" ввел в 1637г. французский математик и философ Р. Декарт, а в 1777г. один из крупнейших математиков VIII века Х. Эйлер предложил использовать первую букву французского числа (мнимой единицы), этот символ вошел во всеобщее употребление благодаря К. Гауссу (1831г).
В течение 17 века продолжалось обсуждение арифметической природы мнимостей, возможности дать им геометрическое истолкование. Постепенно развивалась техника операций над комплексными числами. На рубеже 17-18 веков была построена общая теория корней n-й степени сначала из отрицательных, а впоследствии и из любых комплексных чисел.
В конце 18 века французский математик Ж. Лагранж смог сказать, что математический анализ уже не затрудняют мнимые величины. С помощью комплексных чисел научились выражать решения линейных дифференциальных уравнений с постоянным коэффициентом. Такие уравнения встречаются, например, в теории колебаний материальной точки в сопротивляющейся среде.
Я. Бернулли применил комплексные числа для вычисления интегралов. Хотя в течении 18 века с помощью комплексных чисел были решены многие вопросы, в том числе и прикладные задачи, связанные с картографией, гидродинамикой и т. д., однако еще не было строго логического обоснования теории этих чисел. Поэтому французский ученый П. Лаплас считал, что результаты, получаемые с помощью мнимых чисел, - только наведение, приобретающие характер настоящих истин лишь после подтверждения прямыми доказательствами. В конце 18- начале 19 веков было получено геометрическое истолкование комплексных чисел. Датчанин Г. Вессель, француз Ж. Арган и немец К. Гаусс независимо друг от друга предложили изображать комплексное число точкой М(а,b) на координатной плоскости. Позднее оказалось, что еще удобнее изображать число не самой точкой М, а вектором ОМ, идущим в эту точку из начала координат. При таком истолковании сложению и вычитанию комплексных чисел соответствуют эти же операции над векторами.
Геометрические истолкования комплексных чисел позволили определить многие понятия, связанные с функциями комплексного переменного, расширило область их применения.
Стало ясно, что комплексные числа полезны во многих вопросах, где имеют дело с величинами, которые изображаются векторами на плоскости: при изучении течения жидкости, задач теории упругости, в теоретической электротехнике.
2.2 Действия с комплексными числами
Рассмотрим решение квадратного уравнения х 2 +1 = 0. Отсюда х 2 = -1. Число х, квадрат которого равен -1, называется мнимой единицей и обозначается i. Таким образом , i 2 = -1, откуда . Решение квадратного уравнения, например, х 2 - 8х + 25 = 0, можно записать следующим образом:
Числа вида 4+3i и 4-3i называют комплексными числами. В общем виде комплексное число записывается а + bi, где a и b- действительные числа, а i - мнимая единица. Число а называется действительной частью комплексного числа, bi-мнимой частью этого числа, b- коэффициентом мнимой части комплексного числа.
Суммой двух комплексных чисел z 1 = a + bi и z 2 = c + di называется комплексное число
Числа a + bi и a-bi называются сопряженными. Их сумма равна действительному числу 2а,
Числа а+bi и -a-bi называются противоположными. Их сумма равна нулю. Комплексные числа равны, если равны их действительные части и коэффициенты мнимых частей: а+bi = c+di, если a = c, b = d. Комплексное число равно нулю тогда, когда его действительная часть и коэффициент мнимой части равны нулю, т.е. z=a + bi = 0, если a=0, b=0.
Действительные числа являются частным случаем комплексных чисел. Если b=0, то a+bi=a - действительное число. Если а = 0, , то a + bi = bi - чисто мнимое число. Для комплексных чисел справедливы переместительный и сочетательный законы сложения. Их справедливость следует из того, что сложение комплексных чисел по существу сводится к сложению действительных частей и коэффициентов мнимых частей, а они являются действительными числами, для которых справедливы указанные законы.
Вычитание комплексных чисел определяется как действие, обратное сложению: разностью двух комплексных чисел a + bi и с + di называется комплексное число х + уi, которое в сумме с вычитаемым дает уменьшаемое. Отсюда, исходя из определения сложения и равенства комплексных чисел получим два уравнения, из которых найдем, что
2.2.3 Произведение комплексных чисел
Произведение комплексных чисел z 1 =a+bi и z 2 =c+di называется комплексное число
z =(ac-bd) + (ad + bc)i, z 1 z 2 = (a + bi)(c + di) = (ac - bd) + (ad + bc)i.
Легко проверить, что умножение комплексных чисел можно выполнять как умножение многочленов с заменой i 2 на -1. Для умножения комплексных чисел также справедливы переместительный и сочетательный законы, а также распределительный закон умножения по отношению к сложению.
Из определения умножения получим, что произведение сопряженных комплексных чисел равно действительному числу: (a + bi)(a - bi) = a 2 + b 2
Деление комплексных чисел, кроме деления на нуль, определяется как действие, обратное умножению. Конкретное правило деления получим, записав частное в виде дроби и умножив числитель и знаменатель этой дроби на число, сопряженное со знаменателем:
3. Программная реализация решения задачи
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
__published: // IDE-managed Components
void __fastcall Button5Click(TObject *Sender);
void __fastcall Button6Click(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
__fastcall TForm1(TComponent* Owner);
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
z1="z1 = "+Edit1->Text+"+" +" "+Edit2->Text+"i";
z2="z2 = "+Edit3->Text+"+" +" "+Edit4->Text+"i";
a=StrToFloat(Edit1->Text)+StrToFloat(Edit3->Text);
b=StrToFloat(Edit2->Text)+StrToFloat(Edit4->Text);
Memo1->Lines->Add("z1 + z2 = "+z1+" + "+z2);
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
z1="z1 = "+Edit1->Text+"+" +" "+Edit2->Text+"i";
z2="z2 = "+Edit3->Text+"+" +" "+Edit4->Text+"i";
a=(StrToFloat(Edit1->Text)*StrToFloat(Edit3->Text))-(StrToFloat(Edit2->Text)*StrToFloat(Edit4->Text));
b=(StrToFloat(Edit2->Text)*StrToFloat(Edit3->Text))+(StrToFloat(Edit1->Text)*StrToFloat(Edit4->Text));
Memo1->Lines->Add("z1 * z2 = "+z1+" + "+z2);
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
z1="z1 = "+Edit1->Text+"+" +" "+Edit2->Text+"i";
z2="z2 = "+Edit3->Text+"+" +" "+Edit4->Text+"i";
if (((StrToFloat(Edit3->Text)*StrToFloat(Edit3->Text))+(StrToFloat(Edit4->Text)*StrToFloat(Edit4->Text)))==0)
Application->MessageBoxA("При выполнении операции деления \nвозникла ошибка: деление на ноль. \nПроверьте числа.",
a=((StrToFloat(Edit1->Text)*StrToFloat(Edit3->Text))+(StrToFloat(Edit2->Text)*StrToFloat(Edit4->Text)))/((StrToFloat(Edit3->Text)*StrToFloat(Edit3->Text))+(StrToFloat(Edit4->Text)*StrToFloat(Edit4->Text)));
b=((StrToFloat(Edit2->Text)*StrToFloat(Edit3->Text))-(StrToFloat(Edit1->Text)*StrToFloat(Edit4->Text)))/((StrToFloat(Edit3->Text)*StrToFloat(Edit3->Text))+(StrToFloat(Edit4->Text)*StrToFloat(Edit4->Text)));
Memo1->Lines->Add("z1 / z2 = "+z1+" + "+z2);
//---------------------------------------------------------------------------
Рисунок 4 - Вывод ошибки при делении на ноль.
Применение комплексных чисел позволяет удобно и компактно сформулировать многие математические модели, применяемые в математической физике и в естественных науках - электротехника, гидродинамика, картография, квантовая механика, теория колебаний и многих других.
Итогом работы можно считать созданную программу для реализации арифметических операций над комплексными числами. Созданный алгоритм и его программная реализация могут служить органической частью решения более сложных задач.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ и литературы
Архангельский А.Я. Программирование в С++ Builder 6. [Текст] / А.Я.Архангельский. - М.: Бином, 2003. С. 1154.
Ахо А.. Построение и анализ вычислительных алгоритмов [Электронный ресурс] / А. Ахо, Дж. Хопкрофт, Дж. Ульман. - М.: Мир. 1999. С. 143.
Выгодский М.Я. Справочник по элементарной математике. [Текст] / М.Я. Выгодский - М.: АСТ: Астрель, 2006. С. 509.
Дадаян А.А. Алгебра и геометрия. [Текст] / А.А Дадаян, В.А. Дударенко. - М.: Минск, 1999. С. 342.
Камалян Р.З. Высшая математика. [Текст] / Р.З. Камалян. - М.: ИМСИТ, 2004. С.310.
Комплексное число [Электронный ресурс] - Режим доступа: http://ru.wikipedia.org/wiki/Комплексное_число .
Мейерс С. Наиболее эффективное использование С++. [Электронный ресурс] / С. Мейерс. - М.: ДМК Пресс, 2000. С. 304.
Эккель Б. Введение в стандартный С++. [Электронный ресурс] / Б. Эккель. - М.:Питер, 2004. С. 572.
Теоретическая и практическая реализация комплексной арифметики на языке программирования Си. Разработка программы, производящей арифметические действия с комплексными числами. Автоматизации решения комплексных чисел. Матричная и стандартная модель. курсовая работа [495,4 K], добавлен 21.01.2012
Понятие и функции комплексных чисел. Правила выполнения арифметических операций с комплексными числами. Действия с комплексными числами: сложение, вычитание, произведение, деление. Программная реализация решения задачи. Пример выполнения программы. курсовая работа [398,8 K], добавлен 01.02.2010
Особенности вывода на экран содержимого файла BAZA.txt. Анализ функций вывода информации о количестве каждой марки машин. Рассмотрение способов проектирования тестов программы методами черного ящика. Проблемы программирования на языке высокого уровня. контрольная работа [1,6 M], добавлен 04.01.2015
Сравнительный анализ языков программирования высокого уровня Си и Паскаль: структура программы, типы данных, арифметические операции, операторы ветвления и циклы. Создание программы поиска подпоследовательностей одинаковых элементов в множественном виде. курсовая работа [78,9 K], добавлен 28.12.2012
Изучение методов и этапов создания класса Complex, позволяющего работать с комплексными числами и производить с ними следующие операции: сложение, вычитание, умножение, деление двух комплексных чисел. Написание кода для ввода и вывода исходных данных. курсовая работа [628,4 K], добавлен 11.09.2010
Двоично-десятичный формат (BCD - Binary Coded Decimal). Преобразование ASCII формата в двоичный формат. Арифметические инструкции и флаги. Форматы арифметических данных. Выполнение арифметических операции. Сложение. Вычитание. Умножение. Деление. доклад [16,2 K], добавлен 22.09.2008
Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы. курсовая работа [1,0 M], добавлен 26.12.2013
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Программирование на языке высокого уровня контрольная работа. Программирование, компьютеры и кибернетика.
Реферат: Банковские сертификаты 2
Сочинение по теме Просвещение, наука, педагогика в понимании персонажей комедии Горе от ума
Доклад: Ванька-Каин
Курс Валют Курсовая
Дипломная работа по теме Создание оборотного водоснабжения на станции очистки гальванических стоков
Эссе Готовые Аргументы
Полное Собрание Сочинений Мельникова
Реферат по теме Работа Н.А. Бердяева Смысл истории
Реферат: Сто вариантов малого бизнеса
Организация Фармбизнеса Реферат
Реферат по теме Береза повислая (береза бородавчатая)
Реферат: Творчество Герона, Менелая и Птолемея
Доклад по теме «Русский вестник»
Дипломная работа: Линия "Формализация и моделирование" учебного курса "Информатика"
Дипломная работа по теме Акционерные общества в Республике Беларусь
Статистика оборотных средств
Актуальные Темы Диссертаций
Реферат: Прогнозирование и планирование развития социальной сферы
Реферат: Дефектация и сортировка деталей
Контрольная работа: Факторный анализ экономических показателей
Второе крещение Руси в 70-е годы IX в. - История и исторические личности реферат
Базы данных и управление ими - Программирование, компьютеры и кибернетика презентация
Умови та тенденції розвитку сучасних міжнародних економічних відносин - Международные отношения и мировая экономика курсовая работа


Report Page