Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/88: Рейтинг темы: голосов - 88, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 13.03.2017
Сообщений: 2

Создать класс Rectangle, разработав следующие элементы класса:

13.03.2017, 20:56. Показов 17078. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребятушки, помогите пожалуйста(((
Очень срочно нужно, завтра уже сдавать, а я что-то туплю....((
Вот тема:

. Создать класс Rectangle, разработав следующие элементы класса:
a. Поля:
• int a, b;
b. Конструктор, позволяющий создать экземпляр класса с заданными длинами сторон.
c. Методы, позволяющие:
• вывести длины сторон прямоугольника на экран;
• расчитать периметр прямоугольника;
• расчитать площадь прямоугольника.
d. Свойства:
• получить-установить длины сторон прямоугольника (доступное для чтения и записи);
• позволяющее установить, является ли данный прямоугольник квадратом (доступное только для чтения).
. В класс Rectangle добавить:
e. Индексатор, позволяющий по индексу 0 обращаться к полю a, по индексу 1 – к полю b, при других значениях индекса выдается сообщение об ошибке.
f. Перегрузку:
• операции ++ (--): одновременно увеличивает (уменьшает) значение полей a и b;
• констант true и false: обращение к экземпляру класса дает значение true, если прямоугольник с заданными длинами сторон является квадратом, иначе false;
• операции *: одновременно домножает поля a и b на скаляр;
• преобразования типа Rectangle в string (и наоборот).
А вот что я сделала, дальше не могу сообразить как вызвать индексатор и перегрузку(

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
class Rectangle
    {
        private int a, b;
 
        public Rectangle(int c, int d) //конструктор
        {
            this.a = c;
            this.b = d;
        }
 
 
        public void Output() //Вывод длин сторон 
        {
            Console.WriteLine("Сторона a={0}", a);
            Console.WriteLine("Сторона b={0}", b);
        }
 
 
        public int Perimeter() //Периметр 
        {
            return 2 * a + 2 * b;
        }
 
 
        public int Area() //Площадь 
        {
            return a * b;
        }
 
        //Чтение и запись полей
        public int A
        {
            get { return a; }
            set { a = value; }
        }
 
        public int B
        {
            get { return b; }
            set { b = value; }
        }
 
 
        public bool Square  //Чтение - является ли прямоугольник квадратом
        {
            get { return a == b; }
        }
        //Индексатор
        public int this[int i]
        {
            get
            {
                if (i == 0)
                    return a;
                else if (i == 1)
                    return b;
                else throw new Exception();
            }
 
            set
            {
                if (i == 0)
                    a = value;
                else if (i == 1)
                    b = value;
                else throw new Exception();
            }
        }
 
        //Перегрузка оператора ++
        public static Rectangle operator ++(Rectangle r)
        {
            r.A++;
            r.B++;
            return r;
        }
 
        //Перегрузка оператора --
        public static Rectangle operator --(Rectangle r)
        {
            r.A--;
            r.B--;
            return r;
        }
 
        //Перегрузка оператора false
        public static bool operator false(Rectangle r)
        {
            if (!r.Square)
                return false;
            return true;
        }
 
        //Перегрузка оператора true
        public static bool operator true(Rectangle r)
        {
            if (r.Square)
                return true;
            return false;
        }
        //Перегрузка оператора умножения на скаляр (справа)
        public static Rectangle operator *(Rectangle r, int v)
        {
            r.A *= v;
            r.B *= v;
            return r;
        }
 
        //Перегрузка оператора умножения на скаляр (слева)
        public static Rectangle operator *(int v, Rectangle r)
        {
            r.A *= v;
            r.B *= v;
            return r;
        }
 
        //Перегрузка преобразования Rectange в string
        public static implicit operator string(Rectangle r)
        {
            return r.A.ToString() + " " + r.B.ToString(); //строка состоит из значений a и b через пробел
        }
 
        //Перегрузка преобразования string в Rectange
        public static implicit operator Rectangle(string s)
        {
            string[] w = s.Split(' ');
            return new Rectangle(Convert.ToInt32(w[0]), Convert.ToInt32(w[1]));//возвращаем новый Rectangle
        }
    }
    class Class1
    {
        static void Main(string[] args)
        {
            int a = int.Parse(Console.ReadLine());
            int b = int.Parse(Console.ReadLine());
            Rectangle t = new Rectangle(a, b);
            t.Output();
            Console.WriteLine("Р=" + t.Perimeter());
            Console.WriteLine("S=" + t.Area());
           
                Console.ReadKey();
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2017, 20:56
Ответы с готовыми решениями:

Создать класс Rectangle, разработав следующие элементы класса
Создать класс Rectangle, разработав следующие элементы класса: Поля: -int a, b; Конструктор, позволяющий создать экземпляр класса с...

Создать класс Student, разработав следующие элементы класса
Создать класс Student, разработав следующие элементы класса: а. Поля • string name • int group, course; б. Конструкторы: •...

Создать класс Point, разработав следующие элементы класса
Создать класс Point, разработав следующие элементы класса: o Поля:  int x, y; o Конструкторы, позволяющие создать экземпляр...

3
Заблокирован
13.03.2017, 20:58
В Си нет классов. И это вообще C#.
0
0 / 0 / 0
Регистрация: 13.03.2017
Сообщений: 2
13.03.2017, 21:03  [ТС]
Ой точно,не посмотрела куда написала)
Именно, мне нужно на С# написать)
0
 Аватар для willow300
152 / 149 / 103
Регистрация: 30.10.2016
Сообщений: 314
17.10.2017, 14:43
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
namespace ClassesAndObjects
{
    class Rectangle
    {
        // Поля.
        int a, b;
 
        // Конструктор, позволяющий создать экземпляр класса с заданными длинами сторон.
        public Rectangle()
        {
            a = 0;
            b = 0;
        }
 
        public Rectangle(int a, int b)
        {
            this.a = a;
            this.b = b;
        }
 
        // Метод, позволяющий вывести длины сторон прямоугольника на экран.
        public override string ToString() => $"Длина сторон прямоугольника: a = {a} см, b= {b} см";
 
        // Метод, позволяющий рассчитать периметр прямоугольника.
        public string PerimeterCalculation()
        {
            int perimeter = 2 * (a + b);
            return $"Периметр прямоугольника: P = {perimeter}";
        }
 
        // Метод, позволяющий площадь прямоугольника.
        public string AreaCalculation()
        {
            int area = a + b;
            return $"Площадь прямоугольника: S = {area}";
        }
 
        // Свойство, позволяющее получить-установить длины сторон прямоугольника (доступное для чтения и записи);
        public int A
        {
            get => a;
            set => a = value;
        }
 
        public int B
        {
            get => b;
            set => b = value;
        }
 
        // Свойство, позволяющее установить, является ли данный прямоугольник квадратом (доступное только для чтения).
        public bool IsSquare
        {
            get
            {
                if (a == b)
                {
                    return true;
                }
                return false;
            }
        }
 
        // Индексатор, позволяющий по индексу 0 обращаться к полю a, по индексу 1 – к полю b, при других значениях индекса выдается сообщение об ошибке.
        public string this[int i]
        {
            get
            {
                switch (i)
                {
                    case 0:
                        return $"Индексу {i} соответствует сторона a, равная {a} см";
                    case 1:
                        return $"Индексу {i} соответствует сторона b, равная {b} см";
                    default:
                        return $"Индексу {i} является недействительным";
                }
            }
        }
 
        // Перегрузка операции ++: одновременно увеличивает значение полей a и b.
        public static Rectangle operator ++(Rectangle side) => new Rectangle(++side.a, ++side.b);
 
        // Перегрузка операции --: одновременно уменьшает значение полей a и b.
        public static Rectangle operator --(Rectangle side) => new Rectangle(--side.a, --side.b);
 
        // Перегрузка констант true и false: обращение к экземпляру класса дает значение true, 
        // если прямоугольник с заданными длинами сторон является квадратом, иначе false.
        public static bool operator true(Rectangle side) => side.IsSquare;
        public static bool operator false(Rectangle side) => side.IsSquare;
 
        // Перегрузка операции *: одновременно домножает поля a и b на скаляр.
        public static Rectangle operator *(Rectangle side, int scalar) => new Rectangle(side.a *= scalar, side.b *= scalar);
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
 
namespace ClassesAndObjects
{
    class Program
    {
        static void Main()
        {
            Rectangle firstRectangle = new Rectangle(20, 20);
 
            Console.ForegroundColor = ConsoleColor.DarkYellow;
            Console.WriteLine("Заданные параметры");
            Console.ResetColor();
            Console.WriteLine(firstRectangle);
            Console.WriteLine(firstRectangle.PerimeterCalculation());
            Console.WriteLine(firstRectangle.AreaCalculation());
 
            Console.ForegroundColor = ConsoleColor.DarkYellow;
            Console.WriteLine("\nДемонстрация работы индексатора");
            Console.ResetColor();
            Console.WriteLine(firstRectangle[0]);
            Console.WriteLine(firstRectangle[1]);
            Console.WriteLine(firstRectangle[2]);
 
            Console.ForegroundColor = ConsoleColor.DarkYellow;
            Console.WriteLine("\nДемонстрация перегрузки операций и констант");
            Console.ResetColor();
            Console.WriteLine(++firstRectangle);
            Console.WriteLine(--firstRectangle);
            Console.WriteLine(firstRectangle * 3);
 
            // Устанавливаем, является ли данный прямоугольник квадратом
            if (firstRectangle)
                Console.WriteLine("Заданный прямоугольник является квадратом.");
            else Console.WriteLine("Прямоугольник с заданными длинами сторон не является квадратом.");
 
            Console.ReadKey();
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2017, 14:43
Помогаю со студенческими работами здесь

Создать класс Пятиугольник, разработав следующие элементы класса
Доброго времени суток! Пожалуйста помогите решить задание на языке программирования C# Создать класс Пятиугольник, разработав...

Определить класс Triangle, разработав следующие элементы класса. Поля: - double a, b, c; - string name; //имя объекта
Определить класс Triangle, разработав следующие элементы класса. Поля: - double a, b, c; - string name; //имя объекта. ...

Создать класс Rectangle, содержащий следующие члены класса
VS 2010. Компилятор выдает ошибки, Предложение using должно предшествовать любым другим элементам пространства имен кроме объявлений...

Создать класс Triangle, разработав элементы класса
Создать класс Triangle, разработав следующие элементы класса: a. Поля: • double a, b, c; // стороны треугольника ...

Определить класс для работы с одномерным массивом типа double, разработав следующие элементы класса. Поля: - double []
Определить класс для работы с одномерным массивом типа double, разработав следующие элементы класса. Поля: - double dbArray; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru