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

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


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


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

Выпуск № 095
от 08.10.2002, 18:51

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


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

Avl2k
Статус: Начальный
Общий рейтинг: 133.33
[Подробней >>]
Pablo
Статус: Профессиональный
Общий рейтинг: 131.45
URL: Моя страничка
[Подробней >>]
Илья
Статус: Начальный
Общий рейтинг: 105.08
[Подробней >>]
 
Jadd
Статус: Опытный
Общий рейтинг: 148.74
[Подробней >>]


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

Вопрос № 273. Доброго времени суток всем экспертам! Вопрос касается графики на bc++ 3.1. Задание следующее реализо... (ответов: 1)
Вопрос № 274. Здравствуйте эксперты! У меня к вам два вопроса. 1) Нужно записать число 0,625d в двоичном виде и но... (ответов: 3)
Вопрос № 275. Привет экспертам. Помогите начинающему программисту(почти чайнику), пытался учится по книгам но там ... (ответов: 2)

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


 Вопрос № 273

Доброго времени суток всем экспертам!
Вопрос касается графики на bc++ 3.1. Задание следующее реализовать движение фигуры, используя 3 метода стирания.
Во-первых проблема - один из методов: "стирание как таковое не производится, а выполняется вывод изображения, помещенного в прямоугольную область, размеры которого определяются таким образом, чтобы новое изображение полностью накрывало старое (с учетом смещения изображения)". Причем вроде бы для этого можно использовать процедуры getimage/putimage. Но при этом у меня должен менятся цвет фигуры. Но как его менять если они оперируют одним и тем же изображением? Можно в принципе рисовать все это дело в буфере (но только не на другой видеостранице) а потом а потом выводить на экран. Вообщем как этот метод реализовать, подскажите.
Во-вторых высылаю вам исходник свой программы. Кому не лень, пожалуйста посмотрите код, может там что то надо исправить, оптимизировать и т.п. У нас новый препод и хочется не ударить в грязь лицом :)).
Всем спасибо за помощь!


Приложение:


Вопрос отправлен: 04.10.2002, 20:48
Отправитель: Jens (jens@supermail.ru)

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

Отвечает Avl2k

Приветствую Вас, Jens!
К сожалению, давно уже непрограммирую на BC++ 3.1, но это не суть. Этот известный метод перемещения изображений (спрайтов), основанный на свойствах логической операции XOR. Алгоритм такой:
1. Выводите изображение цвета (c) в позицию (х,y) c параметром выводить по маске XOR (это должно как-то в PutImage или еще где-то задаваться).
2. Здесь некие действия, например обработка клавиш, в зависимости от которых изменяются координаты и цвет, пусть они запомнены в (x1,y1) и (c1).
3. Выводите изображение цвета (c) в позицию (х,y) c параметром выводить по маске XOR (т.е. в ту же позицию и тем же цветом).
4. x = x1; y = y1; c = c1; перейти к шагу 1.
С уважением, Avl2k.

Ответ отправлен: 07.10.2002, 11:41
Отправитель: Avl2k


 Вопрос № 274

Здравствуйте эксперты!
У меня к вам два вопроса.
1) Нужно записать число 0,625d в двоичном виде и
нормализовать его.
0,625d=0,101b=1,01b*2^-1 (1).
По другому (1) можно записать так: 1,01E-1?
Что означает такое высказывание при описании переменной
типа float: "с точность не менее 6 значащих десятичных
цифр"?
2)
Файл1:
--//--
int a //(2)
--//--
int main()
{
--//--
}
(2)- какой класс памяти и почему?



Вопрос отправлен: 04.10.2002, 20:54
Отправитель: kuper

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

Отвечает Pablo

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

Ответ отправлен: 06.10.2002, 17:52
Отправитель: Pablo


Отвечает Илья

Доброе время суток, kuper!
1. По идее можно, но по правилу записи чисел для компа нет. Это по идее получается число с плавающей запятой, а оно записывается так:
знак мантисы . мантиса знак порядка . порядок
т.е. в твоем случае
0.1,01 1.1
ну ты наверно понимаешь, что -(минус) это 1, а + это 0
2. Это значит что в твоем числе будет 6 цифр после запятой
т.е 23,472831
а значащие цифры - это все кроме нуля
т.е. 23,47000015 записав с точностью шесть знаков получим 23,47
3. Немного не понял

Ответ отправлен: 05.10.2002, 02:36
Отправитель: Илья


Отвечает Avl2k

Здравствуйте, kuper!
1) Нормализация бывает разная, например мантисса от 0 до 1 или от 1 до 10. Если я не ошибаюсь, то "E" обозначает именно "10 в степени", правда не уверен. может ли оно употребляться для двоичной с/c. Количество десятичных значащих цифр, насколько я помню, это количество цифр после запятой до последней не нулевой цифры (включая ее), т.е. в числе 0.00203 - 5 значащих десятичных цифр.
2) В данном случае, это определяющее объявление глобальной переменной.
Свойства:
- начальное значение 0;
- глобальное время жизни;
- доступна всем модулям трансляции проекта (из других файлов может быть достпуна через ссылочное объявление с extern). Глобальная переменная с таким именем в проекте может быть только одна.
Почему:
- объявлена вне всех функций;
- не указан класс памяти extern;
- не указан класс памяти static;
- не указано явно начальное значение;
С уважением, Avl2k.

Ответ отправлен: 07.10.2002, 12:32
Отправитель: Avl2k


 Вопрос № 275

Привет экспертам.
Помогите начинающему программисту(почти чайнику),
пытался учится по книгам но там всё как то мутно.
Если не в лом, пришлите пожалуйста пару уроков для начинающих если можно с примерами.
За ранее благодарен.



Вопрос отправлен: 05.10.2002, 17:44
Отправитель: max

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

Отвечает Jadd

Добрый день, max!
Пиши сюда: jadd@rol.ru дам тебе пару уроков :)


Ответ отправлен: 07.10.2002, 13:59
Отправитель: Jadd


Отвечает Avl2k

Здравствуйте, max!
Вопрос очень общий. Что значит пару уроков? Чтобы начать кодировать нужно иметь алгоритм решения какой-либо задачи. Чтобы закодировать алгоритм на каком-либо из языков программирования, нужно знать как минимум синтаксис этого языка. По вопросу концепции и синтаксиса C++ - читайте Страуструпа (лучше в "бумажном" виде).
Ссылки:
http://khpi-iip.mipk.kharkiv.edu/library/extent/prog/index.htm#pgm_c - учебники
http://khpi-iip.mipk.kharkiv.edu/library/pgm/index.htm - Страуструп
С уважением, Avl2k.

Ответ отправлен: 07.10.2002, 11:18
Отправитель: Avl2k



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

Внимание!
Форма может работать некорректно в почтовых программах "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 (41)
C / C++ (30)
Perl (4)
Delphi (17)
Pascal (21)
Basic / VBA (10)
Java / JavaScript (10)
PHP (8)
MySQL / MSSQL (10)
Пользователю
Windows 95/98/Me (37)
Windows NT/2000/XP (28)
"Железо" (35)
Поиск информации (14)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (15)
Юристу
Гражданское право (7)
Семейное право (3)
Трудовое право (4)
КоАП (4)

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




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

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

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

В избранное