В теме "Как заставить противника капитулировать?" родилась идея пмочь иследователям SDK разобратся с C++.
Так что все вопросы связанные с аспектами програмирования в C++ задавайте здесь, постараюсь ответить.
З.Ы. Как и обещал, в указанной выше теме, вот список знаков используемых в C++
Список далеко не полный, это то что мне сразу пришло на ум.Код:"==" -- равно "!=" -- не равно "<" -- меньше ">" -- больше "<="- - меньше или равно ">=" -- больше или равно "%" -- остаток(деление по модулю) "++" -- инкримент "--" -- декримент "=" -- присвоить значени "||" -- ИЛИ "&&" -- И "!" -- НЕ (отрицание) "&" -- побитовое И "|" -- побитовое ИЛИ "^" -- побитовое исключающее ИЛИ
С пола не упасть!
http://img444.imageshack.us/img444/7241/samogonxg0.png
<div class='quotetop'>Цитата(NeverMind * 18.1.2007, 21:30) [snapback]156049[/snapback]</div>1. Инкримент и декримент это увеличение и уменьшение на 1.Спасибо! Скопировал себе, буду зубрить
А кто "такие инкримент, декримент"? Чем "равно" отличается от "присвоить значение"? И что значит "побитовое" И, ИЛИ и тд?
[/b]
2. Равно используется для сравнения двух значений. Можно сказать что это функция возвращающая истину(true) если два значения идентичны и ложь(false) если нет. А присвоение используется для изменения какого либо значения.Код:i++; //эта команда увеличит значение переменной i на 1
3. О побитовых операторах раскажу потом, сейчас спешу...Код:i = 5; //установить значение переменной равное 5
С пола не упасть!
http://img444.imageshack.us/img444/7241/samogonxg0.png
<div class='quotetop'>Цитата(vpadlo * 18.1.2007, 22:52) [snapback]156054[/snapback]</div>Причем различают префиксное и постфиксное написание:1. Инкримент и декримент это увеличение и уменьшение на 1.
[/b]Код:i++; //эта команда увеличит значение переменной i на 1
* i++ это возвращает начальное значение i, после чего увеличивает i
* ++i - i увеличивается, после чего возвращается уже увеличенное значение
<div class='quotetop'>Цитата(vpadlo * 18.1.2007, 22:52) [snapback]156054[/snapback]</div>Добавлю еще: любой оператор в с++ возвращает какое-то значение и поэтому может впоследствии использовать его. Например:2. Равно используется для сравнения двух значений. Можно сказать что это функция возвращающая истину(true) если два значения идентичны и ложь(false) если нет. А присвоение используется для изменения какого либо значения.
[/b]Код:i = 5; //установить значение переменной равное 5
вторая строка выполнится так: i увеличится на один, но переменной n присвоится прежнее значение (1), после чего произойдет присвоение переменной m значения n (1)Код:i = 1; m = n = i++;
т.е. i будет равно 2, а n и m будут равны 1
vpadlo, отличная идея разобрать С++!
Давайте я расскажу про побитовые операторы.
Итак, числа хранятся в памяти в двоичной системе. К примеру, число 2007 типа unsigned short int (про типы можно подробнее поговорить позже) занимает в памяти 2 байта и имеет вид 0000011111010111, где каждый бит принимает значение 0 или 1.
Возьмём другое число, скажем, 4000, имеющее в двоичной системе вид 0000111110100000 и вычислим результаты побитовых операторов &, | и ^ между ними.
Использование побитового И:
[code]
<div class='quotetop'>Цитата(The Pretender * 19.1.2007, 9:31) [snapback]156142[/snapback]</div>Наверное здесь значения будут 1 и 2 ... (Первая то строка присваивает значение 1 переменной i...)
Добавлю еще: любой оператор в с++ возвращает какое-то значение и поэтому может впоследствии использовать его. Например:
вторая строка выполнится так: i увеличится на один, но переменной n присвоится прежнее значение (5), после чего произойдет присвоение переменной m значения n (5)Код:i = 1; m = n = i++;
т.е. i будет равно 6, а n и m будут равны 5
[/b]
З.Ы. General - или - это || (и - по мому &&, с исключающее или редко работаю, поэтому не помню)) - в С++ (Назови уж и название операций - и, или, исключающее или...)
Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
http://blacksun.civfanatics.ru
-------------------------------------------------
MTDG2 - [civ]christianity[/civ]Монархия
---------------------------------
Председатель CFR Awards 2007
---------------------------------
Председатель CFR Awards 2008
<div class='quotetop'>Цитата(NeverMind * 19.1.2007, 12:38) [snapback]156192[/snapback]</div>Это практически невозможно. 169 файлов, (47 или 49 основных) Каждый из которых от 10 до 20 тыс. строк. Описывать все это - практически невозможно. Даже если брать отдельно взятую тему - приходится просматривать очена много функций.Ну, вы это....разошлись. Помедленнее, я записываю![]()
Столько народу, оказывается, в этом разбирается. А давайте, вы будете смотреть SDK периодически и что-нибудь объяснять, м?
[/b]Вот если делаешь чего то в СДК - тогда еще можно отследить "Нужные для тебя места". Но опять же - самый простой алгоритм - требует написания кучи побочных функций... (См. связь СДК и Питон, связь СДК и ХМЛ...). В процессе написания модов - я конечно буду описывать некоторые функции и подводные камни. Но одному - это очена тяжело (У меня реала тоже много). С тех пор - как начал писать моды (в СДК) - я забыл, когда последний раз играл в Циву... (тесты не в счет - они играются на слабом уровне - чтобы побыстрее...)
Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
http://blacksun.civfanatics.ru
-------------------------------------------------
MTDG2 - [civ]christianity[/civ]Монархия
---------------------------------
Председатель CFR Awards 2007
---------------------------------
Председатель CFR Awards 2008
Blacksun
Так то удвоенным символом обозначается логический оператор, а одинарным - побитовый. Глянул в справочник - а в С++ логического исключающего ИЛИ вообще нет, а побитовое есть.
Названия подписал.
NeverMind
Эхх, тут бы мне со своим собственным кодом разобраться.... Где-то баг неотловленный сидит, а начальство уже требует резалты. Но определённый моменты прояснить смогу, видимо.
<div class='quotetop'>Цитата(Blacksun * 19.1.2007, 12:30) [snapback]156188[/snapback]</div>сорри, опечатка ... поправил
Наверное здесь значения будут 1 и 2 ... (Первая то строка присваивает значение 1 переменной i...)
[/b]
Кхм. В общем проблема не в подсказывании, а в объяснении игровых моментов с помощью SDK. Если кто то будет смотреть я тоже могу подсказать, т.к SDK во многом перекликается с XML. Лично у меня были проблемы с этими знаками (свои фэнтази теории), теперь есть где посмотреть.![]()
А не надо все. И не надо все подряд. Задается куча вопросов, на которые можно ответить посмотрев SDK. Вот бы с этого начать.Originally posted by Blacksun
Это практически невозможно. 169 файлов, (47 или 49 основных) Каждый из которых от 10 до 20 тыс. строк. Описывать все это - практически невозможно. Даже если брать отдельно взятую тему - приходится просматривать очена много функций.![]()
PS. Zюzиk, Blacksun, когда доучу знаки, я к вам присоединюсь тут: http://forum.civfanatics.ru/index.php?showtopic=5307
PPS. Теперь еще БуДДаХ с пивом...![]()
Ешкин кот! Итить! Ну развели...И это ликбез? Я по-другому понимал это слово. Ладно, я осознал, что я дурак.
ЗЫ Простите за оффтоп. Не удержался...Эмоции..эмоции и много пива...
Я не настолько молод, чтобы знать все. Оскар Уайлд
Гуманитарии всех стран, соединяйтесь!
Вау С++, отличная вещь, давайте сюда полный курс выложим.
Если есть ум будет и успех.
------------------------------------------------
Ледниковый период-2 Наша земля
К примеру, вот начальный и продвинутый курсы С++.
А здесь ИМХО основное назначение ветки - разъяснять тонкости, а не всю теорию