Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторні роботи_ООП.doc
Скачиваний:
0
Добавлен:
01.01.2020
Размер:
7.3 Mб
Скачать

Теоретичні відомості Оператори if і case мови Паскаль

Для програмування алгоритмів, що розгалужуються, в мові Pascal використовуються спеціальні змінні типу boolean, які можуть набувати тільки два значення - true і false (так, ні), а також оператори if і case. Оператора if перевіряє результат логічного виразу, або значення змінної типу boolean, і організовує розгалуження обчислень.

Наприклад, якщо bl|: boolean|, x,y,u:integer|, то фрагмент програми з|із| оператором if| може бути таким:

bl:=x>y|; if bl then u:=x-y; else u:=x-y;

Оператор вибору case організовує розгалуження залежно від значення деякої змінної перераховуваного типу.

Кнопки-перемикачі в Delphi|

При створенні|створінні| програм в Delphi| для організації розгалужень|розгалуджень| часто використовуються компоненти у вигляді кнопок-перемикачів. Стан|достаток| такої кнопки (включено - вимкнено) візуально відбивається на формі. На формі представлені|уявляти| кнопки-перемикачі двох типів (TCheckBox|, TRadioGroup| ).

Компонент TCheckBox організовує кнопку незалежного перемикача, за допомогою якої користувач може вказати своє вирішення типу так/ні. У програмі стан кнопки пов'язаний із значенням булевої змінної, яка перевіряється за допомогою оператора if.

Компонент TRadiogroup організовує групу кнопок - залежних перемикачів. При натисненні однієї з кнопок групи решта всіх кнопок відключається. У програму передається номер включеної кнопки (0,1,2..), який аналізується за допомогою оператора case.

Питання для самоконтролю:

  1. Яким чином реалізований вибір розгалуження алгоритму в мові Object Pascal?

  2. Команда, в якій вибір здійснюється залежно від виконання умови та дозволяє вибрати один з двох можливих варіантів?

  3. Якого типу повинна бути умов в команді розгалуження?

  4. Які компоненти в Delphi часто використовують для організації розгалужень при створенні програм?

  5. Який компонент організовує кнопку незалежного перемикача, за допомогою якої користувач може вказати вирішення типу так/ні?

  6. Який компонент організовує групу кнопок - залежних перемикачів?

  7. За допомогою якої властивості здійснюється перевірка стану кнопки CheckBox?

  8. За допомогою яких команд в програмі може бути організований цикл?

  9. Яка команда дозволяє змінити порядок виконання команд в програмі?

  10. Яка властивість дозволяє змінити заголовок компоненти?

Лабораторна робота №6

Тема: Розробка програм для обробки символів та рядків.

Мета роботи: вивчити правила роботи з компонентами TListBox і TСomboBox. Написати програму роботи з рядками.

Завдання

Написати програму підрахунку числа слів в довільному рядку. Як роздільник може бути будь-яке число пропусків. Для введення рядків і роботи з ними використовувати TComboBox. Введення рядка закінчувати натисненням клавіші Enter. Для виходу з програми використовувати кнопку Close.

Хід роботи

  1. Створити папку С:\Delphi\lab_6.

  2. Завантажити середовище візуального програмування Delphi.

  3. Створити форму, представлену|уявляти| на малюнку, і написати відповідну програму, скоректувавши текст написів Label|надписів| і положення|становище| компоненти TComboBox|. Крім того, розмістіть на формі кнопку для виходу з програми.

4. Створити процедури-обробники подій FormActivate,| ComboBox1KeyPress і ComboBox1Click, текст процедур приведений нижче.

// Обробка події активізації форми

procedure| TForm1|.FormActivate(Sender|: TObject|);

begin|

ComboBox1.SetFocus; // Передача фокусу ComboBox1

end|;

// Обробка події натиснення лівої клавіші миші

procedure| TForm1|.ComboBox1KeyPress(Sender|: TObject|; var| Кеу: Char|);

begin|

if| key=#13| then| begin| // Якщо натиснута|натискувати| клавіша Enter|, то...

ComboBox1|.Items.Add(ComboBox1|.Text); // Рядок з|із| вікна редагування заноситься у список вибору

ComboBox1|.Text:=''; // Очищення|очистка| вікна редагування

end|;

end|;

procedure| TForm1|.ComboBox1Click(Sender|: TObject|);

var| st| : string|;

n,i,nst,ind|: integer|;

begin|

n:=0|; // Містить|утримує| число слів

ind:=0|;

nst:=ComboBox1|.ItemIndex; // Визначення номера вибраного рядка

st:=ComboBox1|.Items[nst|]; // Занесення вибраного рядка в змінну st|

for| i:=1| to| Length|(st|) do| begin| // Перегляд|проглядати| всіх символів рядка st|

case| ind| of|

0 : if| st|[i]<>|' ' then| begin| // Якщо зустрівся символ після|потім| пропуску|прогалини|

ind:=1|;

n:=n+1|; // Число слів збільшується на одиницю

end|;

1 : if| st|[i]=' ' then| ind:=0|; // Якщо зустрівся пропуск|прогалина| після|потім| символів

end|;

end|;

Label3|.Caption:=IntToStr(n); // Виведення числа слів в Label3|

end|;

5. Запустити проект та перевірити правильність його виконання.