Организация входных и выходных данных 


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



ЗНАЕТЕ ЛИ ВЫ?

Организация входных и выходных данных



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

Также, чтобы человеку было не скучно проверять текст, можно было бы добавить звуковые данные (например, формата mp4), но, с другой стороны, не все люди, при проверке текста, любят слушать музыку, да и вкус к музыке у каждого человека свой, поэтому я решила обойти эту идею.

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

Чтобы добавить этот фон, можно было использовать 2 способа ввода в программу:

1) Прямая загрузка в режиме разработки форм;

2) Программная загрузка данных из файла в соответствующий компонент в режиме работы программы.

Была попытка добавить фон через программную загрузку данных из файла в  соответствующий компонент, много раз пробовала, но к сожалению, все неудачно. Выходные данные представляют собой динамическую и графическую  информацию, выводимую на дисплей и монитор ЭBM (Электронно-вычислительной машины).

Выбор состава технических средств

В создании данной программы «Клавиатурный тренажер» лучше использовать язык программирования Delphi, так как, с помощью него легко создать форму программы, просто, переместив нужные компоненты на неё. А, например, на языке Pascal, необходимо каждый элемент прямоугольника или иной фигуры создавать самому, прописывая через функцию Graph ABC.

Отсюда формируются достоинства выбранного программирования:

1. Быстрое создание программы с помощью размещения компонентов на форме (быстрый код);

2. Удобная визуальная среда;

3. Неплохая объектно-ориентированность;

4. Наличие справочной системы, в виде контекстного меню, что позволяет  изучать язык;

5. Достаточная скорость компиляции программы;

6. Нет нужды в сторонних библиотеках;

7. Компонентная модель программирования. Использование данной модели  дает возможность использовать компоненты, которые разработаны прочими  программистами, без использования кода. Применение модели позволяет  сократить  время разработчика;

8. Достаточный резервный браузер классов и вывод подсказки авто для завершения кода;

Помимо такого обширного спектра плюсов, существую и некоторые недочеты:

1. Нединамическое добавление библиотеки VCL, компонентов к файлу;

2. В форме Form все данные о форме, а именно: атрибуты, настройки элементов, значения, установленные по умолчанию, находятся в exe-файле. Технические средства, достаточные для оптимальной работы программы:

3. Манипуляторы: клавиатура, мышь, монитор.

Реализация программы клавиатурный тренажер

Разработка программы

Программа разработана с создания формы. На форме From9, были расположены такие компоненты: как Group Box1 (где написано настройки тренажера), Main Menu, далее расположено Label1 (где показывается надпись «группа слов»), Button1 (Где человек может просмотреть текст и отредактировать его. Если предложение хочется удалить то, Button3 (отвечает за удаление выбранной группы слов). Чтобы человек имел возможность создавать новые предложения, Button4 (добавляет новую группу слов), CheckBox (выбирает случайную группу слов). В программе требуется выбрать сколько раз данное предложение будет проверятся, поэтому был создан Edit1 (он отвечает сколько раз текст будет вводится, при проверке предложения), далее создается еще одна платформа на From9 GroupBox2 (поиск нужной группы) ней были расположены кнопки,  такие как, Label3 (показывает надпись часть наименования группы), рядом расположена Edit2 (в нее вводим имя предложения для поиска в списке «группа слов»), для поиска нужной группы, человеку необходимо нажать на кнопку Button5 (чтобы начать поиск группы), CheckBox (выбирать случайную группу слов), в программе требуется выбрать сколько раз данное предложение будет проверяться, поэтому был создан Edit1 (отвечает сколько раз будет вводиться при проверке предложение) и соответственно, чтобы начать была создана кнопка Button 2 (начать).

Далее была создана Form10, на ней расположены компоненты такие как: Button1 (изменение группы), Button2 для отмены изменений группы слов, label1 (слова в данной группе), label2 чтобы в списке найти название группы и Rich Edit1 (многострочное окно).

Для Form11 использовали Label1 для ввода любого текста. Чтобы при написании считывались ошибки был добавлен  Label2, Label6. Label4 (решено слов), где Label7 (показывает число решенных слов), для считывания скорость был добавленLabel5, Label8. Для закрытия формы результатов на форму был добавлен Label9, а также Shape проверяющий данное предложение.

На Form12 результат тестирования был добавлен label1, возвращения на главную. Для результата скорости ввода на форме был расположен Label2, Label1.Чтобы посмотреть количество введенных символов был создана Label3, Label4, если человек допускает ошибки, то при просмотре добавлен Label5, Label6. Для того чтобы узнать положительную оценку, на форме расположен Label7 и Label8, а затраченное время на тестирование показывают кнопки Label9, Label10.

Графическую схему разработки программы смотрим на рис 3, (данная программа состоит из модулей и Четырех формы, Form 9, 10, 11, 12):

 

16
110000
3
15
130000-0
120000-0
140000-0
100000-0
9
8
7
6
5
4
2
1
             

                 Рис 1. Первый (главный этап работы)

Главная платформа представляет собой окно класса Form и содержит следующие необходимые для функционирования программы компоненты расположенные  ниже, в порядке их размещения:

1. Form9:TForm9 - Основная платформа проекта. Контейнер всех объектов;

2. Label1:TLabel1 - Надпись (группа слов);

3. Group Box1:TGroup Box1 - Задающий рамку с заголовком;              

4. Rich Edit1:TRich Edit1 - Многострочное окно редактирования текстов;

5. Button1:TButton1 - Базовая кнопка (просмотр и редактирование);

6. Button3:TButton3 - Базовая  кнопка (удаление выбранной группы);

7. Button4:TButton4 - Базовая  кнопка (добавление новой группы);

8. Group Box2:TGroup Box2 - Задающий рамку с заголовком (поиск нужной группы);

9. Label3:TLabel3 - Надпись (часть наименования группы);

10. Edit2:TEdit2 - Ввод чего – либо (например текста);

11. Button5:TButton5 - Базовая кнопка (найти, далее поиск группы);

12. Сheck Box1 - Переключатель флажок;

13. Edit1:TEdit1 - Ввод чего- либо (например текста);

14. Label2:TLabel2 - Надпись (количество слов);

15. Button2:TButton2 - Базовая кнопка (начать тестирование);

16. Main Menu1:TMain Menu1 - Меню предназначенное для вывода главного меню (информация о программе);

Этап создания и добавление группы слов (рис 2):

1
7
6
5
4
             
3
2

                   Рис 2. Второй этап работы программы «клавиатурный тренажер»

1. Form10:TForm10 – Основная платформа Контейнер всех объектов;

2. Label1:TLabel1 – Надпись (слова в данной группе);

3. Rich Edit:TRich Edit – Многострочное окно редактирования текстов;

4. Label2:TLabel2 – Надпись (название группы);

5. Edit1:TEdit1 - Ввод чего- либо (например текста);

6. Button1:TButton1 -  Базовая кнопка (подтвердить добавление);

7. Button2:TButton2 -  Базовая кнопка (отменить добавление);

Созданная группа слов на (рис 3):

1
8
10
15
14
11
9
13
12
4
3
7
6
5
2
   

Рис 3. Третий этап работы программы «клавиатурный тренажер»

1. Form9:TForm9 - Основная платформа проекта. Контейнер всех объектов;

2. Label1:TLabel1- Надпись (группа слов);

3. Group Box1:TGroup Box1 - Задающий рамку с заголовком;            

4. Rich Edit:TRich Edit - Многострочное окно редактирования текстов;

5. Button1: TButton1– Базовая кнопка (просмотр и редактирование);

6. Button3:TButton - Базовая кнопка (удаление выбранной группы);

7. Button4:TButton - Базовая кнопка (добавление новой группы);

8. Group Box2:TGroup Box2 - Задающий рамку с заголовком (поиск нужной группы);

9. Label3:TLabel3 - Надпись (часть наименования группы);

10. Edit2:TEdit2 - Ввод чего – либо (например текста);

11. Button5: TButton5- Базовая кнопка (найти, далее поиск группы);

12. Сheck Box 1 - Переключатель флажок (для включения и выключения);

13. Edit1:TEdit1 - Ввод чего- либо (например текста);

14. Label2:TLabel2 - Надпись (количество слов);

15. Button2:TButton2 - Базовая кнопка (начать тестирование);

 

 

Изменение группы слов (рис 4):

2
3
5
6
4
1
7

Рис 4. Четвертый этап работы программы «клавиатурный тренажер»

1. Form10:TForm10 – Основная платформа. Контейнер всех объектов;

2. Label 1:TLabel1 - Надпись (слова в данной группе слов);

3. Rich Edit:TRich Edit – Многострочное окно редактирования текстов;

4. Label 2:TLabe2 - Надпись (название группы);

5. Edit 1:TEdit1 - Ввод чего- либо (например текста);

6. Button 1:TButton1 - Базовая кнопка (подтвердить изменение группы);

7. Button2: TButton2- Базовая кнопка (отменить изменение группы);

 

 

Удаление созданной группы слов (рис 5):

16
14
15
11
13
12
10
8
9
4
3
1
2
7
6
5

Рис 5. Пятый этап работы программы «клавиатурный тренажер»

1. Form9:TForm9 - Основная платформа проекта. Контейнер всех объектов;

2. Label1:TLabel1 - Надпись (группа слов);

3. Group Box1:TGroup Box – Задающий рамку с заголовком;           

4. Rich Edit:TRich Edit - Многострочное окно редактирования текстов;

5. Button1:TButton1 - Базовая кнопка (просмотр и редактирование);

6. Button3:TButton3 - Базовая кнопка (удаление выбранной группы);

7. Button4:TButton4 - Базовая кнопка (добавление новой группы);

8. Group Box2:TGroup Box2 - Задающий рамку с заголовком (поиск нужной группы);

9. Label3:TLabel3 - Надпись (часть наименования группы);

10. Edit2:TEdit2 - Ввод чего – либо (например текста);

11. Button 5:TButton5 - Базовая кнопка (найти, далее поиск группы);

12. Сheck Box 1 - Переключатель флажок (для включения и выключения);

13. Edit 1:TEdit1 - Ввод чего- либо (например текста);

14. Label 2:TLabel2 - Надпись (количество слов);

15. Button 2:TButton2 - Базовая кнопка (начать тестирование);

16. Message Box – Создание сообщений (группа успешно удалена);

Добавление новой группы слов, после удаления (рис 6):

24
54
3
4
7
6
1

Рис 6. Шестой этап работы программы «клавиатурный тренажер»

1. Form10:TForm10 - Основная платформа Контейнер всех объектов;

2. Label1:TLabel1 - Надпись (слова в данной группе);

3. Rich Edit:TRich Edit - Многострочное окно редактирования текстов;

4. Label 2:TLabel2 - Надпись (название группы);

5. Edit1:TEdit1 - Ввод чего- либо (например текста);

6. Button1:TButton1 - Базовая кнопка (подтвердить добавление группы);

7. Button2:TButton2 - Базовая кнопка (отменить добавление группы);

Этап после добавления новой группы слов (рис 7):

9
1
3
4
2
8
5
6
7
10
11
13
12
14
15

Рис 7. Седьмой этап работы программы «клавиатурный тренажер»

1. Form9:TForm9 - Основная платформа проекта. Контейнер всех объектов;

2. Label1:TLabel1- Надпись (группа слов);

3. Group Box1:TGroup Box1 - Задающий рамку с заголовком;               

4. Rich Edit:TRich Edit - Многострочное окно редактирования текстов;

5. Button1:TButton1 -  Базовая кнопка (просмотр и редактирование);

6. Button3:TButton3 - Базовая кнопка (удаление выбранной группы);

7. Button4:TButton4 - Базовая кнопка (добавление новой группы);

8. Group Box2:TGroup Box - Задающий рамку с заголовком (поиск нужной группы);

9. Label3:TLabel3 - Надпись (часть наименования группы);

10. Edit2:TEdit2 - Ввод чего – либо (например текста);

11. Button5:TButton5 - Базовая кнопка (найти, далее поиск группы);

12. Сheck Box 1 - Переключатель флажок (для включения и выключения);

13. Edit1:TEdit1 - Ввод чего- либо (например текста);

14. Label2:TLabel2 - Надпись (количество слов);

15. Button2:TButton2 - Базовая кнопка (начать тестирование);

Проверка нового предложения (рис 8):

12
11
10
1
9
4
2
3
5
6
8
7

Рис 8. Восьмой этап работы программы «клавиатурный тренажер»

1. Form11:TForm11 - Основная платформа. Контейнер всех объектов;

2. Label2:TLabel2 – Надпись (ошибки);

3. Label4:TLabel4 – Надпись (решено слов);

4. Label5:TLabel5 – Надпись (средняя скорость);

5. Label6:TLabel6 – Надпись (0);

6. Label7:TLabel7 – Надпись (1 из 3);

7. Label8:TLabel8 – Надпись (190 симв./мин);

8. Shape1:TShape1 – Компонент определяющий какой геометрический объект будет в свойстве;

9. Label3:TLabel3 – Надпись (затраченное время на тестирование);

10. Label1:TLabel1 – Надпись (скоро наступит зима);

11. Label9:TLabel9 – Надпись (закрытие формы);

12. Timer:TTimer – Компонет задающий необходимые задержки времени;

Результат без допущенных ошибок (рис 9):

12
11
10
9
8
4
5
2
7
6
3
1

Рис 9. Девятый этап работы программы «клавиатурный тренажер»

1. Form12:TForm12 - Основная платформа проекта;

2. Label10:TLabel10 – Надпись (17 секунд);

3. Label4:TLabel4 – Надпись (57);

4. Label2:TLabel2 – Надпись (204 симв./мин);

5. Label6:TLabel6 – Надпись (0(0%);

6. Label7:TLabel7 – Надпись (ваша оценка);

7. Button 1:TButton1 - Базовая кнопка (вернуться на главную);

8. Label9:TLabel9 – Надпись (затраченное время на тестирование);

9. Label3:TLabel3 – Надпись (количество введенных символов);

10. Label1:TLabel1 – Надпись (ваша средняя скорость ввода текста);

11. Label5:TLabel5 – Надпись (количество допущенных ошибок);

12. Label8:TLabel8 – Надпись (отлично);

В случае возникновения ошибки (рис 10):

Рис 10. Десятый этап работы программы «клавиатурный тренажер»

Результат предложения с ошибками (рис 11):

Рис 11. Одиннадцатый этап работы программы «клавиатурный тренажер»

 

Спецификация проекта

Исполнимый файл «Project7» имеет название «Клавиатурный тренажер.exe(Project7) и распололожен в каталоге «\Клавиатурный тренажер Win 32\Debug.

Помимо исполнимого файла в проект включены следующие файлы

Табл. 1 Все файлы, которые включены в проект

Наименование Обозначения Примечания
Project7.dpr Клавиатурный тренажер Файл проекта Связывает  все  файлы приложения
Project7.res Клавиатурный тренажер Файл ресурсов Содержит  программы, версию и т.д
Project7.exe Клавиатурный тренажер Файл приложений Открывает скомпилированную программу
Unit 9.pas Программный  модуль для  Form9 Определяет функциональность формы
Unit 9.dfm Файл формы №9 Список  свойств компонентов формы
Unit 9.dcu Объектный файл для Unit 9.pas Откомпилированная версия Unit 9.pas
Unit 10.pas Программный  модуль для  Form10 Определяет функциональность формы
Unit 10.dfm Файл формы №10 Список свойств компонентов
    формы
Unit 10.dcu Объектный файл для Unit 10.pas Откомпилированная версия Unit 10.pas
Unit 11.pas Программный модуль для Form11 Определяет функциональность формы
Unit 11.dfm Файл формы №11 Список свойств компонентов формы
Unit 11.dcu Объектный файл для Unit 11.pas Откомпилированная версия Unit 11.pas
Unit 12.pas Программный модуль для Form12 Определяет функциональность формы
Unit 12.dfm Файл формы №12 Список свойств компонентов формы
Unit 12.dcu Объектный файл для Unit 12.pas Откомпилированная версия Unit 12.pas
Группа слов.txt Текстовый документ Загрузить в режим работы программы.

 

Описание программы

Общие сведения:

Данный проект (Project7.exe) включает в себя:

1) Файл проекта (Project7.dpr);

2) Файл ресурсов (Project7.res);

3) Файл приложения (Project7.exe);

4) Программный модуль для Form 9 (Unit 9.pas);

5) Файл формы №9 (Unit 9.dfm);

6) Объектный файл для Unit 9.pas (Unit 9.dcu);

7) Программный модуль для Form10 (Unit 10.pas);

8) Файл формы №10 (Unit 10.dfm);

9) Объектный файл для Unit 10.pas (Unit 10.dcu);

10) Программный модуль для Form 11 (Unit 11.pas);

11) Файл формы №11 (Unit 11.dfm);

12)  Объектный файл для Unit 11.pas (Unit 11.dcu);

13) Группа слов txt

Для функционирования данной программы необходимо прикладное программное обеспечение, а именно «Системы программирования»

Данная программа разработана в среде Delphi 10.3 на языке Object Pascal.

Функциональное назначение:

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

Используемые технические средства:

Для стабильной работы программы требуются следующие технические и программные средства:

1) Объем свободного места на жестком диске не менее 25Mб;

2) Манипуляторы: компьютерная мышь, клавиатура.

Вызов и загрузка:

Программа запускается на исполнение либо двойным щелчком левой кнопки мыши по файлу Клавиатурный тренажер.exe в проводнике WINDOWS, либо нажатием правой кнопки мыши по указанному файлу и выбором пункта меню “Открыть”

Входные данные:

В программе были использованы один тип входных данных:

1. Графические, представленные в виде файлов в формате bmp.

Существует два способа ввода графических данных в программу:

1) Загрузка в режиме разработки форм;

2) Программная загрузка данных из файла в соответствующий компонент в режиме работы программы.

 

Тестирование программы

При разработке программы использовалась среда программирование Delphi 10.3. Эта среда представляет собой набор средств быстрой разработки и откладки приложений WINDOWS. При разработке приложения применяется визуальный редактор форм, редактор программного кода, палитра  компонентов и инспектор объектов.

Основными операциями в процессе разработки являлись: создание форм, размещение компонентов, редактирование свойств этих компонентов, формирование визуального пользовательского интерфейса, написание кода программы для обработки событий, сохранение и компиляция  проекта.

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

При испытании программы главная цель ставилась проверить работоспособность программы (чтобы программа работала без ошибок), представить применение клавиатурного тренажера в написании (программа отлично справится с этим), а также выявить оценку и скорость написания человека.

Результатом клавиатурного тренажера и стало обнаружено, что вся программа работала отлично, за исключением, к сожалению, фона. Хоть и у меня не было сказано в задании вывести фон, я решила попробовать, но это мне не удалось. Но, всё - таки, я довольна тем, что справилась с поставленными задачами и целями!

 

Заключение

В конце хочу сказать, что в результате проделанной работы понравилось программировать на этом языке (Delphi 10.3). Программа, которая была написана, работала хорошо. То есть она считывала скорость, что было сказано в задании. Но я всё же, что – то была попытка добавить фон, чего не было в задании, а именно вывести фон, чтобы человек, который сидит за компьютером печатая, смотрел не на белый эскиз, а на какую – нибудь интересную картинку.

Данная программа хорошо работает для считывания скорости текста, так же добавляет и удаляет новую группу слов, где можно ввести количество, которое будет считывается при написании предложения. Проделанная работа выполнена в полном объёме и главное что задания, которые были поставлены, выполнены. А программа выдает полученный результат. Были некоторые сложности в создании программы, но все цели и задачи были выполнены:

1. Создать клавиатурный тренажер и проверить на работоспособность;

2. Представить работу клавиатурного тренажера;

3. Выявить оценку и скорость написания;

4. Изобразить предметную область;

5. На основании полученной программы создать блок схему;

6. Составить таблицу файлов, входящих в проект;

7. Сделать вывод работы программы (сформулировать заключение);

 

 

Список использованной литературы

1. Джесси Рассел. Высококачественный контент по статьям WIKIPEDIA, по исследовательской работе/Джесси Рассел – А.,2012г. Ссылка: http://www.cataloxy.ru/books/26952731_fosfaty.htm

2. Абрамов, С.А. Математические построения и программирование / С.А. Абрамов. - М.: Наука, 2016. - 192 c.

3. Бекишев, Г.А.  Элементарное введение в геометрическое программирование / Г.А. Бекишев, М.И. Кратко. - М.: Наука. Главная редакция физико-математической литературы, 2017. - 144 c.

4. Ван, Тассел Д. Стиль, разработка, эффективность, отладка и испытания программ / Ван Тассел Д.. - М.: Мир, 2017. - 332 c.

5. Вирт, Н. Алгоритмы и структуры данных / Н. Вирт. - М.: Мир, 2016. - 360

6. Голицына, О.Л. Основы алгоритмизации и программирования: Учебное пособие / О.Л. Голицына, И.И. Попов. - М.: Форум; Издание 2-е, 2015. - 432

7. Готье, Р. Руководство по операционной системе UNIX / Р. Готье. - М.: Финансы и статистика, 2014. - 232 c.

8. Гребенников, Л.К. Программирование микропроцессорных систем на языке ПЛ/М / Л.К. Гребенников, Л.А. Летник. - М.: Финансы и статистика, 2014. - 160 c.

9.Дж., Вандер Плас Python для сложных задач. Наука о данных и машинное обучение / Дж. Вандер Плас. - М.: Питер, 2017. - 518 c.

10. Жильцов, В. В. Информационные технологии в проектировании «интеллектуальной» скважины / В.В. Жильцов. - М.: Синергия, 2014. - 906 c.

11. Карпов, В.Я. Алгоритмический язык Фортран / В.Я. Карпов. - М.: Наука, 2014. - 192 c.

12. Крамм Программирование в Access для "чайников" / Крамм, Роб. - М.: Диалектика, 2016. - 304 c.

13. Кук, Даррен Машинное обучение с использованием библиотеки Н2О / Даррен Кук. - М.: ДМК Пресс, 2017. - 310 c.

14. Линдси, Ч. Неформальное введение в Алгол 68 / Ч. Линдси, Ван Дер Мюйлен, С.. - М.: Мир, 2018. - 408 c.

15. Лужецкий, М. Г. Автоматизация аналитической работы кредитной организации / М.Г. Лужецкий. - М.: Синергия, 2015. - 555 c.

16. Мельчук, И.А. Автоматический синтаксический анализ / И.А. Мельчук. - М.: Редакционно-издательский отдел Сибирского отделения АН СССР, 2018. - 358 c.

17. Неслуховский, К.С. Пособие по программированию для ЭЦВМ "Минск-32" / К.С. Неслуховский. - М.: Советское радио, 2016. - 296 c.

18. Попов, И. И. Использование семантических подходов в экономических моделях / И.И. Попов. - М.: Синергия, 2016. - 646 c.

19. Постовалов 1С: Предприятие 7.7. Уроки программирования / Постовалов, Постовалова Сергей;, Анастасия. - М.: СПб: BHV, 2018. - 320 c.

20. Рихтер Программирование на платформе Microsoft. NET Framework / Рихтер, Джеффри. - М.: Русская Редакция, 2014. - 512 c.

21. Скотт, Т. Основы программирования. Курс программированного обучения / Т. Скотт. - М.: Советское радио, 2016. - 490 c.

22. Соломон Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000 / Соломон, Руссинович Д;, М. - М.: СПб: Питер; Издание 4-е, 2014. - 992 c

23. Стивенс, У. UNIX: разработка сетевых приложений / У. Стивенс. - М.: СПб: Питер, 2015. - 400 c.

24. Фаронов, В.В. Основы Турбо-Паскаля / В.В. Фаронов. - М.: МВТУ-Фесто дидактик, 2015. - 304 c.

25. Фролов, А.В. Локальные сети персональных компьютеров. Работа с сервером Novell NetWare / А.В. Фролов, Г.В. Фролов. - М.: Диалог-Мифи, 2017. - 168 c.



Поделиться:


Последнее изменение этой страницы: 2022-09-03; просмотров: 55; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.158.106 (0.159 с.)