С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 14.04.2008
Сообщений: 16

Проблема с массивом

14.04.2008, 18:15. Показов 3772. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Эксперты, помогите пожалуйста. Имеется программа, состоящая из нескольких форм (в конечном виде это будет программа для прохождения психологических тестов, курсовик). Необходимо создать массив из строк, а уже из этого массива копировать текст в richTextBox'ы и label'ы в любую из форм программы. Подскажите, пожалуйста, где расположить этот массив и как сделать так, чтобы этот массив был виден всем формам программы и была возможность выполнять все операции с ним? :huh: Либо, если я что-то делаю не так, направьте меня на правильный путь. Заранее благодарен!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.04.2008, 18:15
Ответы с готовыми решениями:

проблема с массивом
#include <iostream> #include <stdlib.h> #include <time.h> using namespace std; int main(){ const int n = 3; ...

Проблема с массивом.
Извените за нубский вопрос, я только начинаю изучать делфи и столкнулся с такой проблемой. Когда скажем просто выводиш массив то выводит...

Проблема с массивом
Привет, товарищи помогите пожалуйста с такой проблемой, вот сама проблема: Дана действительная матрица A размерности . Если среднее...

15
Администратор
 Аватар для mik-a-el
87822 / 53143 / 249
Регистрация: 10.04.2006
Сообщений: 13,761
14.04.2008, 18:31
У вас же будет основная форма, из которой вы будете запускать остальные? Вот там его и храните.
Кстати, а зачем несколько форм?
0
0 / 0 / 0
Регистрация: 14.04.2008
Сообщений: 16
14.04.2008, 18:58  [ТС]
В главной форме, а конкретно где? У меня в одной форме происходит ввод данных о самом пользователе, а уже на главной, сам процесс тестирования. После прохождения тестирования обработанные данные нужно занести в файл. Либо в еще одну форму. Интерфейс и запись в файл у меня уже сделаны, а вот где писать код для обработки данных понять не могу. Не в static же? Видимо в Form1. Так вот, ткните пожалуйста, носом, где мне там его вставить. Видимо, если я правильно понял, там у меня и должен будет храниться и сам массив.
0
Администратор
 Аватар для mik-a-el
87822 / 53143 / 249
Регистрация: 10.04.2006
Сообщений: 13,761
14.04.2008, 19:10
Цитата Сообщение от T-Mac
В главной форме, а конкретно где?
В классе основной формы, как поле или свойство. Его же будете передавать в дочерние формы.
Цитата Сообщение от T-Mac
Интерфейс и запись в файл у меня уже сделаны, а вот где писать код для обработки данных понять не могу.
Создайте отдельный класс для обработки.
0
0 / 0 / 0
Регистрация: 14.04.2008
Сообщений: 16
14.04.2008, 22:55  [ТС]
Цитата:Сообщение от T-Mac
В главной форме, а конкретно где?
В классе основной формы, как поле или свойство.
Спасибо, сделал свойством, заработало.
Возникло еще 2 вопроса:
1. как мне присвоить значение переменной из формы переменной в классе:
к примеру, переменной i из Class1 присвоить значение элемента Mas[1,1] из Form1 или наоборот?
2. как сделать так, чтобы одна и та же переменная могла использоваться (и изменяться) в двух (или более местах):
например, переменная i в button1_Click и в button2_Click?
0
Администратор
 Аватар для mik-a-el
87822 / 53143 / 249
Регистрация: 10.04.2006
Сообщений: 13,761
14.04.2008, 23:08
Цитата Сообщение от T-Mac
1. как мне присвоить значение переменной из формы переменной в классе:
к примеру, переменной i из Class1 присвоить значение элемента Mas[1,1] из Form1 или наоборот?
Class1 создаете паблик-свойство для i, с ним и работаете.
Цитата Сообщение от T-Mac
2. как сделать так, чтобы одна и та же переменная могла использоваться (и изменяться) в двух (или более местах):
например, переменная i в button1_Click и в button2_Click?
Сделайте ее глобальной, т.е. объявите вне функции.
0
0 / 0 / 0
Регистрация: 14.04.2008
Сообщений: 16
15.04.2008, 16:20  [ТС]
Сделайте ее глобальной, т.е. объявите вне функции.
Спасибо огромное, все получилось.

А вот с первым пунктом все не так гладко.
Вот так я сделал в Class1 паблик-свойство:
C#
1
2
3
4
5
6
7
8
9
public class Perem
        {
            private int[] _vib = new int[105];
            public int[] vib
            {
                get { return _vib; }
                set { _vib = value; }
            }
        }
Вот так в Form1 присваиваю i-тому элементу массива значение переменной z:
C#
1
2
Class1.Perem res = new Class1.Perem();
            res.vib[i] = z;
А вот так в классе Program присваиваю значениям массива Obr значения массива vib, чтобы дальше уже работать с массивом Obr.
C#
1
2
3
Class1.Perem rst = new Class1.Perem()
for (j = 0; j < 105; j++)
                Obr[j]=rst.vib[j];
В итоге все элементы массива Obr равны 0, хоть и не должны. Подскажите, пожалуйста, где я совершил ошибку. :'(
0
Администратор
 Аватар для mik-a-el
87822 / 53143 / 249
Регистрация: 10.04.2006
Сообщений: 13,761
15.04.2008, 16:29
А значения в rst.vib[j] не нули?
0
0 / 0 / 0
Регистрация: 14.04.2008
Сообщений: 16
15.04.2008, 16:58  [ТС]
А значения в rst.vib[j] не нули?
Вот в том то и дело, что нули.

Вот здесь, после присваивания, у меня все элементы массива res.vib ненулевые.
Вот так в Form1 присваиваю i-тому элементу массива значение переменной z:
Code
1
2
Class1.Perem res = new Class1.Perem();
            res.vib[i] = z;
А вот здесь элементы массива rst.vib уже равны 0, соответственно и элементы массива Obr равны нулю
А вот так в классе Program присваиваю значениям массива Obr значения массива vib, чтобы дальше уже работать с массивом Obr.
Code
1
2
3
Class1.Perem rst = new Class1.Perem()
for (j = 0; j < 105; j++)
                Obr[j]=rst.vib[j];
Что я не так сделал?:huh:
0
Администратор
 Аватар для mik-a-el
87822 / 53143 / 249
Регистрация: 10.04.2006
Сообщений: 13,761
15.04.2008, 17:24
Зачем Class1.Perem rst создается второй раз? Этот класс нужно создавать один раз при старте формы.
0
0 / 0 / 0
Регистрация: 14.04.2008
Сообщений: 16
16.04.2008, 01:43  [ТС]
Зачем Class1.Perem rst создается второй раз? Этот класс нужно создавать один раз при старте формы.
Затупил

Теперь так:
C#
1
Class1.Perem res = new Class1.Perem();
т.е. сделал глобальной переменной, теперь в Form1 с этим массивом все ок, данные вношу и беру как хочу. А вот как сделать так, чтобы и в классе Program сделать доступ к этому же массиву, к его данным? К примеру, сделать возможной данную операцию в классе Program:
C#
1
Obr[j] = res.vib[j];
Мне приходится снова задавать его так же, как и в Form1, т.к. в Program этого класса нет:
C#
1
Class1.Perem res = new Class1.Perem();
и, естественно, после выполнения данной операции:
C#
1
Obr[j] = res.vib[j];
в Obr нули. Как мне не задавать его снова? :huh:
0
Администратор
 Аватар для mik-a-el
87822 / 53143 / 249
Регистрация: 10.04.2006
Сообщений: 13,761
16.04.2008, 10:19
В Program доступен объект вашей главной формы. Поэтому в классе главной формы создайте паблик-свойство, через которое и будет предоставлен доступ к этому массиву.
Зачем вам оно надо в Program?
0
0 / 0 / 0
Регистрация: 14.04.2008
Сообщений: 16
16.04.2008, 12:04  [ТС]
мне это нужно, чтобы массиву из Program присвоить значения массива из главной формы Form1. может быть это можно сделать как-то проще, по другому, не задавая паблик-свойство, а я создаю себе лишние проблемы таким образом?
0
Администратор
 Аватар для mik-a-el
87822 / 53143 / 249
Регистрация: 10.04.2006
Сообщений: 13,761
16.04.2008, 12:06
Цитата Сообщение от T-Mac
мне это нужно, чтобы массиву из Program присвоить значения массива из главной формы Form1.
Зачем это нужно? Я не вижу в этом смысла.
0
0 / 0 / 0
Регистрация: 14.04.2008
Сообщений: 16
16.04.2008, 12:57  [ТС]
Зачем это нужно? Я не вижу в этом смысла.
Хорошо, можно и не делать этого. Но мне все равно нужно работать с данными массива из главной формы Form1 в классе Program.
В Form1 я обьявляю паблик-свойство:
C#
1
2
3
4
5
6
7
8
9
public class Perem
        {
            private int[] _vib = new int[105];
            public int[] vib
            {
                get { return _vib; }
                set { _vib = value; }
            }
        }
Потом в Form1 обявляю глобальную переменную:
C#
1
Perem res = new Perem();
Далее работаю с массивом. К примеру, выполняю действие:
C#
1
res.vib[i] = z;
Все, работа в Form1 с этим массивом закончена. Теперь мне нужно в классе Program работать с этим же массивом дальше (в этом классе у меня проходит обработка полученных данных). Так вот, как мне вызвать этот массив из Program? Только можно чуть-чуть поподробнее, а то я никак не пойму что я делаю не так :'(
0
Администратор
 Аватар для mik-a-el
87822 / 53143 / 249
Регистрация: 10.04.2006
Сообщений: 13,761
16.04.2008, 13:26
Цитата Сообщение от T-Mac
Теперь мне нужно в классе Program работать с этим же массивом дальше (в этом классе у меня проходит обработка полученных данных).
Почему бы их не обработать в главной форме?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.04.2008, 13:26
Помогаю со студенческими работами здесь

Проблема с массивом
Здравствуйте. Задача: умножение матрицы на число. Проблема: корректно выводятся только 2, 5, 6, 7, 8 и 9 элементы массива. Причем...

Проблема с массивом.
В общем имею задание &quot;Сформировать множество целых чисел и выделить из него подмножество чисел, кратных 3.&quot; Проблема заключается в том...

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

Проблема с массивом
надо каждый элемент введённого массива вывелся в обратном порядке. сделал эту прогу но сказали что нужно с функциями. подскажите как. ...

Проблема с массивом строк
Доброго времени суток! Есть класс, в котором объявлен массив строк class MyClass { public: MyClass(); ~MyClass(void); ...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru