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

Глава 6

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

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

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

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

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

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

Решение 3

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

// возвращает сколько раз встречаются элементы
// большие чем переданный в параметр
int moreInt(int mas[], int n, int m){

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

Аналогична функция, которая определяет сколько раз встречаются элементы, равные данному:

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

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

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


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

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(" Index of max element = " + h);
System.out.println(" Equality = " + masInt[h]);
}
else{
System.out.println(" Equality is not ");

}

//выведем сколько раз встречается в массиве максимальный элемент
System.out.println(" Element max repeat " + bm.equalInt1(masInt,masInt.length, k));

//выведем сколько раз встречаются элементы превосходящие значение 25
System.out.println(" Element more than 25 repet - " + bm.moreInt(masInt,masInt.length, 25));


}

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;
}
//--------------------
// возвращает сколько раз переданный в параметре элемент
// встречается в массиве
int equalInt1(int mas[], int n, int eql){
int equal = eql;
int j = 0;
for (int i = 0; i < n; i++) {
if (mas[i] == equal) {
j++;
}
}
return j;
}
//--------------------
// возвращает сколько раз встречаются элементы
// большие чем переданный в параметр
int moreInt(int mas[], int n, int m){
int more = m;
int j = 0;
for (int i = 0; i < n; i++) {
if (mas[i] > more) {
j++;
}
}
return j;
}
}


Результат :

Max element = 99
Index of max element = 8
Equality = 99
Element max repeat 7
Element more than 25 repet - 372


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

Hosted by uCoz