Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2018, 17:30   #1
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию Программа выдаёт не отрицательное число.

Результат программы который я хочу:
"Информация о объекте 1:
квадрат
Длинна ровна -5, ширина ровна -5
Площадь ровна 25"

А вот что должна делать программа:

"Информация о объекте 1:
квадрат
Длинна ровна -5, ширина ровна -5
Площадь ровна -25"

Код программы:

Код:
using System;
class Konstructor {
    
    public double length, width, d;

    public double Length
    {
        get
        {
            return length;
        }
        set
        {
            length = value < 0 ? -value : value;
        }
    }

    public double Width
    {
        get
        {
            return width;
        }
        set
        {
            width = value < 0 ? -value : value;
        }
    }
    public double D
    {
        get
        {
            return d;
        }
        set
        {
            d = value < 0 ? -value : value;
        }
    }

    public void Show_a_b()
    {
        Console.WriteLine("Длинна ровна " + Length + ", ширина ровна " + Width);
    }
    public void Area()
    {
        D = Length * Width;
        Console.WriteLine("Площадь ровна " + D);
    }
}

class Konstructor2 : Konstructor {
    string type;
    public Konstructor2(string st, double sb1, double sb2)
    {
        type = st;
        length = Length = sb1;
        width = Width = sb2;
    }
    public void Show_type()
    {
        Console.WriteLine(type);
    }
    
}

class Program {
    static void Main()
    {
        Konstructor2 kon = new Konstructor2("квадрат", -5.0, -5.0);
        Konstructor2 kon2 = new Konstructor2("прямоугольник", -20.0, -8.0);
        Console.WriteLine("Информация о объекте 1:");
        kon.Show_type();
        kon.Show_a_b();
        kon.Area();
        Console.ReadKey();
    }
}

Последний раз редактировалось Мaкс; 25.06.2018 в 17:36. Причина: Случайно нажал отправить до полного заполнения условий программы.
Мaкс вне форума Ответить с цитированием
Старый 25.06.2018, 17:37   #2
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Я много раз пытался, много раз перебирал, но не получилось(
Мaкс вне форума Ответить с цитированием
Старый 25.06.2018, 17:37   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну хотеть мало.

http://blog.algoprog.ru/how-to-debug-small-programs/
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.06.2018, 17:41   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Результат программы который я хочу:
...
А вот что должна делать программа:
Так какой из вариантов правильный?
p51x вне форума Ответить с цитированием
Старый 25.06.2018, 17:43   #5
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Код:
D = Length * Width;
Length = -5, Width = -5, давай далее, 5- * -5 = -25, и почему выводит 25 а не -25?
Мaкс вне форума Ответить с цитированием
Старый 25.06.2018, 17:45   #6
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Так какой из вариантов правильный?
Правильный вариант, даже выделил синим где отличие:

Цитата:
Сообщение от Мaкс Посмотреть сообщение
"Информация о объекте 1:
квадрат
Длинна ровна -5, ширина ровна -5
Площадь ровна -25"
А вот неправильный, красным ведилил отличие:

Цитата:
Сообщение от Мaкс Посмотреть сообщение
"Информация о объекте 1:
квадрат
Длинна ровна -5, ширина ровна -5
Площадь ровна 25"
Мaкс вне форума Ответить с цитированием
Старый 25.06.2018, 17:47   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

-5 * (-5) = 25
p51x вне форума Ответить с цитированием
Старый 25.06.2018, 17:56   #8
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
Вопрос

Цитата:
Сообщение от p51x Посмотреть сообщение
-5 * (-5) = 25
Но почему length и Width выдают отрицательные значения:
Изображения
Тип файла: jpg 22.jpg (91.3 Кб, 113 просмотров)
Мaкс вне форума Ответить с цитированием
Старый 25.06.2018, 17:59   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Потому что вы их присваиваете:
Код:
        length = Length = sb1;
        width = Width = sb2;
p51x вне форума Ответить с цитированием
Старый 25.06.2018, 18:00   #10
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Потому что вы их присваиваете
Это то понятно, но как исправить проблему?
Мaкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить предпоследнее отрицательное число Фима Общие вопросы Delphi 1 06.12.2015 16:37
Возвести отрицательное число в дробную степень Вовкин Общие вопросы Delphi 12 27.11.2014 13:36
Преобразовать отрицательное число Xo66um Общие вопросы Delphi 5 25.01.2014 13:37
Преобразовать отрицательное число в положительное valerij Microsoft Office Excel 7 26.10.2011 09:32
Отрицательное число в дробную степень n4ela Общие вопросы C/C++ 7 31.10.2010 00:02