Методы и вычисления в массиве

Очень удобно использовать методы для определения или для вычисления каких-то значений, характеризующих массив.

Рассмотрим следующее задание: "Назовем "сбалансированным" одномерный массив, в котором количество четных и количество нечетных значений – одинаковы.

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

Вначале сформулируем несколько общих соображений:

· Диапазон случайных чисел – от 0 до +9

· Используем метод fillArr (int x), который будет возвращать массив, для заполнения массива.

· Используем метод countArr(int k, int[] c) для подсчета и четных, и, его же, для подсчета нечетных значений. Сделаем мы это за счет того, что в первом случае вызовем метод с параметром 0, а во втором – с параметром 1; параметр этот будет определять остаток от деления на 2.

· Используем метод is_balance (int a, int b) для проверки того, является ли массив "сбалансированным"

· Используем метод printArr (int[] c) для вывода массива на экран

· За счет использования методов сведем к минимуму количество строк кода (команд) в главном методе класса.

Приведем решение – с комментариями к каждой части класса

import java.util.*; class primer_array7 { static Scanner reader = new Scanner(System.in); public static void main(String[] args) { int count1=0, count2=0; int [] b=new int[reader.nextInt()]; b=fillArr(b.length); printArr(b); count1=countArr(0,b); count2=countArr(1,b); if (is_balance(count1,count2)==true) System.out.println("Yes"); else System.out.println("No"); } Стандартное начало класса и главный метод. В главном методе используются переменные count1 и count2 – для подсчета количества четных и нечетных значений, а также обращения к соответствующим методам. Обратите внимание, что к методу countArr есть два обращения, с разными параметрами на первом месте.
//=========== public static boolean is_balance(int a, int b) { if (a==b) return true; else return false; }   Метод возвращает значение true, если переданные в метод параметры равны; а если они не равны, то метод возвращает значение false
//=========== public static int countArr(int x, int[] c) { int count=0; for (int i=0; i<c.length; i++) if (c[i]%2==x) count++; return count; }   Метод возвращает количество четных или нечетных значений в массиве, в зависимости от того, равен ли параметр х или 0, или 1
//=========== public static void printArr (int[] c) { for (int i=0; i<c.length; i++) System.out.print(c[i]+" "); System.out.println(" End of array"); }   Метод выводит на экран в одной строке все значения массива (с пробелами) и сообщение Enf of array в конце этой строки
//========== public static int[] fillArr (int x) { int [] c=new int[x]; for (int i=0; i<c.length; i++) c[i]=(int)(10*Math.random()); printArr(c); return c; }   Метод заполняет массив случайными числами из диапазона от 0 до 9 и возвращает его в главный метод
} Конец класса

Обратите внимание, что к методу можно обращаться (метод можно вызывать) не только из главного метода, но и из любого другого метода – именно так, как это сделано в методе fillArr, который вызывает метод printArr.

Используя этот подход, можно изменить приведенный выше класс так, чтобы главный метод стал еще короче:

import java.util.*;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: