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

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

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

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

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

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

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

   Мы  уже рассматривали подробно алгоритм нахождения максимального элемента массива и его номера. Покажем, как выполняется вторая часть алгоритма (сдвиг элементов массива) для тестового примера.

   Тест

Данные Результат
N = 8 A = (6, 3, 7, 11, 2, 8, 1,  5) A = (6, 3, 7, 2, 8, 1, 5)  N = 7

   В массиве номер наибольшего элемента = 4. Удаляем этот элемент.

i Массив
4; 4 ≤ 7? Да А = (6, 3, 7, 2, 2, 8, 1, 5)
5; 5 ≤ 7? Да А = (6, 3, 7, 2, 8, 8, 1, 5)
   6; 6 ≤ 7? Да А = (6, 3, 7, 2, 8, 1, 1, 5)
7; 7 ≤ 7? Да А = (6, 3, 7, 2, 8, 1, 5, 5)
8; 8 ≤ 7? Нет Конец цикла. n = 8 – 1 = 7

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

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

   Найти: Новый массив А размера n – k, где k – количество удаленных элементов массива.

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

   нц

   Для i от iкон до iнач шаг –1 повторять

    <тело цикла>

   кц

   Значение  переменной i  уменьшается на единицу, начиная от iкон до iнач.

   Кроме того, номер максимального элемента запоминать не будем, а просмотрим массив с конца, и если текущий элемент имеет максимальное значение, то удалим его, при этом значение счетчика удаленных элементов k будем увеличивать на 1. Для решения этой задачи фрагмент алгоритма для нахождения максимального элемента выглядит так:

   Amax = a[1];

   нц

   Для  i от 2 до n повторять {Нахождение максимального элемента}

       Если a[i] > Amax то Amax = a[i];

       Все если

   кц

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

нц

Для  i от n до 1 шаг –1 повторять

  Если a[i] = Amax то

    a[i] = a[i + 1]

    k = k + 1

  Все если

кц

n = n – k

   

 

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

   1. Удалите все отрицательные элементы массива.

   2. Удалите все элементы, большие данного числа А (значение числа А вводится с клавиатуры).

   3. Удалите все четные элементы, стоящие на нечетных местах.

   4. Удалите все повторяющиеся элементы, оставив их первые вхождения, то есть в массиве должны остаться только различные элементы.

   5. Удалите последний четный элемент массива.

   6. Удалите все элементы, кратные 3 или 5.

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