Алгоритмы обработки одномерного массива
-ОПРЕДЕЛЯТЬ СУММУ/ ПРОИЗВЕДЕНИЕ ЭЛЕМЕНТОВ ОДНОМЕРНОГО МАССИВА
Практические задания на вложенный цикл
1.Выведите на экран таблицу умножения чисел от 1 до 9
2.У вас есть массив из N случайных целых положительных чисел. Для каждого числа из этого массива выведите на экран, по отдельной строчке все числа от 1 до этого числа(включительно).
n(5,3,2)
12345
123
12
3.
На картинке даны практические задания на вложенный цикл.�Вложенный цикл — это когда один цикл находится внутри другого.
for (...) {
for (...) {
// действия
}
}
Шаг 1. Нужен первый цикл для первого числа
Шаг 2. Внутри него нужен второй цикл для второго числа Он тоже идет от 1 до 9:
for (int j = 1; j <= 9; j++)
Шаг 3. На каждом шаге выводим произведение
cout << i << "*" << j << "=" << i * j << endl;
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 9; i++) { // внешний цикл (строки)
for (int j = 1; j <= 9; j++) { // внутренний цикл (элементы)
cout << i << "*" << j << "=" << i * j << endl;
}
cout << endl;
}
return 0;
}
Переменная i — это:
1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
1 x 4 = 4
1 x 5 = 5
1 x 6 = 6
1 x 7 = 7
1 x 8 = 8
1 x 9 = 9
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
И так до 9.
#include <iostream>
using namespace std;
int main() {
int a[3] = {5, 3, 2};
for (int i = 0; i < 3; i++) {
for (int j = 1; j <= a[i]; j++) {
cout << j;
}
cout << endl;
}
return 0;
}
Как программа думает
Первый проход:
Второй проход:
Третий проход:
Как программа думает
Первый проход:
Второй проход:
Третий проход:
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
int num = 1;
for (int i = 1; num <= N; i++) {
for (int j = 1; j <= i && num <= N; j++) {
cout << num << " ";
num++;
}
cout << endl;
}
return 0;
}
Практические задания на массивы
Найти сумму и произведение отрицательных элементов массива
Что нужно сделать
Есть массив чисел.�Нужно:
Пример
Массив:�[4, -2, 7, -3, 5]
Отрицательные элементы:�-2 и -3
Тогда:
Как решать
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Введите количество элементов: ";
cin >> n;
int a[100];
cout << "Введите элементы массива: ";
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int sum = 0;
int p = 1;
bool found = false; // чтобы понять, были ли отрицательные числа
for (int i = 0; i < n; i++) {
if (a[i] < 0) {
sum = sum + a[i];
p = p * a[i];
found = true;
}
}
if (found == true) {
cout << "Сумма отрицательных элементов = " << sum << endl;
cout << "Произведение отрицательных элементов = " << p << endl;
} else {
cout << "Отрицательных элементов нет";
}
return 0;
}
Объяснение кода
int sum = 0;
Сумма всегда начинается с 0.
int p = 1;
Произведение начинается с 1, потому что при умножении 1 не меняет число.
if (a[i] < 0)
Проверяем: если элемент отрицательный, тогда работаем с ним.
sum = sum + a[i];
Добавляем отрицательное число к сумме.
p = p * a[i];
Умножаем произведение на это число.
int sum = 0;
Сумма всегда начинается с 0.
int p = 1;
Произведение начинается с 1, потому что при умножении 1 не меняет число.
if (a[i] < 0)
Проверяем: если элемент отрицательный, тогда работаем с ним.
sum = sum + a[i];
Добавляем отрицательное число к сумме.
p = p * a[i];
Умножаем произведение на это число.
2) Найти сумму и произведение элементов, которые больше 0 и меньше 3
Что это значит
Нужно взять только те элементы, которые:
То есть подходят числа:�1 и 2
Пример
Массив:�[5, 1, 2, 3, -1]
Подходят только:�1 и 2
Тогда:
Как решать
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Введите количество элементов: ";
cin >> n;
int a[100];
cout << "Введите элементы массива: ";
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int sum = 0;
int p = 1;
bool found = false;
for (int i = 0; i < n; i++) {
if (a[i] > 0 && a[i] < 3) {
sum = sum + a[i];
p = p * a[i];
found = true;
}
}
if (found == true) {
cout << "Сумма элементов = " << sum << endl;
cout << "Произведение элементов = " << p << endl;
} else {
cout << "Таких элементов нет";
}
return 0;
}
Практические задания на массивы
Рефлексия