Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
91 / 85 / 27
Регистрация: 29.10.2016
Сообщений: 928
1

Класс для работы с одномерным массивом

14.10.2017, 19:55. Показов 1338. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, я создал класс одномерный массив и при создании массива мне бьет ошибку на индексатор. Но если выбрать размерность массива больше 4 то все нормально работает. В чем проблема?
C#
1
2
3
4
  set
            {
                a[index] = value;
            }
вот сам класс
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
 class massiv
    {
        int[] a;
        int n;
 
        public massiv(int n)
        {
            this.n = n;
            a = new int[this.n];
        }
 
        public int this[int index]
        {
            get
            {
                return a[index];
            }
            set
            {
                a[index] = value;
            }
        }
        public string create()
        {
            string s = ""; int sr = 0;
            for (int i = 0; i < n; i++)
            {
                Random r = new Random();
                a[i] = r.Next(0, 30);
                s += a[i] + " ";
                
 
            }
            return s;
        }
 
       
 
 
    }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2017, 19:55
Ответы с готовыми решениями:

Описать класс для работы с одномерным массивом целых чисел
Описать класс для работы с одномерным массивом целых чисел(вектором). Класс должен реализовывать...

Создать класс для работы с двумерным массивом целых чисел
6. Создать класс для работы с двумерным массивом целых чисел. Разработать следующие элементы...

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

Класс для работы с одномерным массивом
Описать класс для работы с одномерным массивом строк фиксированной длины. Обеспечить следующие...

10
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
15.10.2017, 11:15 2
Цитата Сообщение от 6elka1703 Посмотреть сообщение
Здравствуйте, я создал класс одномерный массив и при создании массива мне бьет ошибку на индексатор. Но если выбрать размерность массива больше 4 то все нормально работает. В чем проблема?
Все должно работать. Главное, чтобы индекс элемента не превышал размер массива

Так разве бьет?:
C#
1
2
massiv m = new massiv(1);
m[0]=5;
Я даже специально на своей студии проверил. Никаких ошибок
0
91 / 85 / 27
Регистрация: 29.10.2016
Сообщений: 928
15.10.2017, 11:39  [ТС] 3
netBool, с этим я понял в чем проблема была, но можно еще вопрос почему у меня массив заполняется только одним числом?
Миниатюры
Класс для работы с одномерным массивом  
0
899 / 554 / 275
Регистрация: 26.11.2015
Сообщений: 1,758
Записей в блоге: 2
15.10.2017, 12:00 4
Попробуйте строку
C#
1
Random r = new Random();
Вынести за пределы цикла
0
91 / 85 / 27
Регистрация: 29.10.2016
Сообщений: 928
15.10.2017, 12:05  [ТС] 5
Toros1992, слушай еще я на самой кнопке ищу среднее арифметическое элементов массива, а потом заменяю 5 элемент среднеарифметическим. Но вот прога выдает какой-то бред, можешь правильно ли я сделал?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   massiv a = new massiv(n);
            listBox1.Items.Add("Начальный массив" + "\n");
            listBox1.Items.Add(a.create() + "\n");
 
            for (int i = 0; i < n; i++)
            {
                sr = (sr + a[i]) / n;
                a[4] = sr;
                s1 += a[i] + " ";
            }
 
            listBox1.Items.Add("Измененный массив" + "\n");
            listBox1.Items.Add(s1 + "\n");
        }
0
899 / 554 / 275
Регистрация: 26.11.2015
Сообщений: 1,758
Записей в блоге: 2
15.10.2017, 12:20 6
Пройдись внимательно отладчиком и ты заметишь, что слишком много засунул в цикл.
А ещё, я бы тебе советовал в твоем классе переопределить метод ToString(), и тогда отпадет необходимость каждый раз создавать строку для отображения
0
91 / 85 / 27
Регистрация: 29.10.2016
Сообщений: 928
15.10.2017, 12:34  [ТС] 7
как я понял эта строка в цикле лишняя
C#
1
  a[4] = sr;
0
899 / 554 / 275
Регистрация: 26.11.2015
Сообщений: 1,758
Записей в блоге: 2
15.10.2017, 12:39 8
Лучший ответ Сообщение было отмечено 6elka1703 как решение

Решение

Нет, дело в том, что среднее рассчитываешь неправильно. Надо сначала сложить все элементы массива, а потом поделить на их количество. А у тебя же происходят странные вещи. Ты зачем-то делишь первое число на длину массива, потом к нему прибавляешь второе и снова делишь, и т.д.
1
91 / 85 / 27
Регистрация: 29.10.2016
Сообщений: 928
15.10.2017, 12:52  [ТС] 9
блин я просто думал что в цикле сначала выполниться все что в скобках т.е. сначала сложит все элементы, а потом поделит на их количество. все спасибо большое

Добавлено через 6 минут
Toros1992, а как передопределить метод ToString()?
0
899 / 554 / 275
Регистрация: 26.11.2015
Сообщений: 1,758
Записей в блоге: 2
15.10.2017, 12:57 10
Во как
0
91 / 85 / 27
Регистрация: 29.10.2016
Сообщений: 928
15.10.2017, 13:00  [ТС] 11
я уже понял, прочитал эту же статью)
0
15.10.2017, 13:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2017, 13:00
Помогаю со студенческими работами здесь

Создать класс для работы с двумерным массивом вещественных чисел
Создать класс для работы с двумерным массивом вещественных чисел. Разработать следующие элементы...

Заполнение текстбокса одномерным массивом
Доброго утричка ) Подскажите, кто знает, как реализовать заполнение текстбокса одномерным массивом...

операции над одномерным массивом
Есть такое задание: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)...

класс для работы с соксами
уважаемый алл, никто не встречал готовый класс для работы с соксами? чтобы ничего не надо было...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru