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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.02.2010, 00:39
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию ООП(классы) Подкиньте идеи...

Помогите разобраться в такой задачке
Описать указанный класс. Государство (вычислить плотность населения, отношение числа жителей столицы к общей численности населения);Создать и инициализировать экземпляр этого класса. Вызвать каждый метод. Мне кажется за поля можно взять -численность населения, площадь,численность столицы. а методы - вычисление плотности и отношения.
Не судите строго эт моя первая задачка по этой теме.
Код:
Type TGosudarstvo=class;
x,y,z:real; procedure Init; end;

function Pl(a:Tgosudarstvo):real;
begin Pl:=a.x/y; end;
function Otn(b:TGosudarstvo):real; begin
Otn:=b.z/x; end;

var c,d,e:TGosudarstvo;
begin c:=TGosudarstvo.Greate; d:=TGosudarstvo.Greate;e:=TGosudarstvo.Greate; c.Init; d.Init; 
writeln('plotn=',c.Pl(d)); writeln('Otn=",c.Otn(d));
readln; c.Free; d.Free; end;
__________________
Asira
Ответить с цитированием
  #2  
Старый 18.02.2010, 01:34
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Давненько тебя здесь не видел)

держи код, а лучше сначала немного почитать про классы, прежде чем, что-ли бо писать с их использованием)

Код:
{$APPTYPE CONSOLE}

uses
  SysUtils;

type

  TGosudarstvo = class
  private
    FName:String;
    FPopulation,
    FAria,
    FCapitalPopulation:Real;
  public
    Constructor Create(const aName:String; const aPopulation, aAria, aCapitalPopulation:Real);
    Destructor Destroy; override;
    function GetPopulationDensity:Real;
    function GetPopulationRelation:Real;
    property GetName:String read FName;
    property Population:Real read FPopulation write FCapitalPopulation;
    property Aria:Real read FAria write FAria;
    property CapitalPopulation:Real read FCapitalPopulation write FCapitalPopulation;
  end;

{ TGosudarstvo }

constructor TGosudarstvo.Create(const aName: String; const aPopulation,
  aAria, aCapitalPopulation: Real);
begin
  inherited Create;
  FName:=aName;
  FPopulation:=aPopulation;
  FAria:=aAria;
  FCapitalPopulation:=aCapitalPopulation;
end;

destructor TGosudarstvo.Destroy;
begin
  inherited Destroy;
end;

function TGosudarstvo.GetPopulationDensity: Real;
begin
  Result:=FAria / FPopulation;
end;

function TGosudarstvo.GetPopulationRelation: Real;
begin
  Result:=FPopulation / FCapitalPopulation;
end;


var
  G1, G2:TGosudarstvo;

begin
  G1:=TGosudarstvo.Create('Gos1',1000,200,400);
  G2:=TGosudarstvo.Create('Gos2',4000,500,1500);

  Writeln('Name: ',G1.GetName);
  Writeln('plotn: ',FloatToStr(G1.GetPopulationDensity),' otn: ',FloatToStr(G1.GetPopulationRelation));

  Writeln('Name: ',G2.GetName);
  Writeln('plotn: ',FloatToStr(G2.GetPopulationDensity),' otn: ',FloatToStr(G2.GetPopulationRelation));

  G1.Destroy;
  G2.Destroy;
  Readln;
end.
Ответить с цитированием
  #3  
Старый 18.02.2010, 02:11
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Пара комментариев.
1. Конструктор лучше сделать виртуальным.
2. Свойства, содержащие значения, если сами цифры ты задаешь в конструкторе, лучше сделать только для чтения.
3. Ну и все-таки пусть название будет Name, а не GetName.
Ответить с цитированием
  #4  
Старый 18.02.2010, 02:14
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Я хотел как можно проще, тут же, знаний с ходу видно на нуле, а до таких подробностей она еще не скоро доползет) пусть для начала хоть это осмыслит..
Ответить с цитированием
  #5  
Старый 18.02.2010, 17:11
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию

Есть какая нибудь литература по этой темке???
__________________
Asira

Последний раз редактировалось Asira, 17.01.2011 в 22:25.
Ответить с цитированием
  #6  
Старый 18.02.2010, 17:21
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, если хочется чистой теории, то поищи книжку Гради Буча. Кажется, так и называется - ООП. Или поищи книжку Александровского по Delphi 4 - там очень хорошо объясняется модель ООП, используемая в Delphi. Вообще, в старых книгах, по ранним версиям Дельфей, вся эта теория объяснялась гораздо лучше, чем в современных, по последним версиям.
Ответить с цитированием
  #7  
Старый 18.02.2010, 17:36
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию

Большое спасибо!!!!!!!!
__________________
Asira
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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