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

Создать базовый класс с одним целым полем и два производных «Натуральное число» и «Массив натуральных чисел»

25.06.2019, 13:20. Показов 1676. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1) Создать базовый класс с одним целым полем. Разработать два конструктора: первый – без параметров – заполняет поле случайным положительным числом; второй – с параметром – конструктор копирования. Разработать метод: вывод поля.
2) Класс «Натуральное число». Наследует базовый класс. Поле определяет натуральное число. Методы: а) количество цифр; б) сумма цифр; в) является ли палиндромом (true, false); г) «перевертыш» числа.
3) Класс «Массив натуральных чисел». Наследует класс «Натуральное число». Переопределить метод вывода. Отсортировать по количеству цифр и сумме цифр (т.е. в каждой группе с одинаковым количеством цифр сортируем по сумме цифр).
Помогите с третьим пунктом, пожалуйста, остальное я сделал. Что там вообще требуется? Нужно ввести массив?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.06.2019, 13:20
Ответы с готовыми решениями:

Создать базовый класс с четырьмя целыми полями и два производных класса
1) Создать базовый класс с четырьмя целыми полями. Разработать два конструктора: первый – без параметров – заполняет поля случайными...

Создать базовый класс и два производных от него: «Окружность на плоскости» и «Точка в трехмерном пространстве»
1) Создать базовый класс с тремя целыми полями. Разработать два конструктора: первый – без параметров – заполняет поля случайными данными;...

Создать базовый класс с двумя целыми полями и два производных: «Обыкновенная дробь» и «Прямоугольник»
Создать базовый класс с двумя целыми полями. Разработать два конструктора: первый – без параметров – заполняет поля случайными данными;...

10
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
25.06.2019, 20:35  [ТС]
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ex_class
 
{
 
    class Program
 
    {
 
        class BasedClass//базовый класс
 
        {
            //с одним целым полем
            protected int a;
           
            protected Random rand;
            public BasedClass()//конструктор, заполняет случайно
            {
                rand = new Random();
                a = rand.Next(0, 10001);
            }
            public BasedClass(int a)//конструктор копирования
            {
                this.a = a;
            }
            public virtual void Print()//вывод
            {
                Console.WriteLine("a= {0}", a);
            }
        }
        class Natural : BasedClass//наследование
        {
            public Natural() : base() { }
             public Natural(int a) : base(a) { }//конструкторы
            public int kolvo()
            {
                int k = 0;
 
                if (a == 0) k = 1;
                while (a != 0) { a = a / 10; k++; }
                return k;
            }
            public int sum()
            {
                int s = 0;
               // if (a == 0) s = 0;
                while (a != 0) { s = s + a % 10; a = a / 10; }
                return s;
            }
            public bool palind()
            {
                int n, digit, k = 0;
                n = a;
                do
                {
                    digit = a % 10;
                    k = (k * 10) + digit;
                    a = a / 10;
                }
                while (a != 0);
                if (n == k) return true;
                else return false;
            }
            public int perev()
            {
                int k = 0, digit;
                do
                {
                    digit = a % 10;
                    k = (k * 10) + digit;
                    a = a / 10;
                }
                while (a != 0);
                return k;
            }
 
        }
        
 
 
 
 
 
        static void Main(string[] args)
 
        {
 
            BasedClass p = new BasedClass();
            p.Print();
            Natural l = new Natural();
            Natural l1 = new Natural();
            Natural l2 = new Natural();
            Natural l3 = new Natural();
            Console.WriteLine(l.sum());
            Console.WriteLine( l1.kolvo());
         Console.WriteLine( l2.palind());
          Console.WriteLine(l3.perev());
           
          Console.ReadKey();
 
 
        }
    }
}
Помогите, пожалуйста, с 3 пунктом

Добавлено через 31 минуту
Пожалуйстаааа

Добавлено через 43 минуты
Очень прошу ��
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
25.06.2019, 21:21
в третьей задаче наследованием и не пахнет, либо ассоциация, либо агрегация, либо композиция, но никак не наследование
к срочному ознакомлению
1
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
26.06.2019, 07:51  [ТС]
Diamante, не очень понятно как задачу-то решить))
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
26.06.2019, 15:44  [ТС]
Пожалуйста, помогите кто-нибудь с третьим
0
291 / 193 / 104
Регистрация: 14.11.2017
Сообщений: 489
26.06.2019, 16:56
dreems, вот, держите. Немного изменил имующиеся классы и исправил некоторые ошибки, которые замети.
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
namespace forCyberforum
{
    class BasedClass//базовый класс
 
    {
        //с одним целым полем
        protected int a;
        protected Random rand;
        public BasedClass()//конструктор, заполняет случайно
        {
            rand = new Random();
            a = rand.Next(0, 10001);
        }
        public BasedClass(int a)//конструктор копирования
        {
            this.a = a;
        }
        public virtual void Print()//вывод
        {
            Console.WriteLine("a= {0}", a);
        }
    }
 
    class Natural : BasedClass//наследование
    {
        public Natural() : base() { }
        public Natural(int a) : base(a) { }//конструкторы
 
        public int Value
        {
            get
            {
                return a;
            }
            set
            {
                a = value;
            }
        }
 
        public int kolvo()
        {
            int tmp = a;
            int k = 0;
            if (tmp == 0) k = 1;
            while (tmp != 0) {
                tmp = tmp / 10; 
            k++; 
            }
            return k;
        }
 
        public int sum()
        {
            int rep = a;
            int s = 0;
            while (rep != 0)
            {
                s += rep % 10;
                rep /= 10;
            }
            return s;
        }
 
        public bool palind()
        {
            int n, digit, k = 0;
            n = a;
            do
            {
                digit = a % 10;
                k = (k * 10) + digit;
                a = a / 10;
            }
            while (a != 0);
            if (n == k) return true;
            return false;
        }
 
        public int perev()
        {
            int rep = a;
            int k = 0, digit;
            do
            {
                digit = a % 10;
                k = (k * 10) + digit;
                a = a / 10;
            }
            while (a != 0);
            return k;
        }
 
    }
 
    class NaturalArray : Natural
    {
        private List<Natural> array;
 
        public NaturalArray(Natural[] array)
        {
            this.array = new List<Natural>();
            this.array.AddRange(array);
        }
 
        public void Sort()
        {
            BucketSort();
            Console.WriteLine("Массив отсортирован");
        }
 
        private int GetMaxCountOfDDigits()
        {
            int max = 0;
            foreach (var item in array)
            {
                int count = item.kolvo();
                if (count > max) max = count;
            }
            return max;
        }
 
        public void BucketSort()
        {
            int numOfBuckets = GetMaxCountOfDDigits();
            List<Natural>[] buckets = new List<Natural>[numOfBuckets];
            for (int i = 0; i < numOfBuckets; i++)
                buckets[i] = new List<Natural>();
 
            for (int i = 0; i < array.Count; i++)
            {
                int buckitChoice = (numOfBuckets / array[i].Value);
                buckets[buckitChoice].Add(array[i]);
            }
            array.Clear();
            for (int i = 0; i < numOfBuckets; i++)
            {
                List<Natural> temp = BubbleSortList(buckets[i]);
                array.AddRange(temp);
            }
        }
 
        public List<Natural> BubbleSortList(List<Natural> input)
        {
            for (int i = 0; i < input.Count; i++)
            {
                for (int j = 0; j < input.Count; j++)
                {
                    if (input[i].sum() < input[j].sum())
                    {
                        int temp = input[i].Value;
                        input[i].Value = input[j].Value;
                        input[j].Value = temp;
                    }
                }
            }
            return input;
        }
 
        public override void Print()//вывод
        {
            Console.WriteLine("Массив натуральных чисел");
            array.ForEach(x => Console.WriteLine(x.Value));
        }
    }
 
    class Program
    { 
        static void Main(string[] args)
        {
            Random rand = new Random();
            Natural[] array = new Natural[5];
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = new Natural(rand.Next(0, 1000));
            }
            NaturalArray naturalArray = new NaturalArray(array);
            naturalArray.Print();
            naturalArray.Sort();
            naturalArray.Print();
            Console.ReadKey();
        }
    }
}
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
26.06.2019, 17:05  [ТС]
Eduard Nanaki, спасибо большое!
0
291 / 193 / 104
Регистрация: 14.11.2017
Сообщений: 489
26.06.2019, 17:12
dreems
Цитата Сообщение от Eduard Nanaki Посмотреть сообщение
C#
1
2
int buckitChoice = (numOfBuckets / array[i].Value);
buckets[buckitChoice].Add(array[i]);
замените на
C#
1
buckets[array[i].kolvo() - 1].Add(array[i]);
Добавлено через 15 секунд
Поскольку я там допустил ошибку
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
26.06.2019, 17:28
Eduard Nanaki, а что если на экземпляре naturalArray вызвать методы perev() palind() sum() kolvo()?
что он выдаст?
0
291 / 193 / 104
Регистрация: 14.11.2017
Сообщений: 489
26.06.2019, 17:35
Diamante, если это просто вопрос, то вернут соответственные значения для какого-то случайного числа (по понятным причинам).
Если это упрек, то я выполнил просьбу ТС'а, да и только - тобишь 3 пункт (с нужными правками в предыдущем коде).
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
26.06.2019, 17:39
это не упрек, я понял что ты попытался натянуть сову на глобус, но правильный ответ на эту задачу в 3м посте
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.06.2019, 17:39
Помогаю со студенческими работами здесь

Создать 1 базовый класс и несколько производных
Создать 1 базовый класс и несколько производных. Все небольшие ф-ии сделать встроенными (особенно конструк- торы). В производных классах...

Создать класс с одним полем и класс наследник с другим
Создать класс Демо с одним полем Дата(инт) создать конструктор по умолчанию, с параметром копирования. Добавить gete и sete. От класса...

Заданы два натуральных числа. Определить, являются ли среднее арифметическое этих чисел целым числом
Заданы два натуральных числа. Определить, являются ли среднее арифметическое этих чисел целым числом ЧЕРЕЗ ОПЕРАТОР CASE

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать абстрактный базовый класс Тройка чисел с...

Создать базовый класс действительное число
Сроки горят, времени нет, сил нет, буду безмерно благодарна за помощь. 1.Создать базовый класс действительное число с виртуальной...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru