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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 00:30   #1
vitass
Новичок
Джуниор
 
Регистрация: 12.04.2011
Сообщений: 1
По умолчанию ООП.Работа с матрицами.

Уважаемые форумчане,так уж получилось что в моем универе приходится изучать паскаль...Сам я совсем не склонен к программированию и даётся мне очень тяжело.Хотел бы попросить у вас помощи...
Вот что мне надо написать: Описать тип-объект MATRIX (матрица произвольной размерности M*N) и его методы: ввод матрицы; вывод матрицы; дублирование столбцов матрицы, являющихся перестановкой чисел от 1 до . M. Описать тип и методы его потомка MATR ( методы : дублирование строк матрицы, где все элементы содержат одну и ту же заданную цифру; дублирование столбцов матрицы, где есть хотя бы один элемент, являющийся простым числом (замена метода)).

Сам "костяк" программы делается довольно легко по примеру.Но как написать методы я не могу...

вот то что написал:

Program Labaodin;
Uses Crt;
Type UM=^TM;
TM=array[1..20, 1..20] of integer;
MATRIX=OBJECT
M,N:integer;
A:UM;
CONSTRUCTOR INIT;
PROCEDURE DUBL; VIRTUAL;
PROCEDURE VIVOD;
DESTRUCTOR DONE; VIRTUAL;
END;
MATR=OBJECT(MATRIX)
CONSTRUCTOR INIT1;
PROCEDURE DUBL; VIRTUAL;
PROCEDURE DUBL1;
PROCEDURE VIVOD1;
DESTRUCTOR DONE; VIRTUAL;
END;
CONSTRUCTOR MATRIX.INIT;
Var i,g: integer;
Begin
Writeln ('Vvedite chislo strok massiva');
Readln (m);
Writeln ('Vvedite chislo stolbcov massiva');
Readln (n);
GETMEM (A, 2*M*N);
For i:=1 to m do
For g:=1 to n do
Begin
Writeln ('Vvedite elemeny massiva ', i, '-oy stroki, ', g, '-ogo stolbca');
Readln (A^[i,g]);
End;
Writeln;
End;
PROCEDURE MATRIX.DUBL;
VAR I,J,L:INTEGER;
F:BOOLEAN;
BEGIN
FOR J:= N DOWNTO 1 DO
BEGIN
F:=TRUE;
IF A^[N,J]=N THEN
FOR I:=M DOWNTO 1 DO
IF (A^[I,J]-A^[I-1,J])<>1 THEN
F:=FALSE;
IF F THEN
BEGIN
FOR L:=M DOWNTO I DO
FOR I:= 1 TO M DO
A^[L+1,J]:=A^[L,J];
M:=M+1;
END;
FOR I:=1 TO M DO
FOR J:=1 TO N DO
WRITELN(A^[I,J]);
END; END;
PROCEDURE MATRIX.VIVOD;
Var i,g: integer;
Begin
Writeln ('Massiv');
For i:=1 to m do
Begin
For g:=1 to n do
Write (A^[i,g], ' ');
Writeln;
End;
Writeln;
End;
DESTRUCTOR MATRIX.DONE;
Begin
FREEMEM (A, 2*M*N);
End;
CONSTRUCTOR MATR.INIT1;
Var i,g: integer;
Begin
Writeln ('Vvedite chislo strok massiva');
Readln (m);
Writeln ('Vvedite chislo stolbcov massiva');
Readln (n);
GETMEM (A, 2*M*N);
For i:=1 to m do
For g:=1 to n do
Begin
Writeln ('Vvedite elemeny massiva ', i, '-oy stroki, ', g, '-ogo stolbca');
Readln (A^[i,g]);
End;
Writeln;
End;
PROCEDURE MATR.DUBL;
VAR I,J,Z,L:INTEGER; F:BOOLEAN;
BEGIN
FOR I:=M DOWNTO 1 DO
BEGIN
F:=TRUE;
FOR J:=N DOWNTO 1 DO
IF A^[I,J]<>Z THEN F:=FALSE;
IF F THEN
BEGIN
FOR L:=M DOWNTO 1 DO
FOR J:=1 TO N DO
A^[L+1,J]:=A^[L,J];
M:=M+1;
END;
END;
FOR I:=1 TO M DO
FOR J:=1 TO N DO
WRITELN (A^[I,J]);
END;

PROCEDURE MATR.DUBL1;
VAR I, J, D,L: INTEGER; F:BOOLEAN;
BEGIN
FOR J:=N DOWNTO 1 DO
BEGIN
F:=FALSE;
FOR I:=M DOWNTO 1 DO
FOR D:=1 TO A^[I,J] DIV 2 DO
IF A^[I,J] MOD D =0 THEN F:=TRUE;
IF F THEN
BEGIN
FOR L:=M DOWNTO 1 DO
FOR J:=1 TO N DO
A^[L+1,J]:=A^[L,J];
M:=M+1
END;
END;
FOR I:=1 TO M DO
FOR J:=1 TO N DO
WRITELN (A^[I,J]);
END;
PROCEDURE MATR.VIVOD1;
Var i,g: integer;
Begin
Writeln ('Massiv');
For i:=1 to m do
Begin
For g:=1 to n do
Write (A^[i,g], ' ');
Writeln;
End;
Writeln;
End;
DESTRUCTOR MATR.DONE;
Begin
FREEMEM (A, 2*M*N);
End;
VAR R:MATRIX;
R1:MATR;
BEGIN
Clrscr;
R.INIT;
R.VIVOD;
R.DUBL;
R.VIVOD;
R.DONE;
R1.INIT1;
R1.VIVOD1;
R1.DUBL;
R1.VIVOD1;
R1.DONE;
R1.INIT1;
R1.VIVOD1;
R1.DUBL1;
R1.VIVOD1;
R1.DONE;
Writeln;
Readkey;
END.


вообщем ниче не работает...помоги те пожалуйста разобраться...буду невероятно благодарен.
vitass вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с матрицами Irina21 Общие вопросы C/C++ 32 29.03.2011 14:44
Работа с матрицами на с++ mr_fomin Помощь студентам 0 12.12.2010 20:42
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
Работа с матрицами AlexVI Общие вопросы C/C++ 2 22.07.2010 09:46
Работа с матрицами A_Orlov Паскаль, Turbo Pascal, PascalABC.NET 0 14.06.2010 14:20