Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Маленький тест, :) 
:(
    Опции темы
niasilil
Дата 14.1.2008, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.6.2007
Где: USA

Репутация: 8
Всего: 9



[QUOTE=Kangaroo,14.1.2008,  16:26]
Цитата(LSD @  14.1.2008,  14:55 Найти цитируемый пост)
Конкретно по этой задачке. Вот код niasilil
Код

        Float i = -0.0f;    
        Float j = 0.0f;    
        System.out.println(i <= j && j <= i && i != j);

Его можно по-разному трактовать. 
Почему он использовал значения -0.0f & 0.0f? Если он хотел этим создать разные объекты Float, тогда он прав и понял идею задачи. Но если он думал, что только с помощью этих значений решилась задачка - то он не прав. Это легко можно увидеть, если заменить Float на float.

Я попробовал с плюс и с минус, потом понял что это тупик и решил что надо по другому. Как по другому чтобы j!=i ? Естественно, объекты. 

в 30й заменить NaN на String приходит на ум моментально. 

PS Вобщем, забавно. Я сдавал SCJP в начале лета и сейчас уже многое из головы выветрелось. Собственно, знания зачастую бесполезные. А уж битшифт - так и вообще вредная штука для java в абсолютном большинстве случаев. Не дай бог использовать в своем коде, уволят нафиг. 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
w1nd
Дата 14.1.2008, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Цитата(niasilil @  14.1.2008,  17:41 Найти цитируемый пост)
А уж битшифт - так и вообще вредная штука для java в абсолютном большинстве случаев. Не дай бог использовать в своем коде, уволят нафиг. 

Забавно. А как, например, изображения и звук обрабатывать?
За битмаск тоже уволят?

Это сообщение отредактировал(а) w1nd - 14.1.2008, 18:12


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
niasilil
Дата 14.1.2008, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.6.2007
Где: USA

Репутация: 8
Всего: 9



Цитата(w1nd @ 14.1.2008,  18:12)
Цитата(niasilil @  14.1.2008,  17:41 Найти цитируемый пост)
А уж битшифт - так и вообще вредная штука для java в абсолютном большинстве случаев. Не дай бог использовать в своем коде, уволят нафиг. 

Забавно. А как, например, изображения и звук обрабатывать?
За битмаск тоже уволят?

smile 
Ну не надо утрировать все таки. 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
niasilil
Дата 15.1.2008, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.6.2007
Где: USA

Репутация: 8
Всего: 9



never mind  (я удивился насчет 15 вопроса и понял что ошибся)

PS 6 дней - вполне достаточный срок чтобы решить любую задачку. Так что если есть еще что нибудь, то давай. Ждем. smile И спасибо за труды. 

Это сообщение отредактировал(а) niasilil - 15.1.2008, 20:38


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
Kangaroo
Дата 15.1.2008, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



Цитата(niasilil @  15.1.2008,  19:30 Найти цитируемый пост)
Странно что компилятору пофигу что в комментах если // но не пофигу если /* \units */ или /** \units */

Непонял. Объясни с примером. Во всех комментах коды заменяться на символы.. хоть //, хоть /* */


Цитата(niasilil @  15.1.2008,  19:30 Найти цитируемый пост)
Так что если есть еще что нибудь, то давай. Ждем.

Samotnik, ау! Ты хоть пытался их решить??  smile 
Но вообще-то я сегодня и так занят, буду работать до поздней ночи. Завтра выложу все решения и новые задачки.



--------------------
Lost....
PM MAIL MSN   Вверх
niasilil
Дата 15.1.2008, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.6.2007
Где: USA

Репутация: 8
Всего: 9



ошибся, см выше


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
Kangaroo
Дата 17.1.2008, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



Пришло время отвечать (за свои слова)  smile 

Puzzle 28: Looper
Напишите объявление i так, чтобы цикл стал бесконечным.
Это, наверное, самое простое. бесконечность+1 = бесконечность, следовательно:
Код

        double i = Double.POSITIVE_INFINITY;
        while (i == i + 1) {
            System.out.println("Infinity");
        }

    


Puzzle 29: Bride of Looper
Напишите объявление i так, чтобы цикл стал бесконечным.
Какое число может быть неравно самому себе??? 
А вдруг это вовсе не число - Not a Number ?
JLS 15.21.1 - NaN неравно никакому значению, включая и себя.
Код

double i = Double.NaN;
while (i != i) {
    System.out.println("Infinity");
}



Puzzle 30: Son of Looper
Напишите объявление i так, чтобы цикл стал бесконечным.
Два варианта - или НаН, или строка:
Код

String i = "Hello!";
while (i != i + 0) {
    System.out.println("inf");
}



Puzzle 31: Ghost of Looper
Напишите объявление i так, чтобы цикл стал бесконечным.
Весь смысл кроется в compound assignment операторе >>>=, который автоматически делает преобразование типов.
По шагам:
1) i = 0xff
2) Расширяем к int'y, чтобы сделать сдвиг  = 0xffffffff
3) Сдвигаем = 0x7fffffff
3) Кастим к обратно к byte обрезанием старших бит - 0xff - то есть опять вовзращаемся к исходному значению.
Код

byte i = (byte)0xff;
while (i != 0) {
     i >>>= 1;
    System.out.println("inf");
}



Puzzle 32: Curse of Looper 
Напишите объявление i и j так, чтобы цикл стал бесконечным.
В этой задачке надо использовать фишку пятой Java'ы - auto boxing/unboxing.
То есть инициализируем i & j  wrapperом примитивного типа - Integer, Long, Byte, Double, etc.
Операторы <= и >=  дают нам true, а != сравнивает не числа, а объекты и тоже дает true.
Код

Double i = 1.0;
Double j = 1.0;
while (i <= j && j <= i && i != j) {
    System.out.println("inf");
}



Puzzle 33: Looper Meets the Wolfman
Напишите объявление i и j так, чтобы цикл стал бесконечным.
Теперь надо найти число отрицание которого = самому себе. 0 сразу нельзя  smile 
В Java знаковые целые числа используют two's-complement arithmetic, то есть отрицание делается так: каждый бит инвертируется и приплюсовывается единица.
Попробуй найти отрицание Integer.MIN_VALUE - 0x80000000.
1) Инвертируем биты = 0x7fffffff
2) Приплюсовываем 1: 0x7fffffff+1= 0x80000000 = Integer.MIN_VALUE.
Во всем виноват overflow, который так горячо обсуждается в соседней теме smile
Код

long i = Long.MIN_VALUE;            
while (i != 0 && i == -i) {
    System.out.println("inf");
}



Вечером продолжим!


--------------------
Lost....
PM MAIL MSN   Вверх
valery1707
Дата 17.1.2008, 17:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 11.5.2007
Где: Караганда

Репутация: 1
Всего: 1



Ну вот хотел ответить ... но чуть-чуть не успел smile
В общем задачки я решил правильно, правда 30-ю через Nan, хотя мне потом показали вариант со String smile
В 32-ой понял почему работает именно так еще до рассказа как оно работает smile
Будем еще ждать задачек, было интересно и позновательно.

P.S.
И смысл как мне кажется тут не в том что бы это использовать в коде, а в том что бы реализуя что-то что может попасть на граничные диапазоны помнить об этих ограничених и знать что программа может обработать казалось бы простые операции не так как ожидается.
PM MAIL ICQ Skype GTalk   Вверх
v2v
Дата 17.1.2008, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



31 понравилась.
Kangarо! давай дальше, ты обещал вечером...пора )


--------------------
PM   Вверх
Kangaroo
Дата 18.1.2008, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



Цитата(v2v @  17.1.2008,  17:59 Найти цитируемый пост)
Kangarо! давай дальше, ты обещал вечером...пора ) 

Вечер у меня это двенадцать-час ночи smile то есть сейчас!

Теперь задачки, где надо сказать вывод программы ( ну и понять как же она это вывела  smile )

Puzzle 23: No Pain, No Gain
Код

import java.util.Random;

public class Rhymes {
    private static Random rnd = new Random();

    public static void main(String[] args) {
        StringBuffer word = null;
        switch(rnd.nextInt(2)) {
            case 1: word = new StringBuffer('P');
            case 2: word = new StringBuffer('G');
            default: word = new StringBuffer('M');
        }
        word.append('a');
        word.append('i');
        word.append('n');
        System.out.println(word);
    }
}


Puzzle 20: What's My Class?
Код

package com.javapuzzlers;
public class Me {
   public static void main(String[] args) {
      System.out.println(
         Me.class.getName().replaceAll(".", "/") + ".class");
   }
}


А вот пазл на тему, которую мы уже страниц пять мучаем. Надеюсь, теперь все справятся.
Puzzle 24: A Big Delight in Every Byte
Код

public class BigDelight {
    public static void main(String[] args)  {
        for (byte b = Byte.MIN_VALUE; b < Byte.MAX_VALUE; b++) {
            if (b == 0x90)
                System.out.print("Joy!");
        }
    }
}


Вот эта задачка (правда в другом виде) вспывала уже тут. Но повторение - ... !
Puzzle 25: Inclement Increment
Код

public class Increment {
    public static void main(String[] args) {
        int j = 0;
        for (int i = 0; i < 100; i++)
            j = j++;
        System.out.println(j);
    }
}


Удачи! Отписываемся из кого какой Нострадамус


--------------------
Lost....
PM MAIL MSN   Вверх
niasilil
Дата 18.1.2008, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.6.2007
Где: USA

Репутация: 8
Всего: 9



Цитата(v2v @ 17.1.2008,  18:59)
31 понравилась.

гы, я от нее вообще в ступор поначалу вошел. Ведь любой int всегда сводится к нулю таким битшифтом. Сидел и уговаривал себя что ошибка там, ну не может такого быть.  smile

Добавлено через 11 минут и 34 секунды
Цитата(Kangaroo @ 18.1.2008,  01:19)
Удачи! Отписываемся из кого какой Нострадамус

не угадал 20 :(


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
v2v
Дата 18.1.2008, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



Цитата(niasilil @  18.1.2008,  01:22 Найти цитируемый пост)
гы, я от нее вообще в ступор поначалу вошел. Ведь любой int всегда сводится к нулю таким битшифтом. Сидел и уговаривал себя что ошибка там, ну не может такого быть.  smile 

дык. я тоже 3 десятка экспериментов провёл... всё рано или поздно в 0 уходило.).


23) прикольный !!! один подвох заметил без компиляции, а второй только после изучения java docov 
20) понятно ...
25) тоже понятно... нормальная задачка!!
24) тоже вроде понятно ...

алё ... галивуд  ... нипанятно... (С) бабушко из comedy 



--------------------
PM   Вверх
Kangaroo
Дата 18.1.2008, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



Цитата(v2v @  18.1.2008,  00:45 Найти цитируемый пост)
23) прикольный !!! один подвох заметил без компиляции, а второй только после изучения java docov 

Там еще и третий есть )) Правда он не влияет не результат


Цитата(v2v @  18.1.2008,  00:45 Найти цитируемый пост)
25) тоже понятно... нормальная задачка!!

Я в первый раз не поверил )) а вообще такой код писать не надо, ужос просто


--------------------
Lost....
PM MAIL MSN   Вверх
v2v
Дата 18.1.2008, 02:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



Цитата(Kangaroo @  18.1.2008,  02:02 Найти цитируемый пост)

Я в первый раз не поверил )) а вообще такой код писать не надо, ужос просто 

мне похожая задачка на тестировании при прохождении собеседования попалась smile


--------------------
PM   Вверх
nornad
Дата 18.1.2008, 02:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



23. хм... не понял
20. легко, если юзал риплейс  smile 
24. тоже всё понятно (после мусоленья здесь smile )
25. блин, не угадал, но понял суть smile

... (чуть позже)
23 вроде понял, но лучше услышать пояснение


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1603 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.