![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Прикладна область: Операції з масивами
Постановка задачі: Створити програму виконання простих операцій над одновимірними масивами.
Рекомендації
Під час розробки програмного засобу слід використовувати наступні об’єкти:
· поле редагування (Edit)
· Мітка (Label)
· Кнопки (Button)
· Поле (Memo)
Хід роботи
1. Завантажте середовище візуального програмування Delphi.
2. Змініть заголовок (Caption) форми з “Form1” на “Операції над масивами” (без лапок).
3. Збережіть виконану на даний момент форму у своїй власній папці (FileÞSave All).
4. Розмістіть на формі чотири компоненти Button, та змініть їх властивість Caption як це показано на рис. 1.
Рис. 1.
5. Створіть у проекті три додаткові форми (File => New => VCL Form Delphi), та приведыть ъх до вигляду як це показано на рис.2,3,4.
Рис. 2.
Рис. 3.
Рис. 4.
6. Підключимо створені Unit до нашого проекту (File => Use Unit), виберіть всі Unit і натисніть кнопку Ok.
7. Підключимо наші створені форми до наших кнопок першої форми
Двічі клацніть на кнопку «Пошук максимального та його номера у масиві». У створеному обробнику введіть код:
procedure TForm1.Button1Click(Sender: TObject); begin Form2.ShowModal; end; |
Запрограмуйте відповідно для всіх інших форм і кнопок обробники подій.
8. Запрограмуйте відповідні обробники подій для Unit2:
procedure TForm2.Button1Click(Sender: TObject); Var n,i,k,max:integer; X:array[1..300] of integer; begin n:=StrToInt(form2.Edit1.Text); // Введення початкових даних for i:=1 to n do X[i]:=StrToInt(form2.Memo1.Lines[i-1]); max:=x[1];k:=1; // Пошук максимального елемента for i:=2 to n do if X[i]>max then begin max:=X[i];k:=i;end; form2.Edit2.Text:=IntToStr(max); // Виведення результату form2.Edit3.Text:=IntToStr(k); end; procedure TForm2.Button2Click(Sender: TObject); begin Form2.Close; end; |
9. Запрограмуйте відповідні обробники подій для Unit3:
procedure TForm3.Button1Click(Sender: TObject); Type Tmas= array[1..1200] of integer; Var a,b, c: Tmas; n, m, k, t, i, j: integer; f,f1:boolean; begin n:=StrToInt(form3.Edit1.Text); // Введення початкових даних for i:=1 to n do a[i]:=StrToInt(form3.Memo1.Lines[i-1]); m:=StrToInt(form3.Edit2.Text); for i:=1 to m do b[i]:=StrToInt(form3.Memo2.Lines[i-1]); k:=0; // Побудова перерізу for i:=1 to n do begin f:=false; for j:=1 to m do if A[i]=B[j]then begin f:=true;break; end; if f then begin f1:=true; for t:=1 to k do if A[i]=C[t]then begin f1:=false;break; end; if f1 then begin k:=k+1; C[k]:=A[i]; end; end; end; form3.Edit3.Text:=''; // Виведення результату form3.Memo3.Lines.Clear; If k=0 then Showmessage('Переріз порожній') else begin form3.Edit3.Text:=IntToStr(k); for i:=1 to k do form3. Memo3.Lines.Add(IntToStr(c[i])); end; end; procedure TForm3.Button2Click(Sender: TObject); begin Form3.Close; end; |
10. Запрограмуйте відповідні обробники подій для Unit4:
procedure TForm4.Button1Click(Sender: TObject); Var n,i,d,p,k:integer; A:array[1..1300] of integer; begin n:=StrToInt(form4.Edit1.Text); for i:=1 to n do A[i]:=StrToInt(form4.Memo1.Lines[i-1]); form4.Edit2.Text:=''; // Підготовка до виведення результату form4.Memo2.Lines.Clear; d:=0; k:=0; // Пошук ланцюжків i:=1; while (i<=n-1) do begin if A[i]<=A[i+1] then begin d:=2;p:=i;k:=k+1; i:=i+1; // Початок ланцюжка while (i<=n-1)do if (A[i]<=A[i+1]) then begin d:=d+1;i:=i+1;end else break; // Кінець ланцюжка form4.Memo2.Lines.Add('Ланцюжок № '+ IntToStr(k)); for i:=p to p+d-1 do // Виведення ланцюжка form4.Memo2.Lines.Add(IntToStr(A[i])); end else i:=i+1; end; if k=0 then ShowMessage('Ланцюжків немає') else form4.Edit2.Text:=IntToStr(k); end; procedure TForm4.Button2Click(Sender: TObject); begin Form4.Close; end; |
11. Збережіть проект та перевірте правильність його роботи.
Рис. 5.
Рис. 6.
Рис. 7.
Дата публикования: 2014-11-03; Прочитано: 370 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!