Розв’язування задач на оператори циклу для обробки одновимірних масивів у C++
Зміст
- Розв’язування задач
- Зв’язані теми
Пошук на інших ресурсах:
1. Знаходження суми елементів масиву з n дійсних чисел
1.1. Розв’язок з використанням циклу for
// сума елементів масиву дійсних чисел const int MaxN = 100; int n; float A[MaxN]; float sum; // результат - сума елементів масиву // задати значення n n = 10; // заповнення масиву A довільними значеннями for (int i=0; i<n; i++) A[i] = 0.1f * i; // спочатку занулити значення sum sum = 0; // цикл обчислення суми for (int i=0; i<n; i++) sum = sum + A[i];
1.2. Розв’язок з використанням циклу while
// сума елементів масиву дійсних чисел - цикл while const int MaxN = 100; // максимально-допустима кількість елементів масиву int n; // n = 1..MaxN - задана кількість елементів масиву float A[MaxN]; // масив float sum; // результат - сума елементів масиву int i; // додаткова змінна // задати значення n n = 10; // заповнення масиву A довільними значеннями через цикл while i=0; while (i<n) { A[i] = 0.1f*i; i++; } // спочатку занулити значення sum та i sum = 0; i = 0; // цикл while для обчислення суми while (i<n) { sum += A[i]; i++; }
1.3. Розв’язок задачі. Цикл do…while
// сума елементів масиву дійсних чисел - цикл do..while const int MaxN = 100; // максимально-допустима кількість елементів масиву int n; // n = 1..MaxN - задана кількість елементів масиву float A[MaxN]; // масив float sum; // результат - сума елементів масиву int i; // додаткова змінна // задати значення n n = 10; // заповнення масиву A довільними значеннями через цикл do..while i=0; do { A[i] = 0.1f*i; i++; } while (i<n); // спочатку занулити значення sum та i sum = 0; i = 0; // цикл do..while для обчислення суми do { sum += A[i]; i++; } while (i<n);
2. Знаходження середнього арифметичного елементів масиву з n дійсних чисел.
Щоб знайти середнє арифметичне елементів масиву, спочатку потрібно знайти суму елементів масиву, а потім цю суму поділити на кількість елементів масиву.
2.1. Розв’язок. Цикл for
У прикладі пропущено ввід масиву та кількості елементів масиву n.
// середнє арифметичне елементів масиву дійсних чисел - цикл for const int MaxN = 100; // максимально-допустима кількість елементів масиву int n; // n = 1..MaxN - задана кількість елементів масиву float A[MaxN]; // масив float avg; // результат - середнє арифметичне int i; // додаткова змінна // задати значення n n = 10; // ввід масиву A та кількості елементів масиву n // ... // сума обчислюється у змінній avg avg = 0; // цикл for для обчислення суми for (i=0; i<n; i++) { avg += A[i]; } // обчислення середнього арифметичного avg = avg / n;
2.2. Розв’язок. Цикл while
У прикладі пропущено ввід масиву та кількості елементів масиву n.
// середнє арифметичне елементів масиву дійсних чисел - цикл while const int MaxN = 100; // максимально-допустима кількість елементів масиву int n; // n = 1..MaxN - задана кількість елементів масиву float A[MaxN]; // масив float avg; // результат - середнє арифметичне int i; // додаткова змінна // ввід масиву A та кількості елементів масиву n // ... // заповнення масиву A довільними значеннями через цикл do..while i=0; do { A[i] = 0.1f*i; i++; } while (i<n); // сума обчислюється у змінній avg avg = 0; i = 0; // цикл while для обчислення суми while (i<n) { avg += A[i]; i++; } // обчислення середнього арифметичного avg = avg / n;
2.3. Розв’язок. Цикл do…while
У прикладі пропущено ввід масиву та кількості елементів масиву n.
// середнє арифметичне елементів масиву дійсних чисел - цикл do..while const int MaxN = 100; // максимально-допустима кількість елементів масиву int n; // n = 1..MaxN - задана кількість елементів масиву float A[MaxN]; // масив float avg; // результат - середнє арифметичне int i; // додаткова змінна // ввід масиву A та кількості елементів масиву n // ... // сума обчислюється у змінній avg avg = 0; i = 0; // цикл do..while для обчислення суми do { avg += A[i]; i++; } while (i<n); // обчислення середнього арифметичного avg = avg / n;
3. Поелементне копіювання масивів
3.1. Цикл for
У даному прикладі наводиться фрагмент коду, що копіює масив A з 10 дійсних чисел (float) в масив B.
// поелементне копіювання масивів - цикл for const int MaxN = 100; // максимально-допустима кількість елементів масиву int n; // n = 1..MaxN - задана кількість елементів масиву float A[MaxN]; // масив-джерело float B[MaxN]; // масив-призначення int i; // додаткова змінна // задати значення n n = 10; // ввід масиву A та кількості елементів масиву n // ... // цикл копіювання A => B for (i=0; i<n; i++) { B[i] = A[i]; }
3.2. Цикл while
Фрагмент копіювання масиву A в масив B з використанням циклу while
// поелементне копіювання масивів - цикл while const int MaxN = 100; // максимально-допустима кількість елементів масиву int n; // n = 1..MaxN - задана кількість елементів масиву float A[MaxN]; // масив-джерело float B[MaxN]; // масив-призначення int i; // додаткова змінна // задати значення n n = 10; // ввід масиву A та кількості елементів масиву n // ... // цикл копіювання A => B i=0; while (i<n) { B[i] = A[i]; i++; }
3.3. Цикл do…while
Реалізація копіювання масивів з використанням циклу do…while
// поелементне копіювання масивів - цикл do...while const int MaxN = 100; // максимально-допустима кількість елементів масиву int n; // n = 1..MaxN - задана кількість елементів масиву double A[MaxN]; // масив-джерело double B[MaxN]; // масив-призначення int i; // додаткова змінна // задати значення n n = 10; // ввід масиву A та кількості елементів масиву n // ... // цикл копіювання A => B i=0; do { B[i] = A[i]; i++; } while (i<n);
4. Обертання масиву (отримати результуючий масив, обернений до вихідного)
Нехай задано два масиви з іменами A і B. Масив A задається. Отримати результуючий масив B, який є обернений до вихідного масиву A (елементи масиву йдуть у зворотному порядку).
У даному прикладі наводиться реалізація обертання масиву з допомогою трьох відомих операторів циклу.
// Отримання оберненого масиву const int MaxN = 100; // максимально-допустима кількість елементів масиву int n; // n = 1..MaxN - задана кількість елементів масиву double A[MaxN]; // масив-джерело double B[MaxN]; // масив-призначення int i; // додаткова змінна // ввід масиву A та кількості елементів масиву n // ... // розв'язок задачі з допомогою циклу do...while оберненого копіювання A => B i=0; do { B[i] = A[n-i-1]; i++; } while (i<n); // розв'язок з допомогою циклу for for (i=0; i<n; i++) B[i] = A[n-i-1]; // розв'язок з допомогою циклу while i=0; while (i<n) { B[i] = A[n-i-1]; ++i; }
5. Обертання масиву без використання додаткового масиву
Задано масив A з n дійсних чисел. Реалізувати операцію обертання масиву без використання додаткового масиву.
У наведеному нижче коді реалізовано обертання масиву з використанням операторів циклів for, while, do…while.
Нехай задано такий опис типів даних
// Обертання масиву A const int MaxN = 100; // максимально-допустима кількість елементів масиву int n; // n = 1..MaxN - задана кількість елементів масиву double A[MaxN]; // масив-джерело int i; // додаткова змінна double t; // додаткова змінна // задати значення n n = 10; // ввід масиву A та кількості елементів масиву n // ...
Тоді розв’язок задачі з використанням циклу do…while
// розв'язок задачі з допомогою циклу do...while оберненого копіювання A => B i=0; do { t = A[i]; A[i] = A[n-i-1]; A[n-i-1] = t; i++; } while (i < (n/2));
Розв’язок задачі з використанням циклу for
// розв'язок з допомогою циклу for for (i=0; i<n/2; i++) { t = A[i]; // використання додаткової змінної t A[i] = A[n-i-1]; A[n-i-1] = t; }
Розв’язок задачі з використанням циклу while.
// розв'язок з допомогою циклу while i=0; while (i<n/2) { t = A[i]; A[i] = A[n-i-1]; A[n-i-1] = t; i++; }