0 / 0 / 0
Регистрация: 16.04.2016
Сообщений: 8
1

Пользовательский класс Array должен содержать конструктор с параметрами

03.11.2016, 19:59. Показов 1418. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пользовательский класс Array должен содержать конструктор с параметрами для создания целочисленных массивов и установки начальных значений их элементов и деструктор для освобождения памяти, а также методы:
void Show(void); // метод для вывода результатов
void Run(void); // метод, решающий поставленную задачу
Дан одномерный массив A[N]. Найти max (a2, a4, …, a2k) + min (a1, a3, …, a2k+1).
Помогите пожалуйста на C#
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2016, 19:59
Ответы с готовыми решениями:

Создайте класс, в котором есть ostream& operator<<. Класс должен содержать очередь с приоритетом
Создайте класс, в котором есть ostream&amp; operator&lt;&lt;. Класс должен содержать очередь с приоритетом....

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно»
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по...

Что должен содержать класс по-умолчанию?
Если пишется класс, то обязательно должны быть реализованы следующие операции: 1) Конструктор...

Пользовательский класс Array. Прокомментируйте рабочий код
Вот написала класс. Мои замечания к своему коду: Класс массивов не должен иметь в основании массив....

3
28 / 28 / 23
Регистрация: 06.10.2016
Сообщений: 74
03.11.2016, 22:55 2
Класс NewArray:
Кликните здесь для просмотра всего текста
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
uusing System;
 
namespace ConsoleApplication24
{
    /*Пользовательский класс Array должен содержать конструктор с параметрами для создания целочисленных массивов
     и установки начальных значений их элементов и деструктор для освобождения памяти, а также методы:
     void Show(void); // метод для вывода результатов 
     void Run(void); // метод, решающий поставленную задачу
     Дан одномерный массив A[N]. Найти max (a2, a4, …, a2k) + min (a1, a3, …, a2k+1)
     */
    class NewArray
    {
 
        private string _err { get; set; }
        private int _result { get; set; }
 
        private int[] arr;
        //конструктор с параметрами
        //делаем по аналогии с массивом {1,2,3,4,5,...,n}
        public NewArray(string s)
        {
            //уберём пробелы
            s = s.Trim(' ');
            string[] arS = s.Split(',');
            int[] ar = new int[arS.Length];
            int count = 0;
            try
            {
                //преобразование к int[]
                foreach (string str in arS)
                {
                    ar[count] = int.Parse(str);
                    count++;
                }
            }
            catch
            {
                _err = string.Format("Не удалось инициализировать класс NewArray параметрами {0}", s);
            }
            finally
            {
                arr = ar;
                _err = "";
            }
        }
        //метод для расчётов: Найти max (a2, a4, …, a2k) + min (a1, a3, …, a2k+1)
        public void Run()
        {
            int max = 0, min = 0;
            for (int i = 0; i < arr.Length; i++)
            {
                if (i%2 == 0) //четные - ищем максимум
                {
                    max = (arr[i] > max ? arr[i]:max);
                }
                else //ищем минимум
                {
                    min = (arr[i] < min ? arr[i] : min);
                }
            }
            _result = max + min;
        }
        //метод для вывода результатов
        public void Show()
        {
            string str = "Заданный массив: [";
            foreach (int i in arr)
            {
                str += i.ToString() + ",";
            }
            str = str.Substring(0,str.Length - 1);//обрезаем последнюю запятую
            str += "]";
            Console.WriteLine("{0},", str);
            Console.WriteLine("Результат расчёта max (a2, a4, …, a2k) + min (a1, a3, …, a2k+1) = {0}", _result);
        }
        //для вывода ошибки
        public string GetErr() 
        {
            return _err;
        }
        //деструктор
        /*В целом, язык C# не требует управления памятью в той степени, 
         * в какой это требуется в случае разработки кода на языке, 
         * не рассчитанном на среду выполнения со сборкой мусора. 
         * Это связано с тем, что сборщик мусора платформы .NET Framework неявным образом 
         * управляет выделением и высвобождением памяти для объектов. 
         * Однако при инкапсуляции приложением неуправляемых ресурсов, 
         * например окон, файлов и сетевых подключений, для высвобождения этих ресурсов следует использовать деструкторы. 
         * Если объект требует уничтожения, то сборщик мусора запускает выполнение метода Finalize этого объекта.
         */
        protected void Finalize()
        {
            _err = "";
            _result = 0;
            arr = new int[0];
        }
    }
}

Класс Program:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
 
namespace ConsoleApplication24
{
    class Program
    {
        static void Main(string[] args)
        {
            NewArray nar = new NewArray("1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1,0");
            if(nar.GetErr() != "")
                Console.WriteLine("Возникла ошибка: {0}",nar.GetErr());
            else
            {
                nar.Run();
                nar.Show();
            }
            Console.ReadKey();
        }
    }
}
0
906 / 663 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
04.11.2016, 00:47 3
Цитата Сообщение от NIKONCHIK Посмотреть сообщение
деструктор для освобождения памяти
Цитата Сообщение от NIKONCHIK Посмотреть сообщение
void Show(void)
Цитата Сообщение от NIKONCHIK Посмотреть сообщение
void Run(void)
Точно C#, а не C++?
0
.NET senior
440 / 358 / 137
Регистрация: 23.09.2016
Сообщений: 980
04.11.2016, 08:04 4
FourthDimension, деструктор, насколько я помню, должен объявляться по аналогии с C++ :

C#
1
2
3
4
5
public class NewArray
{
    ~NewArray() // деструктор
    { ... }
}
и уже в процессе компиляции преобразуется в метод protected override void Finalize ();
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2016, 08:04
Помогаю со студенческими работами здесь

Определите класс, который должен содержать атрибуты
Здравствуйте уважаемые любители и ценители языка С++! У меня к вам огромная просьба. На днях нужно...

Определить класс, который должен содержать минимум 3 атрибута и функции
Определить класс, который должен содержать минимум 3 атрибута и функции. Надо написать программу...

Создать класс City, который должен содержать информацию - площадь городов
Я хочу создать класс City. И он должен содержать информацию площадь городов (кол. 5) . Input:...

Разработать пользовательский класс, в котором определить конструктор, свойства и методы
Расширить программу созданную раннее, разработав пользовательский класс, в котором определить...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru