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