Загрузка...

Кто может решить лабу, пожалуйста, не чат гпт

Тема в разделе C# создана пользователем Додик 29 май 2023. 187 просмотров

Загрузка...
  1. Додик
    Додик Автор темы 29 май 2023 Заблокирован(а) 3 16 окт 2019
    Решить на языке C#
    Описать класс для работы с восьмеричным числом, хранящимся в виде строки
    символов. Реализовать конструкторы, свойства, методы и следующие операции:
    О операции присваивания, реализующие значимую семантику;
    О операции сравнения;
    О преобразование в десятичное число;
    О форматный вывод;
    'О доступ к заданной цифре числа по индексу.
    Написать программу, демонстрирующую все разработанные элементы класса.
     
  2. ChatGPT
    ChatGPT 29 май 2023 2253 14 мар 2023
    Додик, я могу помочь тебе с заданием. Вот пример класса для работы с восьмеричным числом на языке C#:

    CSHARP

    class OctalNumber
    {
    private string value;

    public OctalNumber(string value)
    {
    this.value = value;
    }

    public OctalNumber(int value)
    {
    this.value = Convert.ToString(value, 8);
    }

    public string Value
    {
    get { return value; }
    set { this.value = value; }
    }

    public static OctalNumber operator +(OctalNumber a, OctalNumber b)
    {
    int sum = Convert.ToInt32(a.value, 8) + Convert.ToInt32(b.value, 8);
    return new OctalNumber(sum);
    }

    public static OctalNumber operator -(OctalNumber a, OctalNumber b)
    {
    int diff = Convert.ToInt32(a.value, 8) - Convert.ToInt32(b.value, 8);
    return new OctalNumber(diff);
    }

    public static bool operator ==(OctalNumber a, OctalNumber b)
    {
    return a.value == b.value;
    }

    public static bool operator !=(OctalNumber a, OctalNumber b)
    {
    return a.value != b.value;
    }

    public static bool operator >(OctalNumber a, OctalNumber b)
    {
    return Convert.ToInt32(a.value, 8) > Convert.ToInt32(b.value, 8);
    }

    public static bool operator <(OctalNumber a, OctalNumber b)
    {
    return Convert.ToInt32(a.value, 8) < Convert.ToInt32(b.value, 8);
    }

    public static bool operator >=(OctalNumber a, OctalNumber b)
    {
    return Convert.ToInt32(a.value, 8) >= Convert.ToInt32(b.value, 8);
    }

    public static bool operator <=(OctalNumber a, OctalNumber b)
    {
    return Convert.ToInt32(a.value, 8) <= Convert.ToInt32(b.value, 8);
    }

    public static implicit operator int(OctalNumber a)
    {
    return Convert.ToInt32(a.value, 8);
    }

    public override string ToString()
    {
    return value;
    }

    public char this[int index]
    {
    get { return value[index]; }
    }
    }
    В этом классе есть два конструктора: один принимает строку, другой - целое число. Также есть свойство Value, которое позволяет получить или изменить значение числа.

    Класс также имеет перегруженные операторы для сложения, вычитания, сравнения и преобразования в целое число.

    Метод ToString() возвращает строковое представление числа, а индексатор позволяет получить цифру числа по индексу.

    Вот пример использования класса:

    CSHARP

    OctalNumber a = new OctalNumber("12");
    OctalNumber b = new OctalNumber(10);

    Console.WriteLine(a.Value); // выводит "12"
    Console.WriteLine(b.Value); // выводит "12"

    a.Value = "20";
    Console.WriteLine(a.Value); // выводит "20"

    OctalNumber c = a + b;
    Console.WriteLine(c.Value); // выводит "32"

    Console.WriteLine(a == b); // выводит "False"
    Console.WriteLine(a > b); // выводит "True"

    int decimalValue = a;
    Console.WriteLine(decimalValue); // выводит "16"

    Console.WriteLine(a[0]); // выводит "2"
    Надеюсь, это поможет тебе выполнить задание. Если у тебя есть вопросы, не стесняйся спрашивать.
     
    1. Посмотреть предыдущие комментарии (2)
    2. kingofchocopie
      qatar, а это неуважительное поведение к пользователю :thinking: ?
Top