середа, 11 листопада 2026 р.

Лабораторна робота №8 Створення програм з використанням дати та часу.

    Лабораторна робота №8 Створення програм з використанням дати та часу. 

Мета: Навчитись створювати програми з використанням дати та часу.

Теоретичний матеріал посилання 

Завдання 1. Організувати введення дати народження  та сьогоднішньої дати. Провести розрахунок тривалості життя.

Завдання  2. Організувати введення двох дат та визначити часовий проміжок між цими датами.

Завдання  3 Ввести дати. Визначити день тижня. Скористатись формулами розрахунків "Як за датою обчислити день тижня?": посилання  (https://genomukr.com/rizne/26518-jak-za-datoju-obchisliti-den-tizhnja.html) .

Завдання  4 Визначити час роботи вашої програми після її запуску. Інформацію відобразити у нижньому рядку:  StatusBar .

Завдання  5 Написати програму визначення  дати Великодня. Скоритсатися алгоритмом Гауса для обчислення дати Великодня. Посилання на вікіпедію. Для перевірки правильності роботи програми скористайтеся таблицею у Вікіпедії (дивись посилання).


Приклад коду:

newDate := IncDay(EncodeDate (Year, Month, Day) , 14); //використовується модуль         DateUtils тут додаємо 14 днів EncodeDate створюю задану дату

form1.Label12.Caption:= DateToStr (newDate) ;

   //dt:= now;     // поточна дата

dt := form1.DateTimePicker1.Date;  //визначена дата тобто введена з компоненту DateTimePicker

form1.Label11.Caption:= DateToStr (dt) ; //виводимо дату

difference := DaysBetween(newDate, dt); //використовується модуль DateUtils тут різницю днів

if dt<newDate then  s:=''

                  else  begin s:='пройшло'; newdt:=dt; dt:=newDate; newDate:=newdt; end;//переставити дати тобто прйшов час або пусто якщо дати розташовано вірно


form1.Label13.Caption:= s+intToStr (difference )+ ' днів ' ;

  // Припустимо, що у вас є дві дати:

  //date1 := EncodeDate(2022, 1, 1); // перша дата

  //date2 := Now; // друга дата (поточна дата ≥ час)

  // «находимо різницю між датами в місцях та днях

  //monthsDifference := MonthsBetween(date1, date2);

  //daysDifference := DaysBetween(date1, IncMonth(date1, monthsDifference));

monthsDifference := MonthsBetween(newDate, dt);    //різниця у місяцях

daysDifference := DaysBetween(newDate, IncMonth(dt, monthsDifference)); //різниця у датах з урахуванням місяців

form1.Label15.Caption:=s+ ' кількість місяців: '+ IntToStr( monthsDifference)+ '   кількість днів: '+ IntToStr (daysDifference);


Введення та відображення дат та часу – компоненти DateTimePicker, MonthCalendar, Calendar

    Введення та відображення дат та часу – компоненти DateTimePicker, MonthCalendar, Calendar

Стандартний тип дата-час - TDateTime, визначений у модулі System, є дійсне  число типу Double, ціла частина якого задає число днів (у тому числі і негативне), що пройшли з 30 грудня 1899, а дробова частина - минулу частку поточного дня . Так, 35065.75 дає 1 січня 1996, 18.00. 

У модулі SysUtils визначено низку стандартних функцій роботи з параметрами типу дати-часу.

Матеріал посилання     опис модуля SysUtils,  розглянуті деякі функції на прикладах. наведено коди прикладів, наведено використання компонента  StatusBar , який знаходиться у вкладці Win32: ( зображено жовтим кольором у коді), розглянуто Компонент Delphi DataTimePicker розташований на сторінці Win32 Палітри компонентів. Він призначений для введення часу та дати, компоненти DateTimePicker, MonthCalendar, Calendar.


Додатково матеріал   ще один опис Процедур та функцій роботи з датою та часом

Модуль SysUtils (можливо трохи гірше описано чим у попередньому, зате коротко).


Зразок проведення обчислення: 

Знайти проміжок між двома датами:

procedure TForm1.Button2Click(Sender: TObject);

var

  aDate,bDate: TDate;

  diff : Double;

begin

   aDate:= form1.DateTimePicker2.Date; //перша дата

   bDate:= form1.DateTimePicker3.Date;  //друга дата

   diff := aDate-bDate ;                //різниця дат це число Double

   form1.Label17.Caption:= ('day2 - day1 = '+FloatToStr(diff)+' days') ;   //відобразимо дату

   form1.Label16.Caption:= ('day2 - day1 = '+FloatToStr(round(diff))+' days') ; //заокруглимо 

end;



// Знаходимо різницю між датами в місяцях та днях

  //monthsDifference := MonthsBetween(date1, date2);

  //daysDifference := DaysBetween(date1, IncMonth(date1, monthsDifference));

   monthsDifference := MonthsBetween(newDate, dt);    //різниця у місяцях

   daysDifference := DaysBetween(newDate, IncMonth(dt, monthsDifference));//різниця у датах з урахуванням місяців

   form1.Label15.Caption:=s+ 'Кількість місяців: '+ IntToStr( monthsDifference)+ '  Кількість днів: '+ IntToStr (daysDifference);


понеділок, 2 листопада 2026 р.

Лабораторна робота №7 Створення програм з використанням таблиці

       Компонент таблиця (матеріал 1),  матеріал 2 посилання 

Лабораторна робота №7 Створення програм з використанням таблиці

Мета: Навчитись створювати програми з використанням таблиць

Завдання 1.

Створити програму, яка буде  виконувати розрахунки у наведеній таблиці:

Посилання на завдання

Завдання 2 (на підвищену оцінку).

Лабораторна робота № 6 Створення програми мовою delphi з використанням багатосторінкового інтерфейсу. Вкладки PageControl

    Лабораторна робота № 6 Створення програми мовою delphi з використанням багатосторінкового  інтерфейсу. Вкладки PageControl

Мета: Навчитись складати та реалізовувати програми у середовищі delphi.

Завдання до лабораторної роботи:
1 Створити програму, яка буде мати декілька сторінок/ вкладок (5 штук, наприклад: вкладки фізика, математика, інформатика, хімія, література, тощо ).
Для створення програми використати компонент  PageControl. 
Розмістити на сторінках різні компоненти з відповідним матеріаллом. На двох сторінках передбачити матеріал, наприклад, декілька малюнків (нехай по 5 шт.), які не поміщаються на сторінці і їх перегляд можливо використовуючи прокрутку  ScrollBox — панель з прокруткою з використанням кольосіка мищки. 
До цих сторінок створити можливість (події) використати прокрутку мишки. (див приклад у теоретичному блоці).
2 Створити 5 кнопок , які будуть відповідно активувати вказану сторінку.
3 Створити головне меню із 5 пунктів (структуру меню можна продумати самому на свій вибір) та зробити так, щоб при виборі меню також були активовані відповідні сторінки компонента  PageControl. 
Продемонструвати роботу програм.

Табличне подання даних

   

Компонент StringGrid призначений для відображення та зберігання текстової інформації у вигляді таблиці. Розташований він на вкладці Additional Палітри компонентів:

 

Таблиця – двомірне подання даних, упорядковане по стовпчикам та рядкам. Таблиці, зазвичай, мають заголовки. У зв'язку з цим таблиці поділяються на дві частини: фіксовану та робочу . Робоча частина може містити довільну кількість рядків та стовпців. Якщо вона не міститься в межах компонента, то в нього автоматично вбудовуються смуги прокручування.

Табличне подання можна використовуватиме введення та виведення даних, тобто. вміст комірок можна редагувати.

У Delphi використовуються два компоненти для представлення даних у вигляді таблиці: TStringGrid та TDrawGrid.

Матеріал посилання 1
                посилання 2

приклад коду:
begin
     Label1.Caption:=IntToStr(ACol);
     Label2.Caption:=IntToStr(ARow);
     if ACol=4 Then
        begin
          StringGrid1.Options:=StringGrid1.Options-[goEditing];
          label3.Caption:='заборона  редагування'
        end
              Else
        begin
          StringGrid1.Options:=StringGrid1.Options+[goEditing]; //встановимо редагування
          label3.Caption:='редагування'
        end;
     // StringGrid1.Cells[4,Arow]:=intToStr(StrToInt(StringGrid1.Cells[1,Arow]));//+StrToInt(StringGrid1.Cells[2,Arow])) ;
end;




procedure TForm1.StringGrid1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

  var ACol,ARow:integer;
begin
   StringGrid1.MouseToCell(x,y,ACol,ARow); //отримуємо координати
   StringGrid1.Col:=ACol;
   StringGrid1.Row:=ARow;
   Label1.Caption:=IntToStr(Acol);  //для себе для орієнтування вибору колонки
   Label2.Caption:=IntToStr(ARow);  //для себе для орієнтування вибору рядка
    if StringGrid1.Col=4 Then
        begin
          StringGrid1.Options:=StringGrid1.Options-[goEditing];
          label3.Caption:='нет редактирования'
        end
              Else
        begin
          StringGrid1.Options:=StringGrid1.Options+[goEditing]; //встановимо редагування
          label3.Caption:='редактирования'
        end;
end;

Вкладки PageControl

 Вкладки PageControl

 Компонент PageControl використовується для того, щоб можна було використовувати кілька що перекриває інші панелі (клас TTabSheet). Кожна панель вибирається пов'язаною з її закладкою і може містити, у свою чергу, свій набір розміщених на її компонентах. 

Посилання на матеріал

Матеріал 1

Матеріал 2 витяг з книги

середа, 28 жовтня 2026 р.

Лабораторна робота № 5 Створення програми мовою delphi з використанням меню

Пройдіть опитування https://forms.gle/W3xB58r4GjowkyGVA     


Лабораторна робота № 5 Створення програми мовою delphi з використанням меню

  Мета: Навчитись складати та реалізовувати програми у середовищі delphi.

 Компонент Delphi MainMenu   Контекстное меню (PopupMenu)

Завдання до лабораторної роботи:
1 Створити до попередньої лабораторної роботи головне меню та контекстне меню.
У головному меню, створити пункти : файл (підпункти відкрити, зберегти, вихід, інші), редагування (збільшити/зменшити шрифт та вибір кольорів написів), завдання (де підпункти будуть ті 10 малюнків-запитань з відповідними підписами), про програму (дані про автора програми).
У контекстному меню створити пункти: збільшити або зменшити шрифт та прив'язати його до всіх підписів до малюнків.
До наведених компонентів додати контекстне меню (хоча б три пункти). Наприклад, збільшити розмір тексту, зменшити розмір, встановити певний колір або шрифт. Приєднати створене контекстне меню до всіх підписів (компонентів Лабел).

Створити контекстне меню до форми. Передбачити, наприклад колір форми, відображення або зникнення зображення.

Продемонструвати роботу програм..