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

Автор работы: Пользователь скрыл имя, 21 Декабря 2011 в 18:27, контрольная работа

Краткое описание

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

Вложенные файлы: 1 файл

Одномерные массивы.doc

— 1.18 Мб (Скачать файл)

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. Даны два массива. Найдите среднее арифметическое элементов каждого и сравните эти значения.

Обмен значений элементов

   Пример  3.12. В массиве поменять местами два соседних элемента с номерами k1 и k2.

   Номера  элементов, которые меняются местами, должны быть известны.

   Дано: n – размер массива; A[n] – массив вещественных чисел; k1, k2 – номера элементов, подлежащих обмену.

   Найти новый массив А размера n.

   Фрагмент  алгоритма решения задачи выглядит так:

   x = A[k1]; A[k1] = A[k2]; А[k2] = x.

   Здесь х – вспомогательная переменная, в которой сохраняется первоначальное значение элемента массива A[k1].

   Тест

   k1=2; k2 = 6

Данные Результат
N=9 A=(3, 1, 10, 1, 6, 5, 12, 36, –15) A = (3, 5, 10, 1, 6, 1, 12, 36, –15)

   Усложним  задачу.

   Пример  3.13. Дан одномерный массив A, состоящий из 2n элементов. Поменять местами его половины.

   Дано: ´ n – размер массива; A[n] – массив вещественных чисел.

   Найти новый массив А размера 2 ´ n.

   Словесное описание алгоритма.

   Пусть массив А состоит из 10 элементов, тогда = 5. Из массива  
А(1, 12, 23, 3, 7, 13, 27, 6, 9, 11) нужно получить массив А(13, 27, 6, 9, 11, 1, 12, 23, 3, 7). Мы должны поменять местами элементы с номерами 1 и 6, 2 и 7, 3 и 8, 4 и 9, 5 и 10, иными словами 1 и n + 1, 2 и n +2, 3 и n + 3, 4 и n + 4, 5 и n + 5. Можно заметить, что элемент с номером i меняется местами с элементом с номером n + i. Поэтому, используя фрагмент алгоритма, приведенный в примере 3.12, можно применить такой цикл:

   нц

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

         x = A[i]

      A[i] = A[n + i]

      A[n + i] = x

   кц

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

   1. Дан одномерный массив. Поменяйте местами:

       а) первый и максимальный элементы массива;

       б) второй и минимальный элементы массива;

       в) первый и последний отрицательный элементы массива.

   2. Дан одномерный массив А, состоящий из 2n элементов. Поменяйте местами его половины следующим образом: первый элемент поменять местами с последним, второй – с предпоследним и так далее.

   3. Дан одномерный массив В, состоящий из 2n элементов. Переставьте его элементы по следующему правилу:

       а) b[n + 1], b[n + 2], …, b[2n], b[1], b[2], …, b[n];

       б) b[n + 1], b[n + 2], …, b[2n], b[n], b[n – 1],…, b[1];

       в) b[1], b[n + 1], b[2], b[n + 2], …, b[n], b[2n];

   4. Дан одномерный массив. Переставьте в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами.

3.7. Удаление и вставка элементов массива

   Пример  3.14. Удалить из массива, в котором все элементы различны, наибольший элемент. После удаления массив уплотнить, сдвинув все следующие за ним элементы, влево.

   Дано: n – размер массива; A[n] – массив вещественных чисел.

   Найти новый массив А размера n – 1.

   Для решения задачи необходимо:

   1) найти номер k наибольшего элемента массива. Эта задача решена в примере 3.5.

   2) сдвинуть все элементы массива, начиная с k–го на один элемент влево.

   Для того чтобы разработать алгоритм, рассмотрим конкретный пример. Пусть  дан одномерный массив, состоящий  из 10 элементов: А(6, 3, 7, 11, 2, 8, 1, 5). Номер наибольшего элемента равен 7 (= 7), то есть, начиная с седьмого элемента, будем сдвигать элементы на один влево: седьмому элементу присвоим значение восьмого, восьмому элементу присвоим значение девятого, а девятому присвоим значение десятого элемента. На этом сдвиг заканчивается. Таким образом, сдвиг начинается с k–го элемента и заканчивается элементом с номером n – 1, где –количество элементов в массиве. После этого количество элементов в массиве станет на один элемент меньше. Массив примет вид: А(6, 3, 4, 7, 11, 8, 1, 5).

   Фрагмент  алгоритма решения задачи:

Нахождение  максимального элемента и его номера

max = а[1]

k = 1

нц

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

      Если а[i] > max то

       max = а[i]

       k = i

      Все если

кц

Сдвиг элементов массива

нц

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

      а[i] = а[i+1]

кц

Уменьшение  количества элементов массива

 n = n – 1

   

Информация о работе Изменение значений некоторых элементов