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

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

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

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

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

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

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

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

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

  1. #include
    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "rus");
    int x = 0;
    int y = 0;
    int min = 1000;
    int max = 0;
    int sum = 0;
    int srd = 0;

    cout <> x;
    int z = x;
    for (x; (x > 0); x--)

    {
    cout <> y;
    sum = sum + y;
    if (min > y)
    min = y;

    if (max < y)
    max = y;
    }
    srd = sum / z;
    cout << "Максимальный возраст - " << max << endl;
    cout << "Минимальный возраст - " << min << endl;
    cout << "Средний возраст - " << srd << endl;
    _getch();
    return 0;
    }

  2. а вот с третий задачей не сложилось

    #include
    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "rus");
    int y = 0;
    int x = 0;
    cout << x;
    for ( ;;)
    {
    cout << y;
    x = x - y;
    if (x = 0)
    {
    break;
    }
    if (x < 0)
    {
    x = x + y;
    cout << "Введено недопустимо большое значение. Начните ввод для крайней машины заного. \n ";
    continue;
    }

    else
    {
    x = x - y;
    cout << "У вас осталось " << x << " ящиков \n";

    }

    }
    _getch();
    return 0;
    }

    в чем ошибка?

    1. В вашем коде ошибка в этом месте if (x = 0). Т.е., при любом раскладе х не будет отрицательным, а будет постоянно равен 0.

  3. Вот как у меня получилась задача N3:
    ________________________
    #include
    #include
    using namespace std;
    int main ()
    {
    int a,h,b,c,k,p,v,g,n;
    a=0;//ящикoв
    setlocale(LC_ALL, "rus");
    b=0;//машини
    n=0;//ящики
    v=0;//лишились
    k=0;
    g=0;
    h=0;
    cout <<"Введите количество ящиков"<>a;
    cout <<"Введите количество машин"<>b;

    for (c=1;c<=b;c++)
    {
    :check_1
    cout <<"Сколько ящиков поставить в "<<c<<"-ю машину?"<>n;
    g+=n;//
    if (a<g)
    {
    g-=n;
    for (;;)
    {
    cout <<"Недостаточно ящиков"<<endl;
    cout <<"Сколько ящиков поставить в "<<c<<"-ю машину?"<>p;
    g+=p;//
    }
    if (a>g)
    {
    :check_1
    }
    else
    g-=p;
    goto check;
    }
    }
    }
    if (g<a)
    {
    cout <<"Ошибка!Нехватка машин!У вас осталось "<<a-g<<" ящиков"<<endl;
    }
    else
    cout <<"15 ящиков распределено по машинах"<<endl;

    system ("pause");
    return 0;
    }

    1. > Вот как у меня получилась задача N3:

      Видеть такое без разметки – это всё равно, если бы весь код в одну строчку выписать. Код даже и в такой записи будет компилироваться и выполняться, но это не значит, что его кто-то станет читать.

    2. > Вот как у меня получилась задача N3:

      Вы бы хоть откомпилировали код, через компьютер прогнали, перед тем как его показывать – там будет просто множество синтаксических ошибок. Поэтому говорить про “получилось” – не приодится ;-).

  4. Что бы не писать такого : int minAge = 100;
    Можно такое сделать :
    int minAge = 0
    if (age < minAge || age == 0)

    А то не известно, может продолжительность жизни увеличется в будущем..

    1. > Можно такое сделать :

      Можно…
      Но обратите внимание на то, что всегда при отборе в последовательности (массив, список и др.) элемента по какому-то критерию: min, max, … любому – есть 2 разных подхода:

      1. взять за начальное значение явно не подходящее для этого значение (то, что в примере и у вас … 100, 0, …);

      2. взять за начальное значение первый элемент последовательности, а перебор вести, начиная со следующего, 2-го элемента.

      1. .. тогда и условие со второго элемента выставить..

        Ну у кого как мозги повёрнуты. В общем-то в этом и привлекательность сего дела.

  5. У меня как-то по другому 3-е задание получилось

    #include
    using namespace std;

    int main()
    {
    int nNumBoxPerCar, nNumBox=0, i=1, nOstatokBox=15;

    for ( ;nNumBox < 15 ; i++)
    {
    cout << "Сколько ящиков загрузить в машину " << i <> nNumBoxPerCar;
    nNumBox = nNumBox + nNumBoxPerCar;
    if (nNumBox >= 15)
    {
    nOstatokBox = (15 – nNumBox) + nNumBoxPerCar;
    break;
    }
    }
    cout << "Ящики закончились. Причем в последнюю машину удалось загрузить: "
    << nOstatokBox << "\n";
    }

  6. Первую задачу по-другому решил.
    using namespace std;
    int main()
    {
    setlocale(LC_ALL, “rus”);
    int number = 0;
    bool Continue = 0;
    for (int i = 0; i < 1; i++)
    {
    cout <> number;
    cout << endl;
    cout << "Квадрат числа " << number << " = " << number*number << endl;
    cout <> Continue;
    if (Continue == 1)
    i–;

    }

    system(“pause”);
    return 0;
    }

  7. Задача №3
    криво, но главное смысл и результат…

    #include
    using namespace std;
    int main()
    {
    int i=0,a,b;
    char x;
    cout<<a;
    for(;;)
    {
    i+=1;
    cout<<i<<b;
    if (a>b)
    {
    a-=b;
    cout<<"Na sklade ostatok = "<<a<<endl;
    }
    else if (a<b)
    {
    cout<<"Na sklade otalos = "<<a<<endl;

    cout<<"zagruzat - "<<a<<"jachikov?";

    cout<<x;
    if (x=='y')
    {
    cout<<"zagruzili ostatok - "<<a;
    break;
    }
    else if (x=='n')
    {
    cout<<"izvenite za neudobstvo DOSVIDANIE";
    }
    }
    else if (a==b)
    {
    cout<<"Na sklade ostalos = 0"<<endl;
    break;
    }
    }
    return 0;
    }

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

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