Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_rab_pascal_delphi.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6.06 Mб
Скачать
  1. Запрограмуйте команду «Вихід» головного меню, скориставшись стандартною процедурою Close.

procedure TForm1.N6Click(Sender: Tobject); {Тут N6 - ім'я команди «Вихід»}

begin

Close { Закриваємо вікно програми}

end; {Тепер клацніть на формі}

Збережіть виконану на даний момент форму в своїй папці (FileSave All).

  1. Запрограмуйте команду «Очистити поле виведення» контекстного меню.

Двічі клацніть на команді контекстного меню «Очистити Поле виведення» у вікні Form1.PopupMenu1 (виклик цього вікна див. в п. 14). Текст процедури очищення такий же, як і для команди головного меню: Memo1.Clear (див. п. 16).

  1. «Пов'яжіть» контекстне меню PopupMenu1 з формою Form1.

Клацніть на формі і задайте властивість форми PopupMenu як PopupMenu1

  1. Запустіть створену на цей момент програму і досліджуйте її роботу.

Потренуйтеся з багаторядковим полем редагування Memo1, вводячи і коректуючи в ньому деякий текст. Зверніть увагу на те, що в цьому вікні можна виконувати такі ж дії з текстом, як і в текстовому редакторові: виділяти фрагмент тексту, копіювати, переносити або видаляти цей фрагмент. Витріть текст за допомогою команди головного меню «Очистити поле виведення». Ще раз введіть текст і витріть його за допомогою контекстного меню (для виклику контекстного меню форми потрібно клацнути правою клавішею миші на вільному місці форми). Закінчіть роботу програми, клацнувши на кнопці «Вихід».

  1. Запрограмуйте команду «Табулювати».

Властивість Lines об'єкту типу Memo комплексна, тобто воно також є об'єктом з своїми властивостями і методами. Результат роботи даної програми - це таблиця, яка складається з декількох рядків. Щоб додати в полі Memo1 новий рядок таблиці, треба поміняти значення комплексної властивості Lines (рядки) за допомогою його методу Add (додати) з одним аргументом - символьним рядком: Memo1.Lines.Add('рядок символів'). Клацніть на команді «Табулювати» з головного меню один раз. З'явиться заготівка до процедури, яку заповните так:

procedure TForm1.N2Click(Sender: TObject);

var x,y,h,a,b: real; cod:integer; str1,str2:string;

begin

{B об'єкт Memo1 вставляємо рядок з підписами стовпців значень аргументу і функції}

Memo1. Lines. Add(' X F(X)');

Val(Edit1.Text, а, cod); { Набуваємо числового значення лівої межі}

Val(Edit2.Text, b, cod); { Набуваємо числового значення правої межі}

Val(Edit3.Text, h, cod); { Набуваємо числового значення кроку}

х:=а; {Табулюємо функцію}

while x<=b+h/2 do

begin

y:=sin(x)+1;

Str(x:8:2,str1);

Str(y:8:3,str2);

if CheckBox1.Checked then

Memo1. Lines.Add(str1+str2); { Вставляємо рядок в полі Memo1}

x:=x+h;

end

end;

  1. Виконайте програму і потренуйтеся з різними значеннями лівої, правої межі і кроку аргументу. Закрийте вікно програми «Табулювання функції».

  2. Збережіть створену програму в своїй папці.

  3. Створіть ехе-файл програми.

  4. Закрийте Delphi, запустіть створену програму і виконайте обчислення для різних вхідних даних.

  5. Продемонструйте створену форму викладачеві.

  6. Виконайте додаткові завдання .

    п/п

    Завдання

    Додайте до контекстного меню команду «Вихід» і запрограмуйте її

    Створіть і запрограмуйте ще одне контекстне меню, що містить команди "Прибрати всі прапорці", "Включити всі прапорці", "Включити інверсивно". Таке меню повинне з'являтися після клацання правою клавішею миші в будь-якій точці панелі з прапорцями. Не забудьте "прив'язати" це меню (PopupMenu2) до панелі з прапорцями (див. пункт 19).

    Модифікуйте програму, передбачивши можливість табулювання функції і її похідної. Вибір варіанту (з похідній або без неї) здійснити за допомогою додаткового прапорця.

    Підказка. Виконайте такі дії: вставте у форму об'єкт типу CheckBox (прапорець), його властивості Caption привласніть значення «Похідна», виберіть для підпису шрифт Кирилиця 12-го розміру, вирівняйте вставлений об'єкт. Поміняйте програмний код кнопки «Табулювати», використавши в тексті процедури Button1Click такі команди:

    {Оголосіть змінні str1, str2, str3 як string на початку процедури}

    if CheckBox. Checked then {якщо прапорець встановлений}

    Memo1.Lines.Add(' X F(X) F’ (X)')

    { Рядок містить підписи для стовпців значень аргументу, функції і її похідної}

    else

    { Інакше - якщо прапорець не встановлений}

    { Рядок містить лише підписи для стовпців значень аргументу і функції}

    Memo1.Lines.Add(' X F(X) ')

    { А в циклі задаємо:}

    y:=sin(x)+1; {Обчислюємо значення функції}

    y1:=cos(x); {Обчислюємо значення похідної}

    if CheckBox.Checked then {Якщо прапорець встановлений}

    begin

    Str(x:8:2, str1); Str(y:8:2, str2); Str(y1:8:2, str3);

    str3 := str1 + str2 + str3

    end;

    {Формуємо символьний рядок із значень аргументу, функції і її похідної, між якими вставляємо декілька пропусків}

    else {Якщо прапорець не встановлений}

    begin

    Str(x : 8 : 2, str 1 ); {Формуємо символьний рядок}

    Str(y:8:2, str2); {із значень аргументу і функції}

    str3 :== str1 + str2

    end;

    Зауваження. Номери об'єктів у Вашій програмі можуть відрізнятися від приведених вище.

    Визначте кількість елементів масиву більших 0,5 і менших 1.

    Передбачте в створеній програмі додаткову можливість для визначення максимального і мінімального значень функції

    Підказка. У тілі процедури Button1Click, що описує програмний код кнопки «Табулювати», скористайтеся такими командами:

    (На початку процедури:}

    max:=sin(a)+1;

    {У циклі:}

    if max<y then max:=y;

    {Після циклу:}

    Str(max:8:3, str1); Memo1.Lines.Add('max=' + str1);

    Поміняйте процедуру команди «Табулювати» так, щоб для включеного прапорця «В масив» виведення результатів виконувалося в одновимірний масив.

    З вкладки Samples додайте на форму компонент Graph (якщо ви не знайшли даний компонент то зверніться до викладача). Даний компонент створений для побудови графіків. Розмістіть його в будь якому місці форми і розтягніть його на стільки, на скільки дозволяє вам розмір форми. Тепер потрібно додати графік. Для цього виділіть компонент, в вікні Object Inspector виберіть вкладку Prorerties і змініть деякі властивості компонента.

    MinXValue=-20; мінімальне значення по осі Х

    MaxXValue=20; максимальне значення по осі Х

    MinYValue=0; мінімальне значення по осі У

    MaxYValu:=3; максимальне значення по осі У

    Curves= натисніть один раз на кнопку «…» і в з’явившимуся вікні створіть новий графік(натисніть один раз по кнопці з намальованою папкою).

    Недалеко від графіка створіть кнопку і запрограмуйте її наступним чином:

    procedure TForm1.sButton1Click(Sender: TObject);

    var x:real;

    begin

    form1.GraphM1.Curves[0].ClearPoints; //Очищаємо попередній графік якщо він був

    //числу Х даємо значення мінімального значення графіка по осі Х

    x:=form1.GraphM1.MinXValue;

    // Доки Х менше максимального значення по осі Х виконуємо наступні дії

    while x<form1.GraphM1.MaxXValue do

    begin

    //Додаємо до графіка нову точку

    form1.GraphM1.Curves[0].AddPoint(x,sin(x)+1);

    // Збільшуємо Х (0,1 це крок з яким змінюється Х);

    x:=x+0.1;

    end;

    end;

    Сумістіть процеси табулювання функції і побудови графіка тобто в початок процедури натиснення на кнопку «Табулювати» треба додати наступні поля:

    form1.graphm1.Curves[0].ClearPoints;\\ очищюємо графік

    form1.graphm1.MinXValue:=strtofloat(form1.sedit1.Text);\\ мінімальне значення по осі ОХ

    form1.graphm1.MaxXValue:=strtofloat(form1.sedit2.Text);\\ максимальне значення по осі ОХ

    form1.graphm1.MinyValue:=-1;\\ мінімальне значення по осі ОУ

    form1.graphm1.MaxyValue:=3;\\ максимальне значення по осі ОУ

    А в циклі знаходження У (while x<=b do) у кінці додати наступні строки: y:=sin(x)+1;

    form1.GraphM1.Curves[0].AddPoint(x,y);

  7. Оформити звіт про лабораторну роботу, в якому записати: тема і мета роботи; послідовність виконання роботи, тексти задач і програм, створених на лабораторній роботі.

DELPHI 7.0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]