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

..

1 Коммитов

Автор SHA1 Сообщение Дата
eb4b78d4a5 doc: актуализировано описание работы с Git
* Убрана  синхронизация с апстримом, так как не требуется для CI,
  однако путает студентов, которые не понимают, когда её делать.

* Добавлена настройка Git, отключающая Windows credential helper.

* Добавлена настройка авторства коммитов.

* Добавлены примечания для компьютерных классов.
2026-02-18 13:48:51 +00:00
15 изменённых файлов: 28 добавлений и 767 удалений

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

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

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

@@ -1,12 +0,0 @@
# Created by Octave 10.3.0, Thu Feb 12 02:01:35 2026 UTC <unknown@JuliaNote>
# name: C
# type: double_range
# base, limit, increment
4 27 1
# name: ans
# type: scalar
27

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

@@ -1,650 +0,0 @@
# Отчет по теме 1
Дмитриев Денис, А-03-24
## 1 Изучение среды GNU Octave
## 2 Настройка текущего католога
Нажал на окно рядом с *Текущая папка:* и установил путь к папке TEMA1:
![Скриншот выбора текущей папки](screens/1.PNG)
## 3 Работа с предложением *Окно*
Отметил галочками предложения, которые указаны в методическом задании:
![Скриншот выбора нужных для работы окон](screens/2.PNG)
## 4 Отображение списка файлов, размещенных в текущей папке
Выбрал в главном меню предложения "Правка" + "Установить путь" и добавил в появившийся список пути к папкам TEMA1 и TEMA2:
![Скриншот отображения списка файлов](screens/3.PNG)
## 5 Изучил работу с системной помощи
3 способа взаимодействия с системой помощи:
-В главном меню выберите предложения «Справка» + « Документация» + « На диске».
-Ввод в командную строку help randn.
-Также можно использовать функции из дополнительных пакетов. Список пакетов можно получить выбрав в меню «Справка» + «Пакеты Octave».
## 6 Создание матрицы
Создал матрицу A с размерами 4x6 и случайными, нормально распределенными элементами:
```matlab
>> A = randn(4, 6)
A =
0.771762 1.105541 0.730124 2.126274 -1.003519 -0.173919
0.444238 0.910021 1.645450 -1.097477 -0.395713 -1.081679
-1.191087 -1.175833 1.129577 -1.678835 2.090537 -0.393653
-1.157870 1.019957 0.037269 3.236657 0.895129 -1.517315
>>
```
Создал матрицу B с размерами 4x7, со случайными элементами, равномерно распределенными в диапазоне от 0 до 1:
```matlab
>> B = rand(4, 7)
B =
0.694982 0.394179 0.323789 0.508678 0.970610 0.117920 0.892635
0.734522 0.627452 0.289060 0.477757 0.643385 0.933351 0.963873
0.336235 0.814269 0.233545 0.013444 0.149924 0.667995 0.949852
0.195053 0.396269 0.730697 0.216455 0.782906 0.132764 0.189516
>>
```
Создал вектор C с целыми числами от 4 до 27:
```matlab
>> 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:
```matlab
>> H = 'This is a symbols vector'
H = This is a symbols vector
>>
```
Создал вектор-строку L с 2 комплексными элементами:
```matlab
>> L = [-2+23.1j, 3-5.6j]
L =
-2.0000 + 23.1000i 3.0000 - 5.6000i
>>
```
## 7 Выполнение следующих операций
Преобразовал матрицу C в матрицу с 6 столбцами:
```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
>>
```
Сделал матричное перемножение B и A с транспонированием матрицы B:
```matlab
>> E = B'*A
E =
0.236331 1.240351 2.103116 0.738438 -0.110577 -1.343705
-0.845742 0.453508 2.254787 0.065083 1.413113 -1.669059
-0.745924 1.091683 1.003080 2.344160 0.702988 -1.569616
0.338176 1.202100 1.180775 1.235283 -0.477663 -0.938971
-0.050181 2.280788 1.965852 3.639985 -0.214397 -2.111676
-0.443727 0.329697 2.381378 -1.465343 1.027634 -1.494497
-0.233701 0.940419 3.317734 -0.141089 0.878150 -1.859314
>>
```
Создал матрицы путем горизонтального соединения матриц A и B:
```matlab
>> F=[A,B]
F =
Columns 1 through 12:
0.771762 1.105541 0.730124 2.126274 -1.003519 -0.173919 0.694982 0.394179 0.323789 0.508678 0.970610 0.117920
0.444238 0.910021 1.645450 -1.097477 -0.395713 -1.081679 0.734522 0.627452 0.289060 0.477757 0.643385 0.933351
-1.191087 -1.175833 1.129577 -1.678835 2.090537 -0.393653 0.336235 0.814269 0.233545 0.013444 0.149924 0.667995
-1.157870 1.019957 0.037269 3.236657 0.895129 -1.517315 0.195053 0.396269 0.730697 0.216455 0.782906 0.132764
Column 13:
0.892635
0.963873
0.949852
0.189516
>>
```
Поэлементарно перемножил матрицы A и D:
```matlab
>> G = A.*D
G =
3.0870 8.8443 8.7615 34.0204 -20.0704 -4.1740
2.2212 8.1902 21.3908 -18.6571 -8.3100 -27.0420
-7.1465 -11.7583 15.8141 -30.2190 45.9918 -10.2350
-8.1051 11.2195 0.5590 61.4965 20.5880 -40.9675
>>
```
Поэлементарно поделил элементы матрицы G на 4.5:
```matlab
>> M =G./4.5
M =
0.6860 1.9654 1.9470 7.5601 -4.4601 -0.9276
0.4936 1.8200 4.7535 -4.1460 -1.8467 -6.0093
-1.5881 -2.6130 3.5142 -6.7153 10.2204 -2.2744
-1.8011 2.4932 0.1242 13.6659 4.5751 -9.1039
>>
```
Поэлементарно возвел в степень элементы матрицы D:
```matlab
>> 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
>>
```
Создал логическую матрицу, совпадающей по размерам с D и с элементами по заданному условию:
```matlab
>> 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
>>
```
Превратил матрицу в вектор-столбец:
```matlab
>> 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.8337 0.6278 0.5690 0.7132 0.9852 0.3434 0.9448
0.8570 0.7921 0.5376 0.6912 0.8021 0.9661 0.9818
0.5799 0.9024 0.4833 0.1159 0.3872 0.8173 0.9746
0.4416 0.6295 0.8548 0.4652 0.8848 0.3644 0.4353
>>
```
Логарифм:
```matlab
>> B2 = log(B)
B2 =
-0.363869 -0.930950 -1.127662 -0.675940 -0.029831 -2.137750 -0.113577
-0.308535 -0.466089 -1.241120 -0.738654 -0.441012 -0.068974 -0.036796
-1.089944 -0.205465 -1.454382 -4.309246 -1.897627 -0.403475 -0.051449
-1.634482 -0.925662 -0.313757 -1.530371 -0.244742 -2.019182 -1.663281
>>
```
Синус:
```matlab
>> B3 = sin(B)
B3 =
0.640372 0.384050 0.318161 0.487023 0.825230 0.117647 0.778728
0.670233 0.587084 0.285052 0.459788 0.599907 0.803619 0.821407
0.329936 0.727224 0.231427 0.013443 0.149363 0.619413 0.813330
0.193819 0.385979 0.667389 0.214769 0.705343 0.132374 0.188384
>>
```
- Операции с матрицами:
Длина матрицы:
```matlab
>> k = length(B1)
k = 7
>>
```
Размер матрицы:
```matlab
>> nm = size(B1)
nm =
4 7
>>
```
Кол-во элементов в матрице:
```matlab
>> elem = numel(B1)
elem = 28
>>
```
Вектор линейного интервала:
```matlab
>> NN = linspace(11.5,34.1,20)
NN =
Columns 1 through 15:
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 28.153
Columns 16 through 20:
29.342 30.532 31.721 32.911 34.100
>>
```
Матрица единиц:
```matlab
>> FF = ones(2,4)
FF =
1 1 1 1
1 1 1 1
>>
```
Матрица нулей:
```matlab
>> 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
>>
```
Диагональ матрицы:
```matlab
>> B1D=diag(B1)
B1D =
0.8337
0.7921
0.4833
0.4652
>>
```
Диагональная матрица из вектора:
```matlab
>> DB = diag(B1D)
DB =
Diagonal Matrix
0.8337 0 0 0
0 0.7921 0 0
0 0 0.4833 0
0 0 0 0.4652
>>
```
Сортировка в столбцах:
```matlab
>> BS1=sort(B)
BS1 =
0.195053 0.394179 0.233545 0.013444 0.149924 0.117920 0.189516
0.336235 0.396269 0.289060 0.216455 0.643385 0.132764 0.892635
0.694982 0.627452 0.323789 0.477757 0.782906 0.667995 0.949852
0.734522 0.814269 0.730697 0.508678 0.970610 0.933351 0.963873
>>
```
Сортировка по 2 столбцу:
```matlab
>> BS2=sortrows(B,2)
BS2 =
0.694982 0.394179 0.323789 0.508678 0.970610 0.117920 0.892635
0.195053 0.396269 0.730697 0.216455 0.782906 0.132764 0.189516
0.734522 0.627452 0.289060 0.477757 0.643385 0.933351 0.963873
0.336235 0.814269 0.233545 0.013444 0.149924 0.667995 0.949852
>>
```
Сумма каждого столбца:
```matlab
>> DS1=sum(D)
DS1 =
22 38 54 70 86 102
>>
```
Сумма каждой строки:
```matlab
>> DS2 = sum(D,2)
DS2 =
84
90
96
102
>>
```
Произведение по столбцам:
```matlab
>> DP1 = prod(D)
DP1 =
840 7920 32760 93024 212520 421200
>>
```
Определитель:
```matlab
>> dt=det(A*A')
dt = 1255.5
>>
```
Обратная матрица:
```matlab
>> dinv = inv(A*A')
dinv =
0.8194 -0.3173 0.4800 -0.2872
-0.3173 0.2928 -0.2075 0.1266
0.4800 -0.2075 0.3753 -0.1545
-0.2872 0.1266 -0.1545 0.1674
>>
```
## 9 Изучение работы с индексацией элементов матрицы
Элемент 3 строки 5 столбца:
```matlab
>> D1 = D(3,5)
D1 = 22
>>
```
Часть 3 строки с 4 по последний столбцы:
```matlab
>> D2 = D(3,4:end)
D2 =
18 22 26
>>
```
Кусок матрицы:
```matlab
>> D3 = D(2:3,3:5)
D3 =
13 17 21
14 18 22
>>
```
Элементы с 16 по 20 место:
```matlab
>> D4 = D(16:20)
D4 =
19 20 21 22 23
>>
```
Смешанная матрица:
```matlab
>> 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
>>
```
Цикл пока выполняется условие:
```matlab
>> 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:
```matlab
>> if (D(3,5)>=20)
printf('D(3,5)>=20')
else
printf('D(3,5)<20')
endif
D(3,5)>=20>>
```
## 11 Использование графических функций
Функция построения графиков:
```matlab
plot(D(1,:),B([2,4],1:6))
```
![Скриншот графика](screens/4.PNG)
Функция расчета и построения гистограммы:
```matlab
hist(A(:),6)
```
![Скриншот графика](screens/5.PNG)
Функция pie:
```matlab
pie(C)
```
![Скриншот графика](screens/6.PNG)
Функция bar:
```matlab
bar(C)
```
![Скриншот графика](screens/7.png)
## 12 Работа с текстовым редактором
Создал сценарий и перенес все выполненные команды из п.9:
![Скриншот кода](screens/8.png)
Убедился в работоспособности программы с помощью кнопки F5 и ввода имени файла в командной строке.
## Сохранение и восстановление переменных
Сохранил содержимое области переменных в файле Perem, завершил работу со средой и снова запустил среду. С помощью комманд восстановил содержимое из области файла Perem. Убедился в том, что в журнале выполненных команд сохранены команды из предыдущего сеанса работы со средой.

Двоичные данные
ТЕМА1/screens/1.PNG

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

До

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

Двоичные данные
ТЕМА1/screens/2.PNG

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

До

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

Двоичные данные
ТЕМА1/screens/3.PNG

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

До

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

Двоичные данные
ТЕМА1/screens/4.PNG

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

До

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

Двоичные данные
ТЕМА1/screens/5.PNG

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

До

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

Двоичные данные
ТЕМА1/screens/6.PNG

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

До

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

Двоичные данные
ТЕМА1/screens/7.png

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

До

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

Двоичные данные
ТЕМА1/screens/8.png

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

До

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

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

@@ -1,80 +0,0 @@
## Общее контрольное задание по теме 1
Дмитриев Денис, А-03-24
# Задание 1
Создайте переменную ММ – матрицу 5х7 со случайными нормально распределенными элементами с математическим ожиданием 10 и стандартным отклонением 8.
# Решение 1
```matlab
>> MM = 10 + 8 * randn(5, 7)
MM =
17.7550 11.7073 18.3678 -0.1965 7.2149 9.1490 13.8207
25.3246 13.3426 16.8594 17.4836 21.1897 -8.0179 12.6948
9.9031 9.8378 5.1082 4.1858 0.5423 16.3504 17.5941
5.9264 12.4459 11.1126 -7.3134 14.8873 1.6742 18.3707
8.5833 -1.9887 3.4633 12.6198 -15.1807 22.7829 12.3349
>>
```
# Задание 2
Рассчитайте среднее значение SR по всем элементам матрицы ММ.
# Решение 2
```matlab
>> SR = sum(MM(:)) / numel(MM)
SR = 9.7124
>>
```
# Задание 3
Замените в ММ все значения, превышающие SR+8, на значение SR+8, а значения, меньшие, чем SR-8, - на SR-8.
# Решение 3
```matlab
>> UP = SR + 8;
>> LOW = SR - 8;
>> MM(MM > SR + 8) = UP;
>> MM(MM < SR - 8) = LOW;
>> MM
MM =
17.7124 11.7073 17.7124 1.7124 7.2149 9.1490 13.8207
17.7124 13.3426 16.8594 17.4836 17.7124 1.7124 12.6948
9.9031 9.8378 5.1082 4.1858 1.7124 16.3504 17.5941
5.9264 12.4459 11.1126 1.7124 14.8873 1.7124 17.7124
8.5833 1.7124 3.4633 12.6198 1.7124 17.7124 12.3349
>>
```
# Задание 4
Превратите ММ в вектор – столбец ММС. Упорядочьте его элементы по возрастанию. Определите значение медианы, в качестве которого возьмите серединное по порядку индексов значение в упорядоченном векторе.
# Решение 4
```matlab
>> MMC = MM(:);
>> MMC1 = sort(MMC);
>> Med = MMC1(floor(numel(MMC1) / 2) + 1)
Med = 11.707
>>
```
# Задание 5
Рассчитайте матрицу ММ1 с элементами, равными натуральным логарифмам от значений соответствующих элементов из матрицы ММ.
# Решение 5
```matlab
>> MM1 = log(MM)
MM1 =
2.8743 2.4602 2.8743 0.5379 1.9762 2.2136 2.6262
2.8743 2.5910 2.8249 2.8613 2.8743 0.5379 2.5412
2.2928 2.2862 1.6308 1.4317 0.5379 2.7943 2.8676
1.7794 2.5214 2.4081 0.5379 2.7005 0.5379 2.8743
2.1498 0.5379 1.2422 2.5353 0.5379 2.8743 2.5124
>>
```

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

@@ -1,8 +0,0 @@
warning('off','all')
C = 4:27
D = reshape(C, [], 6)
D1 = D(3,5)
D2 = D(3,4:end)
D3 = D(2:3,3:5)
D4 = D(16:20)
D5 = D93;4,[1,3,6])

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

Двоичные данные
ТЕМА2/sceens/1.png

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

До

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