Задача: напишите программу на 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# и использовать логические операторы.