Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2013, 22:18   #1
russianemperor
 
Регистрация: 28.08.2013
Сообщений: 3
По умолчанию Студент [Delphi]

Помогите решить задачу:
Объявить в Delphi класс, позволяющий объекту хранить информацию о количестве скважин куста на нефтяном промысле. Предусмотреть в созданном классе наличие метода, который по введённому суточному дебиту каждой скважины определяет номер самой малопродуктивной скважины. Применить класс в проекте, реально определяющем такой номер. Для ввода данных в проекте обязательно использовать
компонент StringGrid. Перед окончанием работы проекта освободить динамическую память, выделенную под объект.
russianemperor вне форума Ответить с цитированием
Старый 28.08.2013, 22:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses     contnrs,
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;

type
  TOil=class
    public
      Debit:integer;
  end;

  { TTramp }

  TTramp=class
    private
      Oils:TObjectList;
    public
      Function Fail:Integer;
      Function Add:TOil;
      Constructor Create;
      destructor Destroy;
  end;

  { TForm1 }

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
 //Создаем нефтекомпанию
  with TTramp.Create do begin
    // Добавляем вышки и дебиты
    with Add do debit:=1;
    with Add do debit:=2;
    with Add do debit:=3;
    // Ищем самую плохую
    Caption:=IntToStr(Fail);
    Destroy;
  end;
end;

{$R *.lfm}

{ TTramp }
// Функа поиска минимального дебета
function TTramp.Fail: Integer;
var i:integer;
begin
 Result:=0;
 for i:=0 to Oils.Count-1 do begin
   if TOil(Oils[Result]).Debit>TOil(Oils[i]).Debit then Result:=i;
 end;
end;

// Функа добавления вышки, и возвращения ее для операций
function TTramp.Add: TOil;
begin
 Result:=TOil(Oils[Oils.Add(TOil.Create)]);
end;

constructor TTramp.Create;
begin
 Oils:=TObjectList.create;
end;

destructor TTramp.Destroy;
begin
 oils.Clear;
 oils.Destroy;
end;

end.
Подходит идея?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.08.2013, 13:54   #3
russianemperor
 
Регистрация: 28.08.2013
Сообщений: 3
По умолчанию Проект

Готовый проект можно скинуть?!
russianemperor вне форума Ответить с цитированием
Старый 30.08.2013, 14:02   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Нет, нельзя. Самому его создать?
Человек_Борща вне форума Ответить с цитированием
Старый 30.08.2013, 15:07   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Готовый проект можно скинуть?!
У меня нет Делфи. Я с потолка писал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.08.2013, 08:35   #6
russianemperor
 
Регистрация: 28.08.2013
Сообщений: 3
По умолчанию

Мне бы такой потолок.)
russianemperor вне форума Ответить с цитированием
Старый 31.08.2013, 10:06   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
Готовый проект можно скинуть?!
Цитата:
У меня нет Делфи. Я с потолка писал.
Это не код всего проекта, а лишь идея как его составить.
Если нужно, тот же код, поправленный под Делфи 7.
Код:
unit Unit1;
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Contnrs;
 type
  TOil=class
    public
      Debit:integer;
  end;

  { TTramp }

  TTramp=class
    private
      Oils:TObjectList;
    public
      Function Fail:Integer;
      Function Add:TOil;
      Constructor Create;
      destructor mydestroy;
  end;
  { TForm1 }
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{ TTramp }
// Функа поиска минимального дебета
function TTramp.Fail: Integer;
var i:integer;
begin
 Result:=0;
 for i:=0 to Oils.Count-1 do begin
   if TOil(Oils[Result]).Debit>TOil(Oils[i]).Debit then Result:=i;
 end;
end;

// Функа добавления вышки, и возвращения ее для операций
function TTramp.Add: TOil;
begin
 Result:=TOil(Oils[Oils.Add(TOil.Create)]);
end;

constructor TTramp.Create;
begin
 Oils:=TObjectList.create;
end;

destructor TTramp.mydestroy;
begin
 oils.Clear;
 oils.Destroy;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 //Создаем нефтекомпанию
  with TTramp.Create do begin
    // Добавляем вышки и дебиты
    with Add do debit:=1;
    with Add do debit:=2;
    with Add do debit:=3;
    // Ищем самую плохую
    Caption:=IntToStr(Fail);
    mydestroy;
  end;
end;

end.

Последний раз редактировалось puporev; 31.08.2013 в 10:08.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вот я студент ANsy Свободное общение 13 01.02.2013 19:38
студент не справляется:) aj.matter Помощь студентам 1 05.11.2012 09:36
студент -> исполнитель -> преподаватель Kukurudza Свободное общение 7 06.10.2011 21:44
класс Студент Alexander1205 Общие вопросы C/C++ 3 07.07.2011 23:06
файл Студент-Отличник Mapина Помощь студентам 3 08.07.2007 23:02