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

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


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

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

Выпуск № 707
от 11.04.2007, 16:05

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


Вопрос № 81209: Здравствуйте уважаемые коллеги! Задача состоит в следующем: имеется скелет трехмерной модели в виде списка костей, каждая из которых имеет id и id родительской кости. Нужно создать структуру скелета в виде дерева с произвольной степенью исход...
Вопрос № 81231: Решил изучить программирование на с++ Borland с нуля. Подскажите плиз с какой литературы лучше начать,где бы доступно и понятно объяснялись азы....
Вопрос № 81236: Здравствуйте г-да эксперты. Я начинающий в С++, и у меня есть желание создать программу по выводу на экран пользователя сообщений вроде "Отдохни", "отойди от компьютера на время". Охота чтобы выводились сообщения на прозрачной фор...
Вопрос № 81240: Подскажите я покупаю третий диск С++ Builder 6 на рынке и у меня проблемы с компиляцией. На моей машине работает, а на других нет. Да пробовал по методике перекомпилироватьсогласно приведенной ниже схеме. В меню Project->Options измен...
Вопрос № 81304: добрый день! курсовая у меня - надо написать обработчик базы данных MS Access в C++ Builder 6. перерыл весь инет, накачал кучу книг, потратил уйму денег, и все без толку - кругом одни общие фразы и бесполезная информация... если можно, подел...
Вопрос № 81331: Здраствуйте знатоки,помогите мне понять почему я немогу открыть функцией fopen() excel документ для вывода значений на консоль.Перепробовал все расширения какие только существуют наверное..значит в офисных документах надо что то ещё учитывать.Что?Спа...

Вопрос № 81.209
Здравствуйте уважаемые коллеги!
Задача состоит в следующем: имеется скелет трехмерной модели в виде списка костей, каждая из которых имеет id и id родительской кости.
Нужно создать структуру скелета в виде дерева с произвольной степенью исхода (каждая кость может иметь много потомков)

На портале нашел что-то типа этого:

template <class T>

struct tree_node
{
T item;
vector <tree_node <T>> sub_nodes;
};

struct tree
{
tree_node <T> * root;
};

Собственно вопрос: как можно реализовать обход этого дерева?
Отправлен: 05.04.2007, 16:46
Вопрос задал: Ross (статус: 6-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mister Vova
Здравствуйте, Ross!
Ответ: Число пересечении отрезков ломанной плюс 1

Не проверял данный пример
Obhod( * AdresVhoda)
{

vector <T>::iterator m_TekNod;
m_TekNod= AdresVhoda.begin();
while (m_TekNod!= AdresVhoda.end())
{
Obhod( m_TekNod.sub_nodes );

}
.. ..
}
Но данный метод не соответствует требованием

Смотри пример ниже
Думаю подойдет

Приложение:

---------
Всё про Себя Тут Www.SahajaYoga.Ru

Ответ отправил: Mister Vova (статус: 2-ой класс)
Ответ отправлен: 05.04.2007, 21:51
Оценка за ответ: 4
Комментарий оценки:
Ты, видимо, немного привратно понял меня. Структура скелета должна иметь вид дерева, а не списка.
Т.е. имеется корневой узел, который имеет список потомков, каждый из которых также имеет потомков и т.д.
Но из твоего ответа я почерпнул достаточно информации, чтобы написать нужную функцию. Спасибо!

P.S не понял насчет ломаной...


Вопрос № 81.231
Решил изучить программирование на с++ Borland с нуля. Подскажите плиз с какой литературы лучше начать,где бы доступно и понятно объяснялись азы.
Отправлен: 05.04.2007, 19:37
Вопрос задал: Endru (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Menand
Здравствуйте, Endru!

Студентам дают:
Керниган, Ричи - Язык С
потом Т.А. Павловская СС++

А так - купите книжку как можно толще чисто по СС++, в них всё очень сильно разжёвывают, но перед покупкой почитайте в магазине несколько наиболее приглянувшихся - что больше понравиться (где понятней будет) то и берите - ибо это вещь индивидуальная
Ответ отправил: Menand (статус: 7-ой класс)
Ответ отправлен: 05.04.2007, 20:03

Отвечает: Lomer
Здравствуйте, Endru!
Для начала посоветовал бы книгу Бобровского "Самоучитель программирования на языке С++ в системе С++Builder" и справочник Архангельского. Думаю, хватит ;)
Ответ отправил: Lomer (статус: 3-ий класс)
Ответ отправлен: 05.04.2007, 20:17


Вопрос № 81.236
Здравствуйте г-да эксперты. Я начинающий в С++, и у меня есть желание создать программу по выводу на экран пользователя сообщений вроде "Отдохни", "отойди от компьютера на время". Охота чтобы выводились сообщения на прозрачной форме на некоторый промежуток времени(в секундах). Заранее спасибо.
Отправлен: 05.04.2007, 20:15
Вопрос задал: Lord_Alexius (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Menand
Здравствуйте, Lord_Alexius!

ну на С делать сложно, а вот в Визуал СтудиоС++ Билдер проще вразы

Создаёте форму, в свойствах обьекта указываете прозрачность в процентах, кидаете на неё таймер и делаете событие на таймере.

Текст кидать в Лейбл, Форму прятать визиблом.
Ответ отправил: Menand (статус: 7-ой класс)
Ответ отправлен: 05.04.2007, 20:22

Отвечает: Lomer
Здравствуйте, Lord_Alexius!
Промежуток времени задается в Sleep(int milliseconds); т.е., например, Sleep(60000) приостановит действие программы на минуту.
Теперь о прозрачности.
//Для начала надо получить хэндл окна, которому нужна прозрачность:
HWND hwnd=FindWindow(NULL,"<заголовок окна>");
//После этого добавляем к стилю окна WS_EX_LAYERED:
SetWindowLong(hwnd,GWL_EXSTYLE,GetWindowLong(hwnd,GWL_EXSTYLE)|WS_EX_LAYERED);
//После чего устанавливаем прозрачность 50%:
SetLayeredWindowAttributes(hwnd,0,(255*50)/100,LWA_ALPHA);

В 6 Билдере в свойствах формы появились AlphaBlend и AlphaBlendValue.
Здесь всё проще: ставим AlphaBlend в true, а потом ставим нужное значение AlphaBlendValue.
Ответ отправил: Lomer (статус: 3-ий класс)
Ответ отправлен: 05.04.2007, 20:31


Вопрос № 81.240
Подскажите я покупаю третий диск С++ Builder 6 на рынке и у меня проблемы с компиляцией. На моей машине работает, а на других нет.

Да пробовал по методике перекомпилироватьсогласно приведенной ниже схеме.
В меню Project->Options изменяю согласно описания. Надеюсь все эти описания знают!

Чесно не чего не получается у меня даже таких названий во вкладке Packades (пакеты) нет, как Built with runtime packages, в место нее Borland Sample Controls Design Time Package, по крайней мере преревод на русский звучит анологично

Но всеравно неработает.

пробовал откомпилировать уже работаюшие, все просто шикарно как по маслу. Но ведь это не выход из положения. Хочется и по серьезнее прилажения писать, а для этого необходимо настраивать метод компиляции.

Подскажите как вы вышли из положения. Если купили лицензионную версию или нашли нормально ломаную без этих проблем?

Может ли кто сикретам поделится или если не жалко нарезать свою версию мне на мыло?
Отправлен: 05.04.2007, 20:55
Вопрос задал: Ivan Abramovich (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Unreal2004
Здравствуйте, Ivan Abramovich!
Нормально вылеченный CB6 имеет 6 дисков и 4 сервис пака.
Полезные из них 2 диска.
Соответственно вес этой штуки приличный.
Можно сконнектиться и договоритьься, я в свое время тоже купил около 4 дистрибтивов пока нашел нормальный.
Еще один способ - положить в директорию программы библиотеки которых не хватает для запуска программы.
я поставляю с дистрибутивом
rtl60.bpl
vcl60.bpl
vclx60.bpl
borlndmm.dll
cc3260mt.dll
vclx50.bpl
Весят не очень мало, зато когда программа апгрейдится вес экзешника она весит копейки.
Ответ отправил: Unreal2004 (статус: 2-ой класс)
Ответ отправлен: 06.04.2007, 09:37
Оценка за ответ: 5
Комментарий оценки:
Интересный ответ!


Вопрос № 81.304
добрый день!
курсовая у меня - надо написать обработчик базы данных MS Access в C++ Builder 6. перерыл весь инет, накачал кучу книг, потратил уйму денег, и все без толку - кругом одни общие фразы и бесполезная информация...
если можно, поделитесь - как создать соединение с базой данных, стандартные операции (вставка, удаление и т.п.), вывод этого всего на экран - или хотя бы скажите, где можно найти толковую документацию по этой теме...
заранее спасибо
Отправлен: 06.04.2007, 13:27
Вопрос задал: Waitekk (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Olegzp
Здравствуйте, Waitekk!
Из книг могу предложить В. Фаронов "DELPHI разработка приложений для баз данных и интернета"
http://wmate.ru/ebooks/book165.html (16,4 МБ)
А.Сорокин "DELPHI разработка баз данных"
А.Я.Архангельский "Работа с локальными базами данных в DELPHI 5"
Н.Культин "C++ Builder в задачах и примерах"
http://wmate.ru/ebooks/book221.html (14.4 мб)
А.Я. Архангельский "Программирование в C++ Builder"

Ответ отправил: Olegzp (статус: 1-ый класс)
Ответ отправлен: 09.04.2007, 12:24


Вопрос № 81.331
Здраствуйте знатоки,помогите мне понять почему я немогу открыть функцией fopen() excel документ для вывода значений на консоль.Перепробовал все расширения какие только существуют наверное..значит в офисных документах надо что то ещё учитывать.Что?Спасибо.
Отправлен: 06.04.2007, 15:24
Вопрос задал: Стаховский Валерий Генриковичь (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Ilkras
Здравствуйте, Стаховский Валерий Генриковичь!
трудно сказать почему вы не смогли открыть документ не видя кода. Пошлите тот кусок вашей програмы, который формирует имя, открывает документ и обрабатывает ошибку открытия - будет проще.
Ответ отправил: Ilkras (статус: 6-ой класс)
Ответ отправлен: 06.04.2007, 15:56

Отвечает: Ray
Здравствуйте, Стаховский Валерий Генриковичь!
В файлах *.xls до много всякой информации, которая нужна самому EXCEL,
Надо либо читать по байтно, либо изучать формат как следует.
Ответ отправил: Ray (статус: 1-ый класс)
Ответ отправлен: 06.04.2007, 16:14

Отвечает: Lomer
Здравствуйте, Стаховский Валерий Генриковичь!
Офисные документы хранятся в формате, отличном от текстовых документов. Дабы осознать это, откройте какой нибудь файл с расширением xls в блокноте. Вы увидите лишь кучу нечитаемых символов. Для работы с файлами Excel поищите документацию в Интернете.
Я за пару минут нашел лишь вот такую вещь:
http://ftp.45.free.net/pub/catdoc/catdoc-0.94.2.zip
Это программа для MS DOS && Linux ,служит для работы с офисными документами. Идет с исходниками. Учитывая тот факт, что исходники весят 144 КБ, вряд ли Вы сможете реализовать работу с *.xls достаточно просто :(
Ответ отправил: Lomer (статус: 3-ий класс)
Ответ отправлен: 06.04.2007, 17:36
Оценка за ответ: 5

Отвечает: Sergijj
Здравствуйте, Стаховский Валерий Генриковичь!

Маленький ликбез:
Бит - минимальная единица информации в информатике (сорри за тафтологию).
Байт - минимальная прямо адресуемая единица информации (минимальная единица информации, которая может храниться отдельно, в отдельном адресном пространстве) = 8 бит.
Файл - сохранённая совокупность байт, расположенных в определённой "форматом файла" линейной последовательности и имеющая "имя файла" и "расширение файла", которое (расширение) и является идентификатором "типа" или "формата" файла.

По своему "формату" или "типу" файлы бывают типизированные (те, где информация храниться в виде каких-то структур со своей системой связей) и нетипизированные(сплошной поток неразделяемых данных).

Простейший типизированный файл - текстовый: структуры - слова, строки, связи между ними - знаки препинания, пробелы, символы перевода строки. Попробуйте отсюда убрать перевод строки - получите текст в разрушенной структурой и совершенно неудобочитаемый...:) Или, ещё нагляднее: уберите из предложения все пробелы и знаки препинания (которые выполняют функцию структуризации при предложении). Убрали? А теперь попробуйте прочитать!... А если это не предложение, а длинный текст?

Ваша попытка прочитать файл XLS-формата "просто в поток" (т.е. "в лоб") похожа как раз на вышеприведённый пример, только XLS-формат гораздо структурированее, чем текстовый формат (*.txt), ergo, сложнее.

Читать _байты_ из файла - мало. Нужно знать _структуру_ (последовательность, сгруппированность и т.д...) этих байт в файле.

Формат *.xls - закрытый. Нужно знать _что_ за структура представлена данной конкретной совокупностью байт, _как_ она положена, какое отношение она имеет к "следующему байту в этом файле" и т.д. Т.е. эта информация как бы "зашифрована" (в смысле "чтобы прочитать, нужно знать формат"). А эта информация (формат) недоступна простому смертному. Доступна она официально только тому, кто заплатил дядюшке Билли $$$. Если Вы не хотите платить, но получить данные из *.xls очень хочется, то Вам сначала нужно суметь "расшифровать" XLS-формат (понять какой байт _зачем_ здесь лежит и почему именно _здесь_ лежит в файле).

И только после расшифровки (если не считать OLE и прочих костылей) Вы сможете прочитать любое поле этого файла методом похожим на Вашу попытку.

Успехов в освоении программирования!
И не разочаровывайтесь в нём, ибо хоть оно и труднее, чем кажется на первый взгляд, но зато и интереснее, чем кажется на первый взгляд...;)
---------
Стучитесь! И Вас откопают...
Ответ отправил: Sergijj (статус: 9-ый класс)
Ответ отправлен: 06.04.2007, 17:47
Оценка за ответ: 5

Отвечает: kool
Здравствуйте, Стаховский Валерий Генриковичь!
Практически любой файл можно открыть этой функцией,
нужно правильно задавать ее параметры, которые
ты не приводишь. А вот использовать эти файлы
нужно при помощи спецыальных функций либо самому
изучать формат этих файлов и делать все вручную.
Но это уже другой вопрос.
Удачи!

---------
I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 06.04.2007, 19:40
Оценка за ответ: 4


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.47 от 06.04.2007
Яндекс Rambler's Top100

В избранное