Цикл for в С++ для начинающих

Сайт не является учебником по программированию. Это только небольшой авторский сборник информации в помощь начинающим программистам.

Надеюсь прошлый материал был неоднократно повторен, вы наупражнялись и с легкостью можете написать простой калькулятор на С++. Теперь речь пойдет о первом цикле. Как первый, нам вполне подойдёт цикл for. Суть цикла в том, что выполняется какое-то действие определенное число раз. Неудобно ведь каждый раз запускать программу, чтобы посмотреть результаты работы. Вспомните наш примитивный калькулятор, он выполняет свою работу только один раз и, чтобы посчитать другие числа, нам нужно постоянно открывать программу. Для калькулятора цикл не особо нужен, но можно, например, сделать, чтобы калькулятор выполнял запрограммированную операцию скажем 10 раз и потом только выходил. Но прошлые уроки мы сейчас временно оставим, чтобы разобраться с новой для нас командой.

Наша программа должна вывести на экран числа по порядку. Например от 1 до 10

Вот элементарная и наглядная программа, написанная для C++ для начинающих.
Новая здесь только одна строчка for (i=1; i<=10; i++)

 

Давайте её разберём

for – Это команда на запуск цикла от какого-то одного значения до другого по порядку
i=1 — Счетчик начинает отсчет с единицы
i<=10 – Когда переменная i (Счетчик) примет значение 10, цикл будет завершен
i++ — Постепенное увеличение переменной i на 1 (Называется Шаг)

Запомните, что сначала обязательно нужно указать первоначальное значение переменной для счетчика, другими словами инициализировать счетчик,
for (i=1; i<1; i++); Это указание, что нам нужен отсчет от единицы.
Второе мы обязательно указываем условие (До тех пор пока) – До тех пор, пока i<1, постоянно будет происходить повторное выполнение нашей программы- будет срабатывать цикл.
Третье – Нам нужно менять значение переменной i. Сделать так, чтобы счетчик менялся и указать значение на которое его менять:
for (i=1; i<1; i++); Увеличиваем i на 1 после каждого выполнения цикла

При выводе программы на экран, вы видите работу этого счетчика, числа выводятся по порядку ровно i раз

Тут, в первое время при программировании на C++, для начинающих могут возникать некоторые ошибки
То, что должно циклически выполняться, нужно указать в фигурных скобках (можно забыть их поставить, а потом ломать голову – почему не работает)

В команде for обязательно ставить круглые скобки, в которых нужно указать 3 значения —

Инициализировать счетчик
Указать где прекратить выполнение цикла (До тех пор пока выполняется условие, цикл повторяется),
Обязательно менять значение переменной счетчика (иначе условие никогда не будет выполнено и наш цикл окажется бесконечным)

После того, как указали три значения, не нужно ставить точку с запятой после круглой закрывающейся скобки, нужно поставить открывающуюся и закрывающуюся фигурные скобки, внутри которых написать, что нам делать внутри нашего цикла. У нас, в нашей описанной программе, внутри цикла выполняется только одна команда – выводится текст на экран

Научитесь писать эту простейшую программу по памяти. Когда научитесь – начинайте использовать знания, полученные на прошлых уроках.

  • Попробуйте вывести на экран только четные натуральные числа от одного указанного вами значения до второго, тоже указанного вами, по возрастанию.
    Попробуйте вывести на экран числа, делящиеся на три аналогично по возрастанию
    Попробуйте вывести на экран числа от 20 до 1 по порядку в порядке убывания
    Если с тремя заданиями справились, напишите одну программу, которая будет выполнять все 3 эти задания

Для тех кто хочет попробовать (А хотеть справиться с заданием должен каждый, кто хочет изучать С++) Подсказка:
i++ – Это равносильно, что i=i+1 и равносильно i+=1
Cлагаемое может быть очень разным,
можно написать for(i=1;i<1000;i=i+100) — тогда при каждом новом повторении цикла, счетчик цикла будет увеличиваться на 100
(В этом случае цикл повторится 10 раз — i = 1 —> i=101 —> i=301 )

Для тех, кто очень старается, но не может найти где что-то делает не так – в следующей статье написано решение поставленной задачи. Арифметика тут с нашими знаниями только сложение и это хорошая тренировка для понимания работы с циклом for и повторение материала о сравнении значений. Тут нужно увеличивать переменную, которую мы будем сравнивать с счетчиком. Понимаю, что многим тут придется попотеть, но без самостоятельной тренировки наипростейших заданий очень тяжело понять базовые знания. Когда освоите этот материал – понять остальные циклы вам будет намного проще, чем если вы сейчас сразу накинетесь на все. Циклы очень часто требуются, поэтому это обязательное знание для любого, кто изучает языки программирования. Проявите усердие, придумайте пару упражнений для себя, попробуйте их выполнить и уже пора учиться читать текст кода по-русски if (a>b) {for(i==1;i<=10;i++) {…} — Если у меня будет одно значение больше другого, то значит моя программа должна выполнять какие-то действия пока счетчик меньше или равен 10

Чтобы освоить этот материал в С++ для начинающих может потребоваться время, кто-то поймет быстро, а кто-то потратит больше времени чем хотел. Главное не сдавайтесь, постоянно повторяйте наши несложные упражнения, чтоб руки до автоматизма знали как, где и что нужно писать. Если возникли каие вопросы, то лучше спросите. Я самостоятельно изучаю язык и по себе знаю какого это, когда абсолютно один. – приходится очень много искать, читать и очень много примеров с громоздким решением, а ведь нужно понимать, что мы делаем.

Цикл for используют тогда, когда нам заранее известно на каком этапе нужно остановиться. Бывает так, что количество операций заранее мы не знаем, тогда мы не можем указать место, в котором нужно прекратить выполнение повторных вычислений. Например при сортировке чисел количество операций различно и мы не знаем заранее сколько циклических повторений нам потребуется.

Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

12 комментариев: Цикл for в С++ для начинающих

  • Anonymous говорит:

    ПОМОГЛИ СПАСИБО

  • Евгений Семикопный говорит:

    Помогите . Научился делать калькулятор , но не знаю как сделать калькулятор который бы после 5 вычислений бы завершал работу Пример //logic if('+'==cOper) dRes=d1+d2; else if ('-'==cOper) dRes=d1-d2; else if ('*'==cOper)2 + 3 = 55 + 5 = 107 * 6 = 411 + 3 = 43 — 2 = 1 << после пятого действия бы он завершил работу . Как всунуть цикл в калькулятор подскажите 🙁 спс большое

  • Бахадир говорит:

    Отличный сайт! Спасибо за все. Можно изучать здесь.

  • Денис говорит:

    (Для тех кто хочет попробовать (А хотеть справиться с заданием должен каждый, кто хочет изучать С++) Подсказка:
    i++ – Это равносильно, что i=i+1 и равносильно i+=1
    Cлагаемое может быть очень разным,
    можно написать for(i==1;i i=101 —> i=301 ))

    У вас стоит двойное равно слева от тысячи, если его вводишь не работает, а с одним работает. Это у Вас ошибка или я что-то не понимаю? Спасибо за сайт!!!!!

    Автор сайта отвечает:
    У меня ошибка.
    i==1 –> (сравнение, а начало отсчета компилятор типа пусть сам угадывает)

  • Иван говорит:

    Помогите, нужно сделать задачу за циклом for
    Вычислить y = sin1(sin1+sin 2)(sin1+sin 2+sin3)…(sin1+sin 2 +sin3+…+sin n)

    Автор сайта отвечает:

  • Дарья говорит:

    Здравствуйте. Отличный у Вас сайт, но в комментарии, когда Вы писали программу на вычисление суммы синусов у Вас ошибка — точнее не дописана часть программы. Для более лучшего понимания уберем sin. Т.е. получается надо вычислить: (1+2)*(3+4)*… Возьмем для сравнения по N=4. По Вашей программе получается: i=1 sum=1 pro=1 — должна быть 0 т.к. еще надо сложить (1+2)…дальше ошибка возрастает с прогрессией и при N=4 pro=180 (а должно быть 21). Правильная программа будет иметь вид:
    int j, N, z, sum=0, pro=1; //lдля суммы можно использовать и целые числа
    //Дальше ввод N с клавиатуры
    for(j=1; j<=N; j++)
    {
    if(!(!(j%2))) z=i;
    if(!(j%2))
    {
    sum=z+i;
    pro=pro*sum;
    cout<<"\n"<<pro; //Чтобы видеть все значения
    }
    }

    Автор сайта отвечает:
    при N=4 должно срабатывать
    1*(1+2)*(1+2+3)*(1+2+3+4)
    все это дело = 180.
    ==============================
    и не понял вообще каким боком ноль). Я на ноль нигде не умножаю.
    Внимательнее будьте. Всмотритесь в формулу которую товарищ просил использовать.
    и зачем вы так сложно пишете?
    ваша программа должна выглядеть как-то так

    Да похоже немного не досмотрела зато потренировалась в написании программы на другой манер. Спасибо!

  • Марина говорит:

    Помогите,пожалуйста,решить задачку на С++
    Дана последовательность из n-целых чисел. Определить каких чисел больше положительных или отрицательных?

    Автор сайта отвечает:
    а что в задаче непонятно?
    давайте то, что пытались делать, даже если стыдно показывать и я помогу.

  • Влад говорит:

    Здравствуйте! Спасибо за сайт, очень полезный! А как все это сделать в Memo?
    {
    Memo1->Lines->Text=»»;
    int i;
    for (i=1; iLines->Text=IntToStr(i)<<IntToStr(i)<Lines->Text=IntToStr(i<1);
    }
    return;
    }
    Не получается!!!

    Автор сайта отвечает:
    Наверное что-то типа:

    Почему-то получилась абракадабра. Повторяю.
    {
    Memo1->Lines->Text=””;
    int i; // переменная для счетчика
    for (i=1; iLines->Text=IntToStr(i)<<IntToStr(i)<Lines->Text=IntToStr(i<1);
    }
    return;
    }
    Упс!

    Автор сайта отвечает:
    А вообще я не очень понял, что вы хотели. Лучше когда саму задачу простыми словами описать и потом к этому показывать как делали кодом. Просто иногда угадывать тяжело, что именно нужно.

  • Саня говорит:

    Объясните пожалуйста глупому идиоту как получаеться 500500 ? Как работает эта формула не пойму

  • Гульназ говорит:
    почему в цикле for (double i=-1; i<=1; i=i+0.1)  0 равен -1.38778e-016
    for(double i=-1; i<=1;i=i+0.1)
    cout<<i<<"\n";

    результат

    -1
    -0.9
    -0.8
    -0.7
    -0.6
    -0.5
    -0.4
    -0.3
    -0.2
    -0.1
    -1.38778e-016
    0.1
    0.2
    0.3
    0.4
    0.5
    0.6
    0.7
    0.8
    0.9
    1

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     

Яндекс.Метрика

НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

- Алло! Скажите, почему ваш антивирус так долго проверяет фильм? - А как вы хотели? Он его смотрит!

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок