Файл: Человеко-машинный интерфейс МУ.pdf

ВУЗ: Не указан

Категория: Методичка

Дисциплина: Программирование

Добавлен: 25.10.2018

Просмотров: 2133

Скачиваний: 14

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

26 

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); 

    Начало 

Инициализация пе-

ременных 

A=C 

B=-D 

X=A*A+B*B 

Y=0 

X=(A*C)-(B*D) 

 

Y=(A*D)+(B*C); 
 

Вывод X,Y 

    Конец 
 


background image

 

27 

                    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 = ';' 


background image

 

28 

                        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; 


background image

 

29 

Приложение Д 

 

Компоновка форм 

 

1. Окно основной формы интерфейса. 

 

2. Окно информации о программе. 

 

3. Окно пояснения по работе с программой. 

 

 


background image

 

30 

Приложение Е 

 

Разработка сценариев и реакций на события согласно сценариям. 

 

1) Графы возможных сценариев работы программы. 

Нажатие

на кнопку

"Решить"

Пустые

поля?

Выбор
файла

Нажатие

на кнопку

"Выбор файла

с исходными

данными"

Нажатие

на кнопку

"Обработка

массива
данных"

Вывод

сообщения

об ошибке

Вывод

ответов

Данные

кор-

ректны?

Обработка

Данные

кор

ректны?

Строка

заканчи-

вается

на ";"?

Имена

файлов

введены?

Нажатие

на кнопку

"Начать

обработку"

Нажатие

на кнопку

"Выбор файла с

результатом"

 

 
2) Тексты процедур обработки событий. 
- Проверка на пустые поля 
 

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','-','+',',','E','e']) 

 

 

Then  Begin  MessageDlg('Введенные  коэффициенты  должны  быть  веще-

ственными числами!',mtError,[mbOk],0);