В мире современных вычислений и информационных технологий программы-калькуляторы стали неотъемлемой частью нашей повседневной жизни. Они помогают нам решать различные математические задачи, выполнять финансовые расчеты, а также упрощают выполнение множества повседневных задач, требующих точных числовых данных. В данной статье мы погрузимся в мир разработки программного обеспечения и создадим собственную программу «Простой калькулятор».
Теория
Алгоритм, чтобы написать простую программу калькулятор, можно разбить на несколько основных шагов:
- Получение ввода от пользователя. Предложите пользователю ввести первое число. Запросите у пользователя оператор (символ арифметической операции, такой как +, -, *, /). Попросите пользователя ввести второе число.
- Проверка оператора. Проверьте, что введенный оператор является одним из допустимых операторов (+, -, *, /). Если нет, выведите сообщение об ошибке и завершите программу.
- Выполнение арифметической операции. В зависимости от введенного оператора выполните соответствующую арифметическую операцию (сложение, вычитание, умножение, деление) над двумя числами.
- Вывод результата. Выведите результат операции на экран.
- Повторение операции (опционально). Спросите пользователя, хочет ли он выполнить еще одну операцию. Если да, вернитесь к шагу 1. В противном случае завершите программу.
Python
Вариант без модуля
# Ввод чисел и операции num1 = float(input("Введите первое число: ")) operation = input("Введите операцию (+, -, *, /): ") num2 = float(input("Введите второе число: ")) # Выполнение операции в зависимости от введенного оператора if operation == '+': result = num1 + num2 print(f"Сумма {num1} и {num2} равна {result}") elif operation == '-': result = num1 - num2 print(f"Разность {num1} и {num2} равна {result}") elif operation == '*': result = num1 * num2 print(f"Произведение {num1} и {num2} равно {result}") elif operation == '/': if num2 != 0: result = num1 / num2 print(f"Деление {num1} на {num2} равно {result}") else: print("Ошибка: нельзя делить на ноль.") else: print("Ошибка: неверная операция.")
Вариант с модулем
Начнем с написания модуля с функциями для математических операций. Создайте файл с именем calculator_functions.py и добавьте в него следующий код:
# calculator_functions.py def add(a, b): """Функция для сложения двух чисел.""" return a + b def subtract(a, b): """Функция для вычитания одного числа из другого.""" return a - b def multiply(a, b): """Функция для умножения двух чисел.""" return a * b def divide(a, b): """Функция для деления одного числа на другое.""" if b != 0: return a / b else: return "Ошибка: деление на ноль!"
Теперь создадим основной файл calculator.py для консольной программы калькулятора:
# calculator.py from calculator_functions import add, subtract, multiply, divide def main(): print("Добро пожаловать в консольный калькулятор!") while True: print("\nВыберите операцию:") print("1. Сложение") print("2. Вычитание") print("3. Умножение") print("4. Деление") print("5. Выйти") choice = input("Введите номер операции: ") if choice == '5': print("Спасибо за использование калькулятора. До свидания!") break num1 = float(input("Введите первое число: ")) num2 = float(input("Введите второе число: ")) if choice == '1': print("Результат сложения:", add(num1, num2)) elif choice == '2': print("Результат вычитания:", subtract(num1, num2)) elif choice == '3': print("Результат умножения:", multiply(num1, num2)) elif choice == '4': print("Результат деления:", divide(num1, num2)) else: print("Некорректный ввод. Пожалуйста, выберите операцию от 1 до 5.") if __name__ == "__main__": main()
Теперь вы можете запустить calculator.py, чтобы использовать консольный калькулятор. Следуйте указаниям по выбору операции и вводу чисел, чтобы выполнить нужную математическую операцию.
C++
Пример программы на C++, выполняющей простые арифметические операции в зависимости от введенного оператора:
#include <iostream> int main() { double num1, num2, result; char operation; // Ввод чисел и операции std::cout << "Введите первое число: "; std::cin >> num1; std::cout << "Введите операцию (+, -, *, /): "; std::cin >> operation; std::cout << "Введите второе число: "; std::cin >> num2; // Выполнение операции в зависимости от введенного оператора switch (operation) { case '+': result = num1 + num2; std::cout << "Сумма " << num1 << " и " << num2 << " равна " << result << std::endl; break; case '-': result = num1 - num2; std::cout << "Разность " << num1 << " и " << num2 << " равна " << result << std::endl; break; case '*': result = num1 * num2; std::cout << "Произведение " << num1 << " и " << num2 << " равно " << result << std::endl; break; case '/': if (num2 != 0) { result = num1 / num2; std::cout << "Деление " << num1 << " на " << num2 << " равно " << result << std::endl; } else { std::cout << "Ошибка: нельзя делить на ноль." << std::endl; } break; default: std::cout << "Ошибка: неверная операция." << std::endl; break; } return 0; }
Эта программа сначала запрашивает у пользователя два числа и операцию, затем выполняет выбранную операцию и выводит результат на экран. Примечание: программа проверяет деление на ноль и обрабатывает некорректные операции.
C#
using System; class Calculator { static void Main() { double num1, num2, result; char operation; // Ввод чисел и операции Console.Write("Введите первое число: "); num1 = Convert.ToDouble(Console.ReadLine()); Console.Write("Введите операцию (+, -, *, /): "); operation = Convert.ToChar(Console.ReadLine()); Console.Write("Введите второе число: "); num2 = Convert.ToDouble(Console.ReadLine()); // Выполнение операции в зависимости от введенного оператора switch (operation) { case '+': result = num1 + num2; Console.WriteLine($"Сумма {num1} и {num2} равна {result}"); break; case '-': result = num1 - num2; Console.WriteLine($"Разность {num1} и {num2} равна {result}"); break; case '*': result = num1 * num2; Console.WriteLine($"Произведение {num1} и {num2} равно {result}"); break; case '/': if (num2 != 0) { result = num1 / num2; Console.WriteLine($"Деление {num1} на {num2} равно {result}"); } else { Console.WriteLine("Ошибка: нельзя делить на ноль."); } break; default: Console.WriteLine("Ошибка: неверная операция."); break; } } }
Java
import java.util.Scanner; public class Calculator { public static void main(String[] args) { double num1, num2, result; char operation; // Создаем объект Scanner для ввода с клавиатуры Scanner scanner = new Scanner(System.in); // Ввод чисел и операции System.out.print("Введите первое число: "); num1 = scanner.nextDouble(); System.out.print("Введите операцию (+, -, *, /): "); operation = scanner.next().charAt(0); System.out.print("Введите второе число: "); num2 = scanner.nextDouble(); // Выполнение операции в зависимости от введенного оператора switch (operation) { case '+': result = num1 + num2; System.out.println("Сумма " + num1 + " и " + num2 + " равна " + result); break; case '-': result = num1 - num2; System.out.println("Разность " + num1 + " и " + num2 + " равна " + result); break; case '*': result = num1 * num2; System.out.println("Произведение " + num1 + " и " + num2 + " равно " + result); break; case '/': if (num2 != 0) { result = num1 / num2; System.out.println("Деление " + num1 + " на " + num2 + " равно " + result); } else { System.out.println("Ошибка: нельзя делить на ноль."); } break; default: System.out.println("Ошибка: неверная операция."); break; } // Закрываем Scanner scanner.close(); } }
Pascal
program SimpleCalculator; var num1, num2, result: real; operation: char; begin writeln('Введите первое число: '); readln(num1); writeln('Введите операцию (+, -, *, /): '); readln(operation); writeln('Введите второе число: '); readln(num2); case operation of '+': result := num1 + num2; writeln('Сумма ', num1, ' и ', num2, ' равна ', result); '-': result := num1 - num2; writeln('Разность ', num1, ' и ', num2, ' равна ', result); '*': result := num1 * num2; writeln('Произведение ', num1, ' и ', num2, ' равно ', result); '/': if num2 <> 0 then begin result := num1 / num2; writeln('Деление ', num1, ' на ', num2, ' равно ', result); end else writeln('Ошибка: нельзя делить на ноль.'); else writeln('Ошибка: неверная операция.'); end; readln; end.
JavaScript
const num1 = parseFloat(prompt('Введите первое число: ')); const operation = prompt('Введите операцию (+, -, *, /): '); const num2 = parseFloat(prompt('Введите второе число: ')); let result; switch (operation) { case '+': result = num1 + num2; console.log(`Сумма ${num1} и ${num2} равна ${result}`); break; case '-': result = num1 - num2; console.log(`Разность ${num1} и ${num2} равна ${result}`); break; case '*': result = num1 * num2; console.log(`Произведение ${num1} и ${num2} равно ${result}`); break; case '/': if (num2 !== 0) { result = num1 / num2; console.log(`Деление ${num1} на ${num2} равно ${result}`); } else { console.log('Ошибка: нельзя делить на ноль.'); } break; default: console.log('Ошибка: неверная операция.'); }
PHP
<?php // Функция для выполнения арифметической операции function calculate($num1, $num2, $operator) { switch ($operator) { case '+': return $num1 + $num2; case '-': return $num1 - $num2; case '*': return $num1 * $num2; case '/': if ($num2 != 0) { return $num1 / $num2; } else { return "Ошибка: нельзя делить на ноль"; } default: return "Ошибка: неверная операция"; } } // Запрос ввода данных у пользователя $num1 = readline("Введите первое число: "); $operator = readline("Введите операцию (+, -, *, /): "); $num2 = readline("Введите второе число: "); // Вызов функции и вывод результата $result = calculate($num1, $num2, $operator); echo "Результат: $result\n"; ?>