Материал: в20

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Министерство образования Республики Беларусь

Учреждение образования

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Факультет информационных технологий и управления

Кафедра вычислительных методов и программирования

ОТЧЕТ

по лабораторной работе

«КРАТКИЙ ОБЗОР ЯЗЫКА JAVA. ВВЕДЕНИЕ В ООП В JAVA»

Студент гр. 024403 Папета М.В.

Проверил Богданова Е.А.

Минск 2022

Цель выполнения лабораторной работы

Изучить ряд основных языковых средств языка Java.

Формулировка индивидуального задания

20. Создать класс Array (массив), в котором реализуются методы для работы с одномерными массивами: методы поиска максимального и минимального элемента в массиве; метод, меняющий местами минимальное и максимальное значения в массивах; метод нахождения среднего значения элементов массива. Память под массивы выделять динамически. Использовать конструктор с параметрами, конструктор без параметров, конструктор копирования. Деструктор должен освобождать память, выделенную под массивы. Создать методы доступа к полям класса.

Ответы на контрольные вопросы

1. Покажите два способа объявления одномерного массива, состоящего из 12 элементов типа double.

double[] myArray;

myArray = new double[12];

или

double arrayName[];

myArray = new double[12];

2. Покажите все варианты, которыми можно воспользоваться для инициализации элементов одномерного массива целочисленными значениями от 1 до 5.

1)

int[] digits = new int[5]; digits[0] = 1; digits[1] = 2; digits[2] = 3; digits[3] = 4; digits[4] = 5;

2)

int[] digits = new int[] { 1 , 2 ,3 ,4 ,5};

3)

int[] digits = { 1 , 2 ,3 ,4 ,5};

4)

int[] digits = new int[5]; int a =1; for (int i = 0; i < digits.length; i ++) { digits[i] = a; a++; }

3. Напишите программу, в которой массив используется для нахождения среднего арифметического десяти значений типа double. Используйте любые десять чисел.

public static void MiddleInt() { double summ = 0; for (int i = 0; i < arr.length; i++) { summ += arr[i]; } System.out.println("Middle Int:" + summ/size); }

Метода для массива, находящий среднеарифмитическое любого количества значений в массиве.

4. Напишите программу, которая сортирует массив символьных строк в лексикографическом порядке по убыванию и по возрастанию. Продемонстрируйте ее работу.

Результат работы:

5. В чем состоит разница между методами indexOf() и lastIndexOf() класса String?

Метод indexOf() выполняет поиск от начала массива к концу, а метод lastIndexOf() – от конца к началу. 

6. Перепишите приведенную ниже последовательность операторов, воспользовавшись тернарным оператором. if(x < 0) у= 10; else у= 20; 23

String y = (x < 0) ? 10 : 20;

8. Является ли ошибкой превышение верхней границы массива?

Да

9. Является ли ошибкой использование отрицательных значений индекса для доступа к элементам массива?

Да

10. Можно ли управлять оператором switch с помощью объектов типа String? Если да, то напишите пример такого использования.

Да

String a = "cat"; switch(a) { case "cat": System.out.println("CAT"); break; case "notCat": System.out.println("NOT CAT"); break; }

Листинг

import java.util.Scanner; /*. Создать класс Array (массив), в котором реализуются методы для работы с одномерными массивами: методы поиска максимального и минимального элемента в массиве; метод, меняющий местами минимальное и максимальное значения в массивах; метод нахождения среднего значения элементов массива. Память под массивы выделять динамически. Использовать конструктор с параметрами, конструктор без параметров, конструктор копирования. Деструктор должен освобождать память, выделенную под массивы. Создать методы доступа к полям класса*/ public class Main { public static void main(String[] args) { Array number = new Array(3); Filler(); int[] digits = new int[5]; int a =1; for (int i = 0; i < digits.length; i ++) { digits[i] = a; a++; } for (int i = 0; i < digits.length; i ++) { System.out.println(digits[i]); } Array.printArray(); Task(); } public static void Filler() { Array.pushback(4); Array.pushback(3); Array.pushback(1); Array.pushback(7); Array.pushback(9); Array.pushback(6); } public static void Task() { Array.MaxMin(); Array.MaxMinSwap(); Array.MiddleInt(); } } public class Array { private static int [] arr; private static int size; public Array(int [] arr) { arr = new int[arr.length]; this.arr = arr; } public Array(int length) { arr = new int[length]; } public Array(Array obj) { this.arr = obj.arr; } public Array() { arr = new int[5]; } public static void MaxMin() { int min = arr[0], max = arr[0]; for (int i = 0; i < size; i++) { if (arr[i] > max) max = arr[i]; if (arr[i] < min) min = arr[i]; } System.out.println("Max element:" + max); System.out.println("Min element:" + min); } public static void MaxMinSwap() { int min = arr[0], max = arr[0]; int i_min=0, i_max=0; for (int i = 0; i < size; i++) { if (arr[i] > max) { max = arr[i]; i_max = i; } if (arr[i] < min) { min = arr[i]; i_min = i; } } int temp; temp = arr[i_min]; arr[i_min] = arr[i_max]; arr[i_max] = temp; printArray(); } public static void MiddleInt() { double summ = 0; for (int i = 0; i < size; i++) { summ += arr[i]; } System.out.println("Middle Int:" + summ/size); } public static void pushback(int element) { if (arr.length == size) { int newArr[] = new int[2 * size]; for (int i = 0; i < size; i++) { newArr[i] = arr[i]; } arr = newArr; } arr[size++] = element; } public static void printArray() { for (int i = 0; i < size; i++) { System.out.print(arr[i]); System.out.print(" "); } System.out.println(); } public static int[] getArr() { return arr; } public static int getSize() { return size; } public static void setArr(int[] arr) { Array.arr = arr; } public static void setSize(int size) { Array.size = size; } }

Скриншот работы программы

Источник: https://studfile.net/preview/16627285/