Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет dm_kalashnikov ([info]dm_kalashnikov)
@ 2008-03-10 17:20:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:компьютеры, наука


В операторе DO 12 I=1,3 вместо запятой набили точку. В результате первая американская ракета, запущенная к Венере, направилась на Нъю-Йорк и была на лету взорвана радиокомандой.

Для тех, кто не имел удовольствия работать на первом сравнительно высокоуровневом языке программирования FORTRAN (программа была именно на нём), небольшое пояснение. Переменные на нём (и его идейных наследниках вроде PL/1 -- не к ночи будь помянут) не нуждаются в особых определениях, а вводятся самим фактом упоминания в тексте. Вышеприведенный оператор в переводе на человеческие слова означает: весь последующий текст до оператора, помеченного числом 12, включительно, повторять, меняя переменную I в пределах от 1 до 3 (с шагом 1 -- по умолчанию). Из-за опечатки получился оператор: переменной DO12I присвоить значение одна целая три десятых и двигаться дальше. Текст до оператора с меткой 12 выполнился однократно, значение переменной I угадать не берусь (тут всё зависит от того, каково оно было на подходе к этому месту.

Исходя из личного опыта программирования и описания конечного результата могу предположить: приведенный оператор цикла был обязан обеспечить управление по трём пространственным координатам, а из-за опечатки управление шло в лучшем случае по одной из координат, и остальные менялись по собственному желанию -- без всякого надзора.

http://awas1952.livejournal.com/45498.html


(Добавить комментарий)


[info]globalizator@lj
2008-03-11 05:33 (ссылка)
Рискну предположить, что значение переменной после выхода из цикла стало равно 2 :) Ибо при разборе кода на низком уровне получаем инкремент на 1 и условный переход по метке, а если бы там было присвоение - цикл бы просто не выполнился, выбросив ошибку компилирования.

(Ответить)


[info]xamiak_pro@lj
2008-05-30 14:16 (ссылка)
Тут просто плохо поработала компьютерная помощь (http://www.pcspecialist.ru)

(Ответить)