Форум программистов, компьютерный форум CyberForum.ru

Найти произведение минимальных элементов каждой строки матрицы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подсчитать количество символов а над третьей строкой матрицы и... http://www.cyberforum.ru/cpp-beginners/thread588162.html
Дана матрица 5x7, элементами которой являются значения символьного ти¬па. Составить одномерный массив, содержащий количество символов m в каждом из ее столбцов. Подсчитать количество символов а над третьей строкой матрицы и общее количество символов b и z под третьей строкой.
C++ Матрица В прямоугольной матрице определить элемент, который по модулю наименее отличается от среднего арифметического всех элементов матрицы. Помогите решить!!!! http://www.cyberforum.ru/cpp-beginners/thread588161.html
C++ Функции с переменным количеством параметров. Функция, как тип данных
Добрый день, уважаемые программисты! Прошу немного помощи задание: Разработать функцию с переменным количеством параметров. Для извлечения параметров из списка использовать технологию программирования областей памяти переменного формата. 9. Последовательность вещественных массивов. Сначала идет целый параметр - размерность массива (int), затем непосредственно последовательность...
Динамическая структура данных очередь C++
Помогите допписать программу на с++ пожалуйста,а то я не могу разобраться немного,как сделать Мне необходимо написать динамическую структуру очередь с исключением по приоритету Вот текст уже готовой программы #include<iostream.h> #include<conio.h> #include<stdlib.h> #include<stdio.h> #include<string.h> #include<ctype.h>
C++ сделать уравнение методом Ньютона http://www.cyberforum.ru/cpp-beginners/thread588144.html
дано уравнение 3x – 4 ln x – 5 = 0 сделать методом Ньютона Приближенное значение корня 3,2300
C++ Запись в файл /* 6. В исходном файле находится текст программы на языке С++. Создать файл, в который переписать содержимое исходного файла без однострочных комментариев. */ #include <locale.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
20.06.2012, 14:26     Найти произведение минимальных элементов каждой строки матрицы
90% уверен что весь код ниже вызовет сплошной вопрос
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
void getMinElem(void * lpParam)
{ *
* * RowThreadData *pData = (RowThreadData *)lpParam;
* * while(!pData->bFinish && pData->n)
* * {
* * * * if(pData->minElem < pData->pRow[pData->n - 1])
* * * * * * pData->minElem = pData->pRow[pData->n - 1];
* * * * if(!(pData->n = pData->n - 1))
* * * * * * pData->bFinish = true;
* * }
* * _endthread();
}
Поясню
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
RowThreadData *pData = (RowThreadData *)lpParam;
- получили из переданных параметров lpParam поля структуры RowThreadData

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
while(!pData->bFinish && pData->n)
- цикл пока флаг pData->bFinish не будет иметь значение ИСТИНА, либо пока pData->n(он у меня совмещён со счётчиком) больше нуля

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
if(pData->minElem < pData->pRow[pData->n - 1])
* * * * * * pData->minElem = pData->pRow[pData->n - 1];
- простой поиск мин элемента
массив pData->pRow, индекс pData->n - 1

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
if(!(pData->n = pData->n - 1))
* * * * * * pData->bFinish = true;
- совмещённое условие с декриментом счётчика, как только досттигли нуля (т.е. пробрали сзади все элементы строки) ставим флаг pData->bFinish в положение ИСТИНА и тем самым выходим из данного цикла

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
while(!pData->bFinish && pData->n)
, а значит и завершаем поток. Ну а тут просматриваем состояние всех потоков

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
EnterCriticalSection(&cs);
* * * * * * if(pData[i].bFinish)
* * * * * * * * bFinish = true;
* * * * * * LeaveCriticalSection(&cs);
Матрица то может быть в сотню тысяч элементов, тогда потоки нитей будут рабоать ощутимое для пользователя время, а так я уверен для матриц с числоммэлементов менее 100 можно было бы даже исключить эту часть алгоритма

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
while(!bFinish)
* * {
* * * * for(i = 0; i < m; i++)
* * * * {
* * * * * * EnterCriticalSection(&cs);
* * * * * * if(pData[i].bFinish)
* * * * * * * * bFinish = true;
* * * * * * LeaveCriticalSection(&cs);
* * * * }
* * }
всё равно потоки запущенные здесь

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
_beginthread(getMinElem,0,&pData[i]);
успевали бы осуществить расчёт ещё до того как закончили бы этот цикл с параметром
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
for(i = 0; i < m; i++)
 
Текущее время: 20:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru