Код: Выделить всё
ПосетиОбращение˛ОсмысленноеКакОбрКПсевдоПеременной«результат»
Код: Выделить всё
ПосетиОбращение˛ОсмысленноеКакОбрКПсевдоПеременной«результат»
Код: Выделить всё
модуль Проба;
алг Проверка():цел32;
перем й: цел32;
нач
нцДля й := 0 до 7 делай
если й = 2 то
УТВ(й = 2);
й := й;
иначе
й := 100;
всё
кц;
неважно Проверка();
кон Проверка;
кон Проба.
Код: Выделить всё
DeclareTypeR(system.characterType,"CHAR","сим8",system.globalScope);
DeclareTypeR(system.rangeType,"RANGE","отрезокЦелых",system.globalScope);
DeclareTypeR(system.integerType,"INTEGER","системноЗависимоеЦел",system.globalScope);
DeclareTypeR(system.longIntegerType,"LONGINTEGER","длинноеСистемноЗависимоеЦел",system.globalScope);
DeclareTypeR(system.integerSetType,"INTEGERSET","мнвоНаБитахРазмераСистЗавЦел",system.globalScope);
DeclareTypeR(Signed8, "SIGNED8", "цел8", system.globalScope);
DeclareTypeR(Signed16, "SIGNED16", "цел16", system.globalScope);
DeclareTypeR(Signed32, "SIGNED32", "цел32", system.globalScope);
DeclareTypeR(Signed64, "SIGNED64", "цел64", system.globalScope);
DeclareTypeR(Unsigned8, "UNSIGNED8", "бцел8", system.globalScope);
DeclareTypeR(Unsigned16, "UNSIGNED16", "бцел16", system.globalScope);
DeclareTypeR(Unsigned32, "UNSIGNED32", "бцел32", system.globalScope);
DeclareTypeR(Unsigned64, "UNSIGNED64", "бцел64", system.globalScope);
DeclareTypeR(Float32, "FLOAT32", "вещ32",system.globalScope);
DeclareTypeR(Float64, "FLOAT64", "вещ64",system.globalScope);
DeclareTypeR(Complex32, "COMPLEX32", "компл32", system.globalScope);
DeclareTypeR(Complex64, "COMPLEX64", "компл64", system.globalScope);
DeclareTypeR(system.realType,"REAL","машинноЗависимоеВещ", system.globalScope);
DeclareTypeR(system.complexType,"COMPLEX","машинноЗависимоеКомпл", system.globalScope);
DeclareTypeR(system.booleanType,"BOOLEAN","лог",system.globalScope);
DeclareTypeR(system.setTypeA,"SET","мнвоНаБитахРазмеромСАдрес",system.globalScope);
DeclareTypeR(system.anyType,"ANY","динамическиТипизированныйУкль",system.globalScope);
DeclareTypeR(system.objectType,"OBJECT","окласс",system.globalScope);
DeclareTypeR(Set8, "SET8", "мнвоНаБитах8", system.globalScope);
DeclareTypeR(Set16, "SET16", "мнвоНаБитах16", system.globalScope);
DeclareTypeR(Set32, "SET32", "мнвоНаБитах32", system.globalScope);
DeclareTypeR(Set64, "SET64", "мнвоНаБитах64", system.globalScope);
(* глобальные функции. Если меняешь тут, ищи в другом месте вызовы NewBuiltinIdentifier *)
NewBuiltinR(Abs,"ABS","abs",system.globalScope,TRUE); (* prospero78/Oberon07ru. в КуМире - abs *)
NewBuiltinR(Ash,"ASH","арифмСдвиг",system.globalScope,TRUE);
NewBuiltinR(Cap,"CAP","ASCII_вЗаглавную", system.globalScope,TRUE);
NewBuiltinR(Chr,"CHR","Сим8ИзКода",system.globalScope,TRUE); (* И21 - нет, Глагол - ВЗНАК, 1С - Симв, Oberon07ru = ВЛИТ *)
NewBuiltinR(Entier,"ENTIER","округлиВниз",system.globalScope,TRUE); (* 1С - Цел, КуМир - int, Русская википедия - "пол", Excel - ОКРВНИЗ *)
(* NewBuiltin(Entier,"FLOOR","",system.globalScope,TRUE); (* дублирует ENTIER и не входит в стандарт *) *)
NewBuiltinR(EntierH,"ENTIERH","округлиВниз64",system.globalScope,TRUE); (* в A2 рекомендуется цел64(плавающееЗначение) *)
NewBuiltinR(Len,"LEN","длина",system.globalScope,TRUE); (* из Глагола; переделать в псевдо-метод *)
NewBuiltinR(Long,"LONG","устарПреобразуйКБолееШирокомуЦел",system.globalScope,TRUE);
NewBuiltinR(Max,"MAX","max",system.globalScope,TRUE);
NewBuiltinR(Min,"MIN","min",system.globalScope,TRUE);
NewBuiltinR(Odd,"ODD","нечётноеЛи¿",system.globalScope,TRUE); (* Глагол *)
NewBuiltinR(Ord,"ORD","КодСим8",system.globalScope,TRUE); (* И21 - НОМЕР, Глагол - ВЦЕЛ, Oberon07ru - НЛИТ, 1С - КодСимвола. Не забываем про перечисления! Сейчас они получаются
преобразованием типов! *)
(* нигде не используется
NewBuiltin(Ord32,"ORD32",system.globalScope,TRUE);
*)
NewBuiltinR(Lsh,"LSH","логСдвиг",system.globalScope,TRUE);
NewBuiltinR(Rot,"ROT","вращБит",system.globalScope,TRUE);
NewBuiltinR(Ror,"ROR","вращВправоБит", system.globalScope,TRUE);
NewBuiltin(Rol,"ROL","вращВлевоБит", system.globalScope,TRUE);
NewBuiltinR(Shl,"SHL","логИлиАрифмСдвигВлево", system.globalScope,TRUE);
NewBuiltinR(Shr,"SHR","логИлиАрифмСдвигВправо", system.globalScope,TRUE);
NewBuiltinR(Incr,"INCR","увел",system.globalScope,TRUE);
NewBuiltinR(Short,"SHORT","устарПреобразуйКБолееУзкомуЦел",system.globalScope,TRUE);
NewBuiltin(Sum,"SUM",system.globalScope,TRUE);
NewBuiltin(Dim,"DIM",system.globalScope,TRUE);
NewBuiltin(Cas,"CAS",system.globalScope,TRUE);
NewBuiltin(First,"FIRST",system.globalScope,TRUE);
NewBuiltin(Last,"LAST",system.globalScope,TRUE);
NewBuiltin(Step,"STEP",system.globalScope,TRUE);
NewBuiltinR(Re,"RE","Re",system.globalScope,TRUE); (* КуМир - переделать в псевдо-метод *)
NewBuiltinR(Im,"IM","Im",system.globalScope,TRUE);
NewBuiltin(systemAdr,"ADDRESSOF",system.globalScope,TRUE);
NewBuiltin(systemSize,"SIZEOF",system.globalScope,TRUE);
(* global proper procedures *)
NewBuiltinR(Assert,"ASSERT","утв",system.globalScope,TRUE); (* КуМир *)
NewBuiltin(Copy,"COPY",system.globalScope,TRUE);
NewBuiltinR(Dec,"DEC","умень",system.globalScope,TRUE);
NewBuiltin(Excl,"EXCL",system.globalScope,TRUE);
NewBuiltin(Halt,"HALT",system.globalScope,TRUE);
NewBuiltinR(Inc,"INC","увел",system.globalScope,TRUE);
NewBuiltin(Incl,"INCL",system.globalScope,TRUE);
NewBuiltinR(New,"NEW","нов",system.globalScope,FALSE);
- Поспешил я... (но в будущем, авось, сгодится)))
А если "идентуйИменами", или "идентуйПутями"... (?)
Код: Выделить всё
модуль Proba;
(* Proba.Дей ~ *)
использует Strings, StringsUCS32;
тип з = окласс
перем пп : цел32;
вв : Strings.String кон з;
проц Дей*;
нач
перем Строка8 := Strings.NewString("2") : Strings.String;
Строка8 := Строка8 + 2;
перем Строка := StringsUCS32.NewString(Лит32("2")) : StringsUCS32.String;
Строка := Строка + 2;
копируйСтрокуДо0(Строка^,Строка^);
перем эз : з;
нов(эз);
эз.пп := 4;
эз.вв := Strings.NewString("Куку");
пПиши(эз,Строка^);
кон Дей;
кон Proba.