![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
TarasBer |
![]()
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Фича очень полезная, сильно сокращает кол-во кода в мелких функциях, но среда не научилась её поддерживать.
Есть такой код
function Length (v: TPoint) return f80 is (sqrt(v.x*v.x + v.y*v.y + v.z*v.z));
function "+" (v1,v2: TPoint) return TPoint is (v1.x+v2.x, v1.y+v2.y, v1.z+v2.z);
function "-" (v1,v2: TPoint) return TPoint is (v1.x-v2.x, v1.y-v2.y, v1.z-v2.z);
function "*" (v1,v2: TPoint) return f80 is (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z);
function "*" (v: TPoint; a: f80) return TPoint is (v.x*a, v.y*a, v.z*a);
function "*" (a: f80; v: TPoint) return TPoint is (a*v.x, a*v.y, a*v.z);
function "/" (v: TPoint; a: f80) return TPoint is (v * (1.0/a));
function Normalize (v: TPoint) return TPoint is (v/Length(v));
function "**" (v1,v2: TPoint) return TPoint is (v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x);
function To_String (v: TPoint) return String is (f80'Image(v.x) & " , " & f80'Image(v.y) & " , " & f80'Image(v.z));
Выделяем, нажимаем CTRL+TAB... И видим лесенку. То есть форматировать только руками. Ещё мне пришлось убрать подсветку блока, потому что среда считает expression function не блоком, а только началом блока. Ну и автоотступы пришлось включить упрощённые. Лечится ли это какой-то галочкой в среде? Ну и ещё по мелочи - включить режим Ada2012 при помощи галочек я не смог, только вручную дописав параметр в строку вызова компилятора. Ну и ещё я опять забыл, какая комбинация 20 галочек на 5 вкладках должна быть выставлена для работы отладчика. Как вы работаете вообще с такой средой? Или вы заранее пишете несколько нужных вам профилей (типа "отладка" и "релиз"), в каждом из которых один раз указываете все опции. А при компиляции просто выбираете готовый профиль. [offtop] Понравилась фича с if, возвращающим значение, осталось только ввести цикл, возвращающий значение (я не знаю, как), тогда я смогу наконец добраться до идеала - когда вся логика написана в разделе описаний, а тело функции состоит из единственного return. [/offtop] -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 9:54 |