Вопрос № 129307: Уважаемые эксперты очень нужно решить 3 задачи по языку С++ как можно скорее:
1) Вводится массив. Найти в нём подпоследовательность из подряд идущих элементов с наибольшей суммой.
2) Нужно написать аналог процедуры Insert. Процедур...Вопрос № 129325: Здравствуйте. Уважаемые эксперты, помогите решить задачку на C:
1. Ввести по 18 чисел в два одномерных массива.
2. Переписать элементы массивов построчно в квадратную матрицу, расположив их по убыванию значений.
3. Дополнительных мас...Вопрос № 129326: Здравствуйте, уважаемые эксперты.
Прошу вас помочь решить задачу:
Нужно оформить сортировку массива строк как функцию потока. Сначала выполняется ввод элементов матрицы, затем запускается поток и далее – вывод упорядоченного массива...Вопрос № 129370: Здравствуйте, уважаемые специалисты! Вновь обращаюсь к вам за помощью в решении программ.
1. Разработать класс Person, который содержит соответствующие
-члены для хранения:
-имени,
-возраста,
-пола и
-телефонного номера...
Вопрос № 129.307
Уважаемые эксперты очень нужно решить 3 задачи по языку С++ как можно скорее:
1) Вводится массив. Найти в нём подпоследовательность из подряд идущих элементов с наибольшей суммой.
2) Нужно написать аналог процедуры Insert. Процедурой Delete и функцией Copy при этом пользоваться нельзя.
3) Дана подстрока и строка. Удалить из строки все вхождения заданной подстроки.
Отвечает: Verena
Здравствуйте, Орлов Виктор Фёдорович!
Первую задачу можно решить перебором всех возможных сумм подряд идущих элементов массива, это делается через два вложенных цикла. Вторая и третья задачи также сводятся к простой работе с массивом символов (во второй мы будем его "раздвигать", т.е. сдвигать элементы с заданно позиции вправо, а в третьей, наоборот, сдвигать их влево, затирая ненужную часть). Решение в приложении, вторая и третья задачи в виде функций, первая - в main-е. Скомпилировано в VS2005 (при проблемах с компиляцией попробуйте
поменять iostream на iostream.h и убрать "using namespace std".
Удачи!
Приложение:
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Практикант)
Ответ отправлен: 27.03.2008, 17:47
Вопрос № 129.325
Здравствуйте. Уважаемые эксперты, помогите решить задачку на C:
1. Ввести по 18 чисел в два одномерных массива.
2. Переписать элементы массивов построчно в квадратную матрицу, расположив их по убыванию значений.
3. Дополнительных массивов не использовать.
4. Напечатать матрицу.
Заранее спасибо.
Отвечает: shayen
Здравствуйте, Klassik1587!
В приложении код вашей программы компилированный под VS 2003
Приложение:
Ответ отправил: shayen (статус: 5-ый класс)
Ответ отправлен: 27.03.2008, 21:26 Оценка за ответ: 5 Комментарий оценки: Если можно, на обычном Си, под Dos
Вопрос № 129.326
Здравствуйте, уважаемые эксперты.
Прошу вас помочь решить задачу:
Нужно оформить сортировку массива строк как функцию потока. Сначала выполняется ввод элементов матрицы, затем запускается поток и далее – вывод упорядоченного массива.
Запустить программу два раза: первый раз с приоритетом потока THREAD_PRIORITY_BELOW_NORMAL, второй – THREAD_PRIORITY_ABOVE_NORMAL, и вывести на экран значения времени работы потока.
Сортировку написал, вот с потоками проблема
Приложение:
Отправлен: 27.03.2008, 16:37
Вопрос задал: exL (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Verena
Здравствуйте, exL!
Всё довольно просто. Объявляем описатель потока, создаём поток (не забывая передать ему в качестве параметра необходимый для работы функции сортировки параметр - размерность массива), но не запускаем его (т.е. указываем соответствующий флаг при создании), чтобы выставить приоритет. Выставляем ему заданный приоритет, запоминаем текущее время (время в миллисекундах со старта процессора можно получить функцией GetTickCount ()) и запускаем поток. Потом можно воспользоваться, например, Wait-функцией
(это такие функции, которые могут приостанавливать работу вызывающего потока, пока заданный объект ядра не придёт в сигнальное состояние - для потока это его завершение - или пока не истечёт заданный таймаут), чтобы подождать его завершения, и вывести на экран разницу во времени. В функцию main между вводом и выводом массива надо вставить такой код:
WORD dwThreadId;
HANDLE hThread = CreateThread (NULL, 0, MyThread, (void*)ArraySize, CREATE_SUSPENDED, &dwThreadId);//Создаём поток в приостановленном состоянии (флаг CREATE_SUSPENDED)
SetThreadPriority(hThread, THREAD_PRIORITY_BELOW_NORMAL); //Устанавливаем приоритет для него
int Time = GetTickCount ();
ResumeThread(hThread); //Запускаем работу потока
WaitForSingleObject (hThread, INFINITE); //Ждём завершения потока
cout << "Potok vipolnialsia " << GetTickCount()-Time << " mc
";
CloseHandle (hThread); //Закрываем описатель потока - он больше не нужен
К тому же необходимо добавить в файл стартовую функцию потока, например, такую:
DWORD WINAPI MyThread(void *pParam) //заголовок должен соответствовать определённому прототипу
{
int size = (int)pParam; ///тот параметр мы передали в функции CreateThread
ArraySort (ArrayString, size);
return 0;
}
Ваш код с соответствующими вставками в приложении.
Удачи!
Приложение:
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Практикант)
Ответ отправлен: 27.03.2008, 18:33 Оценка за ответ: 5
Вопрос № 129.370
Здравствуйте, уважаемые специалисты! Вновь обращаюсь к вам за помощью в решении программ.
1. Разработать класс Person, который содержит соответствующие
-члены для хранения:
-имени,
-возраста,
-пола и
-телефонного номера.
Напишите функции-члены, которые смогут изменять эти члены данных индивидуально. Напишите функцию-член Person::Print(), которая выводит отформатированные данные о человеке.
2. Разработать класс String, который в дальнейшем будет использоваться для работы со строками. Класс должен содержать:
-конструктор по умолчанию, позволяющий создать строку длиной 80 символов;
-конструктор, позволяющий создавать строку произвольного размера;
-конструктор, который создаёт строку и инициализирует её строкой, полученной от пользователя.
Класс должен содержать методы для ввода строк с клавиатуры и вывода строк на экран.
Отправлен: 27.03.2008, 22:05
Вопрос задала: Lana-N (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: shayen
Здравствуйте, Lana-N!
в приложении код первого задания компилировался на VS 2003. Для коректного отображения текста в свойствах консоли нужно выбрать шрифт Lucida Console.Удачи.
Приложение:
Ответ отправил: shayen (статус: 5-ый класс)
Ответ отправлен: 27.03.2008, 22:26 Оценка за ответ: 5 Комментарий оценки: Спасибо большое. Именно то что нужно. Все расписано очень хорошо.
Отвечает: Терсков Сергей
Здравствуйте, Lana-N!
Реализацию класса из вашего второго задания смотрите в приложении.
Приложение:
Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 28.03.2008, 05:30 Оценка за ответ: 5 Комментарий оценки: Большое спасибо. Отлично работает и, главное, понятно как работает.