Uploaded by Нодир Пираков

JAVA Lab rab 3

advertisement
Лабораторная работа №3.
Использование массивов в языке Java
Цель работы: ознакомиться с организацией одномерных массивов в языке
Java и научиться использовать алгоритмы для работы с одномерными
массивами.
Теоретическая часть
Большинство языков высокого уровня – включая Java – позволяют
определять
МАССИВЫ,
т.е.
индексированный
набор
данных
определенного типа, имеющих общее имя. Пример использования массива:
Результатом выполнения программы будет:
0*0=0
1*1=1
2*2=4
3*3=9
4*4=16
Выражение int array[] = new int[NUM]; объявляет array как массив
переменных типа int c объемом памяти, выделяемым для пяти целых
переменных (т.к. NUM равен 3). Индексы массива всегда целые и
начинаются с нуля. К первой переменной массива можно обращаться как к
array[0], второй – как к array[1], к последней – как к array[4].
Также допустимо объявить массив следующим образом:
int[] array;
1
Заполнение массива значениями:
1–й способ основан на вводе данных с клавиатуры:
int n;
Scanner in = new Scanner(System.in);
System.out.println("Введите количество элементов
массива:");
n = in.nextInt();
System.out.println("Введите элементы массива:");
int[] nums = new int[n];
for (int i = 0; i < nums.length; i++) {
nums[i] = in.nextInt();
}
Для получения консольного ввода в классе System определен объект
in. Однако непосредственно через объект System.in не очень удобно
работать, поэтому, как правило, используют класс Scanner, который, в свою
очередь использует System.in. Так как класс Scanner находится в пакете
java.util, то мы вначале его импортируем. Для создания самого объекта
Scanner в его конструктор передается объект System.in. После этого мы
можем получать вводимые значения. Например, чтобы получить введенное
число, используется метод in.nextInt(), который возвращает введенное с
клавиатуры целочисленное значение. Класс Scanner имеет еще ряд методов,
которые позволяют получить введенные пользователем значения:
 next(): считывает введенную строку до первого пробела
 nextLine(): считывает всю введенную строку
 nextInt(): считывает введенное число int
 nextDouble(): считывает введенное число double
 hasNext(): проверяет, было ли введено слово
 hasNextInt(): проверяет, было ли введено число int
 hasNextDouble(): проверяет, было ли введено double
Кроме того, класс Scanner имеет еще ряд методов nextByte/ nextShort/
nextFloat/ nextBoolean, которые по аналогии с nextInt считывают данные
определенного типа данных.
2–й способ основан на задании значений непосредственно в
программе:
int[] array = new int [] {2,4,5,6,7};
2
Для построчного вывода элементов можно использовать следующий
код:
System.out.println("Элементы массива:");
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
System.out.println();
Общая постановка задачи
1. Для выполнения лабораторной работы составить алгоритм,
представить его в виде блок-схемы и разработать методы на
языке Java для решения Вашего варианта задания. Номер
варианта совпадает с номером в журнале.
2. В класс, разработанный предыдущих лабораторных работах
добавить новые поля: количество элементов одномерного
массива N, исходный целочисленный массив X, массив
результатов расчета Y (если предусмотрен в варианте задания).
3. В класс, разработанный в 1-й и во 2-й лабораторных работах
добавить три метода: метод ввода данных исходного
одномерного массива X, метод нахождения массива Y (если
предусмотрен в варианте задания) или метод нахождения
требуемых по заданию величин и метод вывода значений
исходного массива X и массива Y на консоль.
4. Массив X вывести на экран в следующем виде:
x1 x2 x3 x4 x5
x6 x7 x8 x9 x10
x11 x12 x13 x14 x15
x16 x17 x18 x19 x20
5. Оформить отчет по лабораторной работе, включающий
 титульный лист;
 цель работы;
 постановку задачи для Вашего варианта;
 блок-схему алгоритма;
 текст программы на языке Java;
 скриншоты результатов выполнения тестовых примеров;
 ответы на контрольные вопросы.
3
Список индивидуальных данных
1. В заданном массиве Х, состоящем из 20 элементов определить и вывести
на экран первый отрицательный элемент и его порядковый номер. Если
все элементы положительны, выдать соответствующее сообщение.
2. Задан целочисленный массив Х из 20 элементов. Определить и вывести
на экран элементы, кратные трем и их порядковые номера или вывести
сообщение, если таковых нет.
3. В заданном массиве Х, состоящем из 20 элементов определить и вывести
на экран первый элемент, удовлетворяющий условию 0<xi<1 и его
порядковый номер. Если такой элемент отсутствует выдать
соответствующее сообщение.
4. В заданном массиве Х, состоящем из 20 элементов определить и вывести
на экран наибольший из элементов, удовлетворяющих условию 1<xi<2 и
его порядковый номер. Если такие элементы отсутствуют выдать
соответствующее сообщение.
5. В заданном массиве Х, состоящем из 20 элементов определить и вывести
на экран наибольший элемент, а затем заменить его значением суммы
элементов, предшествующих ему.
6. В заданном массиве Х, состоящем из 20 элементов определить и вывести
на экран количество положительных, отрицательных и равных нулю
элементов.
7. Задан целочисленный массив Х из 20 элементов. Из этого массива
переписать в массив Y подряд все положительные элементы и
определить наименьший из них.
8. Задан целочисленный массив Х из 20 элементов. Определить и вывести
на экран сумму тех элементов, которые нечетны и отрицательны.
9. Задан целочисленный массив Х из 20 элементов. Из этого массива
переписать в массив Y той же размерности подряд все отрицательные
элементы, а оставшиеся места заполнить единицами.
10. Задан целочисленный массив Х из 20 элементов. В каждую ячейку
массива Y той же размерности записать соответствующий элемент
массива Х, если он неположителен и единицу в противном случае.
11. Задан целочисленный массив Х из 20 элементов. Из этого массива
переписать в массив Y подряд первые пять четных элементов.
12. Задан действительный массив Х из 20 элементов. Получить массив Y,
элементы которого определяются как (xi+xi+1)/2.
13. Задан целочисленный массив Х из 20 элементов. Определить количество
соседств двух положительных и двух отрицательных чисел.
14. Задан целочисленный массив Х из 20 элементов. Определить сумму
элементов, имеющих четные индексы и являющихся нечетными
числами.
4
15. Задан массив Х натуральных чисел из 20 элементов. Определить
количество элементов, являющихся удвоенными нечетными числами.
16. Задан массив Х натуральных чисел из 20 элементов. Определить
произведение элементов, дающих при делении на 7 остаток 1, 2 или 5.
17. Задан массив Х натуральных чисел из 20 элементов. Определить
наименьший из элементов, удовлетворяющих условию xi<i2 и его
порядковый номер.
18. Задан действительный массив Х из 20 элементов. Определить
количество отрицательных элементов в первых десяти элементах
массива и произведение положительных – во вторых десяти элементах.
19. Задан целочисленный массив Х из 20 элементов. Заменить в массиве все
числа меньшие двух на –1, а числа большие десяти на 1.
20. Задан действительный массив Х из 20 элементов. Получить
произведение отрицательных и сумму положительных элементов.
21. Задан целочисленный массив Х из 20 элементов. Получить массив Y, в
который записать в обратном порядке сначала элементы массива Х,
имеющие четный индекс, затем нечетный.
22. Задан целочисленный массив Х из 20 элементов. Определить
наименьший и наибольший элементы массива и поменять их местами
соответственно с первым и последним элементами.
23. Задан действительный массив Х из 20 элементов, отличных от нуля.
Определить произведение его элементов и если оно отрицательно, то
приравнять нулю первые десять элементов массива, если положительно
– то вторые десять.
24. Задан массив Х натуральных чисел из 20 элементов. Определить
элементы, удовлетворяющие условию xi=xi-1+xi-2, и их порядковые
номера.
25. Задан целочисленный массив Х из 20 элементов. Получить массив Y, в
который записать сперва все нечетные, а затем все четные элементы
массива Х в том же порядке.
Контрольные вопросы к защите
1.
2.
3.
4.
5.
Дайте определение массива.
Как производится доступ к отдельным элементам массива?
Какие способы заполнения массива значениями Вы знаете?
Как определяется символьный массив?
Какие ограничения накладываются на индексы массивов?
5
Библиографический список
1. Информационные материалы с официального сайта разработчиков.
[электронный ресурс]
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2. Вязовик, Н.А. Программирование на Java. [электронный ресурс]
http://www.intuit.ru/studies/courses/16/16/info.
3. Монахов В.В. Язык программирования Java и среда NetBeans:
[электронный ресурс] http://www.intuit.ru/studies/courses/569/425/info
4. Баженова И. Ю. Язык программирования Java: Электронный ресурс
/ М.: Диалог-МИФИ, 2008. - 254 с. Режим доступа:
http://biblioclub.ru/index.php?page=book&id=54745
5. Хабрахабр. Статьи по Java. [электронный ресурс] . – URL:
http://habrahabr.ru/search/?q=Java
6. IBM developerWorks. Технологи Java [электронный ресурс] . – URL:
http://www.ibm.com/developerworks/ru/views/java/libraryview.jsp
7. Журнал JavaWorld. [электронный ресурс на английском языке] . –
URL: http://www.javaworld.com/
8. Java - Все для студента [электронный ресурс] . – URL:
http://www.twirpx.com/library/comp/java/
6
Download