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

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


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

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

Выпуск № 783
от 01.07.2007, 14:35

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


Вопрос № 92917: Здравствуйте. этот вопрос задавал, но немного не правильно, поэтому не получил ответа. так вот. декодирую дату. (текст внизу) и записываю их в переменные unsigned short, и взависимости от того какой сегодня месяц нужно вывести соответвующую надпи...
Вопрос № 92953: Подскажите новичку: с чего лучше начать? Builder С++ или Visual Studio? Конкретных целей нет, но хотелось бы знать какая из них более перспективна/удобная/широкоплатформеность по Вашему усмотрения( с которой Вы начали бы работать, если пришлось бы уч...

Вопрос № 92.917
Здравствуйте.
этот вопрос задавал, но немного не правильно, поэтому не получил ответа. так вот. декодирую дату. (текст внизу) и записываю их в переменные unsigned short, и взависимости от того какой сегодня месяц нужно вывести соответвующую надпись.
например: if (month=6) Label1->Caption="Июнь";
я понимаю что сначало нужно перевести из unsigned short в int, но как это сделать не пойму. подскажите

Приложение:

Отправлен: 26.06.2007, 02:23
Вопрос задал: Michail_bal (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Терсков Сергей
Здравствуйте, Michail_bal!
Стандарт C++ рекомендует для преобразования типов использовать оператор static_cast. Например:

unsigned short a = 10;
int b = static_cast(a);

или в старом С-стиле:

unsigned short a = 10;
int b = (int)a;

Сейчас лучше использовать первый вариант (хотя он и более громоздкий, но более безопасный). И еще кое-что - вот этой строкой вы ничего не добьетесь

if (month=6) Label1->Caption="Июнь";

здесь внутри if нужно использовать не оператор присваивания = , а оператор сравнения ==.

if (month == 6) Label1->Caption="Июнь";

Это довольно частая ошибка (даже просто опечатка), но иногда трудно уловимая. Многие советуют писать следующим образом:

if (6 == month) Label1->Caption="Июнь";

, так как если вы поставите оператор = в данном случае, то компилятор выдаст ошибку о присвоении значения константе.
Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 26.06.2007, 04:30

Отвечает: Sov
Здравствуйте, Michail_bal!

unsigned short day,month,year;
Date().DecodeDate(&year,&month,&day);
switch(month)
{
case 1: Label1->Caption="Январь";break;
case 2: Label1->Caption="Февраль";break;
case 6:Label1->Caption="Июнь";break;
default: Label1->Caption="Остальные";break;
}
Ответ отправил: Sov (статус: 5-ый класс)
Ответ отправлен: 26.06.2007, 05:28

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

Вместо if (month=6) Label1->Caption="Июнь"; нужно
if (month == 6) Label1->Caption="Июнь";

В вашем случае условие будет истинным всегда, независимо от значения переменной month, т.к. оператор присваивания ('=') возвращает результат (6), который является ненулевым, а следовательно истинным.

Еще бы посоветовал использовать оператор swith вместо if:
switch (month)
{
case 1:Label1->Caption = "Январь";break;
case 2:Label1->Caption = "Февраль";break;
//----и т.д.
default:Label->Caption = "Неверный месяц";break;
}
---------
Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 26.06.2007, 09:24


Вопрос № 92.953
Подскажите новичку: с чего лучше начать? Builder С++ или Visual Studio? Конкретных целей нет, но хотелось бы знать какая из них более перспективна/удобная/широкоплатформеность по Вашему усмотрения( с которой Вы начали бы работать, если пришлось бы учить С++).
Отправлен: 26.06.2007, 12:48
Вопрос задал: OlegSSSSS (статус: Посетитель)
Всего ответов: 8
Мини-форум вопроса >>> (сообщений: 9)

Отвечает: Maxim V.G.
Здравствуйте, OlegSSSSS!
Я бы предложил начинать изучение с языка С. После понимания языка С я бы предложил изучить различия между языками С и С++. А после этого выбирать компилятор и IDE. Выбор между Builder С++ и Visual Studio вопрос филосовский и скорее на такой выбор влияет вкус каждого, отдельно взятого человека. Я бы предложил научиться пользоваться и тем и другим и ещё овладеть gcc. А вибиать что использовать необходимо при наличии конкретной задачи, сроках выполнения, желаемого результата. Для начальной стадии изучения (консольные приложения) разницы нет, а в дальнейшем разница может оказаться существеной между указанными компиляторами и IDE.
Что касается перспективы то мне кажется Visual Studio перспективнее. Что касается удобства, то это зависит от поставленной задачи (быстро и просто - билдер; быстрее и надёжнее Visual Studio). Кросплатформеностью не обладает не один из предложенных IDE. В этиз пакетах есть заявка на кросплатформенность, но все они завязаны на "окнах" и по другими ОС работать не станут - для кросплатформености предложил бы использовать компилятор gcc (он есть для всех ОС) или выбрать другой язык программирования (например Java).
---------
Жить вредно - от неё умирают
Ответ отправил: Maxim V.G. (статус: 1-ый класс)
Ответ отправлен: 26.06.2007, 13:13
Оценка за ответ: 5
Комментарий оценки:
1. Непонятно зачем мне изучать сначала С а после С++. Насколько мне известно С++ это более усовершенствованный С.
2. Буду начинать с Builder (от простого к сложному)

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

От себя посоветовал бы использовать Visual Studio. Плюсы - замечательная система интерактивных подсказок - IntelliSence (в билдере она тоже есть, но, на мой взгляд, находится в зачаточном состоянии); удобная отладка; более быстрый код создаваемых программ.
Итак: если вы собираетесь создавать небольшие, симпатичные оконные приложения с большим количеством кнопочек, менюшек и т.п., затрачивая при этом минимум усилий - то ваш выбор - Borland C++ Builder. Если цель - создание профессиональных проектов, то, несомненно Visual Studio. Время, затраченное в нем на создание интерфейса окупится быстротой отладки и общей производительностью приложения.
---------
Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 26.06.2007, 14:10
Оценка за ответ: 5
Комментарий оценки:
Толковый ответ относительно разницы VS|B++. До создания профессиональных проектов мне далековато - буду рисовать симпатичные оконные приложения + консоль

Отвечает: V1s0r
Здравствуйте, OlegSSSSS!

Как уже выше ответил Maxim V.G., MS VS и Borland многоплатформенностью не обладают. Я тебе тоже GCC посоветую, но это только компилятор. Из IDE могу посоветовать Eclipse+CDT (и перспективно и многоплатформенно и... бесплатно:)).

http://gcc.gnu.org/
http://www.mingw.org/

http://www.eclipse.org/
http://www.eclipse.org/cdt/
Ответ отправил: V1s0r (статус: 3-ий класс)
Ответ отправлен: 26.06.2007, 14:24
Оценка за ответ: 4
Комментарий оценки:
Спасибо за ссылочки, но для начинающего нужно самое популярное с массой литературы. А очередь GCC придет позже, намного позже

Отвечает: lupus campestris
Здравствуйте, OlegSSSSS!
Мне больше нравится Builder - он как-то более удобен для новичков, в нем проще разобраться. И опять же с него легче переходить на что-то еще.
Удачи!
---------
«С кем тяжело молчать, с тем не о чем говорить» (Метерлинк)
Ответ отправила: lupus campestris (статус: Профессор)
Россия, Москва
Тел.: +79060429689
Организация: http://www.orange-business.ru
WWW: http://lupus-campestris.blogspot.com/
ICQ: 193918889
----
Ответ отправлен: 26.06.2007, 18:45
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Но начинаю сомневаться насчет легкости перехода на другое.

Отвечает: Vest
Привет, Друг!
В принципе ребята правы, и думаю мнение будет избыточным, но всё-таки:
Борланд Си++ Билдер мне нравится своей простотой. В ней (я говорю о ней как о среде программирования, а не о языке), можно достаточно быстро сделать первые шаги в программировании графического интерфейса. То есть для того, чтобы быстро нарисовать и отобразить результаты, она подойдёт, но также подойдёт и для масштабных проектов. Например, если я не ошибаюсь, то Total Commander и WinHEX (полезные вещи), написаны на Delphi, ну а понятно, что Борландовские IDE близки по возможностям. Ещё один плюс, это удобный хелп. Я в своё время изучал Си/Си++ с Borland C++ 5.02. Этот выбор сделан был благодаря одной из книг (там изучалась эта среда), и хотя на тот момент Microsoft Visual C 6.0 и был, у него не было помощи, и за неимением интернета я не мог лазить по MSDN. Главное, при создании графических приложений на билдере не увлекись такими именами как Button1, Button2 и т.д. Потому как это легко натыкать кнопок, не заботясь об их именах, порой путаешься в модулях Unit1.cpp, Unit2.cpp и так далее...

Насчёт Visual Studio. Если у тебя действительно есть возможность заполучить копию вместе с локальной библиотекой MSDN, то в принципе можно остановится и на ней, но всё-равно, мне порой проще отыскать ответ на вопрос Билдере, нежели лазить по страницам МСДНа. Я обычно использую всё, что можно, в поисках ответа на мой вопрос :) Вижуал очень перспективная на мой взгляд штука, так как она, как-никак, Майкрософтовская и как не ей знать, что самое новое есть в Windows :)

Есть ещё один вариант, он сложнее... со временем ты убедишься, что некоторые компиляторы используют свои родные библиотеки для распространения приложений. А потому порой удивишься, как это маленький код весит 400 кб. Потому некоторые любят компилировать код либо под консолью, либо под чужими IDE. Например, многие советуют GCC компиляторы (для windows это MinGW), сам по себе компилятор использовать неудобно а потому можешь скачать для себя среду программирования (IDE). Она хороша тем, что в отличие от Microsoft и Borland компиляторы обновляются чаще и потому ты можешь скачав новую версию компилятора или доустановить новые библиотеки использовать дальше можешь посмотреть тут: http://www.devzoo.com//index.php?tooltype=WindowsEditor
Хоть эти IDE и не имеют таких хелпов как у гигантов, перечисленных выше, ты всегда можешь пользоваться их помощью ;) а компилировать где удобно...

А так, решать тебе... думаю ты сам поймёшь что будет проще для тебя. Единственное, что помнится мне, когда я работал на билдере, мне было очень сложно перейти на вижуал студио... просто непревычно, да и некоторый синтаксис смущал... :)
---------
"Халявы не бывает" (c)
Ответ отправил: Vest (статус: 5-ый класс)
Ответ отправлен: 26.06.2007, 19:45
Оценка за ответ: 5
Комментарий оценки:
Спасибо за подробный ответ. Я думал сначала начать с Борланд Си++ Билдер как более простого в освоении, а потом перейти на VSC++. Но как показывает мой опыт, будет больше проблем с другим синтаксисом.

Отвечает: kool
Здравствуйте, OlegSSSSS!
Однозначно Visual Studio. Причем лучше
начинать с консольных приложений. Сначала с графикой посложнее
будет чем у Билдера, но зато потом будет намного легче.
Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 26.06.2007, 19:59
Оценка за ответ: 5
Комментарий оценки:
Спасибо за совет.

Отвечает: Jadd
Здравствуйте, OlegSSSSS!
Отвечу как профессионал с многолетним опытом, и как человек изчуавший и писавший как на VS, так и на BCB. Изучать начинать лучше, с моей точки зрения, на VS. Дело в том, что я писал на всех версиях BCB и мне никога не нравилась его глючность, сыроватость, этот подход "конструктор". Мне всегда было проще очень быстрые приложения "набрасать" тогда уж на дельфях, нежели на ВСВ. Что касается самой среды, то мне не нравится этот подход "кирпичиков", когда нужно только мышкой водить и минимум кода (хотя, не сомневаюсь, найдутся личности, делавшие мегаприложения на ВСВ - ИМХО маньяки). Это, в свою очередь, рождает целую толпу псевдо-программеров (коих, кстати, на портале полным полно), считающих себя героями, не написавших ничего существенного и не понимающих сути того, что происходит во время исполнения программного кода. VS тоже не подарок. Один mfc чего стоит. Однако лично я пересел очень быстро на vc++ и не жалею. А "каркасов" можно своих достаточно быстро написать тучу, как и контролов. Короче, все это - холивар очередной. Изучай С, потом С++. Не дергайся и пытайся понять суть того, что происходит. Ну и задавай конструктивные вопросы.

Удачи.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
----
Ответ отправлен: 26.06.2007, 21:47
Оценка за ответ: 5
Комментарий оценки:
Не могу понять зачем сначала изучать С, а опосле С++.

Отвечает: Patriotix-N
Здравствуйте, OlegSSSSS!
Хочу добавить от себя еще несколько замечаний.
Если вы все таки собираетесь ориентироваться на кросплатформенность, то для VS есть отличная библиотека Qt (если не обшибаюсь норвежской компании Trolltech). Которая позволяет создавать программы для Window, Unix, Mас. Но для начала надо освоить сам язык. И тут отвечу на ваш вопрос почему стоит начинать С, а потом изучать С++. Я и сам так сделал. Потому что например в отличие от делфи в VS окно не создается компилятором само собой. Вы можете увидеть конкретный код, который создает окно. А для этого надо хорошо знать сам язык. Изучать всегда лучше от простого к сложному С - проше чем С++, и второе многие книги ориентированные на изучение С++ берут за основу знание читателем С, но конечно есть много книг описывающих С++ с азов. Здесь еще очень много зависит от целей. Если вы хотите профессионально овладеть программированием, то для этого вам надо будет знать все нюансы языка, так например в некоторых случаях при прораммировании на С++ приходится обращаться к средствам Си(все ег о функции включены в С++), а при описании С++ могут опустить эти функции заменив их похожими из С++. Поэтому неплохо было бы знать как Си так и Си++. Также чтобы знать язык неплохо было бы знать как он развивался. Также Си это основа С++ и вы не потеряете времени начав Си, просто изучая С++ вы уже будете кое-что знать. Но еще раз напомню что все зависит от ваших целей. Если вы не собираетесь профессионально заниматься программированием, то вы можете сразу начать создавать кнопки на форме и управлять событиями не вдаваясь в глубины.
---------
Лучше знать ничего обо всем, чем все ни о чем.
Ответ отправил: Patriotix-N (статус: 3-ий класс)
Ответ отправлен: 27.06.2007, 22:02


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное