|
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 25
|
|||||||||||||||||||||||||||||||||||||||||
Многопоточное приложение20.03.2011, 09:42. Показов 4766. Ответов 31
Метки нет (Все метки)
Совсем запарился, помогите.
Задание: Разработать программу, которая создает в отдельном потоке случайный массив А из N целых чисел в диапазоне от -999 до 999 выводит на экран эти числа. Создание и вывод элементов массива производится через заданное время T, N и T вводятся пользователем до запуска процесса. Массив обрабатывается двумя другими потоками В и С, работающими параллельно с потоком, создающим массив. Все потоки выводят результаты своей работы в текстовые окна, каждый поток в свое окно. Задание В. Вычисление общего количества цифр всех элементов массива Задание C. Определение и вывод чисел, являющихся простыми числами. Создал форму, создал 3 потока. Во втором и третьем потоке написал код для задания В и С(кстати проверьте что не так). В первом потоке написал код массива.
1.Не знаю точно в правильном ли месте написал код массива, чтоб к нему могли обращаться все потоки? 2.Создал две кнопки START и STOP для запуска и остановки потоков. Подскажите где и как написать код для этих кнопок? И как использовать параметр T? Заранее спасибо.
0
|
|||||||||||||||||||||||||||||||||||||||||
| 20.03.2011, 09:42 | |
|
Ответы с готовыми решениями:
31
Многопоточное приложение Многопоточное програмирование Многопоточное приложение |
|
103 / 74 / 10
Регистрация: 29.05.2010
Сообщений: 192
|
|
| 21.03.2011, 13:13 | |
|
да ничего, работает?
0
|
|
|
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 25
|
|
| 21.03.2011, 14:02 [ТС] | |
|
Да.Теперь первый поток работает как надо. Буду разбираться со следующими
Добавлено через 47 минут а как надо использовать полученный Mas, чё то у меня не получается например чтобы во втором потоке вывести первый элемент массива из первого потока
0
|
|
|
103 / 74 / 10
Регистрация: 29.05.2010
Сообщений: 192
|
|
| 21.03.2011, 14:14 | |
|
надо передавать Mas в конструкторе класса в каждый поток, так же как и в первый. Тогда можно в каждом потоке обращаться к нему как A[i]
0
|
|
|
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 25
|
|
| 21.03.2011, 14:25 [ТС] | |
|
НУ я вроде бы все это делаю. Но получается что Undefined symbol 'A'
Добавлено через 5 минут extern MyThr3 *Thr3; extern int*Mas; __fastcall MyThr3::MyThr3(bool CreateSuspended,int*Mas) : TThread(CreateSuspended) { A=Mas; } //--------------------------------------------------------------------------- void __fastcall MyThr3::Execute() { Form1->Memo3->Text="Опеределение и вывод чисел, являющихся простыми"; bool flag=1; int i=0; for (int j=2;j<A[i];j++) { if (A[i]%j==0){flag=0;break;} } if (flag) Form1->Memo3->Lines->Add(A[i]); delete Thr3; }
0
|
|
|
103 / 74 / 10
Регистрация: 29.05.2010
Сообщений: 192
|
|
| 21.03.2011, 14:28 | |
|
class MyThr3 : public TThread
{ private: protected: void __fastcall Execute(); public: __fastcall MyThr3(bool CreateSuspended, int* Mas); int* A; };
0
|
|
|
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 25
|
|
| 21.03.2011, 14:40 [ТС] | |
|
Это все так
Добавлено через 1 минуту void __fastcall MyThr3::Execute() { Form1->Memo3->Text="Опеределение и вывод чисел, являющихся простыми"; bool flag=1; int i=0; for (int j=2;j<A[i];j++) сюда показывает { if (A[i]%j==0){flag=0;break;} } if (flag) Form1->Memo3->Lines->Add(A[i]); delete Thr3; } Добавлено через 1 минуту а точно д.б. A=Mas а не наоборот?
0
|
|
|
103 / 74 / 10
Регистрация: 29.05.2010
Сообщений: 192
|
|
| 21.03.2011, 14:45 | |
|
да
выложите весь проект в архиве
0
|
|
|
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 25
|
|
| 21.03.2011, 14:49 [ТС] | |
|
вот архив
0
|
|
|
103 / 74 / 10
Регистрация: 29.05.2010
Сообщений: 192
|
|
| 21.03.2011, 15:13 | |
|
память под массив надо выделять не в потоке
Mas = new int [StrToInt(Form1->Edit2->Text)]; потому что когда поток завершается вся выделенная им память освобождается и должно быть A = Mas; а не наоборот
0
|
|
|
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 25
|
||||||
| 21.03.2011, 20:48 [ТС] | ||||||
|
Да точно, это я забыл.Вроде ещё один поток заработал. Спасибо.
Но похоже берется только первый элемент массива Добавлено через 5 часов 11 минут ВРоде бы все заработало более-менеее... Не могу только разобраться с таймером. Создание и вывод массива должны производится чере время Т написал такое, но по-видимому чушь, т.к не работает, да и при компиляции is not a valid integer value
0
|
||||||
|
103 / 74 / 10
Регистрация: 29.05.2010
Сообщений: 192
|
|
| 21.03.2011, 21:47 | |
|
Timer1->Interval = StrToInt(Edit1->Text)
вырубить его не забудь
0
|
|
|
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 25
|
|
| 22.03.2011, 11:50 [ТС] | |
|
Наконец то я её доделал и сдал. Не без косяков конечно, но все же..Спасибо всем за помощь, особенно благодарен -LeV-.
0
|
|
| 22.03.2011, 11:50 | |
|
Многопоточное приложение Многопоточное приложение
Многопоточное приложение Многопоточное приложение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|