Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 1042
от 02.04.2008, 12:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 478, Экспертов: 50
В номере:Вопросов: 4, Ответов: 5

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 129307: Уважаемые эксперты очень нужно решить 3 задачи по языку С++ как можно скорее: 1) Вводится массив. Найти в нём подпоследовательность из подряд идущих элементов с наибольшей суммой. 2) Нужно написать аналог процедуры Insert. Процедур...
Вопрос № 129325: Здравствуйте. Уважаемые эксперты, помогите решить задачку на C: 1. Ввести по 18 чисел в два одномерных массива. 2. Переписать элементы массивов построчно в квадратную матрицу, расположив их по убыванию значений. 3. Дополнительных мас...
Вопрос № 129326: Здравствуйте, уважаемые эксперты. Прошу вас помочь решить задачу: Нужно оформить сортировку массива строк как функцию потока. Сначала выполняется ввод элементов матрицы, затем запускается поток и далее – вывод упорядоченного массива...
Вопрос № 129370: Здравствуйте, уважаемые специалисты! Вновь обращаюсь к вам за помощью в решении программ. 1. Разработать класс Person, который содержит соответствующие -члены для хранения: -имени, -возраста, -пола и -телефонного номера...

Вопрос № 129.307
Уважаемые эксперты очень нужно решить 3 задачи по языку С++ как можно скорее:

1) Вводится массив. Найти в нём подпоследовательность из подряд идущих элементов с наибольшей суммой.

2) Нужно написать аналог процедуры Insert. Процедурой Delete и функцией Copy при этом пользоваться нельзя.

3) Дана подстрока и строка. Удалить из строки все вхождения заданной подстроки.

Заранее спасибо.
Отправлен: 27.03.2008, 14:26
Вопрос задал: Орлов Виктор Фёдорович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Verena
Здравствуйте, Орлов Виктор Фёдорович!
Первую задачу можно решить перебором всех возможных сумм подряд идущих элементов массива, это делается через два вложенных цикла. Вторая и третья задачи также сводятся к простой работе с массивом символов (во второй мы будем его "раздвигать", т.е. сдвигать элементы с заданно позиции вправо, а в третьей, наоборот, сдвигать их влево, затирая ненужную часть). Решение в приложении, вторая и третья задачи в виде функций, первая - в main-е. Скомпилировано в VS2005 (при проблемах с компиляцией попробуйте поменять iostream на iostream.h и убрать "using namespace std".
Удачи!

Приложение:

---------
Эта история - не для истории, понимаешь?

Ответ отправила: Verena (статус: Практикант)
Ответ отправлен: 27.03.2008, 17:47


Вопрос № 129.325
Здравствуйте. Уважаемые эксперты, помогите решить задачку на C:
1. Ввести по 18 чисел в два одномерных массива.
2. Переписать элементы массивов построчно в квадратную матрицу, расположив их по убыванию значений.
3. Дополнительных массивов не использовать.
4. Напечатать матрицу.
Заранее спасибо.
Отправлен: 27.03.2008, 16:10
Вопрос задал: Klassik1587 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: 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
Комментарий оценки:
Большое спасибо. Отлично работает и, главное, понятно как работает.


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.72.6 beta от 22.03.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное