Дніпропетровський коледж транспортної інфраструктури



Сторінка7/10
Дата конвертації16.01.2017
Розмір2.42 Mb.
1   2   3   4   5   6   7   8   9   10
Тема: Створення проекту Delphi

 

Мета роботи: навчитися створювати проекти в Delphi, розробляти і виконувати програми.



Хід роботи:

1Запустіть Delphi

2. Необхідно створити проект, що виконує наступні дії:

 З’являється вікно діалогу з кнопкою «Складання», при клацанні на яку виконується складання двох чисел, котрі попередньо вводяться.

 Форма повинна мати своє оформлення!

3.  Розмістити на формі екземпляри компонентів:



    • мітки  Label1,Label2,Label3;

    • вікна редагування Edit1, Edit2, Edit3;

    • кнопки Button1, Bitton2.

Вони містяться на сторінці Standart Палітри компонентів.

4. Далі необхідно змінити шрифтові  налаштування для кнопок в Инспекторі об’єктів.

5. На етапі проектування вікно форми матиме подібний вигляд:

6. Виділіть на формі компонент Button1 - кнопку. Перейдіть в Інспектор Об'єктів і змініть її властивість Caption (напис), яке за замовчуванням дорівнює Button1  на «Складання». Компоненту Button2 – «Вихід».

7. Додати обробник кнопки «Вихід»

8. Також використовуємо функції

         Strtofloat (const s:string)– перевід строки s в дійсне число та
Floattostr (value:extended) – перевід дійсного значення value в строку

9. Переходимо в  вікно Редактору кода (подвійний щиглик по кнопці «Складання») та пишемо код програми:



procedure TForm1. Button1 Click(Sender: TObject);
var a,b,c: Double;
begin
a:=strtofloat(edit1.Text);  
b:=strtofloat(edit2.Text);
c:=a+b;
edit3.Text:=floattostr(c);
end;

10. Написати проект для виконання програми по індівідуальному завданню (приклад проект Швидкість бігу):





Завдання

1

Складіть прикладну програму обчислення площі поверхні куба( S=6*a2), якщо відома довжина ребра кубу.

2

Складіть прикладну програму обчислення площі прямокутника (S=a*b ), якщо відомі довжина та ширина прямокутника.

3

Складіть прикладну програму обчислення об’єму паралелепіпеду (V=a*b*c ), якщо відомі довжина, ширина та  висота паралелепіпеду.

4

Складіть прикладну програму обчислення площі поверхні паралелепіпеду (S=2*(a*b+b*c+a*c )), якщо відомі довжина, ширина та  висота паралелепіпеду.

5

Складіть програму обчислення об’єму куба( V=a3), якщо відомо ребро кубу.

6

Складіть програму обчислення площі трикутника, якщо відома довжина основи та висота ( S=0.5*a*h).

7

Складіть програму обчислення швидкості руху поїзда (v=s/t), з якою він їхав відому відстань відомий проміжок часу.

8

Складіть прикладну програму обчислення площі паралелограма (S=a*h ), якщо відомі довжина та висота паралелограму.

9

Складіть прикладну програму обчислення площі ромбу (S=1/2*d1*d2 ), якщо відомі його діагоналі.

10

Складіть прикладну програму обчислення площі трапеції (S=1/2*(a+b)*h), якщо відомі основи та висота трапеції.

 11. Створити на Робочому столі значок додатку.

12. Налаштувати індівідуальне оформлення форм!

13. Продемонструйте роботу проектів викладачу.

14. Завершіть роботу, оформіть звіт, дайте відповіді на контрольні запитання.

 Контрольні питання


  1. Що таке головний модуль? Що таке файл ресурсів?

  2. Що таке модуль форми?

  3. З яких розділів складається модуль?

  4. Для чого потрібен розділ інтерфейсу?

  5. Як організован розділ реалізації?

  6. Де розташовують інструкції ініціалізації?

  7. Що таке проект? З чого він складається?

  8. Що таке компіляція? Опишіть етапи процесу компіляції

  9.  Основне правило виправлення помилок?

Теоретичні відомості

Структура проекту

Проект Delphi являє собою набір програмних одиниць — модулів. Один з модулів — головний, містить інструкції, з яких починається виконання програми.



Головний модуль додатка цілком формується Delphi.

Головний модуль являє собою файл із розширенням dpr. Для того щоб побачити текст головного модуля додатка, потрібно з меню Project вибрати команду View Source.


 
 
Рис. 71 Вікно програми обчислення швидкості бігу




Лістінг 1. Головний модуль додатка Швидкість бігу 

program vrun;



uses 
Forms,vrun1 in 'vrunl.pas' {Form1};
{$R *.res}

begin 
Application.Initialize; 
Application.CreateForm(TForm1, Form1); 

Application.Run; 


end. 

Починається головний модуль словом program, за яким випливає ім'я програми, що збігає з ім'ям проекту. Ім'я проекту задається в момент збереження проекту, і воно визначає ім'я створюваного компілятором файлу програми, що виконується. Далі за словом uses випливають імена використовуваних модулів: бібліотечного модуля Forms і модуля форми vrunl.pas. Рядок {$R *.RES}, що схожа на коментар, — це директива компіляторові підключити файл ресурсів. Файл ресурсів містить ресурси додатка: піктограми, курсори, бітові образи й ін. Зірочка показує, що ім'я файлу ресурсів таке ж, як і у файлу проекту, але з розширенням res. Файл ресурсів не є текстовим файлом, тому переглянути його за допомогою редактора тексту не можна. Для роботи з файлами ресурсів використовують спеціальні програми, наприклад, Resource Workshop. Можна також застосовувати вхідну до складу Delphi утиліту Image Editor, доступ до якої можна одержати вибором з меню Tools команди Image Editor. Частина головного модуля, що виконується, знаходиться між інструкціями begin і end. Інструкції частини, що виконується, забезпечують ініціалізацію додатка і висновок на екран стартового вікна.


Крім головного модуля, кожна програма містить у собі ще як мінімум один модуль форми, що містить опис стартової форми додатка і підтримуючу її роботу процедур. У Delphi кожній формі відповідає свій модуль.
У лістінгу 2 приведений текст модуля програми обчислення швидкості бігу.

Лістінг 2. Модуль програми Швидкість бігу

unit vrun1;
interface 
uses 
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type 
TForm1 = class(TForm) Edit1: TEdit;

Edit2: TEdit; Label1: TLabel;

Label2: TLabel; Label3: TLabel;

Label4: TLabel; 

Button1: TButton; 

Button2: TButton;



procedure ButtonlClick(Sender: TObject); 

procedure Button2Click(Sender: TObject);

private
{ Private declarations } public

Public declarations } end;

var 
Form1: TForm1;

implementation 
{$R *.dfm}

// натискання кнопки Обчислити



procedure TForm1.ButtonlClick'(Sender: TObject);

var 
dist : integer; // дистанція, метрів

t: real; // час як дробове число

min : integer; // час, хвилини 

sek : integer; // час, секунди

v: real;

// швидкість



begin 
// одержати вихідні дані з полів уведення 

dist := StrToInt(Edit1.Text); t := StrToFloat(Edit2.Text);

// попередні перетворення

min := Trunc(t); // у хвилин — це ціла частина числа t

sek := Trunc(t*100) mod 100; // у секунд — це дробова частина

// числа t 

// обчислення 

v := (dist/1000) / ((min*60 + sek)/3600);

// висновок результату

label4.Caption := 'Дистанція: '+ Edit1.Text + ' м' + #13 

+ 'Час: ' + IntToStr(min) + ' хв '

+ IntToStr(sek) + ' сек ' + #13 +

'Швидкість: ' + FloatToStr(v,ffFixed,4,2) + км/година';

end; 
// натискання кнопки Завершити

procedure TForm1.Button2Click(Sender: TObject)

begin 
Form1.Close;
end; 
end. 

Починається модуль словом unit, за яким випливає ім'я модуля. Саме це ім'я згадується в списку використовуваних модулів в інструкції uses головного модуля додатка, текст якого приведений у лістінгу 1. Модуль складається з наступних розділів:



  • інтерфейсу;

  • реалізації;

  • ініціалізації.

Розділ інтерфейсу (починається словом interface) повідомляє компіляторові, яка частина модуля є доступною для інших модулів програми. У цьому розділі перераховані (після слова uses) бібліотечні модулі, використовувані даним модулем. Також тут знаходиться сформоване Delphi опис форми, яке випливає за словом type. Розділ реалізації відкривається словом implementation і містить оголошення локальних перемінних, процедур і функцій, що підтримують роботу форми.

Починається розділ реалізації директивою {$R *.DFM}, що вказує компіляторові, що в процесі генерації виконуваного файлу треба використовувати опис форми. Опис форми знаходиться у файлі з розширенням dfm, ім'я якого збігається з ім'ям модуля. Файл опису форми генерується середовищем Delphi на основі зовнішнього вигляду форми. 

За директивою ($R *.DFM} випливають процедури обробки подій для форми і її компонентів. Сюди ж програміст може помістити інші процедури і функції.Розглянуті ініціалізації дозволяють виконати ініціалізацію змінних модуля. Інструкції ініціалізації розташовуються після розділу реалізації (опису всіх процедур і функцій) між begin і end. Якщо ініціалізації не містять інструкцій (як у приведеному прикладі), то слово begin не вказується. Слід зазначити, що значна кількість інструкцій модуля формує Delphi.

Наприклад, Delphi, аналізуючи дії програміста по створенню форми, генерує опис класу форми (після слова type). Очевидно, що Delphi виконала значну частину роботи зі складання тексту програми.



Збереження проекту 

Проект — це набір файлів, використовуючи які компілятор створює файл програми, що виконується, (Ехе-файл).

У найпростішому випадку проект складається з файлу опису проекту (DOF-файл), файлу головного модуля (DPR-файл), файлу ресурсів (RES-файл), файлу опису форми (DFM-файл), файлу модуля форми, у якому знаходяться основний код додатка, у тому числі функції обробки подій на компонентах форми (PAS-файл), файл конфігурації (CFG-файл)

Щоб зберегти проект, потрібно з меню File вибрати команду Save Project As. Якщо проект ще жодного разу не був збережений, то Delphi спочатку запропонує зберегти модуль (уміст вікна редактори коду), тому на екрані з'явиться вікно Save Unitl As. У цьому вікні (рис. 17) треба вибрати папку, призначену для файлів проекту, і ввести ім'я модуля. Після натискання кнопкиЗберегти, з'являється наступне вікно (рис. 18), у якому необхідно ввести ім'я файлу проекту.

Рис. 72 Збереження модуля форми

Рис. 73 Збереження проекту

Зверніть увагу на те, що імена файлів модуля (pas-файл) і проекту (dpr-файл) повинні бути різними. Ім'я генеруємого компілятором файлу, що виконується, збігається з ім'ям проекту. Тому файлові проекту варто привласнити таке ім'я, що, на вашу думку, повинний мати файл програми, що виконується, а файлові модуля - яке-небудь інше ім'я, наприклад, отримане шляхом додавання до імені файлу проекту порядкового номера модуля.


У звязку з тим, що проект являє собою набір файлів, то рекомендується для кожного проекту створювати окрему папку.
Компіляція 
Компіляція — це процес перетворення вихідної програми в таку, що виконується.

Процес компіляції складається з двох етапів.



На першому етапі виконується перевірка тексту програми на відсутність помилок,

на другому — генерується програма, що виконується, (ехе-файл).

Після введення тексту функції обробки події і збереження проекту можна з меню Projectвибрати команду Compile і виконати компіляцію. Процес і результат компіляції відбивають у діалоговому вікні Compiling. В це вікно компілятор виводить помилки (Errors), попередження (warnings) і підказки (Hints). Самі повідомлення про помилки, попередження і підказки відображаються в нижній частині вікна редактори коду.


Рис. 74 Результат компіляції


Якщо під час компіляції вікна Compiling на екрані нема, то виберіть з меню Tools команду Environment options і на вкладці Preferences встановіть у включений стан перемикач Show compiler progress.



Помилки

Компілятор генерує програму, що виконується, лише в тому випадку, якщо вихідний текст не містить синтаксичних помилок. У більшості випадків у тільки що набраній програмі є помилки. Програміст повинний їх усунути. Щоб перейти до фрагмента коду, що містить помилку, треба установити курсор у рядок з повідомленням про помилку і з контекстного меню (рис. 21) вибрати команду Edit source.


 
Рис. 75 Повідомлення компілятора про виявлені помилки

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

Рис. 76 Перехід до фрагмента програми, що містить помилку

Якщо компілятор знайшов досить багато помилок, то перегляньте всі повідомлення, треба усунути спочатку найбільш очевидні помилки і виконати повторну компіляцію. Цілком імовірно, що після цього кількість помилок значно зменшиться. Це підрозумівається особливостями синтаксису мови, коли одна незначна помилка може "тягти" за собою досить велика кількість інших.


Якщо в програмі немає синтаксичних помилок, компілятор створює файл програми, що виконується. Ім'я файлу, що виконується, таке ж, як і у файлу проекту, а розширення - exe. Delphi поміщає файл, що виконується, у той же каталог, де знаходиться файл проекту.

Запуск програми 

Пробний запуск програми можна виконати безпосередньо з Delphi, не завершуючи роботу із середовищем розробки. Для цього потрібно з меню Run вибрати команду Run або клацнути на відповідній кнопці панелі інструментів Debug (рис. 22).


Рис. 77 Запуск програми із середовища розробки



Внесення змін 

Щоб внести зміни в програму, потрібно запустити Delphi і відкрити відповідний проект. Зробити це можна звичайним способом, вибравши з меню File команду Open Project. Можна також скористатися командою Reopen з меню File. При виборі команди Reopen відкривається список проектів, над якими програміст працював останнім часом.

Варто звернути увагу на те, що для додавання в програму процедури обробки події потрібно у вікні Object Inspector вибрати компонент, для якого створюється процедура, потім на вкладціEvents вибрати подію і зробити подвійного щиглика в поле імені процедури. Delphi сформує шаблон процедури обробки події. Після цього можна вводити інструкції, що реалізують процедуру обробки.
Після внесення змін проект варто зберегти. Для цього потрібно з меню File вибрати команду Save all.

Остаточне настроювання додатка 

Після того як програма налагоджена, необхідно виконати її остаточне настроювання, тобто задати назва програми і вибрати значок, що буде зображувати файл додатка, що виконується, у папці або на робочому столі, а також на панелі задач під час роботи програми. Настроювання додатка виконується на вкладці Application діалогового вікна Project Options (рис. 23), що з'являється в результаті вибору з меню Project команди Options. У поле Title треба ввести назву додатка. Текст, що буде введений у це поле, буде виведений на панелі задач Windows, поруч зі значком, що зображує працюючу програму.


Рис. 78 Використовуючи вкладку Application, можна задати значок і назва програми


Щоб призначити додаткові значок, відмінний від стандартного, потрібно клацнути мишею на кнопці Load Icon. Потім, використовуючи стандартне вікно перегляду папок, знайти підходящий значок (значки зберігаються у файлах з розширенням ico).

Створення значка для додатка 

До складу Delphi входить програма Image Editor (Редактор зображень), за допомогою якої програміст може створити для свого додатка унікальний значок. Запускається Image Editorвибором відповідної команди з меню Tools або з Windows — командою Пуск | Програми Borland Delphi 7 | Image Editor.


Щоб почати роботу з створенню нового значка, потрібно з меню File вибрати команду New, а зі списку, що з'явився - опцію Icon File.

Після вибору типу створюваного файлу відкривається вікно Icon Properties, у якому необхідно вибрати характеристики створюваного значка: size (Розмір) — 32x32 (стандартний розмір значків Windows) і Colors (Палітра) — 16 квітів. У результаті натискання кнопки ОКвідкривається вікно Icon1.ico, у якому можна, використовуючи стандартні інструменти і палітру, намалювати потрібний значок. Процес малювання в Image Editor практично нічим не відрізняється від процесу створення картинки в звичайному графічному редакторі, наприклад, у Microsoft Paint. Однак є одна тонкість. Первісне поле зображення зафарбоване "прозорим" (transparent) кольором. Якщо значок намалювати на цьому тлі, то при його виведення частини полючи зображення, зафарбовані "прозорим" кольором, приймуть колір тла, на якому буде знаходитися значок.

У процесі створення картинки можна видалити (стерти) помилково намальовані елементи, зафарбувавши їх прозорим кольором, якому на палітрі відповідає лівий квадрат у нижньому ряді. Крім "прозорого" кольору, у палітрі є "інверсний" колір. Намальовані цим кольором частини малюнка при виведення на екран офарблюються інверсним кольором щодо кольору тла. Зберігається створений значок звичайним образом, тобто вибором з меню File команди Save.

ПРАКТИЧНА РОБОТА № 13
Тема: «Пошукові системи в Інтернет»
Мета: сформувати навички отримання доступу до документів, розміщених на Web-серверах, збереження інформації на локальному комп’ютері.
Хід роботи:
Запишіть тему і мету практичної роботи, вирішивши завдання складіть звіт про її виконання.

ЗАВДАННЯ 1

Уважно прочитайте теоретичні відомості про роботу зі службою WWW (World Wide Web).

ЗАВДАННЯ 2. Пошук інформації в мережі Інтернет



  1. Активізуйте браузер MS Internet Explorer.

Ввійдіть у пошукову систему “МЕТА”.

Введіть повну адресу http://www.meta.ua або коротку www.meta.ua.



  1. Використовуючи описані вище засоби пошуку, знайдіть:

а) документи, в назву яких входить вираз “інформаційна культура”. Запишіть у звіт умову пошуку та кількість знайдених об’єктів. Збережіть один зі знайдених документів на локальному комп’ютері;

б) документи, розділи яких містять вираз “інформаційна культура”. Запишіть у звіт умову пошуку і кількість знайдених об’єктів;

в) документи, що містять вираз “інформаційна культура” і відстань між словами не перевищує 6 слів. Запишіть у звіт умову пошуку і кількість знайдених об’єктів;

г) документи, що містять вираз “інформаційна культура” і всі його словоформи. Запишіть у звіт умову пошуку і кількість знайдених об’єктів;

ґ) документи, що містять точний вираз “інформаційна культура”, інші словоформи цього виразу не шукати. Запишіть у звіт умову пошуку та кількість знайдених об’єктів;

д) документи, що містять вираз “інформаційна культура” або “інформаційна безпека”. Запишіть у звіт умову пошуку та кількість знайдених об’єктів.



  1. Перейдіть на веб-сайт Національної бібліотеки ім. В.І. Вернадського: http://www.nbuv.gov.ua/.

  2. На цьому веб-сайті відкрийте гіперпосилання Вищі навчальні заклади і знайдіть сайт вашого навчального закладу, докладно вивчіть його структуру, інформацію про свій факультет і новини з життя студентів.

  3. Запишіть URL-адресу головної сторінки сайта вашого навчального закладу


Питання до захисту практичної роботи

  1. Що таке Інтернет?

  2. Які сервіси є в мережі Інтернет?

  3. Що таке WWW?

  4. За яким протоколом працює служба WWW?

  5. Які можливості WWW-npocтopy?

  6. Що таке гіпертекстове посилання?

  7. Що таке URL-адреса?

  8. Яку структуру має URL-адреса?

  9. Для чого призначені браузери?

  10. Які є системи пошуку інформації в WWW?

  11. Які засоби і технології пошуку має пошукова система “МЕТА”?


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

Пошукові системи поділяються на тематичні та індексні системи пошуку. Тематичні системи пошуку надають список категорій, в якому Web-сторінки впорядковані за ієрархічною структурою. Переміщуючись деревом каталогів, можна послідовно обмежити область пошуку й отримати список посилань на Web-вузли, пов’язані з необхідною темою сторінки. Для користування такою пошуковою системою необхідно точно знати, до якої теми належить інформація.

Індексні системи виконують пошук за заданими ключовими словами, і як результат виводять список Web-сторінок, які задовольняють задані критерії. Критеріями пошуку можуть бути слово, набір слів або логічний вираз.

Відомі пошукові системи yahoo.com, www.rambler.ru, www.yandex.ru, www.meta.ua.

Для виконання цієї функції необхідно активізувати Web-браузер, ввести адресу пошукового сервера. Після завантаження ввести ключове слово і натиснути Enter. Автоматично підключається пошукова програма, яка переглядає базу даних сервера і при знаходженні ключового слова на черговій Web-сторінці записує її адресу в перелік результатів пошуку (для перегляду змісту знайдених файлів необхідно двічі клацнути на гіперпосиланні).

Пошук можна виконати й у вікні браузера. Для цього слід активізувати кнопку Поиск і вибрати у лівій частині вікна серед переліку відповідний пошуковий сервер.

Пошукова система “МЕТА” здійснює пошук українським сегментом мережі Інтернет, а також за реєстром українських сайтів.

Докладніше розглянемо засоби пошуку, наявні у пошуковій системі www.meta.ua.



Пошук у повнотекстовій базі даних. Повнотекстовий пошук адійснюється з урахуванням російської та української морфології. Це означає, що незважаючи на граматичну форму ключових слів, ви отримаєте документи, які містять шукані слова у всіх формах. Напр., за запитом “глибокі дена” будуть знайдені документи, які містять слова “глибоке дно”, за запитом “рушник вишиваний” — документи, що містять слова “вишиваному рушникові” й подібні.

Зверніть увагу на таку особливість: у багатослівних запитах система не ігнорує так звані стоп-слова, до яких належать прийменники, частки, сполучники та ін. Більшість пошукових систем при пошуку ігнорує їх, тобто, за запиту “крем від засмаги” прийменник від буде проігноровано і серед результатів будуть документи зі словосполученням “крем для засмаги”. “МЕТА” видасть документи, що точно збігаються з вашим запитом.

Ви можете використовувати низку службових операторів, які дають змогу уточнити ваш запит (табл. 7.1).
Таблиця 7.1. Логічні оператори

Оператор

Опис

+

Логічне «Та». Цей оператор припускається і діє першим, тобто запит «українські реферати» рівнозначний запиту «українські+реферати»

-

Логічне «Ні» дає змогу виключити зі списку результатів документи, які містять слово, що йде після цього оператора

|

Логічне «Або» дає змогу знайти документи, що містять хоча б одне слово запиту

«…»

Подвійні лапки дають змогу знаходити точне словосполучення, написане в них.

{…}

Фігурні дужки дають змогу знаходити словосполучення близьке до зазанченого в них

[n,…]

Цей оператор використовується, якщо необхідно обмежити відстань між словами запиту

Title

Дає змогу шукати тільки за назвою документа

Heading

Дає змогу проводити пошук за назвами розділів документів

Порядок дії логічних операторів можна задавати круглими дужками (). Напр., за запитом “харківські | київські підприємства” ви отримаєте документи, що містять або слово “харківські”, або одночасно слова “київські” і “підприємства”, оскільки оператор “+” припускається і діє першим.

Якщо необхідно знайти документи, в яких зустрічаються слова “харківські підприємства” або “київські підприємства”, запит має бути таким: “(харківські | київські) підприємства”.

Передбачені також оператори, що дають змогу обмежити область пошуку визначеним полем документа.



Пошук за реєстром українських сайтів.

Як і за повнотекстового пошуку, пошук за реєстром здійснюється з урахуванням російської, української та англійської морфології. За замовчуванням пошук проводиться за повнотекстовою базою даних, для пошуку за реєстром, поставте прапорець — зазначте шукати в реєстрі.

Можна обмежити область пошуку окремою темою або регіоном. Для цього необхідно перейти у відповідну тематичну (регіональну) рубрику та поставити прапорець шукати в розділі: або шукати за регіоном, при цьому пошук буде проводитись за повнотекстовим індексом. Якщо поставити ще один прапорець — шукати в реєстрі, то пошук буде проводитись тільки за описами сайтів у цьому разділі або регіоні.

ПРАКТИЧНА РОБОТА №14



Поділіться з Вашими друзьями:
1   2   3   4   5   6   7   8   9   10


База даних захищена авторським правом ©divovo.in.ua 2017
звернутися до адміністрації

войти | регистрация
    Головна сторінка


загрузить материал