Задача: напишите программу на C#, которая вычисляет сумму двух заданных целочисленных значений. Если два заданных значения равны, то вернуть двойную сумму.
Алгоритм решения
По условиям задачи пользователь должен задать два целочисленных значения. К целочисленным типам в C# относятся такие типы данных как int
, long
, byte
и так далее. Для решения задачи будем использовать наиболее часто используемый тип данных — int
.
Наиболее интересный момент в этой лабораторной работе представлен в условии — если два заданных значения равны, то вернуть двойную сумму. Наглядно это условие можно представить следующим образом:
- вариант 1: заданы числа 1 и 3. Числа не равны между собой, следовательно, программа должна просто вернуть их сумму, то есть значение 4.
- вариант 2: заданы числа 5 и 5. Числа равны между собой, следовательно, программа должна вернуть значение
(5+5)*2 = 20
, то есть двойную сумму.
Таким образом, для решения лабораторной работы нам потребуются знания:
- о типах данных в C#
- об арифметических операциях в C#
- о логических операторах в C#
Алгоритм программы будет следующий:
- Пользователь вводит с клавиатуры два целочисленных значения
- Проверяем равны ли два значения между собой
- если равны, то выводим удвоенную сумму
- иначе — выводим сумму
- конец работы программы
Решение лабораторной работы
Ниже представлен вариант решения лабораторной работы:
using System; namespace LabRab_5 { internal class Program { static void Main(string[] args) { Console.WriteLine("Введите первое число: ");//просим пользователя ввести первое число int a = Convert.ToInt32(Console.ReadLine());//присваиваем переменной a значение (Convert.ToInt32 - преобразует строку в число) Console.WriteLine("Введите второе число: ");//просим пользователя ввести второе число int b = Convert.ToInt32(Console.ReadLine());//присваиваем переменной b значение (Convert.ToInt32 - преобразует строку в число) int result; //задаем переменную, которая будет хранить результат вычисления if (a == b) //два числа равны? result = (a + b) * 2; //да - считаем удвоенную сумму else result = (a+b); //нет - считаем обычную сумму Console.WriteLine(result); //выводим результат } } }
Результат работы приложения:
3
Введите второе число:
2
5
или, если два числа равны:
5
Введите второе число:
5
20
Улучшения
Эту же лабораторную работу можно сделать более компактной в плане количества строк кода, если Вы имеете представление о том, что из себя представляет интерполяция строк в C#. Используя интерполяцию, мы могли бы реализовать наш алгоритм следующим образом:
using System; namespace LabRab_5 { internal class Program { static void Main(string[] args) { Console.WriteLine("Введите первое число: "); int a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введите второе число: "); int b = Convert.ToInt32(Console.ReadLine()); if (a == b) Console.WriteLine($"Удвоенная сумма: ({a}+{b})*2 = {(a + b) * 2}"); else Console.WriteLine($"Сумма: {a}+{b} = {(a + b)}"); } } }
Как видите, мы избавились от лишней переменной result
, а код приложения стал немного короче. Также, в качестве улучшений кода программы стоило бы отметить такой момент, как обработка исключительных ситуаций (например, когда пользователь вводит вместо числа строку), однако, в рамках этой лабораторной работы такое улучшение может оказаться излишних, хотя в реальных приложениях обработка исключений должна быть обязательно.
Итого
В этой лабораторной работе мы узнали как суммировать и умножать числа в C# и использовать логические операторы.