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

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


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

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

Выпуск № 667
от 14.02.2007, 07:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 465, Экспертов: 59
В номере:Вопросов: 3, Ответов: 6


Вопрос № 74804: Добрый день. Помогите пожалуйста реализовать алгоритм для решения нижеизложенной задачи. (2?5)?((12-2)?9)=190 т.е. программа должна заменить знаки вопроса на арифметические действия, так, чтобы в итоге получилось 190 (2+5)*((12-2)+9)...
Вопрос № 74871: Ув. эксперты как в MS Visual Studio 2003 в режиме отладки посмотреть значение той или иной пере менной? Заранее спасибо....
Вопрос № 74881: Здравствуйте, уважаемые эксперты! Возник следующий вопрос. Нужно написать программку, которая при обращении к видеокарте выдаёт на выходе строку, содержащую наименование модели установленной видеокарты; например, такую строку: "RADEON X1600 ...

Вопрос № 74.804
Добрый день.
Помогите пожалуйста реализовать алгоритм для решения нижеизложенной задачи.
(2?5)?((12-2)?9)=190
т.е. программа должна заменить знаки вопроса на арифметические действия, так, чтобы в итоге получилось 190
(2+5)*((12-2)+9)=190
Зарание спасибо
Отправлен: 08.02.2007, 16:33
Вопрос задал: Platon (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Ross
Здравствуйте, Platon!

Код, находящийся в приложении, вы должны поместить в 3 отдельных файла и присоединить к созданному консольному проекту.

Приложение:

Ответ отправил: Ross (статус: 5-ый класс)
Ответ отправлен: 10.02.2007, 14:41

Отвечает: Thread
Здравствуйте, Platon!
Я рекомендую вам разобраться в алгоритме Дейкстры перевода в постфиксную запись, с дальнейшим ее вычислением, что бы вычислить значение выражение. Затем перебором подставляете всевозможные комбинации операторов, и вычисляйте значение. Повторяете до тех пор, пока значение выражения не станет нужным.

Приложение:

Ответ отправил: Thread (статус: 3-ий класс)
Ответ отправлен: 12.02.2007, 14:48


Вопрос № 74.871
Ув. эксперты как в MS Visual Studio 2003 в режиме отладки посмотреть значение той или иной пере
менной? Заранее спасибо.
Отправлен: 08.02.2007, 23:55
Вопрос задал: Hunter20 (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Xoma
Здравствуйте, Hunter20!
Debug -> Add Watch, кажется.
Вообщем ищите панель Watch и в неё добавляйте.
Ответ отправил: Xoma (статус: 1-ый класс)
Ответ отправлен: 09.02.2007, 00:13
Оценка за ответ: 5

Отвечает: ramok
Здравствуйте, Hunter20!

http://www.realcoding.net/article/view/3381
http://www.realcoding.net/article/view/1334
Ответ отправил: ramok (статус: Студент)
Ответ отправлен: 09.02.2007, 01:30
Оценка за ответ: 5

Отвечает: Базанов Иван Александрович
Здравствуйте, Hunter20!
Во первых нужно скомпилировать программы в Debug конфигурации.
Во вторых поставить breakpoint в том месте кода, где хочешь посмотреть значение переменной.
Далее:
1. В debug window Watch прописать имя этой переменной (либо просто туда ее перетащить)
2. Просто навести на имя этой переменой мышку и подождать всплывающей подсказки со значением переменой
---------
Программист ошибается дважды: первый раз при рождении, второй при выборе профессии
Ответ отправил: Базанов Иван Александрович (статус: 4-ый класс)
Ответ отправлен: 09.02.2007, 10:06
Оценка за ответ: 5


Вопрос № 74.881
Здравствуйте, уважаемые эксперты!
Возник следующий вопрос. Нужно написать программку, которая при обращении к видеокарте выдаёт на выходе строку, содержащую наименование модели установленной видеокарты; например, такую строку: "RADEON X1600 Series"
При этом необходимо использовать исключительно WinApi (если такие есть) либо низкоуровневые Си-шные функции (также, если такие есть), либо Ассемблерные функции соответствующих прерываний (такое должно быть, но вот, что именно?).
Заранее спасибо!
Отправлен: 09.02.2007, 02:45
Вопрос задал: VSP (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sergijj
Здравствуйте, VSP!

Отобразить строку так, как Вы хотите, можно следующим образом:

1. Для начала выделить буфер памяти для блока информации размером 512 байт.
Указатель описываем например так:
unsigned char far *vesaInfoBlock = NULL;
Выделяем примерно так:
if (!(vesaInfoBlock = new char [512])) {
exit(-1);
};
2. Выполняем следующий код:

asm{
pusha
mov di, word ptr [vesaInfoBlock]
mov es, word ptr [vesaInfoBlock + 02h];
mov ax, 04F00h
mov bx, ax
int 10h
xchg ah,al
sub ax, bx
jz main_finish1
mov errorCode, ax
}; main_finish1:; asm {
popa
}

Этим мы обратились к VESA и выдернули оттуда заводскую информацию по видеокарте.
Если в errorCode будет не 0, то Ваша видеокарта стандарт VESA не поддерживает.

3. В этой выдранной структуре сначала проверяем первые 4 байта. Они должны быть равны сигнатуре 'VESA'. Если не так, то значит Ваша видеокарта не поддерживает стандарт VESA и продолжение - бессмысленно. А если сигнатура есть - переходим к следующему пункту.

4. В этой же структуре по смещению [+06h] находится искомая Вами ASCIIZ-строка, напечатать которую можно например так:
printf(" OEM string: %s", &vesaInfoBlock[0x06]);

5. Не забыть удалить выделенный буфер памяти, например так:
delete vesaInfoBlock;

Всё вышеописанное прекрасно работает на 16-разрязном BC++ 3.1.

Если действовать через WinAPI, то, скорее всего, придётся работать через драйвер видеокарты. Хотя, иногда, может пройти и так...:)

---------
Стучитесь! И Вас откопают...
Ответ отправил: Sergijj (статус: 8-ой класс)
Ответ отправлен: 09.02.2007, 09:49


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.44 beta от 26.01.2007
Яндекс Rambler's Top100

В избранное