JavaRush /Java блог /Random UA /Помилка у підручнику "Вивчаємо Java" Кеті Сьєрра та Берт ...
lookinbody
11 рівень
Москва

Помилка у підручнику "Вивчаємо Java" Кеті Сьєрра та Берт Бейтс

Стаття з групи Random UA
Всім доброго дня. У проміжках між роботою і JavaRush купив і почав читати " Вивчаємо Java " Кеті Сьєрра і Берт Бейтс. Сьогодні робив чергове домашнє завдання у підручнику. У мене ніяк не виходило вирішити завдання " class Triangle " стор. 95. У IntelliJ IDEA відповідь виходила не те, що потрібно. Убив дві години, перебрав усі можливі варіанти, нічого не вийшло. Плюнув, поліз у відповіді. А там моє найперше рішення. У результаті, якщо вбити цей код в 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

Підкажи будь ласка наскільки я правий у своїх здогадах.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ