Тема: введення і виведення даних, вікна повідомлень, їх використання, передавання значень між вікном повідомлення і змінними у середовищі Lazarus.
Мета:
Обладнання: комп’ютери зі встановленими ОС та середовищем програмування мови Lazarus.
Структура уроку
Хід уроку
1. Організаційний момент
Привітання з учнями. Перевірка присутності і готовності учнів до уроку. Перевірка виконання домашнього завдання. Оголошення теми й мети уроку.
2. Актуалізація опорних знань
Описати (пояснити, деталізувати) поняття, виділені жирним шрифтом.
Типи файлів
Надалі ми обмежимося роботою з лише з текстовими файлами.
Робота з файлами
eoln(f) — булева функція — результат перевірки істинності висловлювання: «рядок файлу f закінчився»;
eof(f) — булева функція — результат перевірки істинності висловлювання: «файл f закінчився»;
seekeoln(f) — булева функція — результат перевірки істинності висловлювання: «до кінця рядка файлу f залишилися лише пропуски»;
seekeof(f) — булева функція — результат перевірки істинності висловлювання: «до кінця файлу f залишилися лише пропуски й ознаки кінця рядка».
Тут і в наступних описах замість f можна записати будь-яку іншу назву файлу.
Оператори введення-виведення
read(f,<перелік назв величин>) — зчитування з файлу f без переходу на наступний рядок;
readln(f,<перелік назв величин>) — зчитування з файлу f з переходом на наступний рядок;
write(f,<перелік назв величин>) — запис у файл f без ознаки кінця рядка;
writeln(f,<перелік назв величин>) — запис у файл f з ознакою кінця рядка.
У разі відсутності назви файлової змінної f (і коми) операцію введення / виведення буде здійснено зі стандартним пристроєм Input / Output. Як усталено — з клавіатурою / екраном.
Сформулювати алгоритм створенння консольного додатку у середовищі Lazarus.
3. Вивчення нового матеріалу
Будь-яка програма в своїй роботі використовує дані. Розглянемо приклад програми (консольного застосунку), що зчитує 2 цілих числа з файлу input.txt і записує їхню суму у файл output.txt.
var a,b: int64; o: text; BEGIN assign(o, 'input.txt'); reset(o); read(o,a,b) close(o) assign(o,'output.txt'); rewrite(o); writeln(o,a+b) close(o) END.
При роботі з формою введення даних можна здійснити з використанням текстового поля (компонент TEdit з вкладення Standard) для виведення результатів — напис (компонент Label з того самого вкладення.
Розміщення напису на формі можна здійснити таким чином: підвести вказівник миші до відповідної кнопки Label на вкладенні Standart і двічі клацнути лівою кнопкою миші. Після цього напис буде розташовано у верхній лівій частині форми, а його назву додано до списку компонентів проекту у полі Components вікна Інспектор об'єктів. За потреби напис можна перетягнути в будь-яке місце форми.
Властовості напису:
Top — віддаленість у пікселях верхньої межі напису від верхнього краю форми;
Left — відступ у пікселях лівої межі напису від лівого краю форми;
Name — назва напису у програмному коді
аналогічні відповідним властивостям кнопки. Значення властивості Color визначає колір тла. Зміна значень цієї властивості приводить до зміни кольору фону напису, як це відбувається для форми.
На відміну від форми і кнопки, значення властивостей Height i Width для запису не можна змінити на вкладенні Властивості вікна Інспектор об'єктів або перетягуванням. Висота і ширина напису залежать від тексту напису, його гарнутури й розміру шрифта. Текст напису можна вводити і редагувати як у полі Cаption вікна Інспектор об'єктів, так і у вікні Редактор рядків.
Алгоритм створення обробника події на прикладі події клацання на написі такий.
Виділити об'єкт — двічі клацнути на надпису, розташованому на формі.
Обрати подію — у вікні Інспектор об'єктів клацнути по напису OnClick;
У вікні Редактор тексту ввести текст процедури
procedure TForm1.Label1Click(Sender:Objekt); begin Label1.Color:= clRed; Label1.Font.Color:= clGreen; Label1.Caption:= 'Київ — столиця України'; end;
Запустити проект на виконання, натиснувши або клавішу F9, або кнопку Виконати (Run) на Панелі інструментів. Дочекатися появи у вікні Повідомлення такого запису:
Скомпілювати проект, ціль … Успішно
Перевірити коректність роботи обробника подій: натиснути кнопку Label на формі і отримати такий результат.
Розташувати на формі компоненти: 2 поля для введення вхідних написів, напис для виведення вихідних даних, кнопкe для ініціалізації процесів обчислення.
Для встановлених об'єктів змінити значення властивостей Text, Name, Caption на вкладенні Властивості вікна Інспектора об'єктів
Для кнопки ініціалізації обчислень обрати подію OnClick і у вікні Редактор тексту внести код обробника подій.
procedure TForm1.Button1Click(Sender:Objekt); var a, b, x: real; begin a:=StrToFloat (Edit1.Text); b:=StrToFloat (Edit2.Text); x:=2*a+5*b; label1.Caption:= FloatToStr(x); end;
Пояснення. Всі вхідні дані буде сприйнято як рядки тексту значення властивості Text полів. Тому для перетворення типу використовують такі функції:
StrToFloat (англійською string to float — з рядка в число з рухомою десятковою крапкою (комою);
StrToInt (англійською string to integer — з рядка у ціле число)
Запустити проект на виконання, натиснувши або клавішу F9, або кнопку Виконати (Run) на Панелі інструментів. Дочекатися появи у вікні Повідомлення такого запису:
Скомпілювати проект, ціль … Успішно
і форми.
Перевірити коректність роботи обробника подій: у поля ввести значення a = 2, b = 3,
натисyнути кнопку Обчислити й отримати результат.
Інший спосіб організації введення і виведення даних — використання вбудованих діалогових вікон Inputbox, ShowMessage.
Функція InputBox виводить на екран монітору вікно діалогу, з допомогою якого можна ввести значення змінної у виконувану програму. Аргументами цієї функції є три рядки, а значенням функції — рядок введення даних користувачем.
У загальному вигляді рядок програмного коду з використанням функції InputBox виглядає так:
змінна: = InputBox('заголовок вікна','підказка','значення як усталено');
де:
Значення функції InputBox завжди рядкового типу String, тому при потребі ввести число введений рядок потрібно перетворити в число за допомогою відповідної функції перетворення.
Результат роботи програми найчастіше виводять у вікно повідомлення ShowMessage, або в поле виведення компонент Label.
Функція ShowMessage — альтернатива напису Label при виведенні даних. Ця функція виводить на екран монітора вікно з текстом, кнопкою OK. Виклик процедури ShowMessage має такий вигляд:
ShowMessage(Повідомлення);
4. Інструктаж з ТБ
5. Вироблення практичних навичок
Завдання. Створити програму, яка після натискання кнопки створює 2 вікна діалогу із запитами: «Як вас звати?» та «Скільки вам повних років». Після отримання відповідей (використати функцію InputBox) програма має вивести ці дані у вікно повідомлення.
Вказівки до виконання
procedure TForm1.Button1Click(Sender: TObject); var fio: string; age: integer; begin fio:=Inputbox('ПІБ','Як вас звати?','Не задано'); age:=StrToInt(Inputbox ('Вік','Скільки вам повних років','0')) ; ShowMessage('Вітаю '+fio+#10#13+'Ваш вік '+IntToStr(age)+' років'); end;
Отримати вікно повідомлення.
Зберегти проект Ваше прізвище у вказаній вчителем теці.
6. Підведення підсумків уроку.
На уроці розглянуто способи організації введення і виведення даних в середовищі Lazarus. Для введення даних використано вікно діалогу InputBox, для виведення — вікно діалогу ShowMessage і компонент форми TLabel (Поле виведення).
Виставлення оцінок.
7. Домашня робота.
Вивчити матеріал уроку. Створити програму з виведенням форми для анкети з трьома написами-заголовками, трьома полями для введення і кнопкою, натискання на яку призводить до дописування введених значень, розділених крапкою з комою, у файл input.txt.
Текст упорядкував Бабенко Павло Анатолійович, спеціалізованой школи № 298 Оболонського району міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 02.10.2017 по 6.10.2017.