Создание простого калькулятора на языке Icon

Создание простого калькулятора на языке Icon

Язык программирования Icon отличается простой синтаксической структурой и мощными средствами для обработки строк и чисел. В этом руководстве мы создадим простой калькулятор на Icon, который будет выполнять основные арифметические операции: сложение, вычитание, умножение и деление. Мы подробно разберём каждый этап создания программы, начиная с начальной настройки, реализации ввода чисел, выполнения операций и обработки ошибок, заканчивая выводом результата.

Начальная настройка программы

Для начала создадим файл с расширением .icn, например calculator.icn. В этом файле мы напишем код нашего калькулятора.

Ввод чисел и операций

Калькулятор будет запрашивать у пользователя ввод двух чисел и операции. Используем процедуру read() для считывания данных с клаватуры.

procedure main()
    # Ввод первого числа
    write("Введите первое число: ")
    number1 := read_number()

    # Ввод второго числа
    write("Введите второе число: ")
    number2 := read_number()

    # Ввод операции
    write("Введите операцию (+, -, *, /): ")
    operation := read()

    # Выполнение операции и вывод результата
    result := calculate(number1, number2, operation)
    if result === &null then
        write("Ошибка: неверная операция.")
    else
        write("Результат: ", result)
end

Функция чтения числа с проверкой ошибок

Создадим процедуру read_number(), которая бдет считывать чисо и проверять корректность ввода.

procedure read_number()
    local input, number
    input := read()
    number := integer(input)
    if number === &null then {
        write("Ошибка: введено некорректное число. Повторите попытку.")
        return read_number()
    }
    return number
end

Реализация арифметических операций

Создадим процедуру calculate(), которая будет выполнять арифметические операции в зависимости от введенного знака.

procedure calculate(num1, num2, op)
    case op of {
        "+" : return num1 + num2
        "-" : return num1 - num2
        "*" : return num1 * num2
        "/" : return num2 = 0 | null | num1 / num2
    }
    return &null
end

Обработка ошибок

В процедуре calculate() предусмотрена проверка на деление на ноль. Если попытка деления на ноль обнаружена, возвращается null.

Пример работы программы

Запустим нашу программу, чтобы увидеть её в действии. При выполнении программы будут предложены ввод чисел и операции. Пример:

Введите первое число: 10
Введите второе число: 5
Введите операцию (+, -, *, /): *
Результат: 50

Если ввести некорректное число или операцию, программа запросит повторный ввод:

Введите первое число: abc
Ошибка: введено некорректное число. Повторите попытку.
Введите первое число: 10
Введите второе число: 0
Введите операцию (+, -, *, /): /
Ошибка: деление на ноль.

Карпов Ярослав

Автор статьи:

Обновлено:

28.05.2024

Создание простого калькулятора на языке Icon показывает, как можно использовать основные возможности языка для решения повседневных задач. Этот проект можно использовать как основу для более сложных приложений, расширяя функциональность и добавляя новые возможности.


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *