Разработка алгоритма выполнения поставленной задачи
1) Формулировка задания Вариант 5. Умножение комплексных чисел. 2) Математическая модель Произведением комплексных чисел a+ bi и c+ di называется комплексное число: ( ac – bd ) + ( ad + bc ) i . Это определение вытекает из двух требований: - числа a+ bi и c+ di должны перемножаться, как алгебраические двучлены, - число i обладает основным свойством: i 2 = –1. П р и м е р . ( a+ bi )( a – bi )= a 2 + b 2. Следовательно, произведение двух сопряжённых комплексных чисел равно действительному положительному числу. . 3) Информационная модель
4) Схема алгоритма
5) Текст исполняемого модуля procedure TForm1.Button1Click(Sender: TObject); Var a,b,c,d,X,Y: Comp; st: String; i: Integer; begin If (Edit1.Text = '') Or (Edit2.Text = '') Or (Edit3.Text = '') Or (Edit4.Text = '') Then Begin MessageDlg(Требуется ввести все коэффициенты', mtError, [mbOk],0); Exit; End; st:= Edit1.Text+Edit2.Text+Edit3.Text+Edit4.Text; For i:= 1 To Length(st) Do If Not (st[i] In ['0'..'9','-',',']) Then Begin MessageDlg(Введённые коэффициенты должны быть вещественными числами!',mtError,[mbOk],0); Exit; End; a:= StrToFloat(Edit1.Text); b:= StrToFloat(Edit2.Text); c:= StrToFloat(Edit3.Text); d:= StrToFloat(Edit4.Text); {Случай сопряжённых чисел} If (a=c)and(b=-d) Then Begin X:=a*a+b*b; Edit5.Text:=FloatToStr(X); End Else Begin X:=(a*c)-(b*d); Y:=(a*d)+(b*c); Edit5.Text:= FloatToStr(X)+'+('+FloatToStr(Y)+'i)'; end; end;
procedure TForm4.Button3Click(Sender: TObject); Var st,stn,stg,str: String; X,Y: Real; A: TMas; i,j,k: Integer; Begin If (F1OK = False) Or (F2OK = False) Then Begin MessageDlg('Требуется задать имена входного и исходного файлов',mtError,[mbOk],0); Exit; End; AssignFile(F1,F1Name); AssignFile(F2,F2Name); Reset(F1); Rewrite(F2); k:= 0; While Not(EOF(F1)) Do Begin ReadLn(F1,st); Inc(k); If st[Length(st)] <> ';' Then Begin MessageDlg(‘Ошибка в файле: строка '+IntToStr(k)+' не оканчивается на ";"!',mtError,[mbOk],0); Exit; End; i:= 1; j:= 1; stg:= ''; While True Do Begin stn:= st[i]; If Not (stn[1] In ['0'..'9','-',',',';',' ']) Then Begin MessageDlg('Ошибка в файле: символ "'+stn+'", находящийся в строке '+IntToStr(k)+', позиция '+IntToStr(i)+' некорректен!' ,mtError, [mbOk],0); Exit; End; If stn = ';' Then Begin A[j]:= StrToFloat(stg); Break; End; If stn <> ' ' Then stg:= stg+stn Else Begin A[j]:= StrToFloat(stg); stg:= ''; Inc(j); End; Inc(i); End; str:= 'Входные данные: '+FloatToStr(A[1])+'+('+FloatToStr(A[2])+')i * '+FloatToStr(A[3])+'+('+FloatToStr(A[4])+')i; Выходные данные: '; {Случай сопряженных чисел} If (A[1]=A[3]) and (A[2]=-A[4]) Then Begin X:=A[1]*A[1]+A[2]*A[2]; str:= str+FloatToStr(X); End Else Begin X:=(A[1]*A[3])-(A[2]*A[4]); Y:=(A[1]*A[4])+(A[2]*A[3]); str:= str+FloatToStr(X)+'+('+FloatToStr(Y)+'i)'; end; WriteLn(F2,str); End; CloseFile(F1); CloseFile(F2); Form4.Close; end; Приложение Д
Компоновка форм 1. Окно основной формы интерфейса. 2. Окно информации о программе. 3. Окно пояснения по работе с программой.
Приложение Е
Популярное: Почему стероиды повышают давление?: Основных причин три... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (469)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |