Задать вопрос
  • В 40 лет планирую поменять сферу деятельности с 1С на Android? Сколько на старте смогу зарабатывать?

    @ti1
    А что вы делаете с теми, кто получив у вас позицию холостяком, в итоге женится? Как быстро увольняете?
  • Как создать метод нахождения суммы элементов массива в Java и вызывать его к различным массивам?

    @ti1 Автор вопроса
    illuzor, не могу правильно вызвать метод к массиву.

    Казалось бы, нужно сделать вот так:

    } else if (n == 1) {
              int sum = sumOfArray(customers);
            }


    Но мне выдает ошибку:


    error: non-static method sumOfArray(int[]) cannot be referenced from a static context
    int sum = sumOfArray(customers);
  • Как создать метод нахождения суммы элементов массива в Java и вызывать его к различным массивам?

    @ti1 Автор вопроса
    Нет, суммировать три массива не нужно.

    1) "Если элемент один, то зачем цикл?" - Когда работает одна касса - N=1 - тогда время, необходимое на обслуживание очереди, задаваемой, например, массивом [2, 3, 1, 5, 7] - это просто сумма элементов массива: 2+3+1+5+7=18.

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

    } else if (customers.length <= n) {
              int customerMax = customers[0];
              for (int i = 0; i < n; i++) {
                if (customers[i] > customerMax) {
                  customerMax = customers[i];
                }
              }
              return customerMax;
            }


    3) В случае, когда число людей в очереди больше, чем число работающих касс (customers.length > n && n > 1), мне нужно запустить счетчик и уменьшать на единицу все элементы массива nCustomers (это подошедшие к n касс n покупателей из очереди), при этом, как только какой-то из его элементов обнуляется, в следующей итерации я на его место ставлю первый элемент из массива остатка очереди restOfCustomers[0], а сам массив restOfCustomers сокращаю на этот элемент. И все это происходит пока сумма элементов в nCustomers не станет нулевой, а массив restOfCustomers не станет пустым - нулевой длины.
  • Android/Java - как выводить несколько переменных в строке?

    @ti1 Автор вопроса
    Спасибо за наводку. После того, как ввел промежуточную переменную, Андроид Студио указала на синтаксическую ошибку - отсутствие фигурных скобочек у каждого условия в блоке if-else. После добавления скобочек, все заработало.

    private TextView createOrderSummary(View view){
            EditText nameField = findViewById(R.id.name_field);
            String name = nameField.getText().toString();
    
            CheckBox whippedCreamCheckBox = findViewById(R.id.whipped_cream_checkbox);
            hasWhippedCream = whippedCreamCheckBox.isChecked();
    
            CheckBox chocolateCheckBox = findViewById(R.id.chocolate_checkbox);
            hasChocolate = chocolateCheckBox.isChecked();
    
            TextView priceMessage = findViewById(R.id.price_text_view);
    
            if (numberOfCoffees == 0) {
                textString = getString(R.string.total_coffee_cost_zero, name);
                priceMessage.setText(textString);
            }
            else if ((numberOfCoffees == 1) && (!hasWhippedCream) && (!hasChocolate)) {
                textString = getString(R.string.total_coffee_cost_one, name, numberOfCoffees, numberOfCoffees * priceOfCup);
                priceMessage.setText(textString);
            }
            else if ((numberOfCoffees == 1) && (hasWhippedCream) && (!hasChocolate)) {
                textString = getString(R.string.total_coffee_cost_one_whipped_cream, name, numberOfCoffees, numberOfCoffees * priceOfCup);
                priceMessage.setText(textString);
            }
            else if ((numberOfCoffees == 1) && (!hasWhippedCream) && (hasChocolate)) {
                textString = getString(R.string.total_coffee_cost_one_chocolate, name, numberOfCoffees, numberOfCoffees * priceOfCup);
                priceMessage.setText(textString);
            }
            else if ((numberOfCoffees == 1) && (hasWhippedCream) && (hasChocolate)) {
                textString = getString(R.string.total_coffee_cost_one_cream_chocolate, name, numberOfCoffees, numberOfCoffees * priceOfCup);
                priceMessage.setText(textString);
            }
            else if ((numberOfCoffees > 1) && (!hasWhippedCream) && (!hasChocolate)) {
                textString = getString(R.string.total_coffee_cost, name, numberOfCoffees, numberOfCoffees * priceOfCup);
                priceMessage.setText(textString);
            }
            else if ((numberOfCoffees > 1) && (hasWhippedCream) && (!hasChocolate)) {
                textString = getString(R.string.total_coffee_cost_whipped_cream, name, numberOfCoffees, numberOfCoffees * priceOfCup);
                priceMessage.setText(textString);
            }
            else if ((numberOfCoffees > 1) && (!hasWhippedCream) && (hasChocolate)) {
                textString = getString(R.string.total_coffee_cost_chocolate, name, numberOfCoffees, numberOfCoffees * priceOfCup);
                priceMessage.setText(textString);
            }
            else if ((numberOfCoffees > 1) && (hasWhippedCream) && (hasChocolate)) {
                textString = getString(R.string.total_coffee_cost_cream_chocolate, name, numberOfCoffees, numberOfCoffees * priceOfCup);
                priceMessage.setText(textString);
            }
    
            return priceMessage;
        }