Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - igor

Страницы: [1]
1
О пуске ракеты-носителя «Зенит-2S»:
Цитировать
После старта на начальном этапе начался сбой с полетом РН. Была сформирована команда на аварийное выключение двигательной установки первой ступени.
В соответствии с циклограммой полета в течение 20 секунд двигательная установка не реагировала на сбой для увода РН на безопасное расстояние от пусковой платформы .
После этого  была сформирована команда на аварийное выключение двигателей и полет ракеты-носителя был прекращен.
Конечно, говорить о "софтовых" причинах неудачного запуска пока рано. Как всегда сформирована комиссия, расследование ещё впереди.
Однако, раздражает суетливая и скоропалительная реакция сверху:
Цитировать
Руководителю Федерального космического агентства Владимиру Поповкину поручено организовать в установленном порядке расследование причин аварийного пуска и до 15 февраля 2013 года доложить о результатах с необходимыми выводами и предложениями, включая предложения об ответственности должностных лиц и организаций.
Вот, не могут подождать со своим домокловым мечом каких-нибудь три дня. Завтра вечером должен состояться запуск космического аппарата "Глобалстар-2". Хочу пожелать им удачи.
Напомню также, что 15 января состоялся успешный запуск космического аппарата с космодрома Плесецк.

2
Цитировать
PROCEDURE (wr: StdWriter) WriteChar (ch: CHAR);
VAR ... fw: Files.Writer;
BEGIN
    ...
    fw.WriteByte(SHORT(SHORT(ORD(ch))));
    fw.WriteByte(SHORT(SHORT(ORD(ch) DIV 256 - 128)));
    ...
END WriteChar;
Первый SHORT (правый) преобразует результат операции DIV к типу SHORTINT, второй - к типу BYTE. Если результат операции DIV оказался больше 127, то во время выполнения второго SHORT произойдёт ошибка. Для этого и понадобилось отнимать 128.
Решил проверить выделенное утверждение. Результат меня удивил.

Вот тестовый код:
Цитировать
PROCEDURE Do*;
VAR x: SHORTINT; b: BYTE;
BEGIN
    x := 1000;    (* явно больше MAX(BYTE) *)
    b := SHORT(x);  (* возникнет ли ошибка RunTime? *)
    Log.Int(b); Log.Ln;
END Do;
Результат: b = -24

В сообщении о языке написано:
Цитировать
Name             Argument type     Result type        Function
SHORT(x)       SHORTINT            BYTE                identity
Впрочем, наверное ничего удивительного нет. Дело видимо в том, что по умолчанию в компиляторе не все проверки включены. И то, что заявленное identity не выполняется, остаётся не замеченным.
Если же все проверки включить, то код из процитированной темы при выполнении вероятно выдаст ошибку.

3
Общий раздел / Литература по теории систем
« : Февраль 08, 2012, 05:40:22 am »
Должен сказать, что хорошей литературы по Теории Систем очень мало.
Мне удалось найти только Гайдеса М.А. "Общая теория систем. Системы и системный анализ" (2005 г.).

Просьба ко всем. Порекомендуйте, пожалуйста, какие-нибудь хорошие книги по Теории Систем.  :)

4
Мне нужна система подготовки программистов-конструкторов, способных решать задачи любой сложности по созданию системного ПО (с упором на наиболее актуальные направления - middleware и СУБД). Созданию в коллективе, созданию с нуля, в режиме "технологической независимости".
А вот отсюда по подробней плиз. Насколько технологическая независимость должна быть независима и зачем ставится такое условие и такая задача?
Поддерживаю Илью Ермакова. Необходимо стремиться к технологической независимости.
Но прошу не передёргивать. Это не то же самое, что отрицать все существующие технологии.
Веские основания должны быть для того чтобы использовать какую-либо технологию, а не для того чтобы НЕ использовать.

Скажем Блэкбокс, по моему убеждению, совершенно напрасно замешан на COM. Для этого не было никаких веских оснований, зато должно было усложнить портирование на Линукс. По поводу оснований даже страшно предположить (неужели "прогиб" под Microsoft?  :( Не, не верится...)

Страницы: [1]