Сумма положительных элементов массива — Java

Прикладное программирование Программирование на Java Решение задач на языке Java Сумма положительных элементов массива — Java

  • В этой теме 0 ответов, 1 участник, последнее обновление 2 месяца, 1 неделя назад сделано Васильев Владимир Сергеевич.
Просмотр 0 веток ответов
  • Автор
    Сообщения
    • #6683
      @admin
      StudLance.ru

      Задача:
      Создать функцию, которая будет считать сумму положительных элементов из массива размерностью 10. Массив получен рандомно. Из целых чисел.

      Решение:

      Очевидно, главная функция должна:

      • создать массив;
      • инициализировать его случайными числами;
      • вывести массив на экран (иначе мы не сможем проверить корректность работы программы);
      • посчитать сумму положительных элементов и вывести ее на экран.

      Программу целесообразно разбить на набор небольших функций, каждая из которых решает свою узкую задачу — такой подход соответствует принципу единственной обязанности (Single Responsibility Principle).

      Блок-схема основной функции приведена на рисунке 1:

      Блок-схема функции, вычисления суммы положительных элементов — на рисунке 2:

      Соответствующий исходный код:

      import java.util.Random;
      public class Main
      {
          public static void main(String[] args) {
              int array[] = new int[10];
              generate_random(array, -50, 50);
              print(array);
              int sum = sum_positive(array);
              System.out.print("\nsum positive: " + sum);
          }
      
          public static int sum_positive(int array[]) {
              int sum = 0;
              for (int i = 0; i < array.length; i++) {
                  if (array[i] > 0)
                      sum += array[i];
              }
              return sum;
          }
      
          private static void print(int[] array) {
              for (int i = 0; i < array.length; ++i)
                  System.out.print(" " + array[i]);
              System.out.print("\n");
          }
          
          private static void generate_random(int[] array, 
              int lowerbound, int upperbound) {
              Random rnd = new Random();
              int bound = upperbound - lowerbound;
              for (int i = 0; i < array.length; ++i)
                  array[i] = rnd.nextInt(bound) + lowerbound;
          }
      }

      В исходном коде, функция заполнения массива случайными числами принимает два дополнительных параметра, задающих диапазон генерируемых значений. Для генерации числа в диапазоне [A, B] программа генерирует число в диапазоне B-A, а затем добавляет к полученному числу A. Схематично это можно показать так:

      value = rand()%(B-A)
      value += A

      Генерация случаных чисел выполняется с помощью библиотекчных функций модуля java.util.Random. При этом, сначала создается генератор чисел (new Random()), а затем для получения числа у него вызывается метод nextInt().

      Результат запуска внутри IDE Apache NetBeans приведен на рисунке 3:

      StudLance.ru

Просмотр 0 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.
×