C++. Розв’язування задач на одновимірні масиви. Поєднання оператора циклу з оператором умови
Зміст
- 1. Знаходження суми додатних елементів масиву з n цілих чисел
- 2. Знайти суму елементів масиву, які розміщуються на парних індексах
- 3. Знайти добуток елементів масиву, які більше заданого числа
- 4. Визначення наявності (відсутності) заданого символу в масиві символів (тип char)
- 5. Визначення наявності (відсутності) заданого числа в масиві чисел. Масив має n цілих чисел
- 6. Пошук позиції останнього входження елементу k в масивів з n цілих чисел
- 7. Пошук позиції першого входження елементу k в масиві з n цілих чисел
- 8. Підрахунок кількості елементів k в масиві з n цілих чисел
- 9. Підрахунок кількості елементів в масиві з n дійсних чисел, які менше заданого значення k
- 10. Підрахунок кількості елементів в масиві з n дійсних чисел, значення яких знаходиться в межах діапазону від a до b.
- 11. Підрахунок кількості парних елементів в масиві з n цілих чисел
- Зв’язані теми
Пошук на інших ресурсах:
1. Знаходження суми додатних елементів масиву з n цілих чисел
Задано масив A з 10 цілих чисел. Знайти суму додатних елементів масиву
1.1. Реалізація з допомогою циклу for
У даному прикладі пропущено ввід масиву A
// Знаходження суми додатних елементів масиву const int MaxN = 10; int A[MaxN]; // заданий масив int i; // ввід масиву A // ... // обчислення суми int sum = 0; for (i=0; i<MaxN; i++) if (A[i]>0) sum = sum + A[i];
1.2. Реалізація з допомогою циклу while
// Знаходження суми додатніх елементів масиву const int MaxN = 10; int A[MaxN]; // заданий масив int i; // додаткова змінна int sum = 0; // результат // ввід масиву A // ... // обчислення суми i=0; while (i<MaxN) { if (A[i]>0) sum+=A[i]; i++; }
1.3. Реалізація з допомогою циклу do..while
// Знаходження суми додатніх елементів масиву const int MaxN = 10; int A[MaxN]; // заданий масив int i; // додаткова змінна int sum = 0; // результат // ввід масиву A // ... // обчислення суми i=0; do { if (A[i]>0) sum+=A[i]; i++; } while (i<MaxN);
⇑
2. Знайти суму елементів масиву, які розміщуються на парних індексах
У даному прикладі обчислюються суми елементів масиву A, індекси яких є парними: 0, 2, 4, … Щоб визначити чи число (індекс масиву) є парним, потрібно застосувати перевірку
if ((i%2)==0) { // дії, якщо число парне // ... }
Реалізація рішення даної задачі трьома видами циклу (ввід масиву A опущено).
// Знаходження суми елементів масиву, які мають парні індекси (0, 2, 4,...) const int MaxN = 10; int A[MaxN]; // заданий масив int i; // додаткова змінна int sum1, sum2, sum3; // результати обчислень різними видами циклів // ввід масиву A // ... // обчислення суми, цикл for sum1 = 0; for (i=0; i<MaxN; i++) if ((i%2)==0) // визначення парності числа sum1+=A[i]; // обчислення суми, цикл while sum2 = 0; i=0; while (i<MaxN) { if ((i%2)==0) sum2+=A[i]; i++; } // обчислення суми, цикл do...while sum3 = 0; i=0; do { if ((i%2)==0) sum3+=A[i]; i++; } while (i<MaxN);
⇑
3. Знайти добуток елементів масиву, які більше заданого числа
У прикладі знаходиться добуток елементів масиву A, які більше числа, що розміщується в змінній number. Реалізація задачі з використанням циклу for:
// добуток елементів масиву, які більше заданого числа const int MaxN = 10; int A[MaxN]; // заданий масив int number; // задане число int i; // додаткова змінна int res; // результат - добуток // ввід масиву A for (i=0; i<MaxN; i++) { A[i] = i; } // задавання числа number number = 5; // пошук добутку - цикл for res = 1; for (i=0; i<MaxN; i++) if (A[i]>number) res = res * A[i]; // res = 3024
Якщо розмірність масиву велика, то результат добутку доцільно тримати у змінній типу double (float). Це зв’язано з тим, що результатом добутку можуть бути дуже великі або дуже малі числа. При використанні цілих типів може виникнути переповнення.
Фрагмент реалізації даної задачі з використанням циклу while
... // пошук добутку - цикл while res = 1; i=0; while (i<MaxN) { if (A[i]>number) res = res * A[i]; i++; } // res = 3024
Реалізація з допомогою циклу do…while
// пошук добутку - цикл do...while res = 1; i=0; do { if (A[i]>number) res = res * A[i]; i++; } while (i<MaxN); // res = 3024
⇑
4. Визначення наявності (відсутності) заданого символу в масиві символів (тип char)
Нехай задано масив символів M. Визначити, чи є заданий символ sym в масиві M. У даному прикладі пропущено етап вводу масиву M та символу sym. Реалізація алгоритму з використанням циклу for.
// визначення наявності (відсутності) символу в масиві M char M[10]; // заданий масив char sym; // заданий символ int i; bool f; // результат: true - символ sym є в масиві M // ввід масиву M // ... // обчислення f = false; for (i=0; i<10; i++) if (M[i]==sym) f = true;
⇑
5. Визначення наявності (відсутності) заданого числа в масиві чисел. Масив має n цілих чисел
Задано маси в A цілих чисел. Визначити, чи є задане число num в масиві A.
Реалізація з використанням циклу while (ввід масиву A та змінних n, num пропущено).
// визначення наявності (відсутності) заданого числа в масиві чисел int A[50]; // заданий масив A int n; // поточна розмірність масиву n = 1..50 int num; // шукане число int i; // додаткова змінна bool f; // результат: f=true - число є в масиві, інакше f=false // ввід A, n, num // ... // обчислення f = false; i=0; while (i<n) { if (A[i] == num) f = true; i++; }
⇑
6. Пошук позиції останнього входження елементу k в масивів з n цілих чисел
Спосіб 1 (повільний).
У даному алгоритмі результуюча змінна pos визначає позицію останнього входження елементу k в масиві з n цілих чисел. Якщо такого символу немає в масиві, то pos = -1. Реалізація з допомогою циклу do…while
// пошук позиції останнього входження елементу k в масиві з n цілих чисел int A[50]; // заданий масив A int n; // поточна розмірність масиву n = 1..50 int k; // шукане число int i; // додаткова змінна int pos; // результат - номер позиції, якщо pos=-1, то числа k не знайдено в масиві A // ввід A, n, k // ... // обчислення, реалізація з допомогою циклу do...while pos = -1; i=0; do { if (A[i] == k) pos = i; i++; } while (i<n);
Спосіб 2 (швидкий).
Якщо проходити (переглядати) індекси масиву з кінця до початку, то перший елемент рівний k буде позицією останнього входження. У цьому випадку реалізація алгоритму (цикл do…while) буде наступною
// пошук позиції останнього входження елементу k в масиві з n цілих чисел int A[50]; // заданий масив A int n; // поточна розмірність масиву n = 1..50 int k; // шукане число int i; // додаткова змінна int pos; // результат - номер позиції, якщо pos=-1, то числа k не знайдено в масиві A // ввід A, n, k // ... // обчислення, реалізація з допомогою циклу do..while pos = -1; i=n-1; do { if (A[i] == k) { pos = i; i=-1; // вихід з циклу } else i--; } while (i>=0);
⇑
7. Пошук позиції першого входження елементу k в масиві з n цілих чисел
Як було показано в попередньому пункті, цю задачу можна розв’язувати різними способами. У нижченаведеному коді масив переглядається з початку до кінця. Як тільки зустрічається елемент k, відбувається запам’ятовування позиції елементу k і вихід з циклу.
Реалізація задачі з використанням циклу for.
// пошук позиції першого входження елементу k в масиві з n цілих чисел int A[50]; // заданий масив A int n; // поточна розмірність масиву n = 1..50 int k; // шукане число int i; // додаткова змінна int pos; // результат - номер позиції, якщо pos=-1, то числа k не знайдено в масиві A // ввід A, n, k // ... // обчислення, реалізація з допомогою циклу for pos = -1; for (i=0; i<n; i++) if (A[i]==k) { pos = i; break; // вихід з циклу }
⇑
8. Підрахунок кількості елементів k в масиві з n цілих чисел
У нижченаведеному коді пропущено ввід масиву A та значень n, k.
// підрахунок кількості елементів k в масиві A int A[50]; // заданий масив A int n; // поточна розмірність масиву n = 1..50 int k; // шукане число int i; // додаткова змінна int count; // результат - кількість знайдених елементів // ввід A, n, k // ... // обчислення, реалізація з допомогою циклу while count=0; i=0; while (i<n) if (A[i++]==k) count++;
⇑
9. Підрахунок кількості елементів в масиві з n дійсних чисел, які менше заданого значення k
Реалізація з допомогою циклу do…while
// підрахунок кількості елементів, які менше заданого k int A[50]; // заданий масив A int n; // поточна розмірність масиву n = 1..50 int k; // порівнювальне значення int i; // додаткова змінна int count; // результат // ввід A, n, k // ... // обчислення, реалізація з допомогою циклу while count=0; i=0; do { if (A[i]<k) count++; i++; } while (i<n);
⇑
10. Підрахунок кількості елементів в масиві з n дійсних чисел, значення яких знаходиться в межах діапазону від a до b.
// підрахунок кількості елементів, що лежать в заданому діапазоні double M[50]; // заданий масив M int n; // поточна розмірність масиву n = 1..50 double a, b; // порівнювальні значення int i; // додаткова змінна int count; // результат // ввід A, n, a, b // ... // обчислення, реалізація з допомогою циклу for count=0; for (i=0; i<n; i++) if ((M[i]>=a)&&(M[i]<=b)) count++;
⇑
11. Підрахунок кількості парних елементів в масиві з n цілих чисел
// підрахунок кількості парних елементів в масиві цілих чисел int A[10]; // заданий масив A int n; // поточна розмірність масиву n = 1..10 int i; // додаткова змінна int count; // результат - кількість парних елементів // ввід A, n // ... // обчислення, реалізація з допомогою циклу for count=0; for (i=0; i<n; i++) if ((A[i]%2)==0) count++;
⇑
Зв’язані теми
- Розв’язування задач. Одновимірні масиви. Цикли for, while, do…while
- Масиви. Приклади розв’язку поширених задач з одновимірними масивами
⇑