|
Модераторы: bsa |
|
bsa |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Ниже приводятся ссылки на статьи описывающие те или иные задачи, которые ставятся перед начинающими осваивать языки программирования. Уверен, что ответы на большинство из них вы найдете именно там.
Вопросы в них задавать нельзя - будут удаляться модераторами! Если что-то непонятно, то надо создать отдельную тему, сослаться на статью и описать, что именно вызвало затруднения. Возможно, именно благодаря вам статья станет в будущем близка к идеалу. Книги или с чего начать изучение языка © bsa (обсуждение, незавершено) Современный "Hello word!" или простейшая программа на С++ © archimed7592 (незавершено) Программа быстро закрывается, и не удается увидеть результат © bsa Оформление кода © bsa (незавершено) ++i или i++ © bsa Указатели и ссылки © bsa (незавершено) Динамические массивы © bsa (незавершено) Русский язык в программах © bsa (незавершено) Защита от повторного включения или Стражи заголовочных файлов © JackYF (Несколько файлов? Один включает другой? Компилятор ругается? Хотите знать почему и что делать?) "Преобразование" int, float, double к char* и обратно © zkv (незавершено) Как создать проект: MS Visual Studio (незавершено) Что такое компилятор или Этапы сборки программы... © bsa (незавершено) Выбор IDE (незавершено) Если у вас есть большой опыт работы на Си и/или С++, а так же возникло желание поделиться своими знаниями с новичками, то вам сюда. Это сообщение отредактировал(а) bsa - 16.5.2011, 17:33 |
|||
|
||||
bsa |
|
||||||
Эксперт Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Многие изучающие языки Си и С++ почти везде используют постфиксную форму операторов ++ и -- (i++), особенно в цикле for(;;), объясняя это тем, что выполняться они должны после тела цикла. Но все не так, как кажется. На самом деле цикл for(;;) работает несколько иным образом. Возьмем некий условный цикл for(EXP1; EXP2; EXP3) EXP4; и перепишем его с помощью while:
Теперь рассмотрим, а чем собственно эти формы операторов отличаются на примере ++: по описанию обе формы оператора увеличат переменную на 1, а вот результат операции будет отличаться - старое значение переменной для постфиксной формы и новое для префиксной:
В случае языка Си компилятор способен распознать неверное использование постфиксной формы и оптимизировать ее. А вот в С++ эти операторы могут применяться к сложные объектам (например, итераторам), которые уже компилятор оптимизировать не в силах. Поэтому, всегда используйте префиксную (++i и --i) форму этих операторов, кроме тех случаев, когда нужна функциональность постфиксной, даже если применяете к объектам стандартных типов (char, short, int, long, long long) - тем самым набьете руку и уже там, где разница чувствительна, будете использовать нужную форму автоматически. Это сообщение отредактировал(а) bsa - 12.10.2009, 11:09 |
||||||
|
|||||||
bsa |
|
||||||||||
Эксперт Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Многие начинающие (и не очень) программисты под Windows (в первую очередь) сталкиваются с проблемой русского языка. В код программы записывается строка содержащая кириллицу, а готовая программа в результате выводит какие-то кракозябры. Причина этого кроется в том, что текстовый редактор работает в одной кодировке (cp1251 под Windows), а консоль в другой (IBM866 под Windows). Для решения этих проблем уже придуманы стандартные средства. В частности, функция setlocale() и wchar_t. Например, нужно вывести на экран строку "Привет мир!". Для этого обычно пишут на С:
Чтобы на консоль поступали правильным образом подготовленные символы нужно указать программе, в какой кодировке работать надо. Для этого существует функция setlocale(). Документацию на нее легко можно найти в Интернет (функция стандартная), поэтому я только скажу, как ее нужно правильно вызывать. А именно: setlocale(LC_ALL, "") - установка текущих параметров локали пользователя. По началу можно подумать, что это все. На самом деле это не так! Предположим, что текущая локаль у пользователя английская, что будет тогда? Вместо кириллицы будут отображаться западно-европейские символы, а так же псевдографика. Поэтому следует использовать UNICODE. Итак, программы будут выглядеть так:
Данный метод работает под Windows только при использовании компилятора Microsoft (возможно, в MSVS 6.0 он тоже не работает). Чтобы он заработал при компиляции отличными от MS компиляторами, придется писать перекодировщики из cp1251 в 866 и обратно. Делается это функциями WinAPI: CharToOem() и OemToChar() Пример на С++:
Это сообщение отредактировал(а) bsa - 8.4.2010, 10:50 |
||||||||||
|
|||||||||||
bsa |
|
||||
Эксперт Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Новички использующие некоторые IDE (например, Dev-C++) под MS Windows часто сталкиваются с проблемой, когда при запуске программы появляется на мгновение черное окно и тут же исчезает, что не позволяет увидеть результат работы программы. Это связано с тем, что ОС автоматически закрывает окна завершивших свою работу приложений.
Чтобы задержать окно на экране необходимо сделать задержку. Наиболее простой и универсальный способ - ждать пока пользователь нажмет клавишу Enter. Делается это так: На языке С:
Это сообщение отредактировал(а) bsa - 4.5.2011, 10:33 |
||||
|
|||||
bsa |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
У новичков часто возникают с проблемы выбора IDE (интегрированной среды разработки). Одни из них сложные и навороченные, другие не работают "из коробки", а третьи отсутствуют под требуемую операционную систему.
Вот список бесплатных IDE, позволяющих создавать код на С/С++: Dev-C++ - среда разработки под Windows, имеет удобную возможность установки дополнительных библиотек. Qt Creator - кроссплатформенная IDE от создателей Qt. Быстрая и достаточно мощная. Qt SDK содержит и компилятор, и IDE. Code::Blocks - легкая кроссплатформенная среда разработки. Microsoft Visual Studio Express Edition - среда разработки под Windows и только. Eclipse CDT - очень мощная кроссплатформенная IDE, написанная на Java (очень сильно тормозит на больших и сложных проектах) NetBeans - мощная IDE, но имеющая некоторые проблемы с Windows (нужно дополнительно настраивать) KDevelop - среда разработки для KDE (Linux) Anjuta - среда разработки для Gnome (Linux) Новичкам рекомендую Dev-C++, Code::Blocks или Qt Creator. Они требуют минимальных настроек, имеют маленькие дистрибутивы (установщик Qt SDK позволяет отключить компоненты, занимающие львиную долю места), существуют версии для всех популярных настольных систем. |
|||
|
||||
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |