Лабораторная работа по C#. Арифметические операции

Задача: напишите программу на C#, которая рассчитывает абсолютную разность между n и числом 48, где n — это любое целое число. Если n больше 48, то верните тройную абсолютную разность.

Алгоритм решения

По условиям задачи пользователь должен задать одно целочисленное значение. К целочисленным типам в C# относятся такие типы данных как intlongbyte и так далее. Для решения задачи будем использовать наиболее часто используемый тип данных  — int.

Стоит обратить внимание на следующим момент: по условиям задачи мы должны получить абсолютную разность. То есть результатом вычисления должно быть всегда положительное число. В зависимости от уровня ваших знаний в C#, а также дополнительных требований, предъявляемых к работе, здесь мы можем поступить двумя способами:

  1. использовать условный оператор if для того, чтобы обеспечить вычитание меньшего числа из большего
  2. использовать метод Math.Abs() для получения абсолютного значения.

Таким образом, алгоритм работы программы можно представить следующим образом:

  1. Пользователь вводит с клавиатуры целочисленное значение (n)
  2. Рассчитываем абсолютную разность n-48.
  3. Проверяем больше ли n, чем 48
    1. если больше, то умножаем результат из п.2 на 3 и выводим результат
    2. иначе — выводим результат из п.2
  4. конец работы программы

Решение лабораторной работы

Расчёт абсолютной величины с использованием if

using System;

namespace AbsValue
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите число: "); //приглашение пользователю ввести число
            int n = Convert.ToInt32(Console.ReadLine()); //преобразуем введенную пользователем строку в число и присваиваем его значение переменной
            //считаем абсолютную разность
            int result;
            if (n > 48) 
                result = (n - 48) * 3; //n больше 48, значит выводим тройную разность
            else
                result = 48 - n; //абсолютная разность - всегда положительна, поэтому меняем n и 48 местами
            Console.WriteLine(result);
        }
    }
}

Расчёт абсолютной величины с использованием Math.Abs

В этом случае, условие if остается тем же, за исключением того, что нам не требуется менять местами n и 48:

using System;

namespace AbsValue
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите первое число: "); //приглашение пользователю ввести число
            int n = Convert.ToInt32(Console.ReadLine()); //преобразуем введенную пользователем строку в число и присваиваем его значение переменной
            //считаем абсолютную разность
            int result;
            if (n > 48) 
                result = (n - 48) * 3; //n больше 48, значит выводим тройную разность
            else
                result = Math.Abs(n - 48);//получаем абсолютное значение величины
            Console.WriteLine(result);
        }
    }
}

Результат работы приложения:

Введите первое число:
30
18

Или

Введите первое число:
50
6

Улучшения

Так как по условиям лабораторной работы от нас требуется только вывести результат вычислений, то приведенный выше код можно немного сократить:

using System;

namespace AbsValue
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите первое число: "); //приглашение пользователю ввести число
            int n = Convert.ToInt32(Console.ReadLine()); //преобразуем введенную пользователем строку в число и присваиваем его значение переменной
            //считаем абсолютную разность
            if (n > 48)
                Console.WriteLine((n - 48) * 3);//n больше 48, значит выводим тройную разность
            else
                Console.WriteLine(Math.Abs(n - 48));//получаем абсолютное значение величины
        }
    }
}

Здесь мы просто избавились от лишней переменной result. При этом на результат работы программы это никак не повлияло.

Итого

Таким образом, для решения лабораторной работы нам потребовались следующие знания основ C#: о типах данных в C#, об арифметических операциях в C#, о логических операторах в C#.

Подписаться
Уведомить о
guest
25 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии