Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите понять С++, циклы для многих не проблема 
:(
    Опции темы
Uchenik1989
Дата 2.2.2012, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 2.2.2012

Репутация: нет
Всего: нет



доброго времени суток ... я начал С++ и некоторые вещи не могу понять вообще ... а именно циклы ... разобрал функции перескочивши циклы но пришлось вернуться ... не могу понять как работает :

Код
int main ()
{
int i;
int n;
cout<<"Введите число"<<endl;
cin>>n;
i=1;
while (i<=n)
{
cout<<i<<endl;
i++;
}
return 0;
}


Очень простая программа которая демонстрирует цикл ... где на консоль выводяться числа от 1 до n ... тоесть пользователь ввёл 100 и программа циклически начала выводить 1 2 3 4 5 6 и до 100 ... Но мне не понятно :

cout<<i<<endl;
i++;

сиаут выводит переменную i и как программа понимает что к ней надо добавить одиницу если на консоль уже должно вывести эту одиницу ... а программа с начала выводит полный цикл от и до ... но я же сказал  ---cout<<i<<endl-- что выведи одиницу а потом добавь ещё одиницу а как оно понимает  .... короче я уже сам запутался что хотел сказать ... но смысл в том что как всё это понимает компилятор ? тоесть он смотрит что это цикл где i не должен быть больше n дальше он видит сиаут ... выводит одиницу а потом плюсует ... не могу понять как выполняеться цикл ... тоесть как система понимает что надо добавлять одиницу ... А если я скажу что надо добавлять двойку ? оно будет работать ?

P.S. Читаю Шилдта но эти моменты мне вообще не понятны .... 
Помогите пожайлуста кто как может обьяснить ...   

Модератор: не забываем пользоваться кнопочкой "Код"

Это сообщение отредактировал(а) bsa - 3.2.2012, 10:32
PM MAIL   Вверх
feodorv
Дата 2.2.2012, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Гм. Понять из этого "сумбура вместо музыки", что именно Вам не понятно, не возможно  smile 


Цитата(Uchenik1989 @  2.2.2012,  19:58 Найти цитируемый пост)
тоесть как система понимает что надо добавлять одиницу

Там у Вас написан такой маленький оператор:
Код

i++;

благодаря которому как раз и прибавляется единица к i. Полагаю, что Вы пропустили не только циклы)))


Цитата(Uchenik1989 @  2.2.2012,  19:58 Найти цитируемый пост)
А если я скажу что надо добавлять двойку ?

Если скажете так:
Код

i += 2;

или так:
Код

i = i + 2;

то, да, работать будет)))


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
bsa
Дата 3.2.2012, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Uchenik1989, для начала, научись уважать себя и других программистов - форматируй код. Пока он простой, еще можно разобраться, но когда станет сложней - повесишься.
Код
int main ()
{
    int i;
    int n;
    cout<<"Введите число"<<endl;
    cin>>n;
    i=1;
    while (i<=n)
    {
        cout<<i<<endl;
        i++;
    }
    return 0;
}

Итак, cout - это такой объект, у которого переопределен оператор << (аналогично cin, но для него переопределен оператор >>). Когда ты пишешь: cout << "что-то", то компилятор это воспринимает как: operator<<(cout, "что-то"). Этот оператор - типичная функция, которая возвращает свой первый параметр. В итоге запись: cout << "что-то" << "еще что-то" будет для него выглядеть так: operator<<(operator<<(cout, "что-то"), "еще что-то").
Как нетрудно догадаться, cout - это поток вывода на консоль. Ты в него отправляешь данные, а на консоли они появляются.

Дальше, while. Это цикл, его тело выполняется пока выражение в скобках истинно (не равно нулю).
i++ - это постфиксное увеличение i на 1. Лучше использовать префиксное: ++i. В общем случае оно быстрее. Подробнее тут.
PM   Вверх
Uchenik1989
Дата 3.2.2012, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 2.2.2012

Репутация: нет
Всего: нет



Огромное спасибо за пояснения !!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0874 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.