Комментарии 66
Ностальгия :))
даже на бэйсике с такими названиями переменных программа будет вводить в ступор без дополнительного описания ее назначения.
$ perl -e '$T=0;$n=40,$t=5,$r=2,$f=1.05;while($n>0){$n--;$T+=$t+$r;$t*=$f;}print($T/60,"\n");'
Питание ЭВМ осуществляется от однофазной сети переменного тока частотой (50 +- 1) Гц, напряжением 220 В
оно случайно не на лампах?
1) надо вместо
2) надо printf вместо fprint
#include <stdio.h>
вместо
#include <stdlib.h>
и
printf
вместо fprint
.%f
вместо %d
, чтобы избежать неявной и бессмысленной в данном случае конвертации числа с плавающей точкой в целое.Спасибо, 0xa8, за замечания, сайт исправлен.
Кстати, на сайте форматирование листинга более удобочитаемое. А имена переменных Си выбраны в соответствии с именами регистров памяти МК для облегчения понимания алгоритма, а отнюдь не для запутывания текста :)
Я запостил как на сайте, только <> добавил.
Это было то ли в 86-ом толи в 87-ом, когда я все-таки выбив из отца что-то около 40 рублей, рванул в Электронику, что бы к закрытию успеть ухватить забронированный МК-61. Надо сказать, что эти ПМК разбирались как новые Жигули или финский сервелат, чуть ли не по записи. Это было чудо техники - даже не ассемблер, а машинные коды... Зато это было настоящее программирование - как в 105 байт и 15 регистров впихнуть программу, моделирующую динамику управляемого космического аппарата в межпланетном пространстве и вблизи поверхности безатмосферной и атмосферной планеты. После него БК-0010, появившийся вскоре в той же "Электронике" за 600 рублей (зарплата инженера за полгода) выглядел также как сейчас DeepThought. Вокруг этого чуда сложилась целая виртуальная реальность: дело в том что микропрограммы этого МПК с сегодняшней точки зрения были гав%о - такие вещи как переполнение не обрабатывались, а вводили микропроцессор в полупроизвольный режим работы, что позволяло получать совершенно невероятные эффекты на ЖКИ. В результате фанаты обменивались способами получения загадочных ЕГГОГов, ЗГГОГов, Точек и Тьмы (глубокого зависания МПК). Я так думаю что и своей сегодняшней докторской я обязан в том числе и тому МК-61 двадцать лет назад.
ЗЫ: Ребята неправильно позиционируют свою разработку. Им надо возродить фанатское движение тех лет, аналогично клубам фанатов Commodore, Sinclair, Atari. Это совсем другие деньги, да и просто приятнее, чем за откаты пропихивать это в школы.
В школы тоже никто ничего не "пропихивает", предлагаем только. И то лишь подумать и попробовать :-) Именно из тех соображений, что это - настоящее программирование.
А вот откаты не даем - принципиально. Хотя скидки учебным заведениям и научным учреждениям есть.
Программирование на PHP ненастоящее? А в ассемблере. А на Паскале? Так что этот пункт тут неуместен.
Дело не в том, на чем писать, а в том - как. Существовавшие в прототипах жесткие ограничения на быстродействие и объем памяти побуждали писать изящные программы, о чем и было написано выше уважаемым alexiso. Поэтому большую часть ранее опубликованных программ для калькуляторов можно брать в качестве примера. При этом можно не отвлекаться на изучение тонкостей и особенностей самого языка, поскольку он элементарен.
На странице, откуда была взята информация, приведено несколько вариантов программы, которые различаются оптимальностью выбора алгоритма решения. Разумеется, эти алгоритмы можно воспроизвести на любом языке, и даже в среде электронных таблиц, в которых школьникам положено решать подобные задачи моделирования.
Но часть задач предполагает использование различных "исполнителей", в роли которых сейчас обычно выступают эмуляторы. Вопрос в том, не попробовать ли взять реальное устройство, не сложное в использовании. Это и хотелось обсудить с теми, кто профессинально занимается преподаванием информатики в школах и институтах.
И на этих PC, при желании, можно поставить себе искусственные ограничения типа "писать не более 500 байт на ассемблере" и насладиться "изящными программами" (о, как эти хаки красивы. Вот только они мало связаны с реальностью).
Ну и немалое влияние оказывает объем серии, разумеется.
Однако, рассматривать МК-152 только как "реликт эпохи" нашего детства тоже не стоит. Это устройство можно использовать также для управления, а далеко не везде требуется большая вычислительная мощность. У нас, например, на этой базе проверочные стенды для оборудования работают.
как основное устройство на 2-3 года обучения калькулятор слишком слаб и не интересен, а как дополнительное (допустим, полгода), слишком дорог.
Как основное - никто и не предлагает. Интернет и графические редакторы на калькуляторе изучать, наверное, не особенно хорошо :) Цена же, в данном случае, весьма сильно связана с объемом выпуска.
Тогда зачем он нужен в этом учебном классе? Как наглядное пособие "дети, бывает и такое"?
Есть такой замечательный конкурс, ICFPC, так вот на нём задача "написать эмулятор МК-152" была бы решена примерно за 4 часа (я сужу по прошлому году, когда первые реализации более сложной, чем МК, виртуальной машины были запущены через 2 часа после публикации спецификации).
За сутки такая команда сделает эмулятор, который будет:
1. многострочным
2. быстрым
3. с отладчиком
и так далее.
Получается, что в школе использование МК-152 как у основного средства невозможно, а как дополнительного пособия бессмысленно.
Но у вас же есть какая-то идея, опишите её, может, я чего не понимаю.
Чтобы идею аргументировать, пары абзацев не хватит. Постараюсь в ближайшее время подготовить, но не сегодня.
Если же ограничиться только сферой образования, то можно и так сказать: "да, бывает и такое"! А то весь кругозор ограничивается одними "IBM-совместимыми" да еще зачастую и с "самой дружественной" ОС в принудительном порядке.
См. статью на сайте "Берлога инженера", там есть ответы на часть заданных выше вопросов:
[a href="http://beta.delta-z.com/index.php/archives/234/1/"]http://beta.delta-z.com/index.php/archiv…[/a]
Комментарии можно оставлять там-же.
Аналогичная программа на Си под DOS после компиляции займет около 24 килобайт.
И что? Код на C занимает 5 очень понятных строк с комментариями, а эти 24 килобайта работают на относительно современной машине на 3 порядка быстрее, чем 24 байта на клавишной ЭВМ.
… которая будет работать на Pentium IV раз в сто медленнее, чем аналог на советском калькуляторе.
Покажите программу, которая работает в 100 раз медленнее, чем аналог на советском калькуляторе и я покажу вам, где подтасовка и обман. Примерно так было с “понятностью” и правильностью программы про аквариум мальчика Пети.
Сложность решаемых задач при этом мало изменяется, а все возможности тратятся на украшательства, попутно снижая надежность систем и подрывая доверие к результатам вычислений.
Совсем недавно я написал маленькую (60 строк) программу для решения уравнения Пелля ( решить в целых числах x2 − Dy2 = +1 ). На медленном языке, без попыток оптимизации, для любого D < 1000 ответ находится менее, чем за секунду.
Подозреваю, что решение для МК-152 написать невозможно в принципе или оно будет кошмарной сложности. Если решите попробовать, посмотрите сразу варианты с D=61, 181, 449, 661 и т.п.
Хотя, казалось бы, всё примитивно, алгоритм есть, в худшем случае всего 76 шагов.
Кроме того, калькулятор - это громадная оторванность от жизни - им никогда не придется на нем программировать. Лучше уж учить асму - сложность та же, а применимость для жизни намного больше.
Экран графический - команды записываются и показываются мнемониками, как на бумаге. Есть возможность просмотра текста программы и содержимого всех регистров в достаточно удобном виде. Даже дисковая система есть. Есть и отладчик - режим пошагового прохода программы. Впрочем, на сайте дано полное описание.
На счет хорошей памяти, умения мыслить и продумывать на много ходов - это Вы хорошо сказали. По моему, это и есть обучение. А вот ходить по Интернету по большей части развлечение, большинство детей и так умеет. Хотя, бесспорно, основам работы в текстовых и графических редакторах, браузерах и почте учить следует, особенно где-нибудь от Москвы подальше.
Сложно? Во всяком случае, детям 80-х это было вполне по силам :) А мы с Вами кого растить хотим?
Никто и не говорит, что нужно всю жизнь сидеть и программировать на калькуляторах. Это лишь инструмент для решения вспомогательных задач. Как велосипед. А для детей еще и некоторый инструмент для заточки мозгов.
Сложность же ассемблера при решении практических задач в сотни раз больше. Попробуйте на ассемблере квадратное уравнение решить программой в 24 байта. Чур, только без команд сопроцессора :)
Прям сказка-фентези с постепенно развивающимся сюжетом. Только для программистов. :)
В файле DJVU есть оригинальное описание ЕГГОГов, ЗГОГГов и прочих. Цитаты оттуда и приведены выше :)
http://airbase.ru/computers/pmk/kon-tiki…
ЭВМ в СССР, 16 лет спустя