OberonCore
https://forum.oberoncore.ru/

Константы типа REAL (требуется доработка документации)
https://forum.oberoncore.ru/viewtopic.php?f=131&t=442
Страница 1 из 1

Автор:  Евгений Темиргалеев [ Четверг, 26 Апрель, 2007 17:02 ]
Заголовок сообщения:  Константы типа REAL (требуется доработка документации)

Одна студентка на лабораторной работе написала такой код:
Код:
PROCEDURE Решить*;
   VAR   R, a: INTEGER;
BEGIN
   ...
   ASSERT(2R < a, 20);
   ...
END Решить;
который преспокойно компилировался.

В описании терминалов языка про такие конструкции ничего не сказано.
Код:
number    = integer | real.
integer    = digit {digit} | digit {hexDigit} ( "H" | "L" ).
real    = digit {digit} "." {digit} [ScaleFactor].
ScaleFactor    = "E" ["+" | "-"] digit {digit}.
hexDigit    = digit | "A" | "B" | "C" | "D" | "E" | "F".

Методом научного тыка мы выяснили с Ермаковым, что суффикс R, делает константу вещественной:
Код:
VAR   x: INTEGER; y: REAL;
   ...
   x := 2R;   (* неверный тип *)
   y := 2R;   (* OK *)

Автор:  Trurl [ Четверг, 26 Апрель, 2007 17:13 ]
Заголовок сообщения: 

А знаете чему равно 20R? ;)
А есть ещё L и S. :evil:

Автор:  Евгений Темиргалеев [ Четверг, 26 Апрель, 2007 17:17 ]
Заголовок сообщения: 

Смотрю DevCPS:
Код:
ELSIF ch = "R" THEN   (* hex float 64bit *)

Автор:  Евгений Темиргалеев [ Четверг, 26 Апрель, 2007 17:19 ]
Заголовок сообщения: 

Насчет S:
Код:
IF tch = "S" THEN   (* 32 bit hex float *)

Автор:  Евгений Темиргалеев [ Четверг, 26 Апрель, 2007 17:24 ]
Заголовок сообщения: 

Я подозреваю, что эти фичи могли использоваться для реализации Math/SMath.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/