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

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

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

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

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

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

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

177 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;
      }

  5. #include
    #include
    #include
    #include

    using namespace std;

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

    int numb; //Переменная для ввода чисел

    int summ=0; // Переменная для суммирования вводимых чисел

    int rep=-1; // Переменная счетчик ввода, равен -1 так как последний воод тоже учитывается

    int maxnumb=0; // переменная макс числа

    int minnumb=1000000; // Переменная минимального числа

    int tab[254]; // Массив для сохранения чисел

    do
    {
    cout << endl <> numb; // Ввод чисел
    rep++; // Счетчик
    if (numb !=0) tab[rep] = numb; // Ввод чисел в массив
    summ = summ + numb; // Сумма вводимых чисел
    if ( minnumb > numb && numb !=0) minnumb = numb; // Минимальное число, добавлено условие чтобы не выводилось условие прекращение массива
    if ( maxnumb < numb ) maxnumb = numb; // Максимальное число
    if (numb !=0) cout << endl << " Что бы завершить нажмите 0." << endl;
    }
    while ( numb != 0 ); // условие остановки массива
    cout << endl << " Итого : " << endl;
    cout << endl << " Максимальное число : "<< maxnumb << endl;
    cout << endl << " Минимальное число : " << minnumb <<endl;
    cout << endl << " Количество вводов : " << rep << endl;
    cout << endl << " Сумма чисел : " << summ << endl;
    cout << endl << " Среднее арифметическое : " << summ / rep << endl << endl;
    // Цикл сортировки массива
    for (int i = 0; i tab[i+1] && tab[i+1] !=0)
    {
    int buff=0;
    buff = tab[i] ;
    tab[i] = tab [i+1];
    tab[i+1] = buff;
    i=-1;
    }

    }
    cout << " Введенные числа : ";

    // Цикл вывода массива
    for (int i = 0 ; i<=rep-1; i++) cout <<" " << tab[i] << " ";
    cout << endl<<endl;
    }

  6. int main()
    {

    int size;
    int iterator = 0;
    int symbolIterator = 0;
    int var = 0;
    cin >> size;
    cout << "\n\n\n\n\n";

    char space = ' ';
    char symbol = '^';

    while (iterator <= size) {
    iterator++;
    cout << space;

    if (iterator == size) {
    while (symbolIterator <= var){
    cout << symbol;
    symbolIterator++;}
    symbolIterator = 0;
    var+=2;
    iterator = 0;
    size–;
    cout << endl;
    }
    }
    cout << "\n\n\n\n";

  7. Задача по равнобедренному треугольнику . for(int j = 1; j < height – i; j++); эту строку кода компилятор не пропускает ,показывает ошибку – i; Подскажите , в чём дело ?

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

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