- •Часть 1
- •Часть 1
- •Введение
- •Лабораторная работа № 1 разработка схем алгоритмов
- •Краткая теория Этапы решения задач на эвм
- •Определение алгоритма и способы его описания
- •Правила оформления схем алгоритмов
- •Типы алгоритмов
- •Задания
- •Построение схем алгоритмов с помощью текстового редактора word
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 2 работа в среде netbeans. Создание простейших программ с линейным алгоритмом
- •Краткая теория Установка ide NetBeans
- •Общие правила создания приложений
- •Работа с проектом NetBeans
- •Пример создания простейшего приложения
- •Общие правила построения класса
- •Типы данных
- •Объявление переменных
- •Оператор присваивания
- •Приведение типов
- •Организация ввода данных
- •Организация вывода данных
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 3 разработка простейших приложений на базе разветвляющихся алгоритмов
- •Краткая теория Средства переименования в среде NetBeans
- •Отладка кода в среде NetBeans
- •Условный оператор if-else
- •Условный оператор switch
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 4 разработка программ с циклами со счетчиком
- •Краткая теория Циклы со счетчиком
- •Особенности алгоритмов и программ с накапливанием
- •Методы класса Math
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 5 работа с итерационными циклами. Одномерные массивы
- •Краткая теория Итерационные циклы
- •Цикл while
- •Цикл do-while
- •Одномерные массивы
- •Подсчет суммы, количества и среднего значения в одномерных массивах
- •Нахождение минимума и максимума
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 6 алгоритмы сортировки и разбиения одномерных массивов
- •Краткая теория Сортировка одномерных массивов
- •Разбиение одномерных массивов
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 7 обработка двумерных массивов
- •Краткая теория Понятие многомерных массивов. Ввод и вывод матриц
- •Типовые алгоритмы обработки матриц
- •Алгоритмы обработки матриц в целом
- •Алгоритмы обработки матриц по строкам и столбцам
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 8 диагонали матрицы, умножение матриц
- •Краткая теория Обработка главной и побочной диагоналей матриц
- •Работа с диагоналями матриц выше и ниже главной/побочной
- •Умножение матриц
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 9 обработка строк класса string
- •Краткая теория Создание объектов класса String
- •Методы класса String
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 10 алгоритмы и программы обработки фрагментов строк класса string
- •Краткая теория Сравнение символов строк класса String
- •Типовые задачи обработки массивов строк (слов из текста)
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 11 разработка алгоритмов и программ с использованием классов StringBuffer/StringBuilder
- •Краткая теория Создание и обработка объектов классов stringbuffer и stringbuilder
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 12 разработка собственных методов
- •Краткая теория Общие правила создания методов класса
- •Описание методов класса
- •Вызов методов класса
- •Передача параметров
- •Содержание
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Библиографический список
- •Программирование на Java
- •443100, Г. Самара, ул. Молодогвардейская, 244. Главный корпус
- •443100, Г. Самара, ул. Молодогвардейская, 244. Корпус № 8
Разбиение одномерных массивов
Существуют задачи, в которых необходимо переписать элементы одного массива в один или несколько других. Например, в один из новых массивов помещают элементы, имеющие заданное свойство, а в другой – те, у которых это свойство отсутствует. Возможны и более сложные случаи, когда массив разбивается на большее количество частей. Алгоритмы решения всех задач одинаковы. Поэтому рассмотрим, как выполняется разбиение одного массива на два, в первый из которых помещаются элементы, имеющие заданное свойство, а во второй – те, у которых это свойство отсутствует.
Разбиение одномерного массива рассмотрим на примере решения следующей задачи.
Задача 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-й – отрицательные числа. |
