JavaRush /Java блогы /Random-KK /Кэти Сьерра мен Берт Бейтстің Java тілін үйренудегі қатес...
lookinbody
Деңгей
Москва

Кэти Сьерра мен Берт Бейтстің Java тілін үйренудегі қатесі

Топта жарияланған
Қайырлы күн баршаңызға. Жұмыс пен JavaRush арасында мен Кэти Сьерра мен Берт Бейтстің « Жаваны үйрену » кітабын сатып алдым және оқи бастадым. Бүгін оқулықтағы тағы бір үй тапсырмасын орындадым. Мен " сынып үшбұрышы " мәселесін шеше алмадым 95-бет. IntelliJ IDEA-да жауап маған қажет емес еді. Мен екі сағат жұмсадым, барлық мүмкін нұсқаларды қолдандым, ештеңе жұмыс істемеді. Ол түкірді де, жауап іздеді. Ал менің алғашқы шешімім бар. Нәтижесінде, егер сіз осы codeты IntelliJ IDEA жүйесіне енгізсеңіз, жауап оқулықта жазылғандай болмайды. Оқулықтағы қатеЖауаптардың дұрыс шешімі келесідей көрінеді:
public class Triangle
{
    double area;
    int height;
    int lenght;
    public static void main(String[] args)
    {
        int x = 0;
        Triangle [] ta = new Triangle[4];
        while (x < 4)
        {
            ta[x] = new Triangle();
            ta[x].height = (x + 1) * 2;
            ta[x].lenght = x + 4;
            ta[x].setArea();
            System.out.print("треугольник " +x+ ", зона");
            System.out.println(" = " + ta[x].area);
            x = x + 1;
        }
        int y = x;
        x = 27;
        Triangle t5 = ta[2];
        ta[2].area = 343;
        System.out.print("y = " + y);
        System.out.println(", зона t5 = " + t5.area);
    }
    void setArea()
    {
        area = (height + lenght) / 2;
    }
}
Жауап, оқулық авторларының пікірінше:
треугольник 0, зона = 4.0
треугольник 1, зона = 10.0
треугольник 2, зона = 18.0
треугольник 3, зона = 28.0
y = 4, зона t5 = 343.0
Іс жүзінде жауап келесідей көрінеді:
треугольник 0, зона = 3.0
треугольник 1, зона = 4.0
треугольник 2, зона = 6.0
треугольник 3, зона = 7.0
y = 4, зона t5 = 343.0
Менде тек екі ықтимал жауап болды:
  1. Техникалық толық емес және қате.

  2. Кітап Java 5.0 арқылы жазылған, мен мәселені Java 8.0-де шешемін

Менің болжамым қаншалықты дұрыс екенін айтыңызшы.
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION