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

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

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

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

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

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

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

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

  1. #include
    using namespace std;

    int main() {

    int _start = 0;
    int _end = 0;
    int _sumInputNumber = 0;

    cout <> _start;
    cout <> _end;

    for (int i = 0; i != _end+1; i++) {
    if (i % 2 != 0) {
    cout << i << " ";
    _sumInputNumber += i;
    }
    }
    cout << "\nAll the sum of whole odd integers from " << _start << " to " << _end << "are: " << _sumInputNumber;
    return 0;
    }

  2. —————- 3 ——————-
    #include
    using namespace std;

    int main() {

    int _inputNumber;
    string _toxer[100];
    string _hertakanTox;
    string _avelacvoxProblner;

    cout << "Enter the number tu build the tree, number will be a higth of tree" <> _inputNumber;

    for (int i = _inputNumber; i != 0; i–) { // toxeri qanak
    for (int x = _inputNumber – i; x != 0; x–) {
    _avelacvoxProblner += ” “;
    }
    for (int j = 0; j != i*2-1; j++) {
    _hertakanTox += “^”;
    }
    _toxer[i] = _avelacvoxProblner + _hertakanTox;
    _hertakanTox.clear();
    _avelacvoxProblner.clear();
    }
    for (int tpel = 0; tpel != _inputNumber+1; tpel++) {
    cout << _toxer[tpel] << endl;
    }
    return 0;
    }

  3. Си

    #include
    #include

    main()
    {
    int visota, i, j;
    printf(“Insert height: “);
    scanf_s(“%d”, &visota);

    for (i = 0; i <= visota; i++) // высота треугольника
    {
    for (j = 0; j < visota + i; j++) // перечисляем количество знаков в строке ( ширину треугольника )
    {
    if (j <= visota – i) //
    {
    printf(" ");
    }
    else
    {
    printf("^");
    }

    }
    printf("\n");

    }

    }

  4. private void PrintTriangle()
    {
    int weigth = int.Parse(txbInput.Text);
    char symbol = char.Parse(txbSymbol.Text);

    for (int i = 0; i < weigth; i++)
    {
    for (int j = 1; j <= i; j++)
    {
    rtxbOutput.Text += symbol.ToString();
    }
    rtxbOutput.Text += symbol.ToString() + "\n";
    }
    }

  5. #include
    using namespace std;

    int main() {
    char c(‘^’);
    int a = 0;
    while (cin >> a && a > 0) {
    for (int d = 1; d <= a; d++) {
    int totalelok = (1 + (d – 1) * 2);
    string tempstr((1 + (a – 1) * 2), ' ');
    tempstr[tempstr.size() / 2] = c;
    for (int t = 1; t != totalelok; t += 2) {
    tempstr[tempstr.size() / 2 + ((t + 1) / 2)] = c;
    tempstr[tempstr.size() / 2 – ((t + 1) / 2)] = c;
    }
    cout << tempstr << endl;
    }
    }
    system("pause");
    return 0;
    }

  6. int main() {
    setlocale(0, “RU”);
    int h, b, x, y;
    char sym = ‘^’;
    cout << "Введите высоту равнобедренного треугольника: " <> h;
    b = h + (h – 1);
    x = h;
    y = h;
    for (int i = 1; i <= h; i++) {
    for (int j = 1; j <= b; j++) {
    if (j y) {
    cout << " ";
    }
    else {
    cout << sym;
    }
    }
    x -= 1;
    y += 1;
    cout << endl;
    }
    return 0;
    }

    1. Я попытался разжевать 3 задачу
      Цикл for выглядит так:

      for ( определение управляющей переменной ;
      условие повторения цикла ;
      изменение управляющей переменной )

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

      #include
      using namespace std;

      int main()
      {

      int height = 0; // высота треугольника

      cout <> height;

      for (int i = 0; i < height; i++) //внешний цикл для строчек
      { // начало внешнего цикла
      // 2 вложенных цикла – для пробелов и для знаков

      for (int j = 1; j < height – i; j++)
      // i берется из внешнего цикла
      // а j относится к этому внутреннему циклу
      {
      cout << ' ';
      }
      //в строке печать пробелов

      for (int j = height – 2 * i; j <= height; j++)
      // i берется из внешнего цикла
      // а j относится уже к этому внутреннему циклу

      //допустим высота = 5 , то
      //в нулевой строчке j=5,а i=0, поэтому знак выведется 1 раз

      // а в след строчке j=3 , i=1, (на следующем внешнем цикле)
      // поэтому знак выводится 3 раза ,когда j = поочередно 3, 4, 5

      {
      cout << '^';
      }
      //печать знаков

      cout << endl;
      } // конец внешнего цикла
      return 0;
      }

  7. Третий день изучаю с++. Но на python подобную программу уже писал

    #include
    #include
    #include
    using namespace std;

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

    int i;
    string a = ” “;
    string b = “^”;

    cout <> i;

    int e = 1;

    for (int n = 0; n < i; i–, e += 2) {

    for (int k = 0; k < i; k++) {
    cout << a;
    }

    for (int r = 0; r < e; r++) {
    cout << b;
    }
    cout << "\n";
    }

    return 0;
    }

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

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