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

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


Информационный Канал Subscribe.Ru


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

Выпуск № 226
от 04.04.2003, 15:20

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 673
Отправлено ответов: 1475
Активность: 219.1 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

DiGiT[old]
Статус: Профессиональный
Общий рейтинг: 111.35
[Подробней >>]
Yuri Gordienko
Статус: Опытный
Общий рейтинг: 114.07
[Подробней >>]
Avl2k
Статус: Опытный
Общий рейтинг: 121.24
[Подробней >>]
 
Ramzes
Статус: Опытный
Общий рейтинг: 129.69
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 664. Здравствуте! Я Гомер. Мой вопрос таков: Есть, к примеру, два связанных списка (чистый С). Один к при... (ответов: 2)
Вопрос № 665. Здравствуйте. Как в NT завершить сервис? Стандартным способом через TerminateProcess не удается, так... (ответов: 1)
Вопрос № 666. Здравствуйте, уважаемые эксперты! Извиняюсь заранее за беспокойство.Задача у меня наипростейшая - я ... (ответов: 1)

Вопросов: 3, ответов: 4


 Вопрос № 664

Здравствуте! Я Гомер.
Мой вопрос таков:
Есть, к примеру, два связанных списка (чистый С).
Один к примеру _танки_, другой _рокеты_, дык вот, в чем проблема: запускаем цикл по _танкам_, и проверяем, например, столкновения - зашибись - работает, цикл с _рокетами_ - толкаются :). А как, вообщем, грамотно грамотно написать проверку столкновений _танков_, _ракет_ и .т.п.???



Вопрос отправлен: 31.03.2003, 18:46
Отправитель: Homer (nushko@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает DiGiT[old]

Доброе время суток, Homer!
Попробуй через хэш-списки грамотнее будет, а в качестве хэш функции выбери, что то определяющее положение танка, чтобы лишний перебор не делать.

Ответ отправлен: 01.04.2003, 03:04
Отправитель: DiGiT[old]


Отвечает Yuri Gordienko

Здравствуйте, Homer!
Используй класс std::map(это С++, но для тебя, я думаю, сгодится). В этом классе поиск ведется по ключу, что достаточно быстро. Ключ для твоего конкретного примера будет структура с координатами.
На будущее: задавай конкретный вопрос, а не абстракцию из танков и ракет, - мы все-таки не танкисты и не ракетчики :)
Удачи


Ответ отправлен: 04.04.2003, 10:22
Отправитель: Yuri Gordienko


 Вопрос № 665

Здравствуйте. Как в NT завершить сервис? Стандартным способом через TerminateProcess не удается, так как сервисы не используют WinApi.



Вопрос отправлен: 01.04.2003, 11:11
Отправитель: Marouder (marouder2003@hotbox.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Avl2k

Здравствуйте, Marouder!
Для этого надо использовать ControlService с параметром SERVICE_CONTROL_STOP, правда не всякий сервис и не сразу можно остановить. Надо, чтобы были соответствующие права(SERVICE_STOP) при получении handlе'а.
С уважением, Avl2k.

Ответ отправлен: 02.04.2003, 19:02
Отправитель: Avl2k


 Вопрос № 666

Здравствуйте, уважаемые эксперты!
Извиняюсь заранее за беспокойство.Задача у меня наипростейшая - я это знаю, но с циклами я не лажу.
Надо в квадратной матрице напечатать индексы всех элементов, каждый из которых является одновременно наименьшим в своей строке и наибольшим в своем столбце.
Насколько я поняла в принципе может быть только одно число, удовл. этим условиям.Очевидно, после нахождения наименьшего в строке надо искать В ТОМ же столбце наибольшее. Как запомнить столбец?
Еще один вопросик, если не возражаете...
Допустим, надо построить массив из некоторых элементов, которые находятся в процессе вычислений. Размер массива изначально задать нельзя, т.к. неизвестно из скольких элементов он будет состоять. Как можно передать размер массива, чтобы не возникало ошибки? int *p
mas = new int[]?


Приложение:


Вопрос отправлен: 01.04.2003, 12:32
Отправитель: Ольга

[Следующий вопрос >>] [Список вопросов]

Отвечает Ramzes

Добрый день, Ольга!
см. приложение
/*находит минималъный элемент в строке и возвращает индекс колонки */
int MinInRow(float** matr, int MatrSize , int nRowIndex, int& nMinElement)
{
int nCol = 0;
nMinElement = matr[nRowIndex][nCol];
for( int i = 1; i < nMatrSize; i++ )
{
if( matr[nRowIndex][i] < nMinElement )
{
nMinElement = matr[nRowIndex][i];
nCol = i;
}
}
return nCol;
}
/* находит максимальный элемент в колонки и возвращает индекс строки */
int MaxInCol(float** matr, int nMatrSize, int nColIndex, int& nMaxElement)
{
int nRow = 0;
nMaxElement = matr[0][nColIndex];
for( int i = 1; i < nMatrSize; i++ )
{
if( matr[i][nColIndex] > nMaxElement )
{
nMaxElement = matr[i][nColIndex];
nRow = i;
}
}
return nRow;
}
void main()
{
float ** matr = new float*[3];
for( int i = 0; i < 3; i++ )
{
matr[i] = new float[3];
}
for( i = 0;i < 3;i++ )
for( int j = 0; j < 3; j++)
cin>>matr[i][j];
for( i = 0; i < 3; i++ )
{
int nRowMin, nColMax;
int nCol = MinInRow((float**)matr, 3, i, nRowMin);
int nRow = MaxInCol((float**)matr, 3, nCol, nColMax);
if( nRowMin == nColMax )
{
cout << "Found element at row[" << i << "], column[" << nCol << "] : " << nRowMin << endl;
}
}
}


Ответ отправлен: 01.04.2003, 14:29
Отправитель: Ramzes



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (34)
C / C++ (25)
Perl (6)
Delphi (15)
Pascal (20)
Basic / VBA (9)
Java / JavaScript (8)
PHP (4)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (31)
Windows NT/2000/XP (23)
"Железо" (28)
Поиск информации (15)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (12)
Юристу
Гражданское право (9)
Семейное право (5)
Трудовое право (5)
КоАП (6)

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




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное