Основы программирования на С++ для начинающих

Задачи: Цикл for в С++

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

1. Написать программу, которая будет показывать на экран квадрат числа,  введенного пользователем. Пользователь должен сам решать –  выйти из программы или продолжить ввод. (Подсказка – необходимо запустить бесконечный цикл, в котором предусмотреть его прерывание, при наступлении определённого условия).

2. В спортзал ежедневно приходит какое-то количество посетителей. Необходимо предложить пользователю ввести такие данные: сколько человек посетило спортзал за день, ввести возраст каждого посетителя и в итоге показать возраст самого старшего и самого молодого из них, а так же посчитать средний возраст посетителей.

Для самостоятельно задания, предлагаем вам решить похожую задачу. Организовать ввод количества посетителей спортзала и количества часов проведенных каждым из них в спортзале. В итоге посчитать и показать общую сумму, которую посетители заплатили за тренировки.

 3. На складе имеется определённое количество ящиков с яблоками (в нашем примере 15). Когда подъезжает машина для погрузки, попросить пользователя ввести, сколько ящиков загрузить в первую машину,  во вторую и так далее, пока не закончатся ящики с яблоками. Предусмотреть тот случай, когда пользователь введёт количество ящиков больше, чем есть на складе.

При возникновении вопросов обращайтесь к нам в комментариях.

161 thoughts on “Задачи: Цикл for в С++

  1. Ребят!Пожалуйста, помогите с задачей про спортсменов с часами! Я не могу просуммировать общую оплату всех спортсменов

    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "rus");
    int visitors = 0;
    int number_for_hours = 0;
    int money = 100;
    int sum;

    cout << visitors;

    for (int i = 0; i < visitors; i++)
    {

    cout << i + 1 << number_for_hours;
    cout << endl;
    cout << "Оплата " << i + 1 << " посетителя: " << number_for_hours*money<<endl;

    }
    sum = number_for_hours*money;
    sum += sum;

    cout << "Всего оплата: " << sum;

    _getchar_nolock();
    _getchar_nolock();
    return 0;
    }

    1. Ты немного попутал cin и cout. ))
      И еще некоторые моменты не учел. Смотри код:

      #include
      using namespace std;

      int main()
      {
      setlocale(LC_ALL, "rus");
      int visitors = 0;
      int number_for_hours = 0; // для ввода часов каждого посетителя
      int final_hours = 0; // счетчик для накопления общего кол-ва часов
      int money = 100;
      int sum;
      cout < < "Введите кол-во посетителей за день: "; cin >> visitors; // ввод кол-ва посетителей

      for (int i = 0; i < visitors; i++) { cout << i + 1 << "-й посетитель провел в спортзале (часов): "; cin >> number_for_hours;
      final_hours += number_for_hours;
      //cout < < "Оплата " << i + 1 << " посетителя: " << number_for_hours*money << endl; // благодаря счетчику final_hours - єта строка не нужна // посчитаем ниже } sum = final_hours * money; cout << "Всего оплата: " << sum << endl; return 0; }

      1. Теперь понял) Спасибо огромное!!!)))

  2. Зачем инициировать i нулем? не проще ли написать i=1? Касается и первого примера в уроке

    1. Можно написать и i=1 (с равным успехом) … как и любое другое значение.

      В языке C/C++ использование нулевого начального значения для цикла for является, скорее, традицией, привычкой программистов.
      Это связано с тем, что индексация массивов начинается с 0, а цикл for в большинстве случае (чаще всего) используется для перемещения по массиву.

  3. #include
    #include

    using namespace std;

    int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

    int size;
    int tmp;
    int min = 0;
    int max = 0;
    int middle;
    int count = 0;

    cout <> size;
    cout << endl;
    if (size <= 0) cout << "Ошибка количество поситетелей не может быть равна нулю или меньше нуля" << endl;
    else {
    for (int i = 0; i < size; i++) {
    cout << "Введите возраст " << i + 1 <> tmp;
    if (tmp max || !max) max = tmp;
    count += tmp;
    }
    cout << endl;

    if (size == 1) cout << "Сегодня был всего один посетитель его возраст был " << min << " лет" << endl;
    else {
    cout << "Спорт зал сегодня посетило: " << size << " посетителя" << endl;
    cout << "Самому младшему посетителю " << min << " лет" << endl;
    cout << "Самому старшему посетителю " << max << " лет" << endl;
    cout << "Средний возраст посетителей " << count / size << " лет" << endl;
    }
    }

    return 0;
    }

  4. Подскажите пожалуйста можно ли вот так решить задачу с оплатой занятий в спортзале?

    #include;

    using namespace std;

    int main()
    {
    setlocale(LC_ALL, ".1251");

    int i = 0;
    int AllPeople = 0;
    int money = 10;
    int hour = 0;
    int SumMoney = 0;
    int SumHour = 0;

    cout <> AllPeople;

    for (i = 0; i < AllPeople; i++)
    {
    cout << "\nВведите количество проведенных в спортзале часов для " << i + 1 <> hour;
    }
    SumHour = AllPeople*hour;
    SumMoney = money*SumHour;

    cout << "\nОбщее время тренировок равно " << SumHour <<endl;
    cout << "\nОбщая сумма за все тренировки посетителей равна " << SumMoney << "$" << endl;

    system("PAUSE");
    return 0;
    }

  5. На 10 строчек сократил ваш код к 3 задаче)

    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "rus");
    int boxes(0);
    int amount;
    cout < 0; boxes -= amount, i++) {
    cout << "\nСколько ящиков погрузить в " << i + 1 <> amount;
    if (boxes > amount)
    cout << "Осталось коробок: " << boxes - amount < boxes) {
    cout << "Недопустимое количество. Введите еще раз\n";
    cout << "Сколько ящиков погрузить в " << i+1 <> amount;
    cout << "Осталось коробок: " << boxes - amount << endl;
    }
    };
    if (boxes == 0)
    cout << "\nKоробки закончились!\n\n";
    system("pause");
    return 0;
    }

  6. Извиняюсь, первый раз как то неудачно скопировал(

    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "rus");
    int boxes(0);
    int amount;
    cout < 0; boxes -= amount, i++) {
    cout << "\nСколько ящиков погрузить в " << i + 1 <> amount;
    if (boxes > amount)
    cout << "Осталось коробок: " << boxes - amount < boxes) {
    cout << "Недопустимое количество. Введите еще раз\n";
    cout << "Сколько ящиков погрузить в " << i+1 <> amount;
    cout << "Осталось коробок: " << boxes - amount << endl;
    }
    };
    if (boxes == 0)
    cout << "\nKоробки закончились!\n\n";
    system("pause");
    return 0;
    }

  7. По поводу второй задачи – я в цикл for добавил 3-ее условие. Если i равен 0, то minAge присвоить age. При этом minAge инициализируется у меня числом 0, а не 100. Это сделано затем, что не понятно откуда берётся магическое число 100. А если человеку, скажем, 105 лет? Ведь есть люди, живущие больше 100 лет. С таким числом при вашем подходе условие не будет выполняться. Насколько долго должны жить люди судя программе – другой вопрос. Можно загуглить возраст самого долгоживущего и поставить его возраст как предел.

  8. после повтора в программе не выходя из нее не обнуляется переменная как мне кажется coast как ее обнулить ?

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *