diff --git a/1-2 опд/README.md b/1-2 опд/README.md index beca6e8..fb0325b 100644 --- a/1-2 опд/README.md +++ b/1-2 опд/README.md @@ -1,6 +1,6 @@ # Основы Профессиональной Деятельности -Angry +Angry > диагональные вложенные микрохальты @@ -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) | Расписанные билеты зачёта и экзамена | diff --git a/1-2 опд/рубежки/3.md b/1-2 опд/рубежки/3.md new file mode 100644 index 0000000..b24ca5a --- /dev/null +++ b/1-2 опд/рубежки/3.md @@ -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 и флагов можно менять напрямую, ткнув в них курсором. diff --git a/1-2 опд/рубежки/README.md b/1-2 опд/рубежки/README.md index 2cd141f..1d96ef3 100644 --- a/1-2 опд/рубежки/README.md +++ b/1-2 опд/рубежки/README.md @@ -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`: найти вариант рубежки по одной из переменных; diff --git a/1-2 опд/рубежки/assets/3.jpeg b/1-2 опд/рубежки/assets/3.jpeg new file mode 100644 index 0000000..3277277 Binary files /dev/null and b/1-2 опд/рубежки/assets/3.jpeg differ