Человек.
Создайте сущность Человек, которая описывается:
• Имя: строка
• Рост: целое число
Может возвращать текстовое представление вида “Name, рост: height”, где Name и height это
переменная с именем и ростом.
Необходимо создать и вывести на экран следующих людей:
• Человек с именем “Клеопатра” и ростом 152
• Человек с именем “Пушкин ” и ростом 167
• Человек с именем “Владимир ” и ростом 189
Создаем класс Human. В нем объявляем две переменные: name(строка, имя человека) и height(целое число, рост человека). Далее устанавливаем значения для имени и роста. И создаем метод который возвращает имя и рост. В классе Main создаем три объекта класса Human и задаем каждому человеку имя и рост. Выводим всех трех людей. Тесты:
Имена.
Создайте сущность Имя, которая описывается тремя параметрами: Фамилия, Личное имя,
Отчество. Имя может быть приведено к строковому виду, включающему традиционное
представление всех трех параметров: Фамилия Имя Отчество (например “Иванов Иван
Иванович”). Необходимо предусмотреть возможность того, что какой-либо из параметров может
быть не задан, и в этом случае он не учитывается при приведении к текстовому виду.
Необходимо создать следующие имена:
• Клеопатра
• Пушкин Александр Сергеевич
• Маяковский Владимир
Обратите внимание, что при выводе на экран, не заданные параметры никак не участвуют в
образовании строки.
Создаем класс Name. В нем объявляем три переменные: фамилия, имя, отчество. Устанавливаем значения для переменных и создаем метод, который возвращает переменные. Создаем метод, который будет возвращать ФИО в одной строке. В нем делаем проверку: если строка с фамилией есть и она не пустая, то добавляем ее в итоговую строку. Так же для строк с именем и отчеством. Тесты:
Человек с именем.
Объедините сущности Человек из задачи 1.2 и Имя из задачи 1.3 таким образом, чтобы имя
человека задавалось с использованием сущности 1.3, а не строки.
Необходимо объединить ранее созданные объекты имен и людей, с получением:
• Человека с Именем Клеопатра и ростом 152
• Человека с Именем Пушкин Александр Сергеевичи ростом 167
• Человека с Именем Маяковский Владимир и ростом 189
Создаем класс Humanwithname. В него копируем (без имени) класс Человек из задачи 1.2 и создаем объект класса Имя из задачи 1.3. При выводе имени переменная с именем ссылается на объект класса Имя. Тесты:
Города. Создайте сущность Город, которая будет представлять собой точку на карте со следующими характеристиками: • Название города • Набор путей к следующим городам, где путь представляет собой сочетание Города и стоимости поездки в него. Кроме того, Город может возвращать текстовое представление, в виде названия города и списка связанных с ним городов (в виде пары: “название:стоимость”). Используя разработанную сущность реализуйте схему, представленную на рисунке 2.
Создаем класс City. В нем объявляем переменные: название города, массив для хранения соседних городов, массив для хранения стоимости, счетчик – сколько путей уже добавлено. Создаем конструктор класса. В него принимаем название города и максимальное количество путей. Создаем массивы соседних городов и стоимости размером максимального количества путей. Создаем метод для добавления путей. Проверяем, что не превышен макс размер массива. Добавляем указанный город и стоимость. Увеличиваем счетчик на 1. Создаем метод для названия города. Тесты:
Создаем Города.
Измените сущность Город из задачи 3.3. Новые требования включают:
• Город можно создать указав только название
• Город можно создать указав название и набор связанных с ним городов и стоимостей
путей к ним
Создаем класс CreatingCity. Создаем конструктор только с названием города. Создаем конструктор с название города, соседними городами, ценой. Создаем новые массивы для соседей и стоимостью и копируем данные в новые массивы. Тесты:
Дроби.
Создайте сущность Дробь со следующими особенностями:
• Имеет числитель: целое число
• Имеет знаменатель: целое число
• Дробь может быть создана с указанием числителя и знаменателя
• Может вернуть строковое представление вида “числитель/знаменатель”
• Может выполнять операции сложения, вычитания, умножения и деления с другой Дробью
или целым числом. Результатом операции должна быть новая Дробь (таким образом,обе
исходные дроби не изменяются)
Затем необходимо выполнить следующие задачи:
- Создать несколько экземпляров дробей.
- Написать по одному примеру использования каждого метода.
- Вывести на экран примеры и результаты их выполнения в формате «1/3 * 2/3 = 2/9»
- Посчитать f1.sum(f2).div(f3).minus(5)
Создаем класс Fraction. Объявляем переменные числитель и знаменатель. В нем создаем конструктор в котором:
- Если дробь отрицательная, переносим знак “-” в числитель, а знаменатель делаем положительным.
- Пишем алгоритм Евклида для сокращения дроби. Создаем метод для преобразования в строку. Создаем метод для вычисления суммы. В нем числитель одной дроби умножаем на знаменатель другой, складываем их и записываем в знаменатель новой дроби. Умножаем знаменатели двух дробей и записываем в знаменатель новой дроби. Возвращаем новую дробь. Создаем метод для вычисления разности. В нем делаем тоже самое, что и в методе суммы, только со знаком минус. Возвращаем новую дробь. Создаем метод для вычисления произведения. В нем умножаем числители и записываем в числитель новой дроби. То же самое делаем со знаменателями. Возвращаем новую дробь. Создаем метод для вычисления частного. В нем умножаем числитель одной дроби со знаменателем второй дроби и записываем в числитель новой дроби. Умножаем знаменатель одной дроби с числителем второй дроби и записываем в знаменатель новой дроби. Возвращаем новую дробь. Создаем методы для вычисления дроби с целым числом. В них создаем дробь вида 5/1. Тесты: