Основи програмування на С ++ для початківців

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

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

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

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

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

завдання вкладені цикли

177 думки про "Завдання: циклы while, do while, вложенные циклы

  1. Якщо кому то раптом цікаво, альтернативний варіант вирішення другого завдання за допомогою циклу for. :)

    #include
    using namespace std;

    int main(){
    setlocale(LC_ALL, "rus");

    int debut;
    int fin;
    int number;
    int sum = 0;

    cout << debut;
    cout << fin;

    for(int i = (debut - 1); i < fin; ++i){
    number = debut;
    if (number % 2 != 0){
    sum = sum + number;
    debut = debut + 1;
    }
    else{
    debut = debut + 1;
    continue;
    }
    }
    cout << "Сумма нечётных чисел в данном диапазоне: " << sum << endl;

    }

  2. я один не допедріваю принцип роботи whille??? прога робоча,але не впевнений,що do while нужна.і спеціально для “вискочок” вніс “захист для дурня”
    case 9:
    {
    /*. Необходимо суммировать все нечётные целые числа в диапазоне,
    который введёт пользователь с клавиатуры*/

    double a = 0;
    double b = 0;
    int i = 0;
    double s = 0;

    cout << a;
    cin >> b;
    do
    {
    if (a < b)
    {
    for (i = a; i <= b; i++)
    {
    if (i % 2 == 0)
    {
    continue;
    }
    s += i;
    cout << "нечетные числа из вашего диапазона\t" << i << endl;

    }cout << "сумма этих чисел = \t" << s < b)
    {
    for (i = b; i <= a; i++)
    {
    if (i % 2 == 0)
    {
    continue;
    }
    s += i;
    cout << "нечетные числа из вашего диапазона\t" << i << endl;
    }
    cout << "сумма этих чисел = \t" << s << endl;
    }

    break;
    } while (a == b);
    cout << "алльенЬ\n";
    break; }

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

    int a = 0, b = 0, i = -1;
    do
    {
    a = _getche() - 48;
    b = a + b;
    i++;
    } while (a != 0);
    if (b == 0)
    exit(0);
    cout << "\nСумма = " << b << endl
    << "Колличество введеных знаков = " << i << endl
    << "Среднее арефметическое = " << static_cast(b) / i << endl;

    system("pause");
    return 0;
    }

  4. третья

    int main()
    {
    setlocale(LC_ALL, "rus");

    cout << h;
    do
    {
    if(h!=1)
    cout << setfill(' ') << setw(h-1) << ' '
    << setfill('^') << setw(k) << '^' << endl;
    else
    {
    cout << setfill('^') << setw(k) << '^' << endl;
    }
    --h; k += 2;
    } while (h);

    system("pause");
    return 0;
    }

  5. З приводу третього завдання.
    більш менш розібрався з циклами, які задають висоту фігури і кількість прогалин.
    Але хоч убийте не можу розібратися з циклом, який виводить символ, а саме for (int j = height – 2 * i; j <= height; j ).
    Будь ласка хто- небудь поясніть чому змінна j инициализирована саме таким значенням. Заздалегідь вдячний!

    1. int main()
      {
      setlocale(LC_ALL, "rus");

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

      cout << height;

      for (int i = 0; i = i; j--)
      {
      cout << "!";
      }

      for (int j =0; j <= i; j++)
      {
      cout << '^';
      }
      for (int j=1; j<= i; j++)
      {
      cout <<'^';
      }
      cout << endl;
      }
      return 0;
      }

      1. В умові задачі забули згадати, що оператори виведення символу, пробілу і перенесення рядка можна використовувати лише один раз…ось тоді вона стає цікавою ;)

  6. “Завдання: циклы while, do while, вложенные циклы”
    Не зрозуміло чому третя задача вирішена через for(;;), хіба це не суперечить темі?
    І як взяти код в рамочку?)

    1. цикли for, while, do while – це різні форми одного і того ж – кожен з них може бути переписаний через будь-який інший.
      Так що різниці особливої ​​немає.

      1. [quote]цикли for, while, do while - це різні форми одного і того ж - кожен з них може бути переписаний через будь-який інший.
        Так що різниці особливої ​​немає.[/quote]
        Я це прекрасно розумію,однак для циклів for() є окрема тема. Тобто,. за логікою або зібрати всі цикли в одну тему, або приділити увагу розкриттю оголошеної теми.

    2. як взяти код в рамочку?
      Це ** розмітка тексту ** вставкою тегів BBCode.
      Для того, щоб розмітити ** програмний код ** потрібно записати приблизно так (тільки замість квадратних дужок [ ] писати кутові ), ось так:
      [код]
      … тут ви пишете свій код …
      [/код]
      (почитайте пошуком про BBCode для більш докладного пояснення)

  7. [код з ++]
    int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

    int a, b;
    int sum = 0;

    cout << "Введите диапазон чисел" << endl;
    cout <> a;
    cout <> b;

    cout << "Сумма не четных чисел: " << endl;
    while (a != Ь + 1) {
    if (a % 2 != 0) {
    сума + = а;
    if (A == B – 1 || A == B) {
    cout << a;
    }
    else cout << a << " + ";
    }
    A ++;
    }
    cout << " = " << sum << endl;

    return 0;
    }
    [/код]

  8. [код]
    int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

    int a, b;
    int sum = 0;

    cout << "Введите диапазон чисел" << endl;
    cout <> a;
    cout <> b;

    cout << "Сумма не четных чисел: " << endl;
    while (a != Ь + 1) {
    if (a % 2 != 0) {
    сума + = а;
    if (A == B – 1 || A == B) {
    cout << a;
    }
    else cout << a << " + ";
    }
    A ++;
    }
    cout << " = " << sum << endl;

    return 0;
    }
    [/код]

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *