Прочитал сегодня
запись и вспомнил, как мы лабораторную работу по производственному оборудованию делали.
Задача была собственно простая: написать программу для фрезерного станка с координатным столом, которая обеспечивала бы выход стола на определённые координаты и удерживала бы его там. Конечно, никакой детали или работы фрезой там не предполагалось, да и задачка довольно тривиальная, но преподаватель был требовательный и халява у него не прокатывала.
Сама последовательность была такая:
- на первой неделе в вычислительном классе пишется программа на ассемблере, после того как она скомпилируется без ошибок распечатывался её листинг с машинными кодами;
- на второй неделе с этим листингом приходишь в лабораторию, вводишь восьмеричные коды с терминала, проверяешь корректность ввода и зовешь преподавателя для демонстрации.
Делались эти лабораторные работы группами по три-четыре человека. Нас было четверо.
С программой сложностей не возникло: мы с другом написали её за 30 минут, скомпилировали с первого раза, распечатали и на неделю про неё забыли. А вот в лаборатории всё пошло не так гладко.
То есть мы программу ввели, преподавателя позвали и наблюдали неожиданный эффект: при подходе к указанным координатам стол разгонялся, проскакивал точку, останавливался, ускорялся в обратном направлении, опять проскакивал точку и продолжал дергаться в режиме затухающих колебаний.
Наш строгий и требовательный преподаватель был готов поставить зачёт, сетуя на изношенность комплекса, но мы то были в себе абсолютно уверены и взяли тайм-аут.
Для начала мы перепроверили введённый код, предполагая, что опечатались при вводе,но ошибок не нашли.
Потом мы перепроверили текст программы и обнаружили, что в одном месте плюс с минусом попутали.
Сообщили преподавателю и он, удовлетворённый тем, что проблема не в комплексе, опять готов был поставить зачёт, но мы уперлись рогом в землю, что не уйдём, пока программа не заработает как надо.