Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Леднева_программирование_на_JAVA.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

Разбиение одномерных массивов

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

Разбиение одномерного массива рассмотрим на примере решения следующей задачи.

Задача 6.1. Ввести в ЭВМ массив а0 из n целых чисел. Разбить исходный массив на два: в 1-й (а1) поместить отрицательные числа, а во 2-й (а2) – положительные согласно приведенному алгоритму.

Алгоритм.

1. Задать количество элементов k0 исходного массива а0.

2. Ввести массив а0.

3. Вывести исходный массив а0.

4. Создать массивы а1 и а2.

// разбиение а0 на 2 массива - а1 и а2

5. Принять k1= -1 // количество отрицательных чисел – пока их нет

6. Принять k2= -1 // количество положительных чисел – пока их нет

7. Для номера элемента i от 0 до a0.length

Если a0[i]<0 то

k1=k1+1;

a1[k1]= a0[i]

Иначе

k2=k2+1;

a2[k2]= a0[i]

8. Если в 1-м массиве количество элементов k1 > -1, то:

a) переписать значимые элементы массива а1 в массив а11 размерностью (k1+1);

б) вывести массив а11.

Иначе выдать сообщение об отсутствии отрицательных элементов.

9. Если во 2-м массиве количество элементов k2 > –1 то

а) переписать значимые элементы массива а2 в массив а22 размерностью (k2+1);

б) вывести массив а22.

Иначе выдать сообщение об отсутствии положительных элементов.

10. Закончить.

Задания

Задание 6.1. Выполнить задания по бригадам согласно вариантам, представленным в табл. 6.1.

Таблица 6.1

Вариант 1

1. Создать 3 массива (а1, а2, а3) из n целых чисел. Для двух первых массивов ввести значения с клавиатуры и упорядочить их: один по убыванию (1-й способ), другой по возрастанию (2-й способ). Третий массив заполнить значениями согласно следующему правилу:

а3[i] =а1[i] +а2[i] .

2. Ввести в ЭВМ массив f из n целых чисел. Разбить исходный массив на два: в 1-й поместить положительные числа, во 2-й – отрицательные.

Вариант 2

1. Создать 3 массива (а1, а2, а3) из n целых чисел. Для двух первых массивов ввести значения с клавиатуры и упорядочить их: один по убыванию (1-й способ), другой по возрастанию (2-й способ). Третий массив заполнить значениями согласно следующему правилу:

а3[i] =а1[i] – а2[i] .

2. Ввести в ЭВМ массив mas из n целых чисел. Разбить исходный массив на два: в 1-й поместить четные числа, во 2-й – нечетные.

Продолжение табл. 6.1

Вариант 3

1. Создать 3 массива (а1, а2, а3) из n целых чисел. Для двух первых массивов ввести значения с клавиатуры и упорядочить их: один по убыванию (1-й способ), другой по возрастанию (2-й способ). Третий массив заполнить значениями согласно следующему правилу:

а3[i] =а1[i] *а2[i] .

2. Ввести в ЭВМ массив x из n целых чисел. Разбить исходный массив на два: в 1-й поместить числа, которые делятся на 3, во 2-й – числа, которые не делятся на 3.

Вариант 4

1. Создать 3 массива (а1, а2, а3) из n целых чисел. Для двух первых массивов ввести значения с клавиатуры и упорядочить их: один по убыванию (1-й способ), другой по возрастанию (2-й способ). Третий массив заполнить значениями согласно следующему правилу:

а3[i] =а1[i] +а2[i] .

2. Ввести в ЭВМ массив q из n целых чисел. Разбить исходный массив на два: в 1-й поместить отрицательные числа, во 2-й – положительные числа.

Вариант 5

1. Создать 3 массива (а1, а2, а3) из n целых чисел. Для двух первых массивов ввести значения с клавиатуры и упорядочить их: один по убыванию (1-й способ), другой по возрастанию (2-й способ). Третий массив заполнить значениями согласно следующему правилу:

а3[i] =а1[i] – а2[i]

2. Ввести в ЭВМ массив p из n целых чисел. Разбить исходный массив на два: в 1-й поместить числа, которые делятся на 5, во 2-й – числа, которые не делятся на 5.

Вариант 6

1. Создать 3 массива (а1, а2, а3) из n целых чисел. Для двух первых массивов ввести значения с клавиатуры и упорядочить их: один по убыванию (1-й способ), другой по возрастанию (2-й способ). Третий массив заполнить значениями согласно следующему правилу:

а3[i] =а1[i] *а2[i]

2. Ввести в ЭВМ массив m из n целых чисел. Разбить исходный массив на два: в 1-й поместить отрицательные числа, во 2-й – положительные числа.

Продолжение табл. 6.1

Вариант 7

1. Создать 3 массива (а1, а2, а3) из n целых чисел. Для двух первых массивов ввести значения с клавиатуры и упорядочить их: один по убыванию (1-й способ), другой по возрастанию (2-й способ). Третий массив заполнить значениями согласно следующему правилу:

а3[i] =а1[i] +а2[i] .

2. Ввести в ЭВМ массив z из n целых чисел. Разбить исходный массив на два: в 1-й поместить нечетные числа, во 2-й – четные.

Вариант 8

1. Создать 3 массива (а1, а2, а3) из n целых чисел. Для двух первых массивов ввести значения с клавиатуры и упорядочить их: один по убыванию (1-й способ), другой по возрастанию (2-й способ). Третий массив заполнить значениями согласно следующему правилу:

а3[i] =а1[i] –а2[i].

2. Ввести в ЭВМ массив x из n целых чисел. Разбить исходный массив на два: в 1-й поместить отрицательные числа, во 2-й – положительные.

Вариант 9

1. Создать 3 массива (а1, а2, а3) из n целых чисел. Для двух первых массивов ввести значения с клавиатуры и упорядочить их: один по убыванию (1-й способ), другой по возрастанию (2-й способ). Третий массив заполнить значениями согласно следующему правилу:

а3[i] =а1[i] *а2[i].

2. Ввести в ЭВМ массив ar из n целых чисел. Разбить исходный массив на два: в 1-й поместить числа, которые делятся на 7, во 2-й – числа, которые не делятся на 7.

Вариант 10

1. Создать 3 массива (а1, а2, а3) из n целых чисел. Для двух первых массивов ввести значения с клавиатуры и упорядочить их: один по убыванию (1-й способ), другой по возрастанию (2-й способ). Третий массив заполнить значениями согласно следующему правилу:

а3[i] =а1[i] +а2[i] .

2. Ввести в ЭВМ массив mas из n целых чисел. Разбить исходный массив на два: в 1-й поместить отрицательные числа, во 2-й – положительные числа.

Окончание табл. 6.1

Вариант 11

1. Создать 3 массива (а1, а2, а3) из n целых чисел. Для двух первых массивов ввести значения с клавиатуры и упорядочить их: один по убыванию (1-й способ), другой по возрастанию (2-й способ). Третий массив заполнить значениями согласно следующему правилу:

а3[i] =а1[i] –а2[i] .

2. Ввести в ЭВМ массив y из n целых чисел. Разбить исходный массив на два: в 1-й поместить числа, которые делятся на 5, во 2-й – числа, которые не делятся на 5.

Вариант 12

1. Создать 3 массива (а1, а2, а3) из n целых чисел. Для двух первых массивов ввести значения с клавиатуры и упорядочить их: один по убыванию (1-й способ), другой по возрастанию (2-й способ). Третий массив заполнить значениями согласно следующему правилу:

а3[i] =а1[i] *а2[i].

2. Ввести в ЭВМ массив b из n целых чисел. Разбить исходный массив на два: в 1-й поместить положительные числа, во 2-й – отрицательные числа.