Глава 6
Задача 6.8 "Полезные методы."
Напишите класс, методы которого принимали бы в качестве одного из параметров массив целых чисел и могли бы выполнить следующее:
- найти максимальный элемент
- определить равны ли значения элементов
- определить сколько раз возникает ситуация, когда значение элемента оказывается больше некоторого заданного уровня.
В этот класс мы хотели бы так же добавить методы, позволяющие:
- найти максимальный элемент, и если таких элементов несколько, зафиксировать их позиции
- определить диапазон значений массива
Подумайте, почему труднее создать эти два метода и какой вариант взаимодействия между массивом и классом подойдет для реализации поставленной задачи?
Решение 2
Теперь напишем функцию класса, которая определяет равен ли какой нибудь элемент исходного массива элементу, переданному в параметре.
// находит первое вхождение элемента, переданного в параметре
// и возвращает его индекс в противном случае -1
int equalInt(int mas[], int n, int eql){
В программе применены обе функции класса.
Код программы:
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
Назад |
Начало урока |
Вверх |
Вперед
Содержание