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

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


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

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

Выпуск № 626
от 30.12.2006, 14:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 430, Экспертов: 43
В номере:Вопросов: 5, Ответов: 11


Вопрос № 68400: Добрый день, уважаемые эксперты! Возникли следующие вопросы. Программирую на С/С++, используя исключительно WinApi. Известен способ получения нестандартной формы для окна или элемента управления, работая с регионами и BITMAP(ом), уд...
Вопрос № 68412: В массиве надо поменять местами максимальный отрицательный и минимальный положительный элементы я их нахожу, а как вывести массив что бы они поменялись не знаю, подскажите плиз, нахождение элемеентов в приложении...
Вопрос № 68438: Добрых суток всем! Дали мне задание сделать под Линуксом что-то типа чата, использую разделяемую память. Т.е. открываем две консоли, в каждой из них запускаем прогу. Теперь сообщения отправленные из первой должна вывести на экран вторая прог...
Вопрос № 68475: Здравствуйте,Уважаемые эксперты!Вопрос чайника:задался целью изучить язык програмированния из раздела С,но их сейчас настолько много(С,С++,Visual C++,С#) что я и не знаю на каком остановиться и чем они отличаются, где и какой мануал можно скачать.Зар...
Вопрос № 68518: Здраствуйте все кто читает письмо. Я начинаю изучать С++, подскажите пожалоста где можно скачать книги по даному языку програмирования. А также подскажите ссылки на сайти, которие имеют отношение к даному языку програмирования. Зарание спаси...

Вопрос № 68.400
Добрый день, уважаемые эксперты!

Возникли следующие вопросы. Программирую на С/С++, используя исключительно WinApi.

Известен способ получения нестандартной формы для окна или элемента управления, работая с регионами и BITMAP(ом), удаляя из последнего ненужные биты и присваивая резельтат тому самому региону. Однако мои знания ограничиваются использованием для таких целей bmp-файлов. Таким образом вопросы мои формулируются так:

1)Как придать окну нестандартный вид, используя такие форматы, как jpeg, gif.

2)Как сделать окно нестандартного вида на основе готового файла png, поддерживающего прозрачные области.

Основной акцент я ставлю на второй вопрос, хотя ответ на первый также интересует.

Коды с примерами всецело приветствуются.
Ссылки на источники, где можно получить ответы на данные вопросы так же не лишние.

Заранее СПАСИБО!
Отправлен: 24.12.2006, 17:08
Вопрос задал: VSP (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sergey A. Wedensky
Здравствуйте, VSP!

Для чтения форматов JPEG, GIF, PNG, TIFF, как впрочем и BMP можно использовать GDI+. Кстати, там есть и много других полезных функций - филтрация, создание миниатюр, преобразование формата и пр. В приложении пример кода. Не уверен, правда, что альфа-канал в первом байте, посмотрите сами.

Приложение:

Ответ отправил: Sergey A. Wedensky (статус: 10-ый класс)
Ответ отправлен: 26.12.2006, 12:44


Вопрос № 68.412
В массиве надо поменять местами максимальный отрицательный и минимальный положительный элементы
я их нахожу, а как вывести массив что бы они поменялись не знаю, подскажите плиз, нахождение элемеентов в приложении

Приложение:

Отправлен: 24.12.2006, 19:01
Вопрос задал: Андрюхаха (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: kool
Здравствуйте, Андрюхаха!
Напрмер так! (см. приложение).

Приложение:

Ответ отправил: kool (статус: 2-ой класс)
Ответ отправлен: 24.12.2006, 19:53
Оценка за ответ: 4

Отвечает: Терсков Сергей
Здравствуйте, Андрюхаха!
Попробуй вот такой вариант

Приложение:

Ответ отправил: Терсков Сергей (статус: 3-ий класс)
Ответ отправлен: 25.12.2006, 04:00
Оценка за ответ: 5

Отвечает: dentist
Здравствуйте, Андрюхаха!
думается в переменные min и max лутше запомнить индексы соответствующих элементов.
тогда обмен значениями может выглядеть так:

a[min] += a[max];
a[max] = a[min] - a[max];
a[min] -= a[max];

---------
"Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 7-ой класс)
Ответ отправлен: 25.12.2006, 09:51
Оценка за ответ: 4


Вопрос № 68.438
Добрых суток всем!

Дали мне задание сделать под Линуксом что-то типа чата, использую разделяемую память. Т.е. открываем две консоли, в каждой из них запускаем прогу. Теперь сообщения отправленные из первой должна вывести на экран вторая программа. И соответственно наоборот. Проблема одна. Как одноврмененно ждать от пользователя ввода текста и проверять не пришло ли сообщение от другой программы? Или же это не возможно?
Отправлен: 24.12.2006, 22:34
Вопрос задал: Дмитриев Денис Юрьевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Torsten
Здравствуйте, Дмитриев Денис Юрьевич!
В программировании возможно все, кроме ИИ.

Реализовать можно несколько способами.
1) использовать неблокируемый ввод/вывод
2) использовать потоки

В первом случае через fcntl устанавливаем принимающему сокету и файловым дескрепторам ввода/вывода флаг O_NONBLOCK. В цикле проверяем состояния ввода (ввел ли что-нибудь пользователь или нет), а так же слушаем не пришло ли нам что-нибудь на сокет. Это достаточно сложно кодить нужно много, ну вообще не удобно.

Второй способ - с помощью потоков. Создается дополнительный поток для прослушки или ввода данных. Один поток слушает с помощью select не пришло ли что-нибудь, ну и выводит это дело. А второй обрабатывает ввод данных.

Все это побродно описано у Стивенса - unix:разработка сетевых приложений. Там и исходные коды есть и комментарии и куча другой полезной информации.
---------
#define MAGIC_NUMBER 0xdeface
Ответ отправил: Torsten (статус: 4-ый класс)
Ответ отправлен: 24.12.2006, 23:02
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Попробую что-нибудь, может получится.

Отвечает: Ramok
Здравствуйте, Дмитриев Денис Юрьевич!

для этого испольщуется системный вызов select().
Есть множество примеров использования оного
Ответ отправил: Ramok (статус: 3-ий класс)
Ответ отправлен: 25.12.2006, 03:32
Оценка за ответ: 5
Комментарий оценки:
Пока пытаюсь сделать иным путём, но может и это попробую.


Вопрос № 68.475
Здравствуйте,Уважаемые эксперты!Вопрос чайника:задался целью изучить язык програмированния из раздела С,но их сейчас настолько много(С,С++,Visual C++,С#) что я и не знаю на каком остановиться и чем они отличаются, где и какой мануал можно скачать.Заранее спасибо!
Отправлен: 25.12.2006, 06:26
Вопрос задал: Axe (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: n0name
Здравствуйте, Axe!
C++ и Visual C++ это не разные языки. C++ - это надстройка над С, вводящая ООП и некоторые возможности. C# в свою очередь это тот же C++, по синтаксису практически нет изменений.
Выбор языка зависит от того, что вы собираетесь программировать на нём. Если кроссплатформенные приложения, то лучше использовать С, если объекто-ориентированные, то C++.
Ответ отправил: n0name (статус: 8-ой класс)
Ответ отправлен: 25.12.2006, 07:27
Оценка за ответ: 4

Отвечает: dentist
Здравствуйте, Axe!
Visual C++ это вообще не язык, это среда разработки.
С++ и С# это всего лишь результат эволюции Си. Так что начав изучать Си, вы так или иначе, рано или поздно, в погоне за более удобными инструментами выйдите на С++ и/или на Си шарп.
В любом случае, советую начинать с изучения именно Си, т.к. он, как вы уже надеюсь поняли является "вступительным экзаменом" в школу С++/С#
---------
"Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 7-ой класс)
Ответ отправлен: 25.12.2006, 10:00
Оценка за ответ: 5

Отвечает: Torsten
Здравствуйте, Axe!
Значит так. С# вычеркиваем сразу. Этот язык никакого отношения к Си не имеет и не имел. Это аналог java от microsoft. Microsoft попытался за счет названия (буквы Си) привлечь в свои ряды программистов, конечно же настоящие программисты на такую чушь не поддались.

С/С++ - это можно считать что один язык. Все начиналось с Си который создавался как улучшенный ассемблер в 70-х годах. Затем в 80-х появился С++ - это Си с поддержкой обьекто-ориентированного программирования.

Visual C++ - это среда разработки от microsoft. Она облегчает процесс создания приложений для Windows ! Не для каких либо других систем. Сердце среды это библиотека MFC позволяющая быстро создать win32 приложения. Но в любом случае Visual C++ это обычный С++, никаких отличий в синтаксисе или чем-то еще нету. Есть библиотека MFC, но этих библиотек куча и бесплатных и коммерческих. От умения ими пользоватся (а точнее от умения пользоватся документацией к библиотеками) во многом зависит то, насколько быстрее и правильнее программист сможет сравится с задачей.

Я не знаю на чем тебе нужно остановится, но в ВУЗАХ практикуется метода вначале изучается Си, затем С++. И в любом случае синтаксис С++ базируется на синтаксисе Си, плюс добавляет группу операторов для обьектно-ориентированного программирования.

По какой книге изучать абсолютно не важно, главное желание. Вот на этих сайтах можешь скачать практически любую книгу по С/С++.
http://c-books.info/
http://www.bookshelf.ru/
http://www.librus.ru/ (требуется регистрация + скачка с rapidshare)
---------
#define MAGIC_NUMBER 0xdeface
Ответ отправил: Torsten (статус: 4-ый класс)
Ответ отправлен: 25.12.2006, 10:37


Вопрос № 68.518
Здраствуйте все кто читает письмо.
Я начинаю изучать С++, подскажите пожалоста где можно скачать книги по даному языку програмирования. А также подскажите ссылки на сайти, которие имеют отношение к даному языку програмирования.
Зарание спасибо.
P.S. Вибачайте за помилки, я з України, російської мови ніколи не вчив.
Отправлен: 25.12.2006, 14:00
Вопрос задал: Мельник Виктор (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Santana
Здравствуйте, Мельник Виктор!
http://c-books.info/books/load.php?ty=c
http://books.kulichki.ru/
http://www.helloworld.ru/,
Ответ отправил: Santana (статус: 8-ой класс)
Ответ отправлен: 25.12.2006, 14:23

Отвечает: Ramok
Здравствуйте, Мельник Виктор!

тут ви знайдете багато цiкавого Ж;-))
http://proklondike.com/
http://www.wmasn.com/books/
http://www.livejournal.com/users/den80/27489.html
http://openlib.org.ua/
http://zipsites.ru/
http://c2p.ru/
http://all-ebooks.com
Ответ отправил: Ramok (статус: 3-ий класс)
Ответ отправлен: 25.12.2006, 16:49


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

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

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

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

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


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


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

В избранное