feat(bse): update tests

This commit is contained in:
maxbarsukov 2025-05-13 18:30:17 +03:00
parent 8805246b51
commit fca84bfac3
4 changed files with 47 additions and 8 deletions

View File

@ -1,6 +1,6 @@
# Основы Профессиональной Деятельности
<img alt="Angry" src="https://github.com/maxbarsukov/itmo/blob/master/.docs/angry2.gif" height="150">
<img alt="Angry" src="https://github.com/maxbarsukov/itmo/blob/master/.docs/angry2.gif" height="220">
> диагональные вложенные микрохальты
@ -13,12 +13,12 @@
- 1 семестр: **зачёт**
- 2 семестр: **5A**
Задания для лаборатнорных работ: https://se.ifmo.ru/courses/csbasics#labs
Задания для лабораторных работ: [se.ifmo.ru/courses/csbasics#labs](https://se.ifmo.ru/courses/csbasics#labs)
#### [Лекции](./%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D0%B8)
## [Лекции](./%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D0%B8)
- [Таблица кодов БЭВМ](./%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D0%B8/%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0%20%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2%20%D0%91%D0%AD%D0%92%D0%9C.pdf)
#### [Лабораторные](./%D0%BB%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%BD%D1%8B%D0%B5)
## [Лабораторные](./%D0%BB%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%BD%D1%8B%D0%B5)
- [Лабораторная работа №1 (19/20)](./%D0%BB%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%BD%D1%8B%D0%B5/lab1)
- [Лабораторная работа №2 (20/20)](./%D0%BB%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%BD%D1%8B%D0%B5/lab2)
@ -28,7 +28,7 @@
- [Лабораторная работа №6 (10/10)](./%D0%BB%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%BD%D1%8B%D0%B5/lab6)
- [Лабораторная работа №7 (10/10)](./%D0%BB%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%BD%D1%8B%D0%B5/lab7)
#### [Дополнительные задания](./%D0%B4%D0%BE%D0%BF)
### [Дополнительные задания](./%D0%B4%D0%BE%D0%BF)
- [Компилятор Java → БЭВМ](https://github.com/itmo-corp/jbevm)
- [Перевод ASCII строки в число](./%D0%B4%D0%BE%D0%BF/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8%20%D0%B2%20%D1%87%D0%B8%D1%81%D0%BB%D0%BE.basm_mod)
@ -39,5 +39,7 @@
| Ссылка | Описание |
| --- | --- |
| https://github.com/owl-from-hogvarts/OPD-guide | Гайд по БЭВМ |
| [205826.github.io/bcompT/](https://205826.github.io/bcompT/) | Тренировка рубежек, решатор лаб, БЭВМ онлайн и все-все-все |
| [github.com/e1turin/browsercomp](https://github.com/e1turin/browsercomp) | БЭВМ в браузере |
| https://github.com/Zerumi/OPD-guide-RU- | Перевод гайда на русский |
| [laser-seat-280.notion.site/...](https://laser-seat-280.notion.site/5c785e34e46e404abe56c8632b546ab5) | Расписанные билеты зачёта и экзамена |

View File

@ -0,0 +1,34 @@
# Рубежная работа №3 по ОПД (2025)
![Рубежная работа №3 по ОПД](./assets/3.jpeg)
## Задание
**2 варианта заданий**. Задания генерируются в зависимости от ИД студента и SID генератора, так что все варианты уникальны.
## Редактор
Синтаксис не подсвечивает и не подсказывает, но при пошаговом выполнении выделяет строку, на которую указывает IP. А если программа длинная, ещё и прокручивается до этой строки.
## Память
Решили отображать таблицей по 16 ячеек в ряду. Ячейки, значение которых не 0, выделены голубым. Синяя - положение IP, желтая - положение AR. Плюс там есть "умная" прокрутка, которая пытается показать кусок памяти таким образом, чтобы по возможности вместить в видимый фрейм IP, AR и адрес начала программы. Если не получается, приоритет у положения AR.
## Кнопки управления
- *Компиляция* - загружает программу в память, устанавливает положение IP, сохраняет текущее содержимое редактора (внизу видно сообщение о том, что ответ сохранён). В случае ошибок под кнопками выводится желтое сообщение.
- *Пуск* - запускает программу, очищая перед этим регистры
- *Продолжение* - запускает с текущего IP без очистки регистров
- *Шаг вперед* - покомандное выполнение
- *Стоп* - в текущей реализации оказался не нужен, ниже объясню, почему.
- Кнопка "*Завершить контрольную и сдать работу*". Отменить это действия нельзя.
---
### Что важно знать
1. По кнопкам Пуск и Продолжение уходит запрос на сервер, в это время интерфейс не отображает процесс выполнения (ничего не подсвечивается и не прокручивается ни в редакторе, ни в памяти). Кнопки действий на время запроса должны блокироваться.
2. За один раз выполняется 1000 команд, если за это время программа не дошла до HLT, она прерывается. На клиент возвращается текущее состояние памяти и регистров, а также сообщение о том, что программа была прервана. Если студент уверен, что ошибок в коде нет, он может продолжить выполнение кнопкой Продолжить (ещё 1000 команд выполнится). Это контроль зацикливания программ + потребления ресурсов сервера. Собственно, поэтому Стоп никогда не актуален и не активен, но убирать кнопку пока не стала.
3. Значение ячеек памяти, а также IP, AC и флагов можно менять напрямую, ткнув в них курсором.

View File

@ -1,6 +1,9 @@
# ОПД
## Рубежки
- Тренировка трассировки: https://se.ifmo.ru/~s263975/program-tracing/
- Тренировка трассировки для отдельных команд: https://dima.mysoftware.ru/OPDv1.html
## Рубежные работы
- Тренировка микро-трассировки БЭВМ (доступные варианты: 1-3, 100-700): https://205826.github.io/MicroProgramTracingBasicComputer/
- Тренировка команд БЭВМ: https://205826.github.io/OPDv1.html
- Тренировка трассировки (старая): https://se.ifmo.ru/~s263975/program-tracing/
- [Новый 3-й рубеж по ОПД](./3.md)
- `where_is_my_rubezhka.py`: найти вариант рубежки по одной из переменных;

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB