Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Навчальна частина. Прикладна область: Операції з масивами



Прикладна область: Операції з масивами

Постановка задачі: Створити програму виконання простих операцій над одновимірними масивами.

Рекомендації

Під час розробки програмного засобу слід використовувати наступні об’єкти:

· поле ре­да­гування (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; Прочитано: 338 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...