Надати характеристику поняттю середовище 2 страница

На першому кроці циклу параметр набуває значення pz. У цей же мо­мент відбувається обчислення kz - значення параметра на останньому кроці циклу. Після кожного виконання тіла циклу, якщо параметр циклу не дорівнює kz, відбувається зміна параметра на наступне (більше або менше) значення:

параметр: = Succ(параметр); //форма do

параметр: = Pred(параметр); //форма downto

У випадкуpz>kz у першій формі оператора абоpz<kz у другій його формі помилки немає, але цикл не буде виконаний ні разу. Після завер­шення циклу значення параметра рівне kz.

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

1. Навести огляд поняття оператор циклу з параметром

2. Розповісти про формат запису оператору циклу з параметром

3. Розглянути характеристику поняття цикл

4. Надати огляд поняттю - тіло циклу

5. Надати огляд параметру циклу - лічильнику


САМОСТІЙНА РОБОТА СТУДЕНТА

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.3: ГАЛУЖЕННЯ І ЦИКЛИ

 

Самостійне заняття №4 -Оператори циклу з умовою

План заняття

 

1. Характеристика операторів циклу з умовою

2. Характеристика операторів циклу з передумовою

3. Характеристика операторів циклу з постумовою

4. Характеристика понятть «вкладені цикли»

 

Якщо кількість повторень циклу заздалегідь невідома, то використо­вують цикли з умовою, які є двох типів: whileі repeat.

Цикл типу whileє циклом з передумовою. Він використовується за­звичай у випадках, коли кількість повторень циклу заздалегідь невідома і можливим є випадок, коли цикл не буде виконаний жодного разу. Цикл типу whileмає вигляд:

whileлогічнийвираз do оператор;

До тих пір, доки значення логічного_виразу буде істинним, до­ти буде виконуватися один оператор (можливо складений). Оскіль­ки значення логічного виразу перевіряється на початку кожної ітера­ції, то тіло циклу може бути не виконаним взагалі. Отже, у цьому циклі логічний вираз - це умова продовження циклу

 

 

Інший варіант циклу з умовою - це цикл repeat,який називають циклом з постумовою. Він має вигляд:

repeatоператорі;... onepaTopN untilлогічний_вираз;

Оператор repeatорганізує виконання декількох операторів доти, доки не стане істинним логічний_вираз (умова виходу з циклу). Тіло циклу обов'язково виконається принаймні один раз.

 

 

На місці оператора у циклі може стояти інший цикл (отримуємо вкла­дені цикли). В усіх трьох циклах, у яких на місці оператора є складений оператор, всередині можна записати оператор break.Якщо під час ви­конання циклу оператор breakотримує керування, то відбувається не­гайний вихід з циклу і перехід на наступний оператор, який записаний за цим циклом. Процедура continue,яку можна записати тількиу тілі циклу, пропускає записані за нею оператори і переходить до наступної ітерації циклу.

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

1. Охарактеризувати оператори циклу з умовою

2. Охарактеризувати оператори циклу з передумовою

3. Охарактеризувати оператори циклу з постумовою

4. Охарактеризувати поняття вкладені цикли


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.4: ЕЛЕМЕНТИ ІНТЕРФЕЙСУ

Лекція №9 –Панелі інструментів

План заняття

 

1. Огляд панелі інструментів

2. Огляд компонентів панелей інструментів

Панель инструментов содержит набор пиктограмм, которые позволяют быстро выполнить наиболее важные опции главного меню. Другими словами, щелчок на какой-либо из кнопок приво­дит к тому же результату, что и выбор соответствующей команды в главном меню. Пиктограммы снабжены всплывающими под­сказками. В табл. 1.2 описаны команды, реализуемые стандарт­ным набором пиктограмм.

Для того чтобы изменить конфигурацию панели инструментов, на которой находятся пиктографические кнопки, следует использовать окно Customize (см. рис. 1.6), которое вызывается командой View | Toolbars | Customize главного меню либо командой Customize кон­текстного меню панели инструментов.

В этом окне можно отображать, скрывать, добавлять, удалять, менять расположение пиктографических кнопок. Вкладка Toolbars предназначена для управления видимости панелей быстрых кнопок и палитры компонентов.

 

 

Вкладка Commands позволяет выбрать кнопки и поместить их в инструментальную панель. Кнопки можно добавлять к любой из па­нелей. Все кнопки разбиты на особые категории Categories, перечень которых находится на вкладке Commands. Для добавления кнопки к панели инструментов достаточно перетянуть ее мышью из списка команд на нужную панель. Для удаления кнопки из панели нужно перетянуть ее на свободное место экрана, после чего она сразу исчез­нет. На вкладке Options можно включить или выключить опции Show Tooltips - показ ярлыков быстрых клавиш при задержке на них кур­сора и Show shortcut keys on tooltips - отображение на этих ярлыках соответствующих сочетаний горячих клавиш.

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

1. Надати характеристику панелі інструментів

2. Зробити огляд компонентів панелей інструментів


САМОСТІЙНА РОБОТА СТУДЕНТА

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.3: ГАЛУЖЕННЯ І ЦИКЛИ

 

Самостійне заняття №5 –Палітра компонентів

План заняття

 

1. Огляд палітри компонентів

2. Огляд компонентів палітри компонентів

 

Палитра компонентов (см. рис. 1.7) позволяет выбрать компо­ненты, которые будут присутствовать в приложении. Компоненты -это «строительные блоки», из которых собирается Delphi-приложение. Такими строительными блоками могут быть кнопки или списки и т.д. (визуальные компоненты) или, например, таблицы доступа к базам данных (невизуальные компоненты). Компоненты, располагаемые в палитре, представлены в виде пиктограмм.

 

 

Пиктограммы стандартных компонентов Delphi разделены на группы в соответствии с выполняемыми ими функциями. Каждая такая группа размещается на отдельной странице.

По умолчанию при запуске Delphi активной является страница Standard. Чтобы изменить порядок расположения страниц, пере­именовать, удалить, добавить либо перенести отдельные пикто­граммы на другие страницы применяется диалоговое окно Palette Properties (см. рис. 1.8).

 

 

Для того чтобы открыть диалоговое окно Palette Properties, необ­ходимо либо щелкнуть правой кнопкой мыши в любом месте палитры компонентов и выбрать в контекстном меню команду Properties, либо выполнить команду Component \ Configure Palette главного меню.

 

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

1. Надати характеристику палітрі компонентів

2. Охарактеризувати компоненти палітри компонентів

 


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.4: ЕЛЕМЕНТИ ІНТЕРФЕЙСУ

Лекція №10 –Вікно форми

План заняття

 

1. Огляд структури вікна форми

2. Характеристика компонентів вікна форми

 

Каждое Windows-приложение выполняется в собственном окне -главном окне соответствующего приложения. Delphi назначает глав­ное окно для каждого приложения автоматически. Разработка нового приложения всегда начинается с создания нового проекта. В свою очередь, для каждого нового проекта автоматически отображается окно формы, которое является главным окном будущего приложения и по умолчанию называется Forml. Окно формы для программиста -это как холст для художника, на котором можно творить, используя «краски» (средства среды Delphi). Форма - это интерфейсный эле­мент (окно проекта, диалоговое окно, информационное окно и т.д.) проектируемой программы вместе с отображаемыми и неотображае-мыми компонентами, размещенными в нем.

В Delphi все типы объектов, помещаемых в форму (в частности компонентов библиотек), оформляются в виде классов. Классы - это типы, определяемые пользователем. В классах описываются свойства объекта, его методы и события, на которые он может реагировать. Под свойством объекта подразумевается какая-либо его характери­стика, например размеры или имя. Методы — это функции и проце­дуры, выполняющие действия над объектами (например создание объекта). Событие - любое воздействие от мыши или клавиатуры, либо действие, вызванное перерисовкой.

Первое, что появляется после запуска приложения, - это главное окно. Во время проектирования форма покрыта сеткой из точек. В узлах этой сетки будут находиться компоненты, помещаемые на форму. Во время выполнения приложения эта сетка не видна.

В проекте может содержаться несколько форм. Главная из них будет первой в списке форм в диалоговом окне Project Options, вызываемом командой Project \ Options. Следовательно, главной будет любая форма, которая разместится в начале списка.

 

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

1. Надати характеристику структурі вікна форми

2. Розглянути компоненти вікна форми

 

 


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.4: ЕЛЕМЕНТИ ІНТЕРФЕЙСУ

Лекція №11 –Вікно коду програми

План заняття

 

1. Огляд структури вікна коду програми

2. Характеристика компонентів вікна коду програми

 

Окно кода программы представляет собой текстовый редактор, предназначенный для размещения текстов программных единиц про­екта (программы-проекта, модулей, текстовых файлов) с целью их создания, подключения к проекту, редактирования. Отображается редактор на экране в виде одного или нескольких окон (см. рис. 1.9).

Каждое окно может иметь одну или несколько страниц, причем на каждой странице находится текст отдельной программной едини­цы. На странице текстового редактора может также находиться тек­стовое представление формы - условное изображение ее параметров и параметров компонент. В текстовом представлении формы можно изменить значения ее свойств. Однако не рекомендуется удалять, добавлять строчки текста и изменять названия свойств.

В левой части окна редактора кода располагается Провод­ник кода, который упрощает поиск информации в коде про­граммных модулей и автоматизирует создание новых классов. В нем отображается структура модуля, открытого в редакторе кода (типы, классы, свойства, методы и т.д.). Двойной щелчок мышью на элементе в окне Проводника кода приводит к пози­ционированию текстового указателя в окне кода на описании соответствующего объекта или его первом упоминании. В дан­ном случае в Проводнике кода находится описание модуля Unitl: в папке TForml расположены методы класса TFormlпо­томка класса TForm(метод FormCreate),в папке Variables/Constants - переменные и константы, описанные в мо­дуле (Forml объекта класса TForml),а в папке Uses - подклю­чаемые к приложению стандартные модули.

Настройка редактора кода производится в диалоговом окне Editor Properties (см. рис. 1.10), которое вызывается командой Tools | Editor Options. Оно состоит из шести вкладок, каждая из которых соответствует той или иной категории параметров.

Опции страницы General задают настройки общего назначения редактора кода. В области Editor Options задаются отдельные опции редактирования файлов в редакторе кодов (см. табл. 1.3).

 

 

 

 

 

Опции страницы Source Options используются для настройки синтаксических цветовыделений в редакторе кода для заданных типов файлов. Эти опции приведены в табл. 1.4.

 

 

Страница Display устанавливает способ отображения и вид шрифта в редакторе кода (см. табл. 1.5).

 

 

На странице Color устанавливается цвет синтаксического вы­деления фрагментов программного текста в редакторе кода.

Опции страницы Key Mappings позволяют настроить «горячие» клавиши в кодовом редакторе.

Для настройки интуитивного помощника написания кода Code Insight используются опции страницы Code Insight (см. рис. 1.11). Эти опции описаны в табл. 1.6.

 

 

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

 

1. Навести огляд структури вікна коду програми

2. Надати характеристику компонентів вікна коду програми

 

АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.4: ЕЛЕМЕНТИ ІНТЕРФЕЙСУ

Лекція №12 –Інспектор об’єктів та дерево об’єктів

План заняття

1. Огляд структури вікна інспектору об’єктів та дерева об’єктів

2. Характеристика компонентів вікна інспектору об’єктів та дерева об’єктів

 

Инспектор объектов (Object Inspector) позволяет устанавливать свойства объектов и назначать методы (т.е. обработчики событий) во время создания программы. Окно Инспектора объектов содер­жит две вкладки: Properties и Events.

На вкладке Properties (см. рис. 1.12 а) имеются две колонки. Левая колонка содержит список всех свойств редактируемого компонента, доступных во время проектирования. В правой ко­лонке можно изменять значения тех или иных свойств.

Вторая вкладка называется Events и представлена на рис. 1.12б. В ее левой колонке перечислены все имеющиеся обработчики со­бытий компонента. В правой колонке устанавливаются имена соот­ветствующих обработчиков событий. После задания имени Delphi автоматически создает пустой обработчик выбранного события, в который можно помещать операторы для выполнения определенных действий. Задать имя обработчику события можно двумя спо­собами. Во-первых, дважды щелкнув мышью на колонке, где долж­но находиться это имя (имя выберется автоматически - в формате КомпонентСобытие, например, для события OnClickформы -Forml Click). Во-вторых, прописав имя с клавиатуры.

Путем присвоения свойствам компонента определенных зна­чений и связывания с обработчиками событий определенных про­цедур задаются функциональные возможности компонента.

Таким образом, Инспектор объектов применяется для форми­рования внешнего вида и функциональных возможностей формы и компонентов в процессе разработки приложения.

Некоторые свойства, отображенные на странице Properties, име­ют начальные значения. Это так называемые стандартные значения данных свойств. Кроме этого, перед некоторыми именами может стоять знак "+". Дело в том, что такое свойство является комбиниро­ванным .и состоит из нескольких пунктов. Значения свойств отобра­жаются строками ввода или комбинированными строками ввода. Комбинированная строка отличается наличием в правой части кноп­ки с изображением треугольника, направленного вниз, при нажатии на которую предоставляется возможность выбрать из выпадающего списка допустимые значения свойств. У некоторых строк ввода в правой части находится кнопка с изображением трех точек. Это оз­начает, что при нажатии кнопки выводится окно, в котором задается ряд параметров комбинированного свойства.

В верхней части Инспектора объектов расположена комбинированная строка ввода, спи­сок которой содержит имена активной формы и всех ее ком­понент.

Над окном Инспектора объ­ектов располагается окно дерева объектов Object Tree View (см. рис. 1.13), в котором показывается структура всех компо­нентов приложения.

 

 

Для того чтобы в Инспекто­ре объектов отобразить свойства и события, присущие определенному компоненту, достаточно один раз щелкнуть левой кнопкой мыши на названии интересую­щего компонента в окне дерева объектов

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

1. Надати огляд структури вікна інспектору об’єктів та дерева об’єктів

2. Навести характеристику компонентів вікна інспектору об’єктів та дерева об’єктів


САМОСТІЙНА РОБОТА СТУДЕНТА

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.4: ЕЛЕМЕНТИ ІНТЕРФЕЙСУ

 

Самостійне заняття №6 –Строка стану

План заняття

1. Огляд поняття строка стану

2. Характеристика властивостей компонента строка стану

Строка состояния - это управляющий элемент, с помощью которого пользователю выдается разного рода вспомогательная информация о текущем состоянии хода выполнения приложения, например, отображение координат указателя мыши в статусной строке графических редакторов или указание количества страниц и номера текущей страницы в текстовом редакторе Word. Также могут отображаться дата, время и т.д.

В Delphi для этой цели используется специальный компонент StatusBar. Данный компонент представляет собой ряд панелей, обычно располагающихся одна за другой внизу главной фор­мы приложения. Каждая такая панель содержит текущую спра­вочную информацию. Полный список панелей содержится в свой­стве Panelsкомпонента StatusBar.

Можно также создавать строку состояния на основе компонен­та Panel. Однако данная возможность не будет здесь рассматри­ваться, а глава будет посвящена именно обучению работе с ком­понентом StatusBar.

Прежде всего, целесообразно рассмотреть свойства данного компонента.

Свойство SimplePanel(тип Boolean)определяет, будет статусная строка содержать одну панель или несколько. Для того чтобы отображалась одна панель, данное свойство нужно устано­вить в True,чтобы несколько - в False.

Свойство SimpleText(тип String)содержит текст, ко­торый выводится в статусной строке в случае, если свойство SimplePanelимеет значение True.

Свойство Count(тип Integer)доступно только для чтения и показывает, сколько панелей содержится в строке состояния.

Свойство SizeGrip(тип Boolean)определяет возможность изменения размеров статусной строки. Если свойство имеет зна­чение True,то в правом нижнем углу статусной строки будет отображаться специальная треугольная область захвата, с помо­щью которой можно изменять размеры статусной строки путем растягивания. В случае, когда строка состояния выравнивается по нижнему краю формы, использование области захвата будет при­водить к изменению размеров самой формы. Однако при этом для свойства BorderStyleформы должно быть установлено значе­ние bsSizeableили bsSizeToolWin,в противном случае об­ласть захвата появляться не будет.

Свойство AutoHint(тип Boolean),установленное в True,задает автоматическое отображение в статусной строке значения текущей всплывающей подсказки (hint).При этом сама всплы­вающая подсказка не показывается в случае наведения указателя мыши на соответствующий элемент управления.

Свойство Panels(тип TStatusPanels)содержит список панелей статусной строки. При выполнении приложения можно обращаться к соответствующей панели по ее индексу (нумерация начинается с нуля).

В качестве основных свойств панели как объекта класса TStatusPanelsможно выделить следующие.

1) Свойство Alignment(тип TAlignment)задает способ выравнивания текста относительно панели.

2) Свойство Bevel(тип TStatusPanelBevel)определяет вид панели: углубленная, приподнятая или плоская.

3) Свойство Style(тип TStatusPanelStyle)устанавли­вает способ отображения информации на панели и может прини­мать одно из двух значений:

psText- в качестве содержимого панели используется значе­ние свойства Text(по умолчанию);

psOwnerDraw- вывод текстовой и графической информации выполняется программно с использованием поверхности рисова­ния (Canvas)строки состояния.

4) Свойство Text(тип String)содержит текст, выводимый на панели.

5) Свойство Width(тип Integer)задает ширину панели. По умолчанию устанавливается ширина в 50 пикселей, а последняя панель занимает все оставшееся свободное пространство строки состояния.

Для наглядной демонстрации использования строки состояния будет рассмотрен следующий пример.

Пример 9.2. Пусть необходимо создать приложение, отра­жающее различные способы использования строки состояния.

Решение. На первом шаге на форму помещаются такие компо­ненты: строка состояния StatusBar, многострочный редактор Memo, переключатель CheckBox, группа зависимых переключателей Ra-dioGroup и две кнопки Button с заголовками Очистить и Выход.

Свойству AutoHintкомпонента StatusBar присваивается зна­чение True.Затем через Инспектор объектов следует обратиться к свойству Panelsи вызвать редактор панелей Editing Status-Barl.Panels, в котором добавляются шесть новых панелей. На­чальные заголовки каждой панели задаются путем изменения свойства Textв соответствии с рис. 9.4.

 

Свойству Widthдля каждой панели задается соответствующее значение, на собственное усмотрение разработчика приложения. В панелях будет отображаться следующая информация:

Панель 0 - значение текущей всплывающей подсказки (hint), то есть подсказки для того элемента, над которым в данный момент находится указатель мыши;

Панель 1 - текущий цвет текста в поле редактора Memo;

Панель 2 - текущий стиль шрифта, которым отображается текст в поле редактора Memo (обычный или курсив);

Панель 3 - текущее состояние клавиши Caps Lock(если клавиша включена, то выводится строка «Верхний ре­гистр», если выключена, то показывается строка «Нижний регистр»);

Панель 4 - количество строк, которые в текущий момент времени содержатся в редакторе Memo;

Панель 5 - текущее время.

В поле многострочного редактора Memo пользователь получа­ет возможность вводить произвольный текст.

Свойству Captionпереключателя CheckBox устанавливается значение «Курсив». Данный переключатель будет определять, обычным или наклонным шрифтом должен отображаться текст в редакторе Memo.

Свойство Captionгруппы переключателей RadioGroup полу­чает значение «Цвет текста». Затем путем изменения свойства Itemsзадаются три переключателя с названиями «Черный», «Красный» и «Синий». Эти переключатели будут обеспечивать изменение цвета текста, содержащегося в поле многострочного редактора. Свойству Itemlndexданного компонента присваива­ется значение 0 (таким образом, в начальный момент времени текст в редакторе отображается черным цветом).

По нажатию кнопки «Очистить» содержимое редактора Memo удаляется.

Программная реализация решения данной задачи приводится ниже

 

 

 

 

 

 

Необходимо обратить внимание, что в первой панели строки со­стояния отображается текущая всплывающая подсказка. Как видно из рисунка, эта панель содержит строку «Очистка». Это означает, что в момент копирования данного изображения указатель мыши был установлен на кнопку Очистить, а свойству Hint этой кнопки присвоено значение «Очистка».

 

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

1. Огляд поняття строка стану

2. Характеристика ластивостей компонента строка стану


САМОСТІЙНА РОБОТА СТУДЕНТА

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.4: ЕЛЕМЕНТИ ІНТЕРФЕЙСУ

 

Самостійне заняття №7 –Елементи з закладками

План заняття

1. Огляд поняття елементи з закладками

2. Характеристика властивостей компонента елементи з закладками

В данном занятии будут рассмотрены управляющие элементы с закладками, имеющие несколько страниц, перемещение между которыми осуществляется пользователем путем выбора заклад­ки соответствующей страницы с помощью мыши.

В Delphi существуют компоненты TabControl (Одностраничный блокнот) и PageControl (Многостраничный блокнот), кото рые обеспечивают возможность работы с подобными элементами. Кроме того, в Delphi представлены еще такие элементы с заклад­ками, как TabSet, TabbedNotebook и Notebook, которые использу­ются для обеспечения совместимости с программами, разработан­ными в среде Windows 3.x (однако в данной книге они рассматри­ваться не будут).

По своей сути компоненты TabControl и PageControl являются контейнерами, которые могут содержать другие компоненты, объ­единенные в группы.

Одностраничный блокнот TabControl. Компонент TabControl

представляет собой прямоугольную область с набором за­кладок, переключение между которыми происходит автоматиче­ски при выборе одной из них. Одностраничный блокнот назван так потому, что он имеет одну общую страницу для всех закладок, и все действия по изменению отображаемой информации в зави­симости от выбранной пользователем закладки должны осуществ­ляться программно. Для этого программисту необходимо создать обработчики событий OnChangeили OnChanging.








Дата добавления: 2014-12-01; просмотров: 1130;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.1 сек.