ВПРАВА. Агрегатний стан води.

Вправа. Агрегатний стан води.


Завдання. Розробіть проект у середовищі Lazarus, у якому за введеним значенням температури води буде визначатись її агрегатний стан.

Коли ми пишемо програму на Lazarus, потрібно не забувати, що ми створюємо програму з графічним інтерфейсом, до якого є певні вимоги. Це і інтуїтивність (користувач по вигляду програми, написами в вікні та на кнопках повинен здогадатись, де йому вводити дані та як заставити програму працювати), акуратність самого інтерфейсу (все повинно бути компактне, не повинно бути пустих місць, неохайно розміщених елементів керування). Коли ми розміщуємо на формі другий напис label, з’являються лінії, які показують, як розмістити його так, щоб він був у одному ряду з попереднім. Те ж саме стосується і текстових полів edit. Слід вимагати від учнів акуратності та грамотності в створенні інтерфейсу програми. Ще я рекомендую розміщувати на формі зображення, які б показували графічно, що робить програма. Це створить додаткову мотивацію до написання програми, адже учні будуть показувати і порівнювати, у кого вийшов кращий інтерфейс. В Інтернеті потрібне зображення відшукати нескладно.
Хотілося б сказати декілька слів щодо розміщення зображення. Об’єкт для розміщення зображень знаходиться у вкладці Additional, має назву TImage. Розмістити в ньому зображення – властивість Picture кнопка Загрузить. Щоб можна було масштабувати зображення, потрібно властивості Stretsh встановити значення True. Щоб TImage не заважав нам розміщувати об’єкти на форму, його потрібно перемістити на самий задній план: правий клик – Z-порядок-Поместить сзади.
І ще одне. Стосовно виведення даних на label. Я встановлюю два label для виведення. Один label показує інформацію, яка буде виведена на другому. В даному випадку label1 показує напис «Агрегатний стан:». А на label2, який я зробив пустим, буде виведено саму інформацію про агрегатний стан. Це дає змогу користувачу зразу побачити не тільки те, яку інформацію буде введено в програму (температура в градусах), а і те, яку інформацію буде виведено. Щоб на формі створити пустий label, потрібно властивості AutoSize встановити значення false. Якщо планується виведення в декілька рядків, то відповідне значення потрібно встановити і властивості WordWrap. Тільки потрібно розтягти label по ширині, щоб вона відповідала двом рядкам.

Ось що в мене вийшло із формою та контролами:


Програмний код:

procedure TForm1.Button1Click(Sender: TObject);
var t:real;                                                   змінна t для температури   
s:string;                                                     змінна s для агрегатного стану
begin
  t:=strtofloat(Edit1.Caption);
  if t<0 then s:=' твердий'                          якщо t<0 то  твердий
   else if t>100 then s:=' газоподібний'    інакше t>100 газоподібний
        else s:=' рідкий';                               інакше рідкий

Label3.caption:=s;
end;

procedure TForm1.Edit1Click(Sender: TObject);
begin
  edit1.Caption:='';                          при клацанні по edit1 він очищується від тексту
end;   

Робота програми:



Немає коментарів:

Дописати коментар