Поиск публикаций
Муниципальные услуги

Получите услугу онлайн

Перейти

WDSP Script

Язык WDSP

Полный справочник конструкций, используемых в тестовом скрипте
⬇️ Скачать интерпретатор WDSP — последняя версия для Windows
Скачать .zip

 Переменные и константы

В WDSP переменные всегда начинаются с символа (рубль). Константы объявляются ключевым словом константа и не могут быть изменены.

₽имя = значение

Объявление переменной с инициализацией.

константа ИМЯ = значение

Объявление константы (имя без ).

Пример из скрипта:
₽переменная = 42;
константа ПИ = 3.14159;
₽строка = "Привет, мир!";
₽логическое = истина;

 Арифметические операции

Поддерживаются стандартные операторы: +, -, *, /, % (остаток от деления).

Пример:
₽а = 10;
₽б = 3;
₽сумма = ₽а + ₽б;
₽разность = ₽а - ₽б;
₽произведение = ₽а * ₽б;
₽частное = ₽а / ₽б;
₽остаток = ₽а % ₽б;

 Логические операции и сравнения

Поддерживаются операторы сравнения: ==, !=, <, >, <=, >=.
Логические: && (и), || (или), ! (не).
Логические значения: истина, ложь.

Пример:
₽истина1 = (5 > 3) && (2 < 4);
₽равно = (10 == 10);
₽неравно = (10 != 5);

 Условный оператор если

Синтаксис: если (условие) { ... } иначе { ... }.

Пример:
если (₽возраст >= 18) {
    вывод("Совершеннолетний");
} иначе {
    вывод("Несовершеннолетний");
}

 Циклы

пока (условие) { ... }

Цикл с предусловием.

₽счетчик = 1;
пока (₽счетчик <= 3) {
    вывод("итерация " + число(₽счетчик));
    ₽счетчик = ₽счетчик + 1;
}

для (инициализация; условие; шаг) { ... }

Классический цикл для.

для (₽i = 0; ₽i < 3; ₽i = ₽i + 1) {
    вывод("i = " + число(₽i));
}

для каждого (₽элемент из массив) { ... }

Перебор элементов массива.

₽массив = [10, 20, 30];
для каждого (₽элемент из ₽массив) {
    вывод(число(₽элемент));
}

 Функции

Объявляются ключевым словом функция. Параметры — переменные с . Возврат значения — возврат.

Пример:
функция квадрат(₽x) {
    возврат ₽x * ₽x;
}
₽результат = квадрат(5);

 Лямбда-выражения

Анонимная функция записывается как функция(параметры) { тело }.

Пример:
₽умножить = функция(₽a, ₽b) { возврат ₽a * ₽b; };
₽произв = ₽умножить(6, 7);

 Классы и наследование

класс Имя { ... }

Поля класса объявляются с , методы — без. Конструктор — конструктор.

класс Дочерний расширяет Родительский { ... }

Наследование. Вызов родительского конструктора — супер(аргументы), метода — супер.имяМетода(аргументы).

Пример из скрипта:
класс Точка {
    ₽x;
    ₽y;
    конструктор(₽x, ₽y) {
        это.₽x = ₽x;
        это.₽y = ₽y;
    }
    показать() {
        вывод("Точка(" + число(это.₽x) + ", " + число(это.₽y) + ")");
    }
}

класс Точка3D расширяет Точка {
    ₽z;
    конструктор(₽x, ₽y, ₽z) {
        супер(₽x, ₽y);
        это.₽z = ₽z;
    }
    показать() {
        вывод("Точка3D(" + число(это.₽x) + ", " + число(это.₽y) + ", " + число(это.₽z) + ")");
    }
}

₽p1 = новый Точка(3, 4);
₽p2 = новый Точка3D(1, 2, 3);

 Исключения

Конструкция попытка { ... } ловушка(₽переменная) { ... } наконец { ... }.
Для генерации исключения используется бросить значение.

Пример:
попытка {
    ₽делитель = 0;
    если (₽делитель == 0) {
        бросить "Ошибка: деление на ноль";
    }
    ₽результат = 100 / ₽делитель;
} ловушка(₽ошибка) {
    вывод("Перехвачено: " + ₽ошибка);
} наконец {
    вывод("Блок finally выполнен");
}

 Массивы

Массивы создаются с помощью квадратных скобок: [элемент1, элемент2, ...].
Доступ по индексу: ₽массив[индекс].
Свойство длина возвращает количество элементов.

Пример:
₽числа = [1, 2, 3, 4, 5];
₽числа[2] = 99;
₽длина = ₽числа.длина;

 Объекты-литералы

Объект создаётся фигурными скобками с парами "ключ": значение. Методы могут быть лямбдами, внутри которых это ссылается на сам объект.

Пример:
₽человек = {
    "имя": "Иван",
    "возраст": 30,
    "приветствие": функция() {
        возврат "Меня зовут " + это.имя;
    }
};
вывод(₽человек.имя);
вывод(₽человек.приветствие());

 Преобразования типов

Встроенные функции:

  • число(значение) — преобразует в число.
  • строка(значение) — преобразует в строку.
  • логический(значение) — преобразует в логическое.
  • тип(значение) — возвращает строку с именем типа: "число", "строка", "логический", "массив", "объект", "функция", "ничто".
  • округлить(число, разряды) — округляет до указанного количества знаков после запятой.
Пример:
₽числоИзСтр = число("123.45");
₽строкаИзЧисла = строка(987);
₽типПеременной = тип(₽строка);  // "строка"

 Время выполнения

Функция время() возвращает текущее количество секунд с начала эпохи (с плавающей точкой). Разница даёт затраченное время.

Пример:
₽начало = время();
// ... код ...
₽конец = время();
₽затрачено = округлить(₽конец - ₽начало, 4);
вывод("Время (сек): " + число(₽затрачено));

 Случайные числа

случайное(минимум, максимум) — возвращает целое случайное число в диапазоне [минимум, максимум] (включительно).

Пример:
₽случ = случайное(1, 100);
вывод("Случайное: " + число(₽случ));

 Ввод-вывод

вывод(текст) — выводит строку на консоль (с переводом строки).

Пример:
вывод("Привет, мир!");
вывод("Число: " + число(42));