Назад | Начало урока | Вперед
Содержание

Глава 6

Задача 6.8 "Полезные методы."

Напишите класс, методы которого принимали бы в качестве одного из параметров массив целых чисел и могли бы выполнить следующее:

- найти максимальный элемент
- определить равны ли значения элементов
- определить сколько раз возникает ситуация, когда значение элемента оказывается больше некоторого заданного уровня.

В этот класс мы хотели бы так же добавить методы, позволяющие:

- найти максимальный элемент, и если таких элементов несколько, зафиксировать их позиции
- определить диапазон значений массива

Подумайте, почему труднее создать эти два метода и какой вариант взаимодействия между массивом и классом подойдет для реализации поставленной задачи?

Решение 2

Теперь напишем функцию класса, которая определяет равен ли какой нибудь элемент исходного массива элементу, переданному в параметре.

// находит первое вхождение элемента, переданного в параметре
// и возвращает его индекс в противном случае -1
int equalInt(int mas[], int n, int eql){

int equal = eql;
int j = -1;
for (int i = 0; i < n; i++) {
j++;
if (mas[i] == equal) {
return j;
}
}
return -1;
}

В программе применены обе функции класса.

Код программы:


class GoodMethods {
int masInt[] = new int[20];

GoodMethods () {

//инициируем массив случайными значениями и выведем на экран
for(int i = 0; i < masInt.length;i++){
masInt[i] = random_01(1,100);
System.out.println(masInt[i]);
}

BigMas bm = new BigMas();
//найдем максимальное значение
int k = bm.maxInt(masInt,masInt.length);
System.out.println(" Max element = " + k);

//найдем индекс первого вхождения элемента
int h = bm.equalInt(masInt,masInt.length, k);

//выведем индекс элемента и сам элемент
if(h != -1){

System.out.println(" Equality index of element = " + h);
System.out.println(" Equality element = " + masInt[h]);
}
else{
System.out.println(" Equality is not ");

}

}

public static void main (String [ ] args) {

// Start the program running from its constructor
new GoodMethods ();
}

int random_01 (int min, int max ){

int z =0;
while(z < min ){
z = (int) (Math.random()* max);
}
return z;
}
}//GoodMethods

class BigMas{

BigMas(){

}

// находит и возвращает максимальный элемент
int maxInt(int mas[], int n){

int highest = 0;
for (int i = 0; i < n; i++) {
if (mas[i] > highest) {
highest = mas[i];
}
}
return highest;
}

// находит первое вхождение элемента, переданного в параметре
// и возвращает его индекс в противном случае -1
int equalInt(int mas[], int n, int eql){

int equal = eql;
int j = -1;
for (int i = 0; i < n; i++) {
j++;
if (mas[i] == equal) {
return j;
}
}
return -1;
}

}//BigMas


Результат :

93
69
8
95
91
59
83
34
16
34
67
49
30
89
79
65
75
78
9
55
Max element = 95
Equality index of element = 3
Equality element = 95


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz