IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Разряженная матрица. Мультисписки., Matrix Forever!
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: dron

Репутация: -  0  +


Вообщем тема...

Разряженая матрица в виде мультисписков.
Необходимо найти максимальный элемент и удалить строку и столбец его содержащие.
==================
В принципе проблем нет, НО - мульти списки...
В реале это просто:

MAX:=A[1,1];DEL_X:=1; DEL_Y:=1;
FOR I:=1 TO RAZ_Y DO BEGIN
FOR J:=1 TO RAZ_X DO
IF MAX<A[J,I] THEN
BEGIN
MAX:=A[J,I];
DEL_X:=J; DEL_Y:=I;
END;

RAZ_Y:=RAZ_Y-1;
FOR I:=DEL_Y TO RAZ_Y DO
FOR J:=1 TO RAZ_X DO
A[J,I]:=A[J,I+1];
RAZ_X:=RAZ_X-1;
FOR I:=1 TO RAZ_Y DO
FOR J:=DEL_X TO RAZ_X DO
A[J,I]:=A[J+1,I];

Но с указателями через динамическую память да еще списки...
Подскажите?

Сообщение отредактировано: volvo -


--------------------
Господи! Сколько же еще не сделано...
А сколько же еще предстоит не сделать...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Ну, насчет прочитать матрицу в список списков, я набросал кое-что... Особо не тестировал, только сама идея. Но компиляцию проходит... Попробуй с использованием этого реализовать свое задание...

type
plist = ^tlist;
tlist = { это - список по строке }
record
col_num, value: integer;
next: plist;
end;

pvector = ^tvector;
tvector = { это - список самих строк }
record
row_num: integer;
next: pvector;
end;

var
f: text;
pl, pl_first, pl_last: plist;
pv, pv_first, pv_last: pvector;

i, j, X: integer;

begin
assign(f, '__razr.txt');
reset(f);

pv_first := nil; pv_last := nil;

i := 1;
while not seekeof(f) do begin

j := 1; pl_first := nil; pl_last := nil;

while not seekeoln(f) do begin

read(f, X);

if X <> 0 then begin
{
append new item to the end of list
}
new(pl);
pl^.value := x;
pl^.col_num := j;
pl^.next := nil;

if pl_first = nil then pl_first := pl
else pl_last^.next := pl;
pl_last := pl;

inc(j);
end;

end;
readln(f);

if pl_first <> nil then begin
new(pv);
pv^.row_num := i;
pv^.next := nil;

if pv_first = nil then pv_first := pv
else pv_last^.next := pv;
pv_last := pv;
end;

inc(i);
end;

close(f);

{ Теперь в pv_first хранится указатель на начало списка списков }
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: dron

Репутация: -  0  +


good.gif
Код

texmode(3);
clrscr;
gotoxy(15,10);
write('БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!');


--------------------
Господи! Сколько же еще не сделано...
А сколько же еще предстоит не сделать...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





- Текстовая версия 3.05.2024 9:41
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name