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

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


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


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

Выпуск № 231
от 11.04.2003, 20:30

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


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

akul
Статус: Опытный
Общий рейтинг: 114.91
Телефон: +6019-6416245
[Подробней >>]
Morgion
Статус: Начальный
Общий рейтинг: 120.68
[Подробней >>]
Avl2k
Статус: Опытный
Общий рейтинг: 122.46
[Подробней >>]
 
Dzik
Статус: Профессиональный
Общий рейтинг: 114
URL: Разработка игрушек
[Подробней >>]
Ramzes
Статус: Опытный
Общий рейтинг: 129.76
URL: :))
[Подробней >>]


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

Вопрос № 679. Зравствуйте... Пожалуйста расскажите хотя бы немного о "дальних" указателях и ключевом сло... (ответов: 1)
Вопрос № 681. Доброе время суток, господа эксперты! Опять у меня вопрос! Надо написать прогу,которая сравнивает 3 ... (ответов: 1)
Вопрос № 682. Уважаемые эксперты! Прошу помощи по еще одному вопросу по VC++.В документации пишут, что 1 интервала... (ответов: 4)

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


 Вопрос № 679

Зравствуйте...
Пожалуйста расскажите хотя бы немного о "дальних" указателях и ключевом слове far... Читаю сейчас электронную книгу Г. Шилдта "С для профессиональных программистов". Книга безнадежно старая, и по этому у меня вызывает очень много недоумений. Вот например в ней употребляется это самое ключевое слово far, но до этого я про такую вещь даже не слышал, и в проде как в стандарт АНСИ оно не входит... Пожалуйста объясните как его и где употреблять. И если не трудно поведайте пожалуйста немного о "моделях пямяти" (в этом ничего не понимаю).
ЗЫ Использую Борланд С++ 3.1 и хочу написать нечно более менне приличное под ДОС.
Огромнейшее спасибо всем кто ответит (если таковые будут).



Вопрос отправлен: 06.04.2003, 21:38
Отправитель: Hello

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

Отвечает akul

Приветствую Вас, Hello!
конечно не входит. ни одна платформозависимая лажа не может входить в него. это модификатор дальнего перехода то есть за пределы сегмента. в моделях tiny, small не имеет смысла поскольку все в одном сегменте.

Ответ отправлен: 07.04.2003, 01:18
Отправитель: akul


 Вопрос № 681

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


Приложение:


Вопрос отправлен: 08.04.2003, 16:20
Отправитель: Ольга

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

Отвечает Morgion

Приветствую Вас, Ольга!
Ну- во первых- после include не надо запятую ставить, потому что это деректива препроцессора.
Во вторых- если тебе не известны зарания размерности массива, то ты можешь поступить так- передавать указатель на твою матрицу, а заодно размерности.
Разберись, как работают указатели с многомерными массивами, т.е. как такой массив распологается в памяти и какой индекс массива меняется быстрее всего. Когда разберёщся- поймёшь, как обращатся к массиву не через индексацию, а через прямой доступ при помощи адресной арифметики.
Пример.
int a[7];
тогда a[5] тоже самое, что и *(a+5)
int b[10][20]
тогда b[4][7] тоже самое, что и *( ((int*)a)+20*4+7)//20-размерность наиболее быстро меняющегося индекса (при просмотре массива в памяти).
int c[10][20][30]
c[3][4][5]- тоже, что и *( ((int*)c)+5+4*30+3*30*20)
с[k][j][i]==*( ((int*)c)+i+j*size_I+k*size_I*size_J)
Если поняла- поздравляю- я в этом и сам уже запутался 8). На самом деле всё просто- надо тебе самой поэкспериментировать- и всё получится. А на чужих советах не будет опыта. Знания может и будут, но только абстрактная теория :(


Ответ отправлен: 09.04.2003, 20:51
Отправитель: Morgion


 Вопрос № 682

Уважаемые эксперты!
Прошу помощи по еще одному вопросу по VC++.В документации пишут, что 1 интервала таймера = 1 миллисекунде.В программе при срабатывании таймера выдается импульс на внешнее устройство, когда замерил период этих импульсов осциллографом, получилось, что период равен приблизительно 53 мсек.Как это объяснить?И главное исправить!
Спасибо.



Вопрос отправлен: 08.04.2003, 20:24
Отправитель: Sergey

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

Отвечает Avl2k

Приветствую Вас, Sergey!
В Windows разрешение таймера различается в разных версиях:
Windows 95/98 -- 55 milliseconds
Windows NT 3.1 -- 16 milliseconds
Windows NT 3.5 and later -- 10 milliseconds
поскольку они по-разному обрабатывают аппартные прерывания от таймера. Сделать с этим под Windows вряд-ли что-нибудь удастся, поскольку в самой ОС многое завязано на частоту таймера.
С уважением, Avl2k.

Ответ отправлен: 09.04.2003, 10:44
Отправитель: Avl2k


Отвечает Morgion

Здравствуйте, Sergey!
Надо тебе было ассемблерщикам вопрос задать. Дело в том, что стандартный таймер у компа работает с чатотой 18 с чем-то герц (может 19.2). 1/18=0.055...=55мс. Поэтому интервал меньше 55 (53- не важно) мс ты задать не сможешь с помощью SetTimer. Нужно использовать какие-то другие, а какие- не помню :(...

Ответ отправлен: 09.04.2003, 20:08
Отправитель: Morgion


Отвечает Dzik

Здравствуйте, Sergey!
В стандартном режиме таймер срабатывает 18 раз в секунду.

Ответ отправлен: 09.04.2003, 07:01
Отправитель: Dzik


Отвечает Ramzes

Здравствуйте, Sergey!
Посмотрим на вопрос с двух сторон
Есть финкция SetTimer(UINT nIDEvent, UINT nElapse, pfn)
где nElapse это интервал времени в миллисекундах, по исте-
чении которого твоему окну будет посылатся сообщение от таймера.
С другой стороны, существует аппаратный таймер, который генерирует прерывание 18.2 раза в секунду, то есть приблизительно с интервалом 54 мкс, что ты и показали твои измерения.


Ответ отправлен: 09.04.2003, 13:10
Отправитель: 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 (36)
C / C++ (27)
Perl (6)
Delphi (16)
Pascal (21)
Basic / VBA (10)
Java / JavaScript (9)
PHP (4)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (29)
Windows NT/2000/XP (23)
"Железо" (26)
Поиск информации (14)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (12)
Юристу
Гражданское право (9)
Семейное право (5)
Трудовое право (5)
КоАП (6)

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




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

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

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

В избранное