Скачиваний:
18
Добавлен:
30.04.2013
Размер:
74.24 Кб
Скачать

Семинар 4

Задание 1. После каждого элемента массива с положительным значением вставить новый элемент с заданным значением.

Вставка нового элемента в массив осуществляется следующим образом. Рассмотрим элементы массива, начиная с последнего элемента. Пусть I - номер элемента массива A, после которого нужно вставить новый элемент со значением Value. Первые I элементов массива A остаются без изменений; все остальные элементы, начиная с I+1 - го, необходимо сдвинуть на один вправо. На место I+1- го элемента поместить значение Value, то есть после I-го элемента массива.

  1. Постановка задачи

Дано. Одномерный массив чисел и значение Value.

Требуется. После каждого элемента массива с положительным значением вставить новый элемент с заданным значением.

При:

  • Число элементов N<=20.

  • Значения элементов – целые числа.

  • Значение Value – целое число.

  1. Связь

Присвоить начальные значения переменным:

  • I - (текущий номер элемента массива) - N.

  • Kol – (количество вставленных элементов) – 0.

Для каждого элемента массива проверить условие. Если A[I] >0 , то сдвинем вправо элементы с номера от N+Kol до I+1.

После завершения сдвига, присвоить элементу массива с номером I+1 значение Value и увеличить значение переменной Kol на 1(Kol:=Kol+1).

Если I>1 , то перейти к следующему элементу массива - I:=I-1, в противном случае определить новое число элементов в массиве (N:=N+Kol) и вывести значения элементов массива.

  1. Внешняя спецификация.

Назначение:

После каждого элемента массива с положительным значением вставить новый элемент с заданным значением.

Входн. данные:

N – число элементов в массиве.

A1, A2… AN – значения элементов массива.

Value – значение, которое вставляется в массив.

Вых. данные.

После каждого элемента массива с положительным значением вставить новый элемент с заданным значением .

Число элементов массива <=20 <N>

Значения элементов массива – целые числа

<A1>

.

.

<AN>

Вставляемое значение = < Value >

В исходном массиве <N> элементов

<A1> <A2> … <AN>

В преобразованном массиве <N> элементов

<A1> <A2> … <AN>

  1. Запись алгоритма на РАЯ

Алгоритм " После каждого элемента массива с положительным значением вставить новый элемент с заданным значением ".

Внутренние переменные : N: цел. {количество элементов массива} A[1 .. 20] : цел. {одномерный массив, в котором можно разместить от 1 до 20 элементов - целых чисел} Value : цел. {значение, которое вставляется в массив}

Kol: цел. {количество элементов, вставленных в массив}

I, J : цел. {текущие номера элементов массива} Начало

Вывод (‘После каждого элемента массива с положительным значением вставить новый элемент с заданным значением ’) Вывод ('Число элементов массива <=20') Ввод (N) Вывод ('Значения элементов массива – целые числа') Цикл - для  от 1 до N Ввод (A[I]) Кцикл

Вывод (‘Вставляемое значение = ’)

Ввод (Value)

Вывод (‘В исходном массиве ’, N, ‘ элементов’)

Цикл - для  от 1 до N Вывод (A[I]) Кцикл

Kol:=0

Цикл - для  I от N до 1

Если A[I]>0 то

{Сдвиг элементов массива вправо} Цикл - для  J от N+Kol до I+1

  A[J+1]:=A[J]

Кцикл

{Вставка нового элемента} A[I+1]:= Value

{Определение количества элементов, вставленных в массив}

Kol:=Kol+1

Кесли Кцикл

{Количество элементов в массиве после вставки}

N:=N+Kol

Вывод (‘В преобразованном массиве ’, N, ‘ элементов’)

Цикл - для  от 1 до N Вывод (A[I]) Кцикл

Конец

  1. Тест для проверки алгоритма

Тест 1

Число элементов массива - N=5

Исходный массив 3 -3 2 14 7

Значение X - -1

Преобразованный массив 3 -1 -3 2 -1 14 -1 7 -1

Задание 2. Удалить из массива все элементы с заданным значением.

  1. Постановка задачи

Дано. Одномерный массив чисел и значение Value.

Требуется. Удалить из массива все элементы, значение которых равно Value.

При:

  • Число элементов N<=20.

  • Значения элементов – целые числа.

  • Значение Value – целое число.

  1. Связь

Присвоить начальные значения переменным:

  • I - (текущий номер элемента массива) - N.

  • Kol – (количество удаленных элементов) – 0.

Для каждого элемента массива проверить условие. Если A[I]= Value , то сдвинуть влево все элементы массива, начиная с элемента с номером I+1 и заканчивая элементом с номером N-1. Увеличить значение переменной Kol на 1(Kol:=Kol+1).

Если I>1 , то перейти к следующему элементу массива - I:=I-1, в противном случае определить новое число элементов в массиве (N:=N-Kol) и вывести значения элементов массива.

  1. Внешняя спецификация.

Назначение:

Удалить из массива все элементы с заданным значением.

Входн. данные:

N – число элементов в массиве.

A1, A2… AN – значения элементов массива.

Value – значение, которое удаляется из массива.

Вых. данные.

Удалить из массива все элементы с заданным значением.

Число элементов массива <=20 <N>

Значения элементов массива – целые числа

<A1>

.

.

<AN>

Значение переменной Value = <Value>

В исходном массиве <N> элементов

<A1> <A2> … <AN>

В преобразованном массиве <N> элементов

<A1> <A2> … <AN>

  1. Запись алгоритма на РАЯ

Алгоритм " Удалить из массива все элементы с заданным значением".

Внутренние переменные : N: цел. {количество элементов массива} A[1 .. 20] : цел. {одномерный массив, в котором можно разместить от 1 до 20 элементов - целых чисел} Value : цел. {значение, которое удаляется из массива}

Kol: цел. {количество элементов, удаленных из массива}

I, J : цел. {текущие номера элементов массива} Начало

Вывод (‘Удалить из массива все элементы с заданным значением’) Вывод ('Число элементов массива <=20') Ввод (N) Вывод ('Значения элементов массива – целые числа') Цикл - для  от 1 до N Ввод (A[I]) Кцикл

Вывод (‘Значение переменной Value равно ’)

Ввод (Value)

Вывод (‘В исходном массиве ’, N, ‘ элементов’)

Цикл - для  от 1 до N Вывод (A[I]) Кцикл

Kol:=0

Цикл - для  I от N до 1

Если A[I]=Value то

{Сдвиг элементов массива влево} Цикл - для  J от I до N-1

  A[J]:=A[J+1]

Кцикл

{Определение количества элементов, удаленных из массива}

Kol:=Kol+1

Кесли Кцикл

{Количество элементов в массиве после удаления}

N:=N-Kol

Вывод (‘В преобразованном массиве ’, N, ‘ элементов’)

Цикл - для  от 1 до N Вывод (A[I]) Кцикл

Конец

  1. Тест для проверки алгоритма

Тест 1

Число элементов массива - N=5

Исходный массив 3 -3 2 3 7 3

Значение Value - 3

Преобразованный массив -3 2 7

Задача для самостоятельной работы

  1. Разработать программу для вставки в массив элементов с заданным значением перед каждым положительным элементом массива.

  2. Разработать программу для удаления из массива элементов с отрицательными значениями.

6

Соседние файлы в папке Семинары