Створити програму, яка виводить поточний час та дату.



 

Опис плану розробки програми

1. Відкрити новий проект.

2. Розмістити на формі екземпляри компонентів: Button, Edit, Label.
3. Виконати наступні дії:

 

 

                                                                                                                          


 

                                                                                                                           

Лістинг підпрограм

Var

DateTime : TdateTime;

procedureTform1.Button1Click(Sender: Tobject);

Begin

DateTime:=Time;

Edit1.Text:=TimeToStr(DateTime);

end;

procedureTform1.Button2Click(Sender: Tobject);

Begin

Edit2.Text:=DateToStr(Date);

end;

end.

 


2.Написати програму «Електронний годинник». У вікні відображати поточний час, дату і день тижня.

Опис плану розробки програми
1. Відкрити новий проект.
2. Розмістити на формі екземпляри компонентів: Label, Timer.
3. Виконати наступні дії:
3.1. Ввести константи, що відповідають за назви днів тижня і місяців.
3.2. Оголосити процедуру ShowTime вручну для доступу до компонентів форми
безпосередньо.
3.3. Процедура ShowTime відображає поточний час.
3.4. Процедура FormTime обробляє подія Paint.
3.5. Процедура Timer1Timer обробляє сигнал таймера.
3.6. Процедура FormCreate обробляє подія OnCreate.

Лістинг програми

unitUnit1;

Interface

Uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;

Type

TForm1 = class(TForm)

Timer1: TTimer;

Label1: TLabel; // время

Label2: TLabel; // дата и день недели

procedureTimer1Timer(Sender: TObject);

procedureFormCreate(Sender: TObject);

procedureFormPaint(Sender: TObject);

procedureShowTime;

private

{ Private declarations }

public

{ Public declarations }

end;

Var

Form1: TForm1;

Implementation

Рис. 48.

70

Const

stDay : array[1..7] of string[11] =

('воскресенье','понедельник','вторник',

'среда','четверг','пятница','суббота');

stMonth : array[1..12] of string[8] =

('января','февраля','марта',

'апреля','мая','июня','июля',

'августа','сентября','октября',

'ноября','декабря');

{$R *.dfm}

procedureTForm1.ShowTime;

varTime : TDateTime; // текущее время

Begin

Time := Now(); // получить системное время

Label1.Caption := FormatDateTime('hh:mm:ss',Time);

end;

procedureTForm1.Timer1Timer(Sender: TObject);

Begin

ShowTime; // отобразить время

end;

procedureTForm1.FormCreate(Sender: TObject);

Var

Present: TDateTime; // текущая дата и время

Year, Month, Day : Word; // год, месяц и число, как

// отдельные числа

Begin

Present:= Now; // получить текущую дату

DecodeDate(Present, Year, Month, Day);

Label2.Caption := 'Сегодня '+IntToStr(Day)+ ' ' +

stMonth[Month] + ' '+ IntToStr(Year)+

' года, '+ stDay[DayOfWeek(Present)];

// настроить и запустить таймер

Timer1.Interval := 1000; // период сигналов таймера 1 с

Timer1.Enabled := True; // пуск таймера

end;

procedureTForm1.FormPaint(Sender: TObject);

Begin

ShowTime; // отобразить часы

end;

end.


Практичне заняття № 9

Тема:Використання компонентів TrackBar, GroupBox та CheckBox

   Мета:Ознайомити студентів з компонентами TrackBar, GroupBox та CheckBox. Закріпити отримані знання на практиці.

Література

1. М.С.Львов, О.В.Співаковський. Основи алгоритмізації та програмування. Навчальний посібник – Херсон, 1997. – 122с.

2. Львов М.С., Співаковський О.В. Вступ до об¢єктно-орієнтованого програмування.–Херсон:ХДПУ.-240 с.

3. Фаронов В.В. Delphi 6.Учебний курс.-М.:Издатель Молгачева С.В.,-672с.,ил.

4. Т.Бадд.. Объектно-ориентированное программирование в действии / пер. с англ. - СПб.:Питер, 1997.- 464 с. ил.

5. http://www.programmersclub.ru/book/ - електронні підручники по Delphi

6. http://pitbooks.ru/delphi/ - електронні підручники по Delphi

Завдання для виконання

Створити програму, яка виконуватиме слідуючі дії:

1. Після запуску програми у вікні зображує два повзунка.

2. Необхідно вибрати два числових значення і знайти їх добуток.

3. Якщо вибирається одне число, то знаходиться його квадрат.

4. Для виходу з програми необхідно натиснути мишею на закриваючою кнопці в рядку заголовка.

Опис плану розробки програми

1. Відкрити новий проект.

2. Розмістити на формі екземпляри компонентів: командна кнопка Button, движок TrackBar, рамка GroupBox, напис Label, прапорець CheckBox.

3. Виконати наступні дії:

 

 

 

 

4. Запустіть проект, збережіть та протестуйте його.


Лістинг підпрограми

procedureTForm1.TrackBar1Change (Sender: TObject);

Begin

Label1.Caption := IntToStr(TrackBar1.Position);

Label3.Caption := IntToStr(TrackBar1.Position * TrackBar2.Position);

if CheckBox1.Checked then TrackBar2.Position := TrackBar1.Position;

end;

procedureTForm1.TrackBar2Change (Sender: TObject);

begin

Label2.Caption := IntToStr(TrackBar2.Position);

Label3.Caption := IntToStr(TrackBar1.Position * TrackBar2.Position);

if CheckBox1.Checked then TrackBar2.Position := TrackBar1.Position;

end;

procedure TForm1.CheckBox1Click (Sender: TObject);

begin

TrackBar2.Position := TrackBar1.Position;

end;

 

Завдання для самостійного виконання

1. Змінити програму так, щоб знаходити твори не тільки двозначних, але й тризначних чисел від 2 до 199.

2. Змінити програму так, щоб знаходити суму двох чисел.


Практичне заняття № 10

Тема:Введення та виведення табличних даних. Компонент String Grid.

   Мета:Ознайомити студентів з поняттям таблиці в Delphi. Розглянути компонент String Grid. Закріпити отримані знання на практиці.

Література

1. М.С.Львов, О.В.Співаковський. Основи алгоритмізації та програмування. Навчальний посібник – Херсон, 1997. – 122с.

2. Львов М.С., Співаковський О.В. Вступ до об¢єктно-орієнтованого програмування.–Херсон:ХДПУ.-240 с.

3. Фаронов В.В. Delphi 6.Учебний курс.-М.:Издатель Молгачева С.В.,-672с.,ил.

4. Т.Бадд.. Объектно-ориентированное программирование в действии / пер. с англ. - СПб.:Питер, 1997.- 464 с. ил.

5. http://www.programmersclub.ru/book/ - електронні підручники по Delphi

6. http://pitbooks.ru/delphi/ - електронні підручники по Delphi

Завдання для виконання

На одній із знаменитих гравюр Альбрехта Дюрера зображений магічний квадрат. Однією з його властивостей є те, що суми по всіх стовпцях, рядках і діагоналях
рівні.
Мета роботи - створити програму, що розраховуватиме суму по стовпцях і рядках чисел, що вводяться.

 

1. Додати на форму сітку - компонент StringGrid. Цей компонент служить для введення і виведення табличних даних.
2. Необхідно ввести дані і описати подію реагування на їх введення. У властивості Options встановіть пункт Editing, інакше сітка буде доступною тільки для читання. Тепер
при запуску програми можна вводити текст.
3. Клацнувши мишкою в Інспекторі Об'єктів, описати обробник події OnSelectCell, яка виникає, коли користувач вибирає яку-небудь комірку для редагування.
4. Тепер при запуску програми і виборі комірки в заголовку форми відображається інформація про стовбець та рядок вводу.
5. Таким чином, в розділі uses виникло посилання на модуль Grids, в якому описані компоненти сіток. В описі класу форми додалася змінна - посилання на компонент сітки, а також опис методу - обробника події. сам оброблювач
описаний вже в розділі implementation.

6. Обробити подію, що виникає, коли користувач намагається виділити яку-небудь комірку.

 

procedureTform1.StringGrid1SelectCell(Sender: Tobject; Acol, Arow: Integer;

varCanSelect: Boolean);

Begin

Caption := ‘Выделена клетка (‘ + IntToStr(Acol) + ‘:’ + IntToStr(Arow) + ‘) ‘;

end;

В якості параметрів оброблювач одержує (крім Sender) номер стовпця, номер рядка і змінну CanSelect, яку можна змінити всередині обробника, так як вона передається як var.

Alpha

 

Можна, наприклад, заборонити виділення комірок третього стовпця. Для цього вставте в цей обробник ще рядок: CanSelect: = (Acol <> 3);
У цьому випадку CanSelect буде дорівнює false, якщо Acol = 3.
7. Налаштувати сітку в залежності від значення констант, які треба оголосити в interface. Тепер при запуску програми сітка має розмір, заданий у константі, і виглядає значно акуратніше. Якщо змінити значення константи, то при запуску і розмір сітки буде відповідним.

8. Установити розмір сітки згідно значенню констант Num і сSize, оголошених в interface:

cSize = 30;

……

procedureTform1.FormCreate(Sender: Tobject);

Begin

MyGrid.DefaultColWidth := cSize;

MyGrid.DefaultRowHeight := cSize;

MyGrid.ColCount := Num;

MyGrid.RowCount := Num;

MyGrid.Width := Num * (cSize + 1) + 3;

MyGrid.Height := Num * (cSize + 1) + 3;

MyGrid.Font.Size := cSize div 2;

end;

 

 

 

       У наведеному ділянці коду змінюються ширина і висота сітки, встановлені за замовчуванням, а також кількість рядків і стовпців сітки. Додавання одиниці до ширини кожної комірки пов'язано з наявністю ліній між комірками, а додавання трійки до всієї суми - наявністю бордюру навколо сітки. В останньому рядку  встановлюється відповідний величині клітинки розмір шрифту.

9. Для розрахунку суми по стовпцях і рядках чисел, що вводяться написати власну процедуру і дві функції.

Функції будуть розраховувати суму в рядку і стовпці, отримуючи їх номер в якості параметра. Процедура буде в циклі викликати ці функції і відповідним чином заповнювати клітинки.

Тепер треба створити обробник для натискання на саму форму і описати в ньому виклик розрахунку. Власна процедура стоїть в коді раніше, ніж обробник, з якого вона викликається. Коли описується власна процедура, потрібно звертатися до компонентів через форму. При запуску програми потрібно ввести числа в сітку і клікнути на саму форму.

FunctionColSum(n: integer): integer;

Var

i: integer;

Begin

Result := 0;

forI := 1 toNum – 1 doResult := Result + StrToInt (Form1.MyGrid.Cells[n, i]);

end;

functionRowSum(n: integer): integer;

Var

i: integer;

Begin

Result := 0;

forI := 1 toNum – 1 doResult := Result + StrToInt(Form1.MyGrid.Cells[I, n]);

end;

procedureCalculate;

vari: integer;

Begin

forI := 1 toNum – 1 do

Begin

Form1.MyGrid.Cells[I, 0] := IntToStr(ColSum(i));

Form1.MyGrid.Cells[0, i] := IntToStr(RowSum(i));

end;

end;

У даній програмі використовується властивість Cells, компонента сітки. Ця властивість має тип двовимірного масиву рядків. Рахунок у цьому масиві починається з нуля.

Фіксовані (сірі) клітини, з точки зору індексування масиву, нічим не відрізняються від інших. У нашому випадку фіксовані перший рядок і перший стовпець (в масиві вони мають відповідні нульові координати). Тому при розрахунку суми проходять від 1 (а не від 0) до Num - 1 (при індексуванні з нуля останній стовпець / рядок мають, зрозуміло, номер Num - 1).
Однак, якщо відбудеться введення якої-небудь літери, одразу виникне виняткова ситуація. Вона, очевидно, виникає через неможливість перекладу букви в число в функції StrToInt. Якщо небажано, щоб при виникненні виняткової ситуації програма в Delphi переходила в режим відладки, можна відключити прапорець Menu => Tools => Debugger Options => Language Exceptions => Stop on Delphi Exceptions. Тепер програма буде виконуватися так, як якщо б вона виконувалася під Windows. Тепер кожного разу, коли вводиться нечисловий символ, програма не зупиняється, а тільки з'являється стандартне вікно Windows з повідомленням про помилку.

За допомогою обробки виключень можна уникнути появи цього вікна. Для цього треба додати в функцію конструкцію try .. except. Таким чином «небезпечна» команда (або цілий блок) поміщається всередину конструкції try .. except .. end або try .. finally .. end:

functionStrToVal(s: string): integer;

Begin

ifS = ‘’ thenResult := 0 else

Try

Result := StrToInt(s);

Except

Result := 0;

Form1.Caption := ‘Вводить надо числа!’;

end;

end;

Якщо виникає виняткова ситуація, тобто введено нечислові значення, вважається, що введено нуль, а також виводиться повідомлення про це користувачеві. Ще потрібно додати виведення інформації, що все в порядку. А також видалити код всередині обробника Click форми. У результаті, якщо введено неправильне значення, то вікно помилки не з'являється, а в Caption форми виводиться нагадування.


 

Практичне заняття № 11

Тема:Робота з текстовими та аудіо- файлами.

   Мета:Ознайомити студентів з поняттям файлу. Розглянути процедури та функції для роботи з файлами. Створити програму «Програвач файлів мультимедіа». Закріпити отримані знання на практиці.

Література

1. М.С.Львов, О.В.Співаковський. Основи алгоритмізації та програмування. Навчальний посібник – Херсон, 1997. – 122с.

2. Львов М.С., Співаковський О.В. Вступ до об¢єктно-орієнтованого програмування.–Херсон:ХДПУ.-240 с.

3. Фаронов В.В. Delphi 6.Учебний курс.-М.:Издатель Молгачева С.В.,-672с.,ил.

4. Т.Бадд.. Объектно-ориентированное программирование в действии / пер. с англ. - СПб.:Питер, 1997.- 464 с. ил.

5. http://www.programmersclub.ru/book/ - електронні підручники по Delphi

6. http://pitbooks.ru/delphi/ - електронні підручники по Delphi

Завдання для виконання

Завдання 1. Створити програму - програвач файлів мультимедіа. Для початку багатовіконність буде реалізовано за допомогою
стандартних діалогів.

1. Створити на диску папку (наприклад C: \ MyDelphi \ MyMPlayer), в якій буде створено проект, скопіювати в цю папку кілька музичних файлів і кліпів. Для демонстрації повноцінної роботи програвача знадобляться мультимедійні файли wav, mid, wma, mp3, avi, які можна знайти у відповідних папках.

відеофайли:
C: \ Program Files \ Borland \ Delphi5 \ Demos \ Coolstuf \

аудіофайли:
C: \ Windows \ Media \

C: \ Program Files \ Microsoft Office \ Office10 \ Media \

C: \ Мої документи \ Мої музичні записи \

2. Створити просту програму програвання аудіо файлів.  Для цього помістити на форму кнопку, медіапрогравач, діалог завантаження.

 

 

3. Налаштувати фільтр діалогу на файли мультимедіа, відповідно заповнивши таблицю. Прибрати непотрібні нам кнопки програвача, відключивши їх в Інспекторі Об'єктів (VisibleButtons). У обробнику натиснення на кнопку описати завантаження файлу.

 


Дата добавления: 2018-02-15; просмотров: 1024; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!