Сравнить коммиты

4 Коммитов
main ... main

Автор SHA1 Сообщение Дата
7b7f042ba0 Изменил(а) на 'ТЕМА1/report.md' 2026-02-12 09:02:29 +00:00
69b9747297 Создание report и task 2026-02-12 10:06:57 +03:00
4bde2ba20b Общее контрольное задание 2026-02-12 02:06:47 +03:00
666a7f1d16 Готовый отчёт 2026-02-11 18:47:07 +03:00
14 изменённых файлов: 910 добавлений и 28 удалений

Просмотреть файл

@@ -2,53 +2,42 @@
[Репозиторий с методическими указаниями и заданиями.](http://uit.mpei.ru/git/main/it)
**Работы проверяются только после того, как закоммичены по правилам ниже.**
## Работа с Git
**Работы проверяются только после того, как закоммичены по правилам ниже.**
[Лабораторная работа про Git второго семестра][gitlab]
поможет вспомнить, как работать с Git.
[gitlab]: http://uit.mpei.ru/git/main/cs/src/branch/main/labs/lab02
1. Один раз в начале семестра
1. В начале семестра
создать на сервере копию этого репозитория («форкнуть» его), нажав *Fork*.
Получится репозиторий-форк `http://uit.mpei.ru/git/IvanovII/it-labs`,
где `IvanovII` — ваше имя пользователя.
2. В начале каждого занятия:
1. Настроить Git, чтобы не было проблем с вводом пароля:
```sh
git config --global credential.helper ""
git config --global core.askpass ""
```
2. Клонировать свой форк на рабочий стол
Клонировать свой форк на рабочий стол
(`IvanovII` заменить на свое имя пользователя):
```sh
git clone http://uit.mpei.ru/git/IvanovII/it-labs.git
```
Не клонируйте на диск L (students) в компьютерном классе —
не будет работать Git.
Не клонируйте в папку, в пути к которой есть русские буквы и пробелы —
не будет работать Octave.
3. Перейти в клонированную папку и настроить имя пользователя и почту,
чтобы у коммитов был правильный автор:
Перебазировать свой форк на исходный репозиторий ("апстрим"):
```sh
cd it-labs
git config user.name "Иванов И. И."
git config user.email "IvanovII@mpei.ru"
# Первую команду нужно запускать только один раз,
# иначе будет ошибка "error: remote upstream already exists".
git remote add upstream http://uit.mpei.ru/git/main/it-labs.git
git fetch upstream
git stash push
git rebase upstream/main
git stash pop
```
Если вы работаете со своего компьютера, а не с лабораторного,
то все эти шаги нужно сделать один раз, а не каждое занятие.
Перебазировать нужно, чтобы подтянуть из исходного репозитория обновления.
3. После того, как отчет написан, закоммитить его как `TEMAn/report.md`.

6
ТЕМА1/assets/Perem Обычный файл
Просмотреть файл

@@ -0,0 +1,6 @@
# Created by Octave 8.3.0, Wed Feb 11 12:35:04 2026 GMT <unknown@w10prog-99>
# name: value
# type: scalar
152

5
ТЕМА1/assets/Prog1.m Обычный файл
Просмотреть файл

@@ -0,0 +1,5 @@
D1=D(3,5)
D2=D(3,4:end)
D3=D(2:3,3:5)
D4=D(16:20)
D5=D(3:4,[1,3,6])

Двоичные данные
ТЕМА1/assets/bar11.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 4.7 KiB

Двоичные данные
ТЕМА1/assets/graphic11.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 17 KiB

Двоичные данные
ТЕМА1/assets/histogram11.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 4.5 KiB

Двоичные данные
ТЕМА1/assets/pie11.PNG Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 56 KiB

Двоичные данные
ТЕМА1/assets/screen2.PNG Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 7.3 KiB

Двоичные данные
ТЕМА1/assets/screen3.PNG Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 77 KiB

Двоичные данные
ТЕМА1/assets/screen4.PNG Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 16 KiB

444
ТЕМА1/report.md Обычный файл
Просмотреть файл

@@ -0,0 +1,444 @@
# Отчет по теме 1
Белозёров Иван, А-03-24
## 1. Изучение среды GNU Octave
Запущена среда GNU Octave. Визуально изучены компоненты графического интерфейса: главное меню, командное окно, окно текущей папки, область переменных и другие элементы.
## 2. Настройка текущего каталога
Нажал на окно рядом с *Текущая папка:* и установил путь к папке ТЕМА1:
![Скриншот выбора текущей папки](assets/screen2.PNG)
## 3. Настройка окон интерфейса
В главном меню «Окно» отмечены галочками для отображения:
- Командное окно
- Журнал выполненных команд
- Диспетчер файлов
- Область переменных
- Редактор
Все указанные окна появились в интерфейсе среды:
![Скриншот выбора текущей папки](assets/screen3.PNG)
## 4. Установка путей и работа с файлами
В меню «Правка» + «Установить путь» добавлены пути к папкам TEMA1 и TEMA2. В окне «Диспетчер файлов» отображен список файлов текущей папки.
![Скриншот выбора текущей папки](assets/screen4.PNG)
## 5. Работа со справкой
Изучена система помощи:
- Открыта документация через «Справка» + «Документация» + «На диске»
- Просмотрен GNU Octave Manual
- Проверен список пакетов через «Справка» + «Пакеты Octave»
- Использована команда `help` для получения справки по функциям
```matlab
>> help randn
'randn' is a built-in function from the file libinterp/corefcn/rand.cc
-- X = randn (N)
-- X = randn (M, N, ...)
-- X = randn ([M N ...])
-- X = randn (..., "single")
-- X = randn (..., "double")
-- V = randn ("state")
-- randn ("state", V)
-- randn ("state", "reset")
-- V = randn ("seed")
-- randn ("seed", V)
-- randn ("seed", "reset")
Return a matrix with normally distributed random elements having
zero mean and variance one.
The arguments are handled the same as the arguments for 'rand'.
By default, 'randn' uses the Marsaglia and Tsang "Ziggurat
technique" to transform from a uniform to a normal distribution.
The class of the value returned can be controlled by a trailing
"double" or "single" argument. These are the only valid classes.
Reference: G. Marsaglia and W.W. Tsang, 'Ziggurat Method for
Generating Random Variables', J. Statistical Software, vol 5, 2000,
<https://www.jstatsoft.org/v05/i08/>
See also: rand, rande, randg, randp.
Additional help for built-in functions and operators is
available in the online version of the manual. Use the command
'doc <topic>' to search the manual index.
Help and information about Octave is also available on the WWW
at https://www.octave.org and via the help@octave.org
mailing list.
```
## 6. Создание матриц и векторов
```matlab
A=randn(4,6)
A =
-0.528329 -0.994136 0.423295 1.112417 -1.553415 0.112552
-0.382666 1.101997 1.580713 1.707565 1.722116 -0.693864
-0.357399 -0.131229 0.340915 -0.077007 1.373504 -0.604131
-1.275300 0.125405 -3.324363 0.552311 -0.676089 -1.190437
>> B=rand(4,7)
B =
6.8923e-01 6.3167e-01 3.9290e-01 4.9222e-01 4.1398e-01 3.3042e-01 3.4653e-01
5.5290e-01 7.6563e-01 8.4603e-01 2.6433e-01 9.0435e-01 1.6311e-02 4.1257e-01
1.3849e-01 7.8665e-01 7.2817e-01 6.3255e-01 4.4693e-01 3.1069e-01 2.6307e-03
3.4252e-01 6.2507e-02 7.8017e-01 6.0083e-01 6.0237e-01 4.0533e-01 9.7884e-01
>> C = 4:27
C =
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
>> H='This is a symbols vector'
H = This is a symbols vector
>> L=[-2+23.1j, 3-5.6j]
L =
-2.0000 + 23.1000i 3.0000 - 5.6000i
```
## 7. Операции с матрицами
```matlab
D=reshape(C,[],6)
D =
4 8 12 16 20 24
5 9 13 17 21 25
6 10 14 18 22 26
7 11 15 19 23 27
>> E=B'*A
E =
-1.062020 -0.051115 0.074274 1.889323 -0.159865 -0.797471
-0.987574 0.120358 1.538011 1.983992 1.375455 -1.009796
-1.786521 0.544003 -0.841670 2.256538 1.319305 -1.911457
-1.353524 -0.205707 -1.155552 1.282056 0.153180 -1.225409
-1.492714 0.601927 -0.245364 2.303039 1.120912 -1.567984
-0.808763 -0.300447 -1.075886 0.595356 -0.332495 -0.644339
-1.590215 0.232552 -2.454290 1.630394 -0.485993 -1.414100
>> F=[A,B]
F =
Columns 1 through 10:
-5.2833e-01 -9.9414e-01 4.2330e-01 1.1124e+00 -1.5534e+00 1.1255e-01 6.8923e-01 6.3167e-01 3.9290e-01 4.9222e-01
-3.8267e-01 1.1020e+00 1.5807e+00 1.7076e+00 1.7221e+00 -6.9386e-01 5.5290e-01 7.6563e-01 8.4603e-01 2.6433e-01
-3.5740e-01 -1.3123e-01 3.4092e-01 -7.7007e-02 1.3735e+00 -6.0413e-01 1.3849e-01 7.8665e-01 7.2817e-01 6.3255e-01
-1.2753e+00 1.2540e-01 -3.3244e+00 5.5231e-01 -6.7609e-01 -1.1904e+00 3.4252e-01 6.2507e-02 7.8017e-01 6.0083e-01
Columns 11 through 13:
4.1398e-01 3.3042e-01 3.4653e-01
9.0435e-01 1.6311e-02 4.1257e-01
4.4693e-01 3.1069e-01 2.6307e-03
6.0237e-01 4.0533e-01 9.7884e-01
>> G=A.*D
G =
-2.1133 -7.9531 5.0795 17.7987 -31.0683 2.7012
-1.9133 9.9180 20.5493 29.0286 36.1644 -17.3466
-2.1444 -1.3123 4.7728 -1.3861 30.2171 -15.7074
-8.9271 1.3795 -49.8654 10.4939 -15.5500 -32.1418
>> M=G./4.5
M =
-0.4696 -1.7674 1.1288 3.9553 -6.9041 0.6003
-0.4252 2.2040 4.5665 6.4508 8.0365 -3.8548
-0.4765 -0.2916 1.0606 -0.3080 6.7149 -3.4905
-1.9838 0.3065 -11.0812 2.3320 -3.4556 -7.1426
>> DDD=D.^3
DDD =
64 512 1728 4096 8000 13824
125 729 2197 4913 9261 15625
216 1000 2744 5832 10648 17576
343 1331 3375 6859 12167 19683
>> DL=D>=20
DL =
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
>> Dstolb=D(:)
Dstolb =
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
```
## 8. Стандартные функции
```matlab
B1=sqrt(B)
B1 =
0.830196 0.794780 0.626818 0.701587 0.643416 0.574820 0.588671
0.743569 0.875002 0.919798 0.514131 0.950974 0.127716 0.642313
0.372137 0.886932 0.853329 0.795333 0.668526 0.557392 0.051291
0.585250 0.250013 0.883270 0.775134 0.776123 0.636652 0.989364
>> B2=log(B)
B2 =
-0.372186 -0.459381 -0.934198 -0.708822 -0.881929 -1.107396 -1.059777
-0.592586 -0.267058 -0.167202 -1.330552 -0.100537 -4.115892 -0.885359
-1.976984 -0.239973 -0.317219 -0.457989 -0.805361 -1.168973 -5.940491
-1.071431 -2.772484 -0.248248 -0.509438 -0.506889 -0.903063 -0.021386
>> B3=sin(B)
B3 =
6.3594e-01 5.9050e-01 3.8287e-01 4.7259e-01 4.0226e-01 3.2444e-01 3.3964e-01
5.2515e-01 6.9299e-01 7.4865e-01 2.6126e-01 7.8602e-01 1.6311e-02 4.0096e-01
1.3804e-01 7.0799e-01 6.6551e-01 5.9121e-01 4.3220e-01 3.0571e-01 2.6307e-03
3.3586e-01 6.2466e-02 7.0340e-01 5.6533e-01 5.6659e-01 3.9432e-01 8.2985e-01
>> k=length(B1)
k = 7
>> nm=size(B1)
nm =
4 7
>> elem=numel(B1)
elem = 28
>> NN=linspace(11.5,34.1,20)
NN =
Columns 1 through 14:
11.500 12.689 13.879 15.068 16.258 17.447 18.637 19.826 21.016 22.205 23.395 24.584 25.774 26.963
Columns 15 through 20:
28.153 29.342 30.532 31.721 32.911 34.100
>> FF=ones(2,4)
FF =
1 1 1 1
1 1 1 1
>> GG=zeros(5)
GG =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
>> B1D=diag(B1)
B1D =
0.8302
0.8750
0.8533
0.7751
>> DB=diag(B1D)
DB =
Diagonal Matrix
0.8302 0 0 0
0 0.8750 0 0
0 0 0.8533 0
0 0 0 0.7751
>> BS1=sort(B)
BS1 =
1.3849e-01 6.2507e-02 3.9290e-01 2.6433e-01 4.1398e-01 1.6311e-02 2.6307e-03
3.4252e-01 6.3167e-01 7.2817e-01 4.9222e-01 4.4693e-01 3.1069e-01 3.4653e-01
5.5290e-01 7.6563e-01 7.8017e-01 6.0083e-01 6.0237e-01 3.3042e-01 4.1257e-01
6.8923e-01 7.8665e-01 8.4603e-01 6.3255e-01 9.0435e-01 4.0533e-01 9.7884e-01
>> BS2=sortrows(B,2)
BS2 =
3.4252e-01 6.2507e-02 7.8017e-01 6.0083e-01 6.0237e-01 4.0533e-01 9.7884e-01
6.8923e-01 6.3167e-01 3.9290e-01 4.9222e-01 4.1398e-01 3.3042e-01 3.4653e-01
5.5290e-01 7.6563e-01 8.4603e-01 2.6433e-01 9.0435e-01 1.6311e-02 4.1257e-01
1.3849e-01 7.8665e-01 7.2817e-01 6.3255e-01 4.4693e-01 3.1069e-01 2.6307e-03
>> DS1=sum(D)
DS1 =
22 38 54 70 86 102
>> DS2=sum(D,2)
DS2 =
84
90
96
102
>> DP1=prod(D)
DP1 =
840 7920 32760 93024 212520 421200
>> dt=det(A*A')
dt = 727.40
>> dinv=inv(A*A')
dinv =
0.283810 -0.061584 0.278944 -0.011754
-0.061584 0.190474 -0.271478 0.037051
0.278944 -0.271478 0.932179 -0.026774
-0.011754 0.037051 -0.026774 0.076090
```
## 9. Работа с индексацией элементов матриц
```matlab
D1=D(3,5)
D1 = 22
>> D2=D(3,4:end)
D2 =
18 22 26
>> D3=D(2:3,3:5)
D3 =
13 17 21
14 18 22
>> D4=D(16:20)
D4 =
19 20 21 22 23
>> D5=D(3:4,[1,3,6])
D5 =
6 14 26
7 15 27
```
## 10. Управляющие конструкции
```matlab
Dsum=0
Dsum = 0
>> for i=1:6
Dsum=Dsum+sqrt(D(2,i))\
endfor
Dsum = 2.2361
Dsum = 5.2361
Dsum = 8.8416
Dsum = 12.965
Dsum = 17.547
Dsum = 22.547
>> Dsum2=0;i=1
i = 1
>> while (D(i)<22)
Dsum2=Dsum2+sin(D(i))
i=i+1
endwhile
Dsum2 = -0.7568
i = 2
Dsum2 = -1.7157
i = 3
Dsum2 = -1.9951
i = 4
Dsum2 = -1.3382
i = 5
Dsum2 = -0.3488
i = 6
Dsum2 = 0.063321
i = 7
Dsum2 = -0.4807
i = 8
Dsum2 = -1.4807
i = 9
Dsum2 = -2.0173
i = 10
Dsum2 = -1.5971
i = 11
Dsum2 = -0.6065
i = 12
Dsum2 = 0.043799
i = 13
Dsum2 = -0.2441
i = 14
Dsum2 = -1.2055
i = 15
Dsum2 = -1.9565
i = 16
Dsum2 = -1.8066
i = 17
Dsum2 = -0.8937
i = 18
Dsum2 = -0.057011
i = 19
>> if (D(3,5)>=20)
printf('D(3,5)>=20')
else
printf('D(3,5)<20')
endif
D(3,5)>=20>>
```
## 11. Графические функции
```matlab
>> graphics_toolkit('gnuplot')
>> plot(D(1,:),B([2,4],1:6))
>>
>> hist(A(:),6)
>>
>>
>> pie(D(1,:))
>> bar(D(1,:))
```
![график](assets/graphic11.png)
![гистограмма](assets/histogram11.png)
![круговая диаграмма](assets/pie11.PNG)
![ступенчатая диаграмма](assets/bar11.png)
## 12. Работа с текстовым редактором
Создан файл Prog1.m с командами из пункта 9. Файл сохранен в папке TEMA1/assets. Программа успешно запущена как через клавишу F5, так и через ввод имени файла в командной строке.
## 13. Сохранение и загрузка переменных
Содержимое области переменных сохранено в файл Perem. После перезапуска среды и установки пути к папке TEMA1 переменные успешно загружены из файла Perem. Команды из предыдущего сеанса отображены в журнале выполненных команд.

438
ТЕМА1/task.md Обычный файл
Просмотреть файл

@@ -0,0 +1,438 @@
# Общее контрольное задание по теме 1
Белозёров Иван, А-03-24
## Задание
* Создайте переменную ММ – матрицу 5х7 со случайными нормально распределенными элементами с математическим ожиданием 10 и стандартным отклонением 8.
* Рассчитайте среднее значение SR по всем элементам матрицы ММ.
* Замените в ММ все значения, превышающие SR+8, на значение SR+8, а значения, меньшие, чем SR-8, - на SR-8.
* Превратите ММ в вектор – столбец ММС. Упорядочьте его элементы по возрастанию. Определите значение медианы, в качестве которого возьмите серединное по порядку индексов значение в упорядоченном векторе.
* Рассчитайте матрицу ММ1 с элементами, равными натуральным логариф-мам от значений соответствующих элементов из матрицы ММ.
## Решение
```matlab
MM = 10 + 8 \* randn(5,7)
MM =
6.6056 15.1764 8.5531 -2.2891 7.1804 8.4510 10.3949
16.0919 14.8486 11.7429 9.3110 10.1830 12.6014 3.5270
12.9754 0.6712 18.7947 10.3827 12.1618 7.6309 17.1041
3.9008 4.9424 3.4973 11.2839 16.8650 11.4907 7.1277
5.0050 15.2839 10.5491 10.7308 -3.3942 8.7227 6.6019
>> SR = sum(MM(:))/numel(MM)
SR = 9.2773
>> MMup = MM > SR + 8
MMup =
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
>> MMup = (MMup - 1) \* (-1)
MMup =
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 0 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
>> MM = MM .\* MMup
MM =
6.6056 15.1764 8.5531 -2.2891 7.1804 8.4510 10.3949
16.0919 14.8486 11.7429 9.3110 10.1830 12.6014 3.5270
12.9754 0.6712 0 10.3827 12.1618 7.6309 17.1041
3.9008 4.9424 3.4973 11.2839 16.8650 11.4907 7.1277
5.0050 15.2839 10.5491 10.7308 -3.3942 8.7227 6.6019
>> MMup = (MMup - 1) \* (-1) \* (SR+8)
MMup =
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 17.2773 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
>> MM = MM+MMup
MM =
6.6056 15.1764 8.5531 -2.2891 7.1804 8.4510 10.3949
16.0919 14.8486 11.7429 9.3110 10.1830 12.6014 3.5270
12.9754 0.6712 17.2773 10.3827 12.1618 7.6309 17.1041
3.9008 4.9424 3.4973 11.2839 16.8650 11.4907 7.1277
5.0050 15.2839 10.5491 10.7308 -3.3942 8.7227 6.6019
>> MMlow = MM < SR - 8
MMlow =
0 0 0 1 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 1 0 0
>> MMlow = (MMlow - 1) \* (-1)
MMlow =
1 1 1 0 1 1 1
1 1 1 1 1 1 1
1 0 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 0 1 1
>> MM = MM .\* MMlow
MM =
6.6056 15.1764 8.5531 0 7.1804 8.4510 10.3949
16.0919 14.8486 11.7429 9.3110 10.1830 12.6014 3.5270
12.9754 0 17.2773 10.3827 12.1618 7.6309 17.1041
3.9008 4.9424 3.4973 11.2839 16.8650 11.4907 7.1277
5.0050 15.2839 10.5491 10.7308 0 8.7227 6.6019
>> MMlow = (MMlow - 1) \* (-1) \* (SR-8)
MMlow =
0 0 0 1.2773 0 0 0
0 0 0 0 0 0 0
0 1.2773 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 1.2773 0 0
>> MM = MM + MMlow
MM =
6.6056 15.1764 8.5531 1.2773 7.1804 8.4510 10.3949
16.0919 14.8486 11.7429 9.3110 10.1830 12.6014 3.5270
12.9754 1.2773 17.2773 10.3827 12.1618 7.6309 17.1041
3.9008 4.9424 3.4973 11.2839 16.8650 11.4907 7.1277
5.0050 15.2839 10.5491 10.7308 1.2773 8.7227 6.6019
>> MMC = MM(:)
MMC =
6.6056
16.0919
12.9754
3.9008
5.0050
15.1764
14.8486
1.2773
4.9424
15.2839
8.5531
11.7429
17.2773
3.4973
10.5491
1.2773
9.3110
10.3827
11.2839
10.7308
7.1804
10.1830
12.1618
16.8650
1.2773
8.4510
12.6014
7.6309
11.4907
8.7227
10.3949
3.5270
17.1041
7.1277
6.6019
>> MMC = sort(MMC)
MMC =
1.2773
1.2773
1.2773
3.4973
3.5270
3.9008
4.9424
5.0050
6.6019
6.6056
7.1277
7.1804
7.6309
8.4510
8.5531
8.7227
9.3110
10.1830
10.3827
10.3949
10.5491
10.7308
11.2839
11.4907
11.7429
12.1618
12.6014
12.9754
14.8486
15.1764
15.2839
16.0919
16.8650
17.1041
17.2773
>> Ind = fix(numel(MMC)/2)+1
Ind = 18
>> Med = MMC(Ind)
Med = 10.183
>> MM1 = log(MM)
MM1 =
1.8879 2.7197 2.1463 0.2448 1.9714 2.1343 2.3413
2.7783 2.6979 2.4632 2.2312 2.3207 2.5338 1.2605
2.5631 0.2448 2.8494 2.3401 2.4983 2.0322 2.8393
1.3612 1.5978 1.2520 2.4234 2.8252 2.4415 1.9640
1.6104 2.7268 2.3560 2.3731 0.2448 2.1659 1.8874
```

0
ТЕМА2/report.md Обычный файл
Просмотреть файл

0
ТЕМА2/task.md Обычный файл
Просмотреть файл