motofan logo
> 

Программисты на помощь., Помогите студенту решить простую задачу!

Stalker 1988
сообщение 19.11.2010, 16:29


MotoArhangel
******

Группа: Разработчики
Сообщений: 703
Регистрация: 29.5.2006
Из: Алтайский край
Пользователь №: 85 312
Модель телефона: DEFY \ Atrix 4G
Прошивка: CM10 & MIUI


Настроение:
Ну вот и вернулся =)



Рейтинг: 465.5



Доброе время суток.
Прошу помощи в написании программы. Это как бы домашнее задание.

Нужно написать программу которая обрабатывает данные теста по математическим формулам + построение графика.
Вид теста: excel страница с границами 40столбцов на не известное количество строк, заполненная 1 и 0.
Как выяснилось позже, еще и с возможностью работы без наличия на компьютере Microsoft office.

Я в шоке!!! C чего начать?
Как понимаю нужно начинать с Collection?

Вот немного начал:
Spoiler:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;

type

{ TForm1 }
{ TMyCollectionItem }

TMyCollectionItem = class(TCollectionItem)
private
FMark: byte;
FObj: TObject;
procedure SetMark(const AValue: byte);
procedure SetObj(const AValue: TObject);
public
constructor Create(ACollection: TCollection); override;
destructor Destroy; override;
published
property Mark: byte read FMark write SetMark;
property Obj: TObject read FObj write SetObj;
end;

TMyCollection = class(TCollection)
private
FItemSum: integer;
function GetItem(Index: Integer): TMyCollectionItem;
function GetItemSum: integer;
procedure SetItem(Index: Integer; Value: TMyCollectionItem);
public
constructor Create(AItemClass: TCollectionItemClass);
function Add: TMyCollectionItem;
property Items[Index: Integer]: TMyCollectionItem read GetItem write SetItem;
property ItemSum: integer read FItemSum;
end;

TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ private declarations }
FCollection: TMyCollection;
public
{ public declarations }
end;



var
Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
FCollection := TMyCollection.Create(TMyCollectionItem);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
FCollection.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
FCollection.Add;
ShowMessage(IntToStr(FCollection.Count));
end;

{ TMyCollectionItem }

procedure TMyCollectionItem.SetMark(const AValue: byte);
var
P: TMyCollection;
begin
if AValue=FMark then Exit;
P := Self.Collection as TMyCollection;
P.ItemSum := P.ItemSum - FMark;
FMark := AValue;
P.ItemSum := P.ItemSum + FMark;

end;

procedure TMyCollectionItem.SetObj(const AValue: TObject);
begin
if FObj=AValue then exit;
if FObj<>nil then
FObj.Free;
FObj:=AValue;
end;

constructor TMyCollectionItem.Create(ACollection: TCollection);
begin
inherited Create(ACollection);
FObj := nil;
end;

destructor TMyCollectionItem.Destroy;
begin
if FObj<>nil then
FreeAndNil(FObj);
inherited Destroy;
end;

{ TMyCollection }

function TMyCollection.GetItem(Index: Integer): TMyCollectionItem;
begin
Result := (inherited GetItem(Index)) as TMyCollectionItem;
end;

function TMyCollection.GetItemSum: integer;
begin
Result := 0;
for I:=0 to Count-1 do
Result := Result + Items[I].Mark;
end;

procedure TMyCollection.SetItem(Index: Integer; Value: TMyCollectionItem);
begin
inherited SetItem(Index, Value);
end;

constructor TMyCollection.Create(AItemClass: TCollectionItemClass);
begin
inherited Create(AItemClass);
FItemSum := 0;
end;


function TMyCollection.Add: TMyCollectionItem;
begin
Result := (inherited Add) as TMyCollectionItem;
end;

initialization
{$I unit1.lrs}

end.
[close]


Сообщение отредактировал Stalker 1988 - 20.11.2010, 15:02
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить

Сообщений в этой теме
Stalker 1988   Программисты на помощь.   19.11.2010, 16:29
FEAR4ik   Название темы не соответствует содержимому. Слово ...   19.11.2010, 21:53
Stalker 1988   По словам нашего преподователя, она до боли проста...   20.11.2010, 7:59
IlluminatI   Stalker 1988, а какой это курс ?( хотелось бы пом...   20.11.2010, 10:41
Stalker 1988   1 :) А пока вот, для тех кто не знает как писать п...   20.11.2010, 15:00
baat   Stalker 1988, хм... ну задача реально не сложная, ...   20.11.2010, 17:35
Stalker 1988   Не Delphi а Lazarus, один фиг одно и то же. Подска...   20.11.2010, 17:44
Chepurnoff   А что обязательно Excel-таблица, просто таблица не...   20.11.2010, 21:09
Stalker 1988   Можно и текстовик с разделителями.   21.11.2010, 7:35
Chepurnoff   Ну тогда ничего сложного я там тоже не вижу, тольк...   21.11.2010, 12:58
Stalker 1988   Дак вот не делфи, а лазарус :) На си выполнение н...   22.11.2010, 10:11
Stalker 1988   Спасибо все. Chepurnoff, говоришь задача реально н...   23.11.2010, 7:08
Chepurnoff   Да, не сложно, на делфях смотрю многа букав получа...   27.11.2010, 13:24
baat   Chepurnoff, ну дык... если сравнить например... b...   27.11.2010, 22:49

Программисты на помощь., Помогите студенту решить простую задачу! · Обо всём · Forum
 

Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.7.2025, 22:02

Форум живёт: