Объектно-ориентированное программирование

Объекты Pascal, классы Object Pascal, интерфейсы, наследование, инкапсуляция и т.д
Ответить
Alisa22
Сообщения: 1
Зарегистрирован: 14 июн 2010, 13:32

14 июн 2010, 15:42

народ помогите дописать задачку.Нужно добавить сюда слияния двух массивов с исключением повторяющихся элементов
Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным строкам массива по индексам, контроль выхода за пределы индексов, выполнения операций поэлементного сцепления двух массивов с образованием нового массива, слияния двух массивов с исключением повторяющихся элементов, печать (вывод на экран) элементов массива и всего массива.

Вот текст:
uses
crt;

const n=20;
type
TMass=object
private
Values:Array[1..n] of string;
public
{Предусмотреть возможность обращения к отдельным строкам массива по индексам}
Procedure SetValue(Index:integer;AValue:String);
Function GetValue(Index:Integer):string;
{выполнения операций поэлементного сцепления двух массивов с образованием нового массива}
procedure ConcatMass(One,Duo:TMass);
Constructor Create;
{печать (вывод на экран) элементов массива и всего массива. }
procedure Print(index:integer);
procedure PrintAll;
end;
{ TMass }

Constructor TMass.Create;
begin

end;

procedure TMass.PrintAll;
var i:integer;
begin
for i:=1 to n do
if Values<>'' then write(values,' ');
writeln;
end;

procedure TMass.Print(index:integer);
var i:integer;
begin
if (index>0)and(index<=n) then Write(Values[index]) else begin
Write('Выход за диапазон');
end;
end;

procedure TMass.ConcatMass(One, Duo: TMass);
var i:integer;
begin
for i:=1 to n do
SetValue(i,one.GetValue(i)+duo.GetValue(i));
end;

function TMass.GetValue(Index: Integer): string;
begin
{контроль выхода за пределы индексов}
if (index>0)and(index<=n) then GetValue:=Values[index] else begin
GetValue:='';Write('Выход за диапазон');
end;
end;

procedure TMass.SetValue(Index: integer; AValue: String);
begin
if (index>0)and(index<=n) then Values[index]:=AValue else begin
Write('Выход за диапазон');
end;
end;

var q,w,e:TMass;
begin

q.SetValue(1,'Hello');
w.SetValue(2,' my');
q.SetValue(3,'world');
e.ConcatMass(q,w);
q.PrintAll;
e.PrintAll;
w.PrintAll;
readln;
end.
Ответить