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

Создать одномерный индексатор, который возвращает строку, из всех элементов строки массива

11.04.2019, 21:39. Показов 2208. Ответов 6

Студворк — интернет-сервис помощи студентам
Стоит такое задание:

Класс инкапсулирует двумерный массив из элементов символьного типа

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

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

Не понимаю как его реализовать, помогите плес
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.04.2019, 21:39
Ответы с готовыми решениями:

Создать индексатор, который предотвращает нарушение границы массива
Задание: Класс инкапсулирует одномерный массив с элементов целого типа. Создать индексатор, который предотвращает нарушению границы...

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

Не могу создать метод который возвращает значения массива
Хочу создать метод где указываю сколько цифр Фибоначчи нужно возвратить в виде массива. Не могу понять как это правильно оформить. ...

6
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
11.04.2019, 22:29
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
using System;
using System.Linq;
using System.Text;
 
namespace ConsoleApp1
{
    internal class Program
    {
        public static void Main()
        {
            Indexator indexator = new Indexator(5,10);
            Console.WriteLine($"Текущий массив 5х10:\n{indexator}");
            Console.WriteLine($"Вторая строка массива: { indexator[1]}");
            Console.WriteLine($"Кол-во согласных букв в массиве: {indexator.consonantsCount}");
        }
 
    }
 
    public class Indexator
    {
        // будущий двумерный массив, который заполним в конструкторе
        private char[,] array;
 
        // все согласные буквы, понадобятся при подсчёте их вхождений в массиве
        private string consonants = "бвгджзйклмнпрстфхцчшщ";
 
        // индексатор. формирует текстовую строку из заданного ряда массива
        public string this[int ind]
        {
            get
            {
                StringBuilder s = new StringBuilder();
                for (int i = 0; i < array.GetLength(1); i++)
                {
                    s.Append(array[ind, i]);
                }
                return s.ToString();
            }
        }
 
        // свойство только для чтения, которое пробегает по всему массиву и считает кол-во согласных букв.
        // эти расчёты можно было бы сделать единожды при заполнении массива в конструкторе, но...
        public int consonantsCount
        {
            get
            {
                int count = 0;
                for (int i = 0; i < array.GetLength(0); i++)
                {
                    for (int j = 0; j < array.GetLength(1); j++)
                    {
                        if (consonants.Contains(array[i, j])) count++;
                    }
                }
 
                return count;
            }
        }
 
        // конструктор, принимающий размерность будущего массива,
        // создаёт и заполняет двумерный массив случайными гласными и согласными буквами
        public Indexator(int n, int m)
        {
            Random rand = new Random();
            string vowels = "аеёиоуыэюя";
 
 
            array = new char[n, m];
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    if (rand.Next(0, 2) == 0) array[i, j] = vowels[rand.Next(0, vowels.Length)];
                    else array[i, j] = consonants[rand.Next(0, consonants.Length)];
 
                }
            }
        }
 
        // переопределённый метод, который поможет вывести на экран значения двумерного массива.
        // можно было бы сделать отдельный метод для этого, но...
        public override string ToString()
        {
            StringBuilder s = new StringBuilder();
 
            char[] tempRow = new char[array.GetLength(1)];
            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    tempRow[j] = array[i, j];
                }
                s.Append(string.Join(", ", tempRow)).Append("\n");
            }
            return s.ToString();
        }
    }
 
}
0
 Аватар для ShmelVG
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,269
11.04.2019, 22:39
kub1k333,
Цитата Сообщение от kub1k333 Посмотреть сообщение
которая состоит из всех
элементов заданного индексом строки массива
Не понял задание, вы хотите чтоб индексатор принимал char возвращал string ,
где принимает символ, делает из него строку длинной массива "символьного типа"?
т.е. масс длинной 3 сим, возвращал к примеру "ккк"?
Цитата Сообщение от kub1k333 Посмотреть сообщение
Создать свойство
создать, но нигде не использовать?
0
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 8
11.04.2019, 22:45  [ТС]
Массив как я понял должен быть "string" и возвращать строку

Создать свойство, доступное для чтения закрытого элемента-данного, содержащий количество согласных
букв в массиве
0
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
12.04.2019, 01:47
samana, У вашем случае будут считаться только буквы нижнего регистра,так как буквы верхнего регистра вы не указали
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
12.04.2019, 08:56
Макрой, Но и заполняется массив только буквами в нижнем регистре. Конечно можно легко добавить перевод символа в нужный регистр перед проверкой, но за регистр в задании вообще не было уточнений. Там даже нет информации о том, как заполняются данные в массиве..
0
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
12.04.2019, 14:24
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
 class Indexator
    {
        private char[,] Ch;
       
        private string Soglasnie = "бвгджзйклмнпрстфхцчшщБВГДЖЗЙКЛМНПРСТФХЦЧШЩ";
        
       
        public  Indexator(int Length )
        {
           
            Ch = new char[Length, Length];
            Random rand = new Random();
            string vowels = "аеёиоуыэюя";
 
 
           
            for (int i = 0; i < Length; i++)
            {
                for (int j = 0; j < Length; j++)
                {
                    if (rand.Next(0, 2) == 0) Ch[i, j] = vowels[rand.Next(0, vowels.Length)];
                    else Ch[i, j] = Soglasnie[rand.Next(0, Soglasnie.Length)];
                    
 
                }
            }
        }
        
          public char this[int index]
        {
            set
            {
                
                Ch[index, index] = value;
            }
            get
            {
                
                return Ch[index, index];
                
                
            }
        }
        public int  Array
        {
           
            get
            {
                int count = 0;
                for (int i=0;i<Ch.GetLength(0);i++)
                {
                    for (int j = 0; j < Ch.GetLength(1); j++)
                    {
 
                        for (int l = 0; l < Soglasnie.Length; l++)
                        {
                            if (Ch[i, j] == Soglasnie[l]) { count++; }
                        }
                    }
                }
                return count;
            }
        }
    }
}





C#
1
2
3
4
5
6
7
8
9
10
11
12
13
Indexator Massiv = new Indexator(4);
         
            for (int i = -2; i < 2*4; i++)
            {
 
                if (i < 0) { Console.WriteLine("Индекс не может быть отрицательным"); }
                else if (i >= 4) { Console.WriteLine("Индекс не может быть больше массива"); }
                else Console.Write(Massiv[i]);
                 
                
                Console.WriteLine();
            }
            Console.WriteLine(Massiv.Array);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.04.2019, 14:24
Помогаю со студенческими работами здесь

Дано одномерный массив Р, который состоит из 12 элементов. Вычислить сумму модулей всех от "объемных элементов * превышающих числа А (А = 1.25)
Помогите пожалуйста с задачкой Дано одномерный массив Р, который состоит из 12 элементов. Вычислить сумму модулей всех от &quot;объемных...

Создать одномерный индексатор, возвращающий заданный индексом столбец таблицы
Тему можно удалить))) Разобрался сам)) Оказалось просто :)

Написать функцию, что возвращает произведение всех элементов массива
Надо реализовать функцию int mul(int n, int *a) n - количество элементов в массиве а а - массив (указатель) функция возвращает...

Задан одномерный массив из n элементов. Найти среднее арифметическое всех элементов массива
Ребят помогите пожалуйста. Не шарю в программировании. Заранее спасибо.

залить из двумерного массива данные в одномерный длиной, равной количеству всех элементов исходного массива
Доброго времени суток :) Образовался новый глупый вопрос... Предположим у меня есть двухмерный массив: vertex** massiv() { ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[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 и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru