+ Ответить в теме
Показано с 1 по 14 из 14

Тема: Уроки C++

  1. #1
    В теме "Как заставить противника капитулировать?" родилась идея пмочь иследователям SDK разобратся с C++.
    Так что все вопросы связанные с аспектами програмирования в C++ задавайте здесь, постараюсь ответить.

    З.Ы. Как и обещал, в указанной выше теме, вот список знаков используемых в C++
    Код:
    "==" -- равно
    "!=" -- не равно
    "<" -- меньше
    ">" -- больше
    "<="- - меньше или равно
    ">=" -- больше или равно
    "%" -- остаток(деление по модулю)
    "++" -- инкримент
    "--" -- декримент
    "=" -- присвоить значени
    "||" -- ИЛИ
    "&&" -- И
    "!" -- НЕ (отрицание)
    "&" -- побитовое И
    "|" -- побитовое ИЛИ
    "^" -- побитовое исключающее ИЛИ
    Список далеко не полный, это то что мне сразу пришло на ум.
    продвинь это сообщение в соцсеть:  

  2. #2
    Спасибо! Скопировал себе, буду зубрить

    А кто "такие инкримент, декримент"? Чем "равно" отличается от "присвоить значение"? И что значит "побитовое" И, ИЛИ и тд?
    продвинь это сообщение в соцсеть:  

  3. #3
    <div class='quotetop'>Цитата(NeverMind * 18.1.2007, 21:30) [snapback]156049[/snapback]</div>
    Спасибо! Скопировал себе, буду зубрить

    А кто "такие инкримент, декримент"? Чем "равно" отличается от "присвоить значение"? И что значит "побитовое" И, ИЛИ и тд?
    [/b]
    1. Инкримент и декримент это увеличение и уменьшение на 1.
    Код:
    i++; //эта команда увеличит значение переменной i на 1
    2. Равно используется для сравнения двух значений. Можно сказать что это функция возвращающая истину(true) если два значения идентичны и ложь(false) если нет. А присвоение используется для изменения какого либо значения.
    Код:
    i = 5; //установить значение переменной равное 5
    3. О побитовых операторах раскажу потом, сейчас спешу...
    продвинь это сообщение в соцсеть:  

  4. #4
    <div class='quotetop'>Цитата(vpadlo * 18.1.2007, 22:52) [snapback]156054[/snapback]</div>
    1. Инкримент и декримент это увеличение и уменьшение на 1.
    Код:
    i++; //эта команда увеличит значение переменной i на 1
    [/b]
    Причем различают префиксное и постфиксное написание:
    * i++ это возвращает начальное значение i, после чего увеличивает i
    * ++i - i увеличивается, после чего возвращается уже увеличенное значение

    <div class='quotetop'>Цитата(vpadlo * 18.1.2007, 22:52) [snapback]156054[/snapback]</div>
    2. Равно используется для сравнения двух значений. Можно сказать что это функция возвращающая истину(true) если два значения идентичны и ложь(false) если нет. А присвоение используется для изменения какого либо значения.
    Код:
    i = 5; //установить значение переменной равное 5
    [/b]
    Добавлю еще: любой оператор в с++ возвращает какое-то значение и поэтому может впоследствии использовать его. Например:
    Код:
    i = 1;
    m = n = i++;
    вторая строка выполнится так: i увеличится на один, но переменной n присвоится прежнее значение (1), после чего произойдет присвоение переменной m значения n (1)
    т.е. i будет равно 2, а n и m будут равны 1
    продвинь это сообщение в соцсеть:  

  5. #5
    vpadlo, отличная идея разобрать С++!
    Давайте я расскажу про побитовые операторы.

    Итак, числа хранятся в памяти в двоичной системе. К примеру, число 2007 типа unsigned short int (про типы можно подробнее поговорить позже) занимает в памяти 2 байта и имеет вид 0000011111010111, где каждый бит принимает значение 0 или 1.
    Возьмём другое число, скажем, 4000, имеющее в двоичной системе вид 0000111110100000 и вычислим результаты побитовых операторов &, | и ^ между ними.

    Использование побитового И:
    [code]
    продвинь это сообщение в соцсеть:  

  6. #6
    Король Аватар для Blacksun


    Регистрация
    10.05.2006
    Адрес
    М.О. г. Раменское
    Сообщений
    1,873
    <div class='quotetop'>Цитата(The Pretender * 19.1.2007, 9:31) [snapback]156142[/snapback]</div>

    Добавлю еще: любой оператор в с++ возвращает какое-то значение и поэтому может впоследствии использовать его. Например:
    Код:
    i = 1;
    m = n = i++;
    вторая строка выполнится так: i увеличится на один, но переменной n присвоится прежнее значение (5), после чего произойдет присвоение переменной m значения n (5)
    т.е. i будет равно 6, а n и m будут равны 5
    [/b]
    Наверное здесь значения будут 1 и 2 ... (Первая то строка присваивает значение 1 переменной i...)

    З.Ы. General - или - это || (и - по мому &&, с исключающее или редко работаю, поэтому не помню)) - в С++ (Назови уж и название операций - и, или, исключающее или...)
    продвинь это сообщение в соцсеть:  
    Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
    http://blacksun.civfanatics.ru
    -------------------------------------------------
    MTDG2 - [civ]christianity[/civ]Монархия
    ---------------------------------
    Председатель CFR Awards 2007
    ---------------------------------
    Председатель CFR Awards 2008

  7. #7
    Ну, вы это....разошлись. Помедленнее, я записываю

    Столько народу, оказывается, в этом разбирается . А давайте, вы будете смотреть SDK периодически и что-нибудь объяснять, м?
    продвинь это сообщение в соцсеть:  

  8. #8
    Король Аватар для Blacksun


    Регистрация
    10.05.2006
    Адрес
    М.О. г. Раменское
    Сообщений
    1,873
    <div class='quotetop'>Цитата(NeverMind * 19.1.2007, 12:38) [snapback]156192[/snapback]</div>
    Ну, вы это....разошлись. Помедленнее, я записываю

    Столько народу, оказывается, в этом разбирается . А давайте, вы будете смотреть SDK периодически и что-нибудь объяснять, м?
    [/b]
    Это практически невозможно. 169 файлов, (47 или 49 основных) Каждый из которых от 10 до 20 тыс. строк. Описывать все это - практически невозможно. Даже если брать отдельно взятую тему - приходится просматривать очена много функций. Вот если делаешь чего то в СДК - тогда еще можно отследить "Нужные для тебя места". Но опять же - самый простой алгоритм - требует написания кучи побочных функций... (См. связь СДК и Питон, связь СДК и ХМЛ...). В процессе написания модов - я конечно буду описывать некоторые функции и подводные камни. Но одному - это очена тяжело (У меня реала тоже много). С тех пор - как начал писать моды (в СДК) - я забыл, когда последний раз играл в Циву... (тесты не в счет - они играются на слабом уровне - чтобы побыстрее...)
    продвинь это сообщение в соцсеть:  
    Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
    http://blacksun.civfanatics.ru
    -------------------------------------------------
    MTDG2 - [civ]christianity[/civ]Монархия
    ---------------------------------
    Председатель CFR Awards 2007
    ---------------------------------
    Председатель CFR Awards 2008

  9. #9
    Blacksun
    Так то удвоенным символом обозначается логический оператор, а одинарным - побитовый. Глянул в справочник - а в С++ логического исключающего ИЛИ вообще нет, а побитовое есть.
    Названия подписал.

    NeverMind
    Эхх, тут бы мне со своим собственным кодом разобраться.... Где-то баг неотловленный сидит, а начальство уже требует резалты. Но определённый моменты прояснить смогу, видимо.
    продвинь это сообщение в соцсеть:  

  10. #10
    <div class='quotetop'>Цитата(Blacksun * 19.1.2007, 12:30) [snapback]156188[/snapback]</div>

    Наверное здесь значения будут 1 и 2 ... (Первая то строка присваивает значение 1 переменной i...)
    [/b]
    сорри, опечатка ... поправил
    продвинь это сообщение в соцсеть:  

  11. #11
    Кхм. В общем проблема не в подсказывании, а в объяснении игровых моментов с помощью SDK. Если кто то будет смотреть я тоже могу подсказать, т.к SDK во многом перекликается с XML. Лично у меня были проблемы с этими знаками (свои фэнтази теории), теперь есть где посмотреть.

    Originally posted by Blacksun
    Это практически невозможно. 169 файлов, (47 или 49 основных) Каждый из которых от 10 до 20 тыс. строк. Описывать все это - практически невозможно. Даже если брать отдельно взятую тему - приходится просматривать очена много функций.
    А не надо все. И не надо все подряд. Задается куча вопросов, на которые можно ответить посмотрев SDK. Вот бы с этого начать.

    PS. Zюzиk, Blacksun, когда доучу знаки, я к вам присоединюсь тут: http://forum.civfanatics.ru/index.php?showtopic=5307

    PPS. Теперь еще БуДДаХ с пивом...
    продвинь это сообщение в соцсеть:  

  12. #12
    Ешкин кот! Итить! Ну развели...И это ликбез? Я по-другому понимал это слово. Ладно, я осознал, что я дурак.
    ЗЫ Простите за оффтоп. Не удержался...Эмоции..эмоции и много пива...
    продвинь это сообщение в соцсеть:  
    Я не настолько молод, чтобы знать все. Оскар Уайлд
    Гуманитарии всех стран, соединяйтесь!

  13. #13
    Полководец Аватар для Kerim


    Регистрация
    20.12.2005
    Адрес
    Челябинск
    Сообщений
    216
    Вау С++, отличная вещь, давайте сюда полный курс выложим.
    продвинь это сообщение в соцсеть:  
    Если есть ум будет и успех.
    ------------------------------------------------
    Ледниковый период-2 Наша земля




  14. #14


    К примеру, вот начальный и продвинутый курсы С++.

    А здесь ИМХО основное назначение ветки - разъяснять тонкости, а не всю теорию
    продвинь это сообщение в соцсеть:  

+ Ответить в теме

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru

free counters