• ,

level09.lesson11.home05 Загляни-помоги :) Спасибо

Подскажите на что следует обратить внимание, а результат у меня видает на кирилицу " [?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?]..."

* Гласные и согласные буквы
Написать программу, которая вводит с клавиатуры строку текста.
Программа должна вывести на экран две строки:
1. первая строка содержит только гласные буквы
2. вторая — только согласные буквы и знаки препинания из введённой строки.
Буквы соединять пробелом.

Пример ввода:
Мама мыла раму.
Пример вывода:
а а ы а а у
М м м л р м.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String str = reader.readLine();
        //Масиви в які добавляємо відсортовані букви
        ArrayList<Character> vowel = new ArrayList<Character>();
        ArrayList<Character> notVowel = new ArrayList<Character>();

        //Введену строку перетворюємо в масив і відправляємо в метод isVowels для перевірки яка буква
        char[] Char = str.toCharArray();
        for (char c : Char) {
            if (isVowel©==true) {
                vowel.add©;
            }
            else notVowel.add©;
        }
       print(vowel);
        System.out.println(" ");
        print(notVowel);

    }

    public static void print (ArrayList<Character> c) {
        for(char d : c){
            System.out.print(c+" ");
        }
    }

    public static char[] vowels = new char[]{'а', 'я', 'у', 'ю', 'и', 'ы', 'э', 'е', 'о', 'ё'};

    //метод проверяет, гласная ли буква
    public static boolean isVowel(char c)
    {
        c = Character.toLowerCase©;  //приводим символ в нижний регистр - от заглавных к строчным буквам

        for (char d : vowels)   //ищем среди массива гласных
        {
            if (c == d)
                return true;
        }
        return false;
    }
}
  • ,

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;
}
}
}
  • ,

level06.lesson11.bonus03

Доброго времени суток, господа.

Решал задачу, указанную в заголовке, изобрел велосипед:
Условие:
/* Задача по алгоритмам
Задача: Написать программу, которая вводит с клавиатуры 5 чисел и выводит их в возрастающем порядке.*/



public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader  = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        for(int i=0;i<5;i++) arrayList.add(Integer.parseInt(reader.readLine()));

        for(int i=0;i<arrayList.size()-1;i++)
        {
                if (arrayList.get(i) > arrayList.get(i+1))
                {
                    for(int j=0; j<5;j++) System.out.println(arrayList.get(j));//для поэтапного контроля
                    System.out.println();
                    int buf1 = arrayList.get(i);
                    int buf2 = arrayList.get(i+1);
                    arrayList.set(i, buf2);
                    arrayList.set(i+1, buf1);
                    i = 0;
                }
        }

        for(int i=0;i<5;i++)
            System.out.println(arrayList.get(i));
    }
}


Для набора:
3
2
15
6
17
Выполняется отлично, но для тестового набора:
-24
2
-100
1
0

Выполняется не отлично, по какой то причине не меняет значения -24 и -100 местами и получается следующий результат(по-итерационно):
-24
2
-100
1
0

-24
-100
2
1
0

-24
-100
1
2
0

-24
-100
1
0
2

-24
-100
0
1
2

Задачу решил с помощью цикла:

for(int i =0; i<arrayList.size();i++)
        {
            for(int j=0;j<arrayList.size();j++)
            {
                if(arrayList.get(i)<arrayList.get(j))
                {
                    int buf1 = arrayList.get(i);
                    int buf2 = arrayList.get(j);
                    arrayList.set(i,buf2);
                    arrayList.set(j,buf1);
                }
            }
        }


Но вопрос остался открытым, почему 1-ый вариант не работает?
Может ли кто-нибудь объяснить?
  • ,

А что у нас с тестами?

Прочитывая истории успеха уже нашедших себе работу ребят в который раз вижу, что многим дают выполнять на собеседовании некие тесты. Первая ссылка с гугла ведет на сайт на котором можно пройти тесты на разных уровнях знаний языка, но вот беда: если ты плохо учился(как я) и набираешь при проходе теста 20-30% правильных ответов, доступ к верным решениям заблокирован. «Глубокое гугление»(патентую это выражение) привело меня в такие дебри интернета, что я с трудом вылез так и не найдя ничего.

Вопрос к аудитории следующий: Как и где быстренько подтянуть свои знания по Java Core? И мб у старичков завалялись ссылки на хорошие тесты по Java, ибо чую, двигаться дальше с большими пробелами не имеет смысла.

ГЛУП НЕ ТОТ КТО НЕ ЗНАЕТ А ТОТ КТО НЕ СПРАШИВАЕТ

package com.javarush.test.level06.lesson08.task04;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/* Класс ConsoleReader
Сделать класс ConsoleReader, у которого будут 4 статических метода:
String readString() – читает с клавиатуры строку
int readInt() – читает с клавиатуры число
double readDouble() – читает с клавиатуры дробное число
void readLn() – ждет нажатия enter [использовать readString()]
*/

public class ConsoleReader
{
    public static String readString() throws Exception
    {
        BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
        String x = reader.readLine();
        return x ;

        //Напишите тут ваш код

    }

    public static int readInt() throws Exception
    {
        BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
        int x = new Integer(reader.readLine());
        return x ;//Напишите тут ваш код

    }

    public static double readDouble() throws Exception
    {
        BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
        double x = new Double(reader.readLine());
        return x ;
        //Напишите тут ваш код

    }

    public static void readLn() throws Exception
    {
        ConsoleReader.readString();

    }
}


Это в общем это решение задачи. Сделал ее почти самостоятельно. Не понятно вот что:
public static void readLn() throws Exception
    {
        ConsoleReader.readString();

    }

Сервер принял задачу. На форуме есть много вариантов решения (кто через цикл, кто вообще ничего не писал и сервер принимал)… Но мне все равно не понятно что же происходит при вызове readString? Может кто нибудь проведет «разбор полетов»?

Не проходит тестирование level15.lesson09.task02

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/* Статики 2
1. В статическом блоке считайте две переменные с консоли А и В с типом int.
2. Не забыть про IOException, который надо обработать в блоке catch.
3. Закрыть поток ввода методом close().
*/

public class Solution {
public static int A;
public static int B;

static
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try
{

int A = Integer.parseInt(reader.readLine());
int B = Integer.parseInt(reader.readLine());
reader.close();
} catch (IOException e){
}
}

public static final int MIN = min(A, B);

public static void main(String[] args) {
System.out.println(MIN);
}

public static int min(int a, int b) {
return a < b? a: b;
}
}
  • ,

Последний этап программы. Исполняемый файл.

Доброго времени суток!
Подскажите пожалуйста кто что может)
Написал код программы, у которой на входе изображение (JPEG или PNG). Она определяет формат и создает объект нужного класса.
Набор изображений есть.
Вопрос 1:
Как создать jar файл в котором уже заархивированы все эти изображения?
Вопрос 2:
Поскольку программа будет работать только если файлы находятся в тех директориях, которые я указал, подскажите как переписать ее чтобы она считывала из своего архива(в том смысле чтобы не зависело от того где располагаются изображения.

вот код:
import java.io.*;
import java.util.Random;


public class Analizator {
    public static void main(String[] args)throws IOException {
      
        Random random = new Random();
        File TrainData = new File("C:\\Users\\nhbafy\\Desktop\\TrainData");
        String[] list = TrainData.list();
       String name_catalog=list[random.nextInt(2)];
        File randomCatalog = new File("C:\\Users\\nhbafy\\Desktop\\TrainData"+"\\"+name_catalog);
        String[] list2=randomCatalog.list();
        File randomFile = new File("C:\\Users\\nhbafy\\Desktop\\TrainData"+"\\"+name_catalog+"\\"+list2[random.nextInt(list.length)]);
        getImageReaderByHeader(randomFile);
        
    }

    public static Object getImageReaderByHeader(File file) throws IOException {
        byte[] header = new byte[10];
        new DataInputStream(new FileInputStream(file)).read(header);
        String h = new String(header).trim();
        if (h.contains("PNG")) {
            return new PNG();
        } else
            return new JPEG();


    }

}

Вроде получилось создать Jar но при открытии файла на 0.1 секунды открывается консоль и на этом все.
  • ,

Помогите с задачей

есть задание:
Необходимо реализовать программу, которая, получив на вход изображение из исходного набора, присвоит верный номер класса (0 или 1) путем анализа графических данных.

Входные данные — изображение в формате PNG или JPEG.
Выходные данные — номер класса (1 или 0).

Программа должна запускаться под управлением одной из операционных систем из списка — Windows (7, 8), Linux — Ubuntu 14.04 и выше.

1. я не понимаю как передать файл в программу, т.е. с адресом «C:\\1.png» он видит, а «C:\\1» нет, а формат как раз надо определить.
2. как собственно определить формат? вроде слышал что первые 8 байтов являются заголовком и у всех png одинаковые, но не пойму как это реализовать.

Буду очень благодарен за помощь!
  • ,

Нуждаюсь в совете.

Добрый вечер, друзья.Намедни столкнулся со следующей проблемой, которую решить не по силам уже несколько недель. Сейчас я нахожусь на 15 уровне, до которого относительно легко добрался еще месяц назад. Но вот на протяжении всего месяца у меня опускаются руки и все по одной простой причине, что я перестал понимать каким образом решается задача. На 14-15 уровне идут задачи по принципам ООП и хоть имея знания по этой теме, я каждую новую задачу разбираю больше чем по часу и без помощи форума с приведенным решенным кодом/подсказками я обойтись никак не могу. Я постоянно путаюсь в возвращаемых переменных в различных методах. Могу долго сидеть и тупить над конструктором, хоть по отдельности все это более-менее понимаю. Помогите пожалуйста советом, что нужно подтянуть и где найти необходимую информацию, чтобы щелкать задачи 14-15 уровня как орешки?
  • ,

Начинающему JavaRush'евцу.

Если Вы поставили себе цель стать крутым Java-кодером и только начинаете свой путь с JavaRush, если Ваша цель получить максимум пользы от данного ресурса, а не бесполезное прожигание времени путем бездумного «отстреливания» задачек — этот топик для Вас.

level13.lesson11.bonus01

Работает корректно, но сервером не принимается. Перепробовал все, что пришло в голову: разные методы сортировки, удаление и сохранение нечетных чисел в конечном массиве, сохранение и изменение позиций нечетных чисел в конечном массиве по сравнению с исходным, реализация сортировки в main и в отдельном методе.
Может кто увидит в чем проблема?

/* Сортировка четных чисел из файла
1. Ввести имя файла с консоли.
2. Прочитать из него набор чисел.
3. Вывести на консоль только четные, отсортированные по возрастанию.
Пример ввода:
5
8
11
3
2
10
Пример вывода:
2
8
10
*/
  • ,

Silverlight

Что-то я запутался. Переустановил систему, поставил windows 8, захожу на javarush/course… и автоматически начинается скачивание файла Alexandra.zip, я что-то такого не припомню, когда на прежней системе занимался тут. Что делать с содержимым файла я не нашёл. Помогите кто чем может )