![]() |
|
|
#1
|
|||
|
|||
|
Используя наследование, описать три указанных класса и выполнить указанные задания. Количество полей в каждом классе должно быть минимальным.
Лед (масса, удельная теплота плавления, удельная теплоемкость, начальная температура, количество теплоты); Вода (масса, удельная теплоемкость, начальная температура, количество теплоты); Пар (масса, удельная теплота парообразования, количество теплоты); Даны масса и начальная температура вещества не выше 100 С. Определить какое количество теплоты требуется для полного испарения этого вещества. Алгоритм хотя бы подскажите совсем путаюсь со всеми удельными теплотами.......((( |
|
#3
|
|||
|
|||
|
Ну, формулу действительно надо бы смотреть в физике.
Тут другой вопрос. Как сдизайнить классы. Если пойти по простому, то тебе нужны всего 2 класса (т.к. испарять пар как-то не имеет смысла). Хотя, только если возвращать тоже класс. Ну попробуем прикинуть: Код:
type
TBase = class
protected
function GetE(TT, Ro : Integer) : Integer;
public
m : Integer; // масса
T : Integer; // нач. темп.
function HeatIt : Integer; virtual; abstract;
end;
TFog = class(TBase)
function HeatIt : Integer; override;
end;
TWater = class(TFog)
function HeatIt : Integer; override;
end;
TIce = class(TWater)
function HeatIt : Integer; override;
end;
...
function TBase.GetE(TT, Ro : Integer) : Integer;
begin
// Здесь расчет кол-ва энергии, необходимой для перехода в сл.
// агрегатное состояние. Ro - теплоемкость, TT - температура перехода.
Result := ...;
end;
function TFog.HeatIt : Integer;
begin
// Пар испарить нельзя, он уже пар.
Result := 0;
end;
function TWater.HeatIt : Integer;
begin
Result := inherited + GetE(100,1000); // Ro = 1000 взято с потолка. глянь в справочнике
end;
function TIce.HeatIt : Integer;
begin
Result := inherited + GetE(0,10000); // Ro = 10000 взято с потолка. глянь в справочнике
end;Создаешь класс, соответствующий исходному веществу и вызываешь метод HeatIt. Т.е. тебе надо реализовать базовую функцию расчета кол-ва тепла и указать нужные значения Ro во всех остальных. ЗЫ. Что-то знакомая задача. Кто-то уже ее спрашивал, кажись. |