Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Одномерные массивы.doc
Скачиваний:
5
Добавлен:
15.11.2018
Размер:
1.24 Mб
Скачать

3.5. Изменение значений некоторых элементов

Пример 3.8. Заменить отрицательные элементы массива их абсолютными величинами.

Дано: n – размер массива, массив А = (a1, a2, … , an).

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

Математическая модель:

Пусть k1 = 0 и k2 = 0. Если а[i] < 0, то а[i] = –а[i]. Вычисления повторяются, пока не будут просмотрены все числа массива.

Приведем фрагмент алгоритма.

нц

Для i от 1 до n повторять

Если a[i] <0 то a[i] = –a[i]

Все если

кц

нц

Для i от 1 дo n повторять {Печать элементов массива}

Вывод a[i]

кц

Тест

Данные

Результат

N= 9

A=(–1, 10, 1, –6, –5, 12, 36, –15, –21)

A=(1, 10, 1, 6, 5, 12, 36, 15, 21)

Пример 3.9. Если очередной элемент массива четный, то прибавить к нему первый, если нечетный – прибавить последний. Первый и последний элементы массива не изменять.

Дано: n – размер массива, массив А = (a1, a2, … , an).

Найти массив того же размера, в котором к четному элементу будет добавлен первый, а к нечетному – последний.

Математическая модель:

Рассмотрим все элементы массива, кроме первого и последнего. Если а[i] – четный элемент, то а[i] = а[i] + а[1], иначе а[i] = а[i] + а[n]. Процесс повторяется, пока не будут просмотрены все числа массива. Заметим, что число является четным, если оно делится на 2 без остатка.

Приведем фрагмент алгоритма.

нц

Для i от 2 до n – 1 повторять

Если a[i] Mod 2 = 0 То a[i] = a[i] + a[1]

Иначе a[i] = a[i] + a[n]

Все если

кц

Пример 3.10. Дан первый член арифметической прогрессии и ее разность. Записать в массив первые n членов прогрессии.

Обозначим m1 – первый элемент прогрессии, k – ее разность, n – размер массива.

Дано: m1, k, n.

Найти массив A[n].

Математическая модель:

При i = 1, a[1] = m1, i-й элемент массива можно найти по следующему правилу: a[i] = a[i – 1] + k, здесь i меняется от 2 до n.

Приведем фрагмент алгоритма.

a[1] = m1

нц

Для i = 2 до n повторять

a[i] = a[i–1] + k

кц

Пример 3.11. Даны два одномерных массива – А и В. Найти их скалярное произведение.

Дано: n – размер массива, А, В – массивы размера n.

Найти S – скалярное произведение двух массивов.

Математическая модель:

Скалярным произведением двух массивов одинаковой размерности называется сумма произведений соответствующих элементов:

a[1]  b[1] + a[2]  b[2] + … + a[n]  b[n], где n – количество элементов в массивах.

Фрагмент алгоритма:

s = 0

нц

Для i от 1 до n повторять

s = s + a[i] * b [i]

кц

Тест

Данные

Результат

N = 5

A = (3, –1, 10, 1, –6,); B =(2, 4, –3,5,–4)

S = 32 –14 –103+15 +64 = 1

Задачи для самостоятельного решения

1. Измените знак у максимального по модулю элемента массива.

2. Замените все четные элементы массива их квадратами, а нечетные элементы – удвойте.

3. Вычтите из положительных элементов массива элемент с номером k1, а к отрицательным прибавить элемент с номером k2, нулевые элементы оставьте без изменения.

4. К четным элементам массива прибавьте произвольное число А, а из элементов с четными номерами вычтите произвольное число В.

5. Отрицательные элементы массива возведите в квадрат.

6. Даны два целочисленных массива, состоящих из одинакового числа элементов. Получите третий массив той же размерности, каждый элемент которого равен наибольшему из соответствующих элементов данных массивов.

Например, даны два массива – А и В, состоящие из пяти элементов. Получим массив С, тоже состоящий из пяти элементов. Первый элемент этого массива равен большему из первых элементов массива А и В, второй – большему из вторых элементов массивов – и так далее.

7. Дан первый член геометрической прогрессии и ее знаменатель. Найдите и запишите в массив первые n членов этой прогрессии.

8. Даны два массива. Найдите среднее арифметическое элементов каждого и сравните эти значения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]