• ,

Task09.task0906

Наткнулся тут на одну интересную вещь:
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); количество элементов равно трем.

если мы выбираем element через непосредственное указание индекса в стеке;
StackTraceElement element = stackTraceElements[index];

то все нормально — мы получаем нужное имя класса. Но если выбирать элемент через: stackTraceElements[stackTraceElements.length-1] (помним что длина стека равна трем),

то получаемое имя класса не то, которое нужно, а то которое хранится (я даже не знаю как это сказать — в невидимой части стека чтоли), т.е. стек, при выполнении решения представляет из себя не три строки, а семь строк (можете сделать stackTraceElements[stackTraceElements.length] — будет ошибка, в которой указан полный стек). При чем если запускать тот же код в отладке пошагово, то получаем сообщение com.javarush.task.task09.task0906.Solution: main: In main method — что есть правильно

а вот просто исполнение приложения выдает такую строку:
com.intellij.rt.execution.application.AppMain: main: In main method — что есть неправильно

кто может пояснить такое явление?
  • ,

Task08.task0824

Коллеги, помогите с решением задачи:

Условие:
Собираем семейство
1. Создай класс Human с полями имя (String), пол (boolean), возраст (int), дети (ArrayList).
2. Создай объекты и заполни их так, чтобы получилось: два дедушки, две бабушки, отец, мать, трое детей.
3. Вывести все объекты Human на экран.
===================

Решение: все сделал (вроде правильно), ошибок при проверке не выдает. все строки печатает. Но вот валидацию не проходит.
Возможно что-то недопонял в условии номер 2. Создаю всего 6 объектов, поля заполняю в мэйне после объекта. в Object.children массив передаю методом new ArrayList<>(Arrays.asList(Object)). где я не прав?
  • ,

task08.task0812 Помогите найти ошибку.

Cамая длинная последовательность

1. Создай список чисел.
2. Добавь в список 10 чисел с клавиатуры.
3. Вывести на экран длину самой длинной последовательности повторяющихся чисел в списке.
Пример для списка 2, 4, 4, 4, 8, 8, 9, 12, 12, 14:
3
Искомое значение равно 3, т.к. самая длинная последовательность повторяющихся чисел состоит из трех четверок.

public class Solution {
    public static void main(String[] args) throws IOException {
        ArrayList<Integer> list = new ArrayList<>();
        BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));
        for(int i = 0; i < 10 ; i++){
            list.add(Integer.parseInt(buff.readLine()));
        }
        int i = list.get(0);
        int count = 0;
        int count1 = 0 ;
        for(int x = 0; x < list.size(); x++){
            if( i == list.get(x)){
                count++;
            }
            else if( i != list.get(x))
            {
                if(count >= count1)
                {
                    count1 = count;
                    count = 0;
                }
                else if(count <= count1)
                {
                    count = 0;
                }
            }
            i = list.get(x);
        }
        if(count >= count1)
            System.out.println(count);

        else if(count1 >= count)
            System.out.println(count1);

    }
}


Последовательность находит, но если за ней идут еще две меньшие то выводит их. Например 2, 4, 4, 4, 8, 8, 9, 12, 12, 14 — выводит два, 4 4 4 находит, но потом идут 8 8 и 12 12, по этому выводит два.

дополнение к плагину.

Хотелось бы видеть дополнительные функцию в плагине: получение эталонного решения.
Для ее реализации добавить форму, аналогичную форме выбора задач для решения.
В форме отображаются только УЖЕ РЕШЕННЫЕ пользователем задачи. Выбор задачи (по дабл клику или ОК) показывает (либо в отдельном окне, либо загружает так же файл, как и для решаемых задач) эталонное решение уже прорешанной задачи.
Если такая функйиональность будет, можно сравнить свое (почти наверняка корявое) решение с тем, ка кэто должно быть.

Спасибо.
  • ,

level22.lesson13.task03

Все топики прочёл, но решения как-то не обнаружил.
Не проходит проверку сервера, хотя вывод вроде как верный на всех примерах:
public class Solution {

    public static boolean checkTelNumber(String telNumber) {
        String mask = telNumber;

        if (mask.matches("-.*|.*-.*") && !mask.matches(".*-{2}.*")){
            mask = mask.replaceFirst("-", "");
        }
        if (mask.matches(".*-.*")){
            mask = mask.replaceFirst("-", "");
        }
        if (mask.matches(".*\\(\\d{3}\\)\\d*")){
            mask = mask.replace("(", "");
            mask = mask.replace(")", "");
        }

        if (mask.matches("^\\+\\d{12}|\\d{10}"))
            return true;
        else return false;
    }

    public static void main(String[] args){
        System.out.println(checkTelNumber("+380501234567")); // Вывод true
        System.out.println(checkTelNumber("+38(050)1234567")); // Вывод true
        System.out.println(checkTelNumber("8521367985")); // Вывод true
        System.out.println(checkTelNumber("(852)1367985")); // Вывод true
        System.out.println(checkTelNumber("+38050123-45-67")); // Вывод true
        System.out.println(checkTelNumber("050123-4567")); // Вывод true
        System.out.println(checkTelNumber("+38)050(1234567")); // Вывод false
        System.out.println(checkTelNumber("+38(050)1-23-45-6-7")); // Вывод false
        System.out.println(checkTelNumber("050ххх4567")); // Вывод false
        System.out.println(checkTelNumber("050123456")); // Вывод false
        System.out.println(checkTelNumber("1-23456789-0")); // Вывод true
    }
}

level05.lesson12.bonus03 не проходит тест

</codepackage com.javarush.test.level05.lesson12.bonus03;

import java.io.*;

/* Задача по алгоритмам
Написать программу, которая:
1. вводит с консоли число N > 0
2. потом вводит N чисел с консоли
3. выводит на экран максимальное из введенных N чисел.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int maximum = 0;
        int y = 0;

        do
        
             y = Integer.parseInt(reader.readLine());
            while (y <= 0) ;
        
        for (int i = 1; i <= y; i++)
        {
            int k = Integer.parseInt(reader.readLine());
            maximum = max(k,maximum);
            //напишите тут ваш код
        }
            System.out.println(maximum);
    }

    public static int max(int k, int maximus){
       int x = maximus ;
                return (x > k) ? x:k;
    }
  • ,

package com.javarush.test.level09.lesson11.home04 HELP

package com.javarush.test.level09.lesson11.home04;


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/* Конвертер дат
Ввести с клавиатуры дату в формате «08/18/2013»
Вывести на экран эту дату в виде «AUG 18, 2013».
Воспользоваться объектом Date и SimpleDateFormat.
*/

public class Solution {
    public static void main(String[] args) throws Exception {
       SimpleDateFormat date=new SimpleDateFormat("MM/dd/yyyy");
        System.out.println(date.format(new Date()));


       SimpleDateFormat newDateFormat=new SimpleDateFormat("MMM ", Locale.ENGLISH);
       SimpleDateFormat DateFormat= new SimpleDateFormat("dd, yyyy");
        System.out.print(newDateFormat.format(new Date()).toUpperCase()+DateFormat.format(new Date()));
    }
}

выводит в консоль в нужном виде:
01/13/2016
JAN 13, 2016
но сервер не принимает задачу.HELP
  • ,

Нужно ли сделать более разнообразными ответы валидатора при отправке задач на проверку

Предположим, валидатор при отправке задач на проверку явно указывал, скажем, причину, по которой задача не проходит проверку. Т.е. не просто «не прошла тестирование», в явном виде указывать, что не так.
Одна из самых частых проблем это «мой код отрабатывает правильно, но не проходит проверку, как так?». Когда люди пишут «отрабатывает правильно», иногда это им только кажется. Но бывают случаи, когда действительно вроде все ровно, но проверку не проходит.
  • ,

Кто "ЗА" чтобы после большого количества неудачных попыток решения задачи получить в подсказку один из тест-кейсов который не может пройти программа.

Собственно, вопрос или даже предложение авторам JavaRush.
Бывают случаи, когда количество попыток решения задачи просто зашкаливает.
Смысл задачи не всегда бывает до конца однозначно понятен.
Так почему бы, например, после 10 неудач не показать бедолаге, тест-кейс который данное решение не проходит.
Иногда даже долгое курение обсуждений на форуме не дает должного понимания, а так бы сразу проявилась проблема.
  • ,

level05.lesson05.task02 Помогите пожалуйста

Реализовать метод fight
Реализовать метод boolean fight(Cat anotherCat):
реализовать механизм драки котов в зависимости от их веса, возраста и силы.
Зависимость придумать самому. Метод должен определять, выиграли ли мы (this) бой или нет,
т.е. возвращать true, если выиграли и false — если нет.
Должно выполняться условие:
если cat1.fight(cat2) = true, то cat2.fight(cat1) = false

У меня несколько вопросов (заранее спасибо добрые люди :) :

1) программа сработала нормально вивела «true», но проверку не прошла.
2) параметр (Cat anotherCat) ето такое правило написание параметра для взаимодействия обєктов?
3) почему когда пишем нужно писать ссилку на параметри обєкта Cat с помощью this.*
Код ниже
public class Cat
{
public String name;
public int age;
public int weight;
public int strength;
public static void main (String[] args) {
Cat cat1 = new Cat(10, 20, 30);
Cat cat2 = new Cat(5, 10, 15);
System.out.print (cat1.fight(cat2));
}

public Cat(int a, int w, int s)
{
this.age = a;
this.weight = w;
this.strength = s;
}

public boolean fight (Cat anotherCat)
{
//Напишите тут ваш код
int skillCat1 = this.age+this.weight+this.strength;
int skillCat2 = anotherCat.age+anotherCat.weight+anotherCat.strength;
if (skillCat1 > skillCat2) {
return true;
}
else {
return false;
}
}
}