Обсуждение Глагола

 предыдущая  следующая 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Сый
14.10.08 18:16

550

Она и под WinXP не запускается. Найти ошибку, к сожалению, пока не было времени.

Издатель
14.10.08 20:15

551

Оболочка не работала из-за того, что была рассчитана на большой экран (17"). Сейчас в отделе "\Приложения\Оболочка\Оболочка.отд" размер шрифта уменьшен с 20 до 16 (строка 406), а постоянная "Строк" уменьшена с 40 до 30 (строка 40). Вы можете изменять эти значения по своему усмотрению.

Д
16.10.08 03:23

552

> Пожалуйста, опишите трудности с Глаголом под Win2000.

Некоторые программы из сборника - шашки, секундомер - не запускаются. Программа сначала открывается, а через секунду, примерно, появляется сообщение "Программа вызвала ошибку...", и она закрывается.
До изменения по 551 оболочка не запускалась.
После - запускается, правда знаки отображаются очень плохо. В переходном к графике выпуске (31 августа) оболочка запускается, и знаки отображаются правильно.

Д
16.10.08 03:34

553

По-моему, вывод вещественных чисел работает не совсем правильно. Если указать точность, большую чем вмещает в себя вид выводимого числа, то в конце будут не нули, а произвольные числа. Если выводить число в научном виде (%e), это не очень важно, так заранее известно, что для ВЕЩ точность должна быть не больше 7, а для ШИРВЕЩ - не больше 15. Но при выводе с неподвижной запятой (%f) последняя сохранённая в памяти цифра может двигатся, в зависимости от самого числа. Пример - в следующем сообщении.

Д
16.10.08 03:39

554


ОТДЕЛ пример+;

ИСПОЛЬЗУЕТ Вывод ИЗ "...ОтделыОбмен";

ПЕР
вещ_0:ВЕЩ;
ширвещ_0:ШИРВЕЩ;

УКАЗ
вещ_0:=1.1;
ширвещ_0:=1.1;
(**)
Вывод.Цепь("правильное отображение");
Вывод.Цепь("^^^");
Вывод.ЧВещ("ВЕЩ: %8.7f^ %.7e^^ШИРВЕЩ: %16.15f^ %.15e",
вещ_0,вещ_0,ширвещ_0,ширвещ_0);
Вывод.Цепь("^^^^^");
(**)
Вывод.Цепь("неправильное отображение");
Вывод.Цепь("^^^");
Вывод.ЧВещ("ВЕЩ: %10.9f^ %.9e^^ШИРВЕЩ: %18.17f^ %.17e",
вещ_0,вещ_0,ширвещ_0,ширвещ_0);
Вывод.Цепь("^^^^^");

КОН пример.

Д
16.10.08 03:42

555

> расширения, которые сам программист может изменить под свои нужды в любой момент

Точно также он сможет под свои нужды изменить и оболочку.

Издатель
16.10.08 08:38

556

552. Действительно, под Win2000 Шашки и Секундомер не работали. В ПГ от 14.10.08 эта ошибка исправлена.
Оболочка выглядит лучше с моноширинным шрифтом Lucida Console. По умолчанию используется пропорциональный шрифт Lucida Sans Unicode (как более полный).
553. Вопрос о вещественных числах будет рассмотрен позже.

Д
16.10.08 19:44

557

Понял, спасибо.

Д
16.10.08 20:00

558

А есть ли в отделе ОС или ещё где-то способ (задача, или переменная) узнать текущее положение указки?

Издатель
16.10.08 23:17

559

Указка показывает место ввода текста. Это место задаёт и отслеживает само приложение, а не ОС. В познавательных целях можете отметить "-" переменную "ГОС.указка" и считывать её значение.
553. Ошибка при десятичном выводе вещественных чисел проявляется из-за внутреннего (двоичного) представления этих чисел. Похожим образом ведут себя и приложения, написанные на других языках, например, Borland C++. Такую высокую точность представления вещественных чисел используют редко, и усложнять ради этого библиотеки Глагола пока, наверное, не стоит.

 предыдущая  следующая 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36


    Сделано в России