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

Задачи: циклы while, do while, вложенные циклы

Мы познакомились с циклами while и do while в C++ и с вложенными конструкциями в циклах. Займёмся решением задач.

1. Организовать беспрерывный ввод чисел с клавиатуры, пока пользователь не введёт 0. После ввода нуля, показать на экран количество чисел, которые были введены, их общую сумму и среднее арифметическое. Подсказка: необходимо объявить переменную-счетчик, которая будет считать количество введенных чисел, и переменную, которая будет накапливать общую сумму чисел.

2. Необходимо суммировать все нечётные целые числа в диапазоне, который введёт пользователь с клавиатуры.

3. Задача посложней. Нарисовать равнобедренный треугольник из символов ^. Высоту выбирает пользователь. Например: высота = 5, на экране

задачи вложенные циклы

155 thoughts on “Задачи: циклы while, do while, вложенные циклы

  1. #include

    using namespace std;

    void main()
    {
    setlocale(LC_ALL, “Rus”);

    int a, kol;
    int i = 0;
    double sum = 0;

    cout << "Введите числа для расчета (выйти – 0)" << endl;

    do
    {
    i++;
    cout << "Число " << i <> a;
    kol = i;
    sum += a;
    } while (a != 0);

    cout << "\n~~~~~~~~~~~~~~~~~~~~~~" << endl;
    cout << "Кол-во введенных чисел: " << kol – 1 << endl;
    cout << "Общая сумма: " << sum << endl;
    cout << "Среднее арифметическое: " << (double)(sum / (kol – 1)) << endl;

    }

    1. Оно там решено усложненно во втором цикле.

      int main()
      {
      int height = 5;

      // подсчет строк 0 или 1 изменит расчет в for2
      for( int i{0}; i < height ; i++ )
      {
      // вывод пустот, равно высота-текущаяя строка
      for ( int j{1}; j< height-i; j++ )
      {
      cout << "*";
      }
      // вывод символов
      // на каждую строку выводится *2+1 символ если строки с 0
      // и i*h+1 если строки с 1
      for ( int h{} ; h<i*2+1 ; h++)
      {
      cout << "$";
      }
      cout << endl;
      }
      return 0;
      }

  2. setlocale(LC_ALL, “rus”);
    int heigt = 0;
    int from = 0;
    int before = 0;
    cout <> heigt;
    cout << endl << endl;
    for ( int i = 1; i <= heigt; i++)
    {
    from = heigt – i;
    before = from + (i + i – 2);
    for (int j = 0; j <= heigt – i; j++)
    {
    cout << " ";
    }
    for (int j = from; j <= before; j++)
    {
    cout << "^";
    }
    cout << endl;
    }
    return 0;

  3. int main()
    {
    setlocale(LC_ALL, “rus”);

    char perem = ‘^’;
    int hight = 0;
    int n = 0;
    int d = 1;

    cout <> hight;

    do
    {
    n = 0;
    while (n < hight-1)
    {
    cout << " ";
    n++;
    }

    for (int i = 0; i < d; i++)
    {
    cout << perem;
    }
    cout << endl;

    d += 2;
    hight–;

    } while (hight != 0);

    return 0;
    }

  4. int main() {
    setlocale(LC_ALL, “rus”);

    int height;
    char symbol;
    cout << "Эта программа рисует равнобедренный треугольник из указанных символов.\n\n"
    <> symbol;
    cout <> height;
    cout << endl;

    int spaceCounter = height;
    int symbolCounter = 1;

    for (int i = 1; i 0; j–) { // Цикл расстановки пробелов
    cout << " ";
    }
    for (int s = 1 ; s <= symbolCounter; s++) { // Цикл вывода символов
    cout << symbol;
    }
    symbolCounter += 2;
    cout << endl;
    }
    return 0;
    }

    1. Почему-то при копировании код попортился. Поправил:

      int main() {
      setlocale(LC_ALL, “rus”);

      int height;
      char symbol;
      cout << "Эта программа рисует равнобедренный треугольник из указанных символов.\n\n"
      <> symbol;
      cout <> height;
      cout << endl;

      int spaceCounter = height;
      int symbolCounter = 1;

      for (int i = 1; i 0; j–) { // Цикл расстановки пробелов
      cout << " ";
      }
      for (int s = 1 ; s <= symbolCounter; s++) { // Цикл вывода символов
      cout << symbol;
      }
      symbolCounter += 2;
      cout << endl;
      }
      return 0;
      }

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

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