
Разработать и реализовать иерархию классов для описанных объектов предметной области, используя
механизмы наследования. Протестировать все методы каждого класса. Все поля классов должны быть скрытыми (private) или защищенными (protected). Методы не должны содержать операций ввода/вывода, за исключением процедуры, единственной задачей которой является вывод информации об объекте на экран. Объект – шоколадное изделие. Поля: название, масса, энергетическая ценность на 100 грамм продукта. Методы: процедура инициализации, процедура вывода информации об объекте на экран, функция определения энергетической ценности изделия. Объект – шоколадная плитка. Поля: название, масса, энергетическая ценность на 100 грамм, число долек в плитке. Методы: процедура инициализации, процедура вывода информации об объекте на экран, функция определения энергетической ценности плитки и функция определения энергетической ценности одной дольки

Ответы на вопрос

Ответ:
Вот примерно такой код на TypeScript:
```
class ShokoladnoeIzdelie {
protected title: string;
protected mass: number;
protected energy: number;
constructor(title, mass, energy) {
// Процедура инициализации
}
printData() {
// процедура вывода информации об объекте на экран
console.log(`Название: ${this.title}`)
console.log(`Масса: ${this.mass}`)
console.log(`Энергетическая ценность на 100 грамм продукта: ${this.energy}`)
}
getEnergy(): number {
// функция определения энергетической ценности изделия
return (this.mass / 100) * this.energy
}
}
class ShokoladnayaPlitka extends ShokoladnoeIzdelie {
private dolkiCount: number;
constructor(title, mass, energy, dolkiCount) {
// Процедура инициализации
super(title, mass, energy)
}
printData() {
// процедура вывода информации об объекте на экран
console.log(`Название: ${this.title}`)
console.log(`Масса: ${this.mass}`)
console.log(`Энергетическая ценность на 100 грамм продукта: ${this.energy}`)
console.log(`Число долек в плитке: ${this.dolkiCount}`)
}
getEnergyWhole(): number {
// функция определения энергетической ценности плитки
return super.getEnergy()
}
getEnergyDolka(): number {
// функция определения энергетической ценности одной дольки
return super.getEnergy() / this.dolkiCount
}
}
```
Объяснение:
Комментарии в коде



Для создания иерархии классов, описывающей шоколадные изделия, можно использовать следующий код на языке программирования Python:
pythonclass ChocolateProduct:
def __init__(self, name, weight, energy_per_100g):
self.__name = name
self.__weight = weight
self.__energy_per_100g = energy_per_100g
def get_name(self):
return self.__name
def get_weight(self):
return self.__weight
def get_energy_per_100g(self):
return self.__energy_per_100g
def display_info(self):
print(f"Название: {self.__name}")
print(f"Масса: {self.__weight} грамм")
print(f"Энергетическая ценность на 100 грамм: {self.__energy_per_100g} ккал")
def calculate_energy(self, quantity):
return (self.__energy_per_100g * self.__weight * quantity) / 100
class ChocolateBar(ChocolateProduct):
def __init__(self, name, weight, energy_per_100g, num_segments):
super().__init__(name, weight, energy_per_100g)
self.__num_segments = num_segments
def get_num_segments(self):
return self.__num_segments
def display_info(self):
super().display_info()
print(f"Число долек в плитке: {self.__num_segments}")
def calculate_total_energy(self):
return self.calculate_energy(1)
def calculate_energy_per_segment(self):
return self.calculate_energy(1) / self.__num_segments
# Пример использования классов:
if __name__ == "__main__":
choco_product = ChocolateProduct("Шоколадное изделие", 150, 550)
choco_product.display_info()
print(f"Энергетическая ценность: {choco_product.calculate_energy(2)} ккал")
print()
choco_bar = ChocolateBar("Шоколадная плитка", 100, 600, 10)
choco_bar.display_info()
print(f"Общая энергетическая ценность: {choco_bar.calculate_total_energy()} ккал")
print(f"Энергетическая ценность одной дольки: {choco_bar.calculate_energy_per_segment()} ккал")
Этот код создает два класса: ChocolateProduct
и ChocolateBar
. Класс ChocolateBar
наследует от класса ChocolateProduct
. Каждый класс имеет свои поля, методы и функции для работы с энергетической ценностью.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili