|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.04.2011, 00:30 | #1 |
Новичок
Джуниор
Регистрация: 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. вообщем ниче не работает...помоги те пожалуйста разобраться...буду невероятно благодарен. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с матрицами | 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 |