Alex2282
1
.NET 4.x

Класс на основе одномерного массива строк

28.02.2014, 22:49. Показов 2403. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить описание класса одномерных массивов строк, каждая строка которых задается длиной и указателем на выделенную для нее память. Предусмотреть возможность обращения к отдельным строкам массива по индексам, контроль выхода за пределы индексов, выполнения операция поэлементного сцепления двух массивов с образованием нового массива, слияния двух массивов с исключением повторяющихся элементов, печать (вывод на экран) элементов массива и всего массива.

Добавлено через 37 минут
Пожалуйста помогите! Не могу разобраться
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2014, 22:49
Ответы с готовыми решениями:

Как сделать из одномерного массива строк двумерный?
Такой вопрос. Имеется richTextBox, который читаю построчно. Нужно разбить все строки на N блоков по...

Создать класс, реализующий однонаправленный список на основе одномерного массива
Здравствуйте, уважаемые гуру, асы и прочие гении программирования С++ Помогите пожалуйста решить...

Класс: Реализовать класс Matrix - матрица, на основе двухмерного массива размерности M на N...
1) Реализовать класс Matrix - матрица, на основе двух-мерного целочисленного массива int ...

Список на основе одномерного динамического массива
Добрый вечер! Кто может привести в пример структуру такого списка? (на основе одномерного...

1
3 / 3 / 1
Регистрация: 23.10.2010
Сообщений: 25
01.03.2014, 03:33 2
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Alex2282 Посмотреть сообщение
задается длиной и указателем на выделенную для нее память
не совсем понятно, просто делаю получение длины массива
сам класс
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
class TextArray
    {
        public string[] array;
        public int n;
 
        /// <summary>
        /// Конструктор по умолчанию, создает массив без элементов
        /// </summary>
        public TextArray()
        {
            this.array = new string[0];
        }
 
        /// <summary>
        /// Конструктор создающий массив размерности n
        /// </summary>
        /// <param name="n">Размерность массива</param>
        public TextArray(int n)
        {
            this.n = n;
            this.array = new string[n];
        }
 
        /// <summary>
        /// Индексатор массива
        /// </summary>
        /// <param name="i">Индекс элемента</param>
        /// <returns>Значение элемента</returns>
        public string this[int i]
        {
            get { return array[i]; }
            set
            {
                try
                {
                    array[i] = value;
                }
                catch (IndexOutOfRangeException)
                {
                    Console.WriteLine("Error! Index out of Range!");
                }
            }
        }
 
        /// <summary>
        /// Получает количество элементов массива
        /// </summary>
        public int MemoryCount
        {
            get { return n; }
        }
 
        /// <summary>
        /// Получает длину массива
        /// </summary>
        public int Length
        {
            get { return array.Length; }
        }
 
        /// <summary>
        /// Добавление элемента в конец массива за счет увеличения размерности на 1
        /// </summary>
        /// <param name="value">Добавляемое значение</param>
        public void Add(string value)
        {
            string[] temp = array;
            array = new string[array.Length + 1];
            for (int i = 0; i < array.Length - 1; i++)
            {
                array[i] = temp[i];
            }
            array[array.Length - 1] = value;
        }
 
        /// <summary>
        /// Сцепление двух массивов
        /// </summary>
        /// <param name="a">Первый массив</param>
        /// <param name="b">Второй массив</param>
        public void Fusion(TextArray a, TextArray b)
        {
            array = new string[a.Length + b.Length];
 
            for (int i = 0; i < a.Length; i++)
            {
                array[i] = a[i];
            }
 
            for (int i = 0; i < b.Length; i++)
            {
                array[a.Length + i] = b[i];
            }
        }
 
        /// <summary>
        /// Слияние двух массивов без повторений
        /// </summary>
        /// <param name="a">Первый массив</param>
        /// <param name="b">Второй массив</param>
        public void FusionNotRepeat(TextArray a, TextArray b)
        {
            for (int i = 0; i < a.Length; i++)
            {
                Add(a[i]);
            }
 
            for (int i = 0; i < b.Length; i++)
            {
                if (array.Contains(b[i]))
                {
                    continue;
                }
                Add(b[i]);
            }
        }
 
        /// <summary>
        /// Печать элемента массива
        /// </summary>
        /// <param name="i">Индекс элемента</param>
        public void Show(int i)
        {
            Console.WriteLine("Array[" + i + "] = " + array[i]);
        }
 
        /// <summary>
        /// Печать диапозона от k до j
        /// </summary>
        /// <param name="k">начальное значение диапозона</param>
        /// <param name="j">конечное значение диапозона</param>
        public void Show(int k, int j)
        {
            if (j >= array.Length)
                j = array.Length - 1;
            if (k < 0)
                k = 0;
            for (int i = k; i <= j; i++)
            {
                Console.WriteLine("Array[{0}] = {1}",i,array[i]);
            }
        }
 
        /// <summary>
        /// Печать всего массива
        /// </summary>
        public void Show()
        {
            for (int i = 0; i < array.Length; i++)
            {
                Console.WriteLine("Array[" + i + "] = " + array[i]);
            }
        }
    }
Ниже все юз всех нужд
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
class Program
    {
        static void Main(string[] args)
        {
            //Создаем массив "a" длиной в 2 элемента
            TextArray a = new TextArray(2);
            //Заполняем значениями (по умолчанию нули)
            a[0] = "A"; a[1] = "Beta";
            //Получить длину строки
            int dlinaStroki = a[0].Length;
            //Получить кол-во выделеной памяти для массива
            int pamyat = a.MemoryCount; //либо это длина массива a.Lenght
            //Добавить элемент
            a.Add("10");
            //Слияние двух массивов
            TextArray one = new TextArray(3);
            one[0] = "A"; one[1] = "B"; one[2] = "C";
            TextArray two = new TextArray(2);
            two[0] = "A"; two[1] = "D";
 
            a.Fusion(one, two);
 
            //Слияние двух массивов без совпадений
            TextArray b = new TextArray();
            b.FusionNotRepeat(one, two);
 
            //Печать одного эл-та
            b.Show(2);
            Console.WriteLine();
            //Печать диапозона эл-тов
            b.Show(1, 3);
            Console.WriteLine();
            //Печать всех эл-тов
            b.Show();
        }
    }
В индексаторе контроль выхода за границу массива, через исключение try-catch. Исключение: IndexOutOfRangeException
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2014, 03:33
Помогаю со студенческими работами здесь

Построение диаграммы на основе одномерного массива
Доброго времени суток! Я новичок в программировании, поэтому мой вопрос для вас может показаться...

Написать стек на основе одномерного массива
Пробую написать стек на основе одномерного массива. Скажите что не так делаю. #include...

Создать диаграмму на основе одномерного массива
Создать диаграмму на основе одномерного массива.

Найти сумму на основе элементов одномерного массива
Разработать алгоритм и программу с единственным циклом для обработки одномерных массивов. Для...


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

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

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