Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.05.2010, 21:24
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию Объекты

Используя наследование, описать три указанных класса и выполнить указанные задания. Количество полей в каждом классе должно быть минимальным.
Лед (масса, удельная теплота плавления, удельная теплоемкость, начальная температура, количество теплоты);
Вода (масса, удельная теплоемкость, начальная температура, количество теплоты);
Пар (масса, удельная теплота парообразования, количество теплоты);
Даны масса и начальная температура вещества не выше 100 С. Определить какое количество теплоты требуется для полного испарения этого вещества.
Алгоритм хотя бы подскажите совсем путаюсь со всеми удельными теплотами.......(((
__________________
Asira
Ответить с цитированием
  #2  
Старый 05.05.2010, 22:07
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Asira
Алгоритм хотя бы подскажите совсем путаюсь со всеми удельными теплотами.......(((
Физику надо было учить в школе, ФИЗИКУ.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 06.05.2010, 00:00
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, формулу действительно надо бы смотреть в физике.
Тут другой вопрос. Как сдизайнить классы.
Если пойти по простому, то тебе нужны всего 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 во всех остальных.

ЗЫ. Что-то знакомая задача. Кто-то уже ее спрашивал, кажись.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:18.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025