Содержание статьи

КуМир – среда программирования, ориентированная на обучение основам алгоритмизации. Для работы с цифрами в ней используются переменные целочисленного (цел) и вещественного (вещ) типов. Базовый синтаксис требует явного объявления переменных перед использованием, что исключает ошибки неявного приведения типов. Например, для хранения числа 42 необходимо написать: цел число = 42.
Ввод цифр с клавиатуры реализуется через команду ввод. Пример: ввод число – программа ожидает ввода целого числа и сохраняет его в переменной число. Для вещественных чисел синтаксис идентичен, но тип переменной должен быть вещ. Важно: КуМир не поддерживает неявное преобразование типов, поэтому попытка присвоить вещественное значение целочисленной переменной вызовет ошибку компиляции.
Арифметические операции выполняются с помощью стандартных операторов: +, -, *, /. Деление целых чисел в КуМире возвращает целое число (целочисленное деление), а остаток от деления вычисляется оператором %. Пример: цел результат = 10 % 3 вернёт 1. Для округления вещественных чисел используйте функцию окр, например: вещ число = окр(3.14, 1) даст 3.1.
Установка и настройка среды Кумир для работы с числами

Скачайте последнюю версию Кумира с официального сайта niisi.ru/kumir. Для Windows выберите дистрибутив с расширением .exe, для Linux – пакеты .deb или .rpm в зависимости от дистрибутива. Версия 2.1.0 поддерживает работу с целыми и вещественными числами без дополнительных плагинов, что критично для задач вычислительной математики.
Установите программу, следуя инструкциям мастера. На этапе выбора компонентов оставьте галочки напротив «Ядро Кумира» и «Библиотека стандартных алгоритмов» – они необходимы для базовых операций с числами. Путь установки по умолчанию (C:\Program Files\Kumir2) оптимален для большинства пользователей.
После установки запустите Кумир и перейдите в меню «Настройки» → «Параметры среды». В разделе «Типы данных» установите точность вещественных чисел: для учебных задач достаточно 6 знаков после запятой, для научных расчетов – 15. Это предотвратит неожиданные округления при работе с формулами.
Настройте подсветку синтаксиса для числовых литералов. В разделе «Редактор» → «Цвета» выделите целые числа (#0080FF) и вещественные (#FF8000) разными цветами. Это ускорит визуальный поиск ошибок в коде, например, при случайной замене точки на запятую в дробных числах.
| Тип данных | Диапазон значений | Пример использования |
|---|---|---|
| цел | -231 … 231-1 | счетчики, индексы массивов |
| вещ | ±1.7×10±308 | физические расчеты, статистика |
Для работы с большими массивами чисел увеличьте лимит памяти в файле конфигурации kumir2.conf (расположен в папке установки). Найдите строку memory_limit=512 и замените значение на 2048. Это позволит обрабатывать до 106 элементов без ошибок переполнения.
Создание переменных для хранения цифровых значений

Переменные можно инициализировать сразу при объявлении или позже. Например: цел x; x = 42. Однако неинициализированные переменные содержат мусорные значения, что приведёт к непредсказуемым результатам. Всегда присваивайте начальное значение, даже если это ноль.
Для работы с несколькими переменными одного типа их можно объявить в одной строке через запятую: цел a, b, c = 1, 2, 3. Это сокращает код, но снижает читаемость при большом количестве переменных. В таких случаях лучше разбивать объявления на отдельные строки с комментариями.
КуМир поддерживает динамическое изменение значений переменных. Например, после цел n = 5; n = n + 1 переменная n станет равна 6. Однако переопределение типа (цел x = 3; x = 3.14) вызовет ошибку – для дробных чисел используйте вещ.
Использование арифметических операций с цифрами в алгоритмах

В КуМире арифметические операции с цифрами реализуются через базовые команды: `+` (сложение), `-` (вычитание), `*` (умножение), `/` (деление) и `mod` (остаток от деления). Для работы с отдельными цифрами числа используйте целочисленное деление `div` – например, `n div 10` удаляет последнюю цифру, а `n mod 10` извлекает её. Эти операции лежат в основе алгоритмов разбора чисел, таких как подсчёт суммы цифр или проверка на палиндром. Пример: для числа `1234` последовательность `1234 mod 10` вернёт `4`, а `(1234 div 10) mod 10` – `3`.
При оптимизации алгоритмов избегайте избыточных вычислений: если требуется обработать все цифры числа, используйте цикл `пока` с условием `n > 0`, обновляя `n := n div 10` на каждой итерации. Для проверки чётности цифры применяйте `digit mod 2 = 0`, а для возведения в степень – встроенную функцию `pow(base, exponent)`. В задачах на перебор цифр (например, поиск минимальной или максимальной) храните промежуточные результаты в переменных, а не пересчитывайте их многократно.
Преобразование строк в числа и обратно в Кумире

В Кумире для преобразования строки в число используется функция число_из_строки(). Она принимает один аргумент – строку, содержащую числовое значение, и возвращает соответствующее число. Например, число_из_строки("123") вернёт 123. Функция корректно обрабатывает целые и вещественные числа, но вызовет ошибку, если строка содержит недопустимые символы (буквы, пробелы в середине числа).
При работе с вещественными числами важно учитывать формат строки. Кумир ожидает точку в качестве десятичного разделителя: число_из_строки("3.14") сработает, а число_из_строки("3,14") – нет. Для проверки корректности строки перед преобразованием используйте цикл с проверкой каждого символа на принадлежность к цифрам или точке.
Обратное преобразование – числа в строку – выполняется функцией строка_из_числа(). Она принимает число и возвращает его строковое представление. Например, строка_из_числа(42) вернёт "42". Для вещественных чисел можно указать количество знаков после запятой: строка_из_числа(3.14159, 2) даст "3.14". По умолчанию округление не выполняется – число просто обрезается.
При обработке пользовательского ввода часто требуется удалить лишние пробелы. Используйте обрезать() перед преобразованием: число_из_строки(обрезать(ввод)). Это исключит ошибки из-за случайных пробелов в начале или конце строки. Для сложных случаев, когда строка содержит несколько чисел, применяйте разбить() с разделителем и обрабатывайте элементы массива по отдельности.
Проверка корректности ввода цифровых данных пользователем

Обрабатывайте крайние случаи: пустой ввод, пробелы и нечисловые символы. В КуМире используйте цикл пока с проверкой на пустую строку или несоответствие шаблону. Пример:
пока не (ввод = число(ввод)) нц– повторять ввод, пока не будет получено число;если длина(строка(ввод)) == 0 то ...– проверка на пустой ввод.
Для диапазонов значений применяйте логические условия. Например, если допустимы только числа от 1 до 100:
- Проверьте тип:
если тип_знач(ввод) == "число" то ...; - Сравните с границами:
если ввод >= 1 и ввод <= 100 то ...;
Используйте регулярные выражения для сложных форматов. В КуМире это реализуется через функцию найти_по_шаблону(строка, шаблон). Для проверки целого числа без ведущих нулей шаблон будет "^[1-9]\d*$". Для дробных – "^\d+(\.\d+)?$". Пример:
если найти_по_шаблону(строка(ввод), "^[1-9]\d*$") != 0 то
иначе
все
Обрабатывайте исключения при преобразовании типов. При попытке конвертировать строку в число функцией число(строка) возможна ошибка, если строка содержит недопустимые символы. Используйте конструкцию попытка ... исключение ... конец_попытки:
попытка
ввод_число = число(ввод_строка)
исключение
конец_попытки
Для интерактивных программ реализуйте повторный ввод при ошибке. Пример алгоритма:
- Запросите ввод;
- Проверьте корректность;
- Если ошибка – выведите сообщение и вернитесь к шагу 1;
- Иначе продолжите выполнение.
В КуМире это удобно делать с помощью цикла нц пока не:
нц пока не (тип_знач(ввод) == "число" и ввод >= 0)
ввод ввод
кц
Локализуйте сообщения об ошибках. Вместо абстрактного "Некорректный ввод" уточняйте проблему:
- "Число должно быть целым";
- "Допустимый диапазон: 1–100";
- "Недопустимые символы: используйте только цифры и точку".
Это сократит время отладки для пользователя и повысит удобство.
Тестируйте проверки на граничных значениях. Например, если допустимы числа от 0 до 100, протестируйте ввод -1, 0, 100, 101, а также нечисловые данные ("abc", "12.34", ""). Создайте таблицу тест-кейсов:
| Ввод | Ожидаемый результат |
|---|---|
| 50 | Корректно |
| -5 | Ошибка: число < 0 |
| 101 | Ошибка: число > 100 |
| "abc" | Ошибка: не число |
В Кумире для форматирования чисел с фиксированным количеством знаков после запятой используйте функцию вещ_в_лит с параметром точности. Например, вещ_в_лит(3.14159, 2) вернёт строку "3.14", округляя число до двух десятичных знаков. Параметр точности указывается вторым аргументом – целое число от 0 до 15. При превышении этого диапазона Кумир вернёт ошибку.
Если требуется выравнивание по правому краю с заполнением пробелами, используйте функцию формат. Пример: формат("%8.2f", 7.5) выведет " 7.50" – число шириной 8 символов с двумя знаками после запятой. Форматная строка строится по правилам printf: %[ширина].[точность]f для чисел с фиксированной точкой.
Обработка ошибок при работе с цифрами в программе

В Кумире ошибки при работе с цифрами возникают из-за несоответствия типов данных, выхода за границы допустимых значений или некорректного ввода. Например, попытка присвоить переменной целочисленного типа значение с плавающей точкой без явного приведения вызовет ошибку компиляции. Для предотвращения используйте функции целое() или вещ() при преобразовании типов. При вводе данных через ввод проверяйте корректность формата: если ожидается число, а пользователь вводит строку, программа завершится с ошибкой. Решение – добавление проверки с помощью попытка и исключение.
Распространённые ошибки и способы их устранения:
- Переполнение: Кумир ограничивает целые числа диапазоном от -231 до 231-1. При превышении используйте вещественный тип или разбивайте вычисления на этапы.
- Некорректный ввод: применяйте цикл с повторным запросом данных до получения валидного значения. Пример:
пока истина попытка ввод число если число < 0 то исключение "Число должно быть положительным" выход исключение кц
