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

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

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

> Разряженная матрица. Мультисписки., Matrix Forever!
kase666
сообщение 22.12.2005 13:15
Сообщение #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 - 22.12.2005 13:21


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


Гость






Повторяю вопрос: Мультисписок умеешь создавать, или нет?
(то, что работать с ним не умеешь - это понятно, но может уже есть хоть какая-то готовая реализация, в которую можно хотя-бы загрузить данные.)
 К началу страницы 
+ Ответить 
kase666
сообщение 22.12.2005 15:28
Сообщение #3





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

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


список создавать могу, простой...
но не для двухмерных матриц, парюсь с указателями...
вот процедурка для линейного
толкаюсь от нее, но как X, Y организовать не знаю
Код

        { загрузить список с файла }
           procedure Load(var f:FilType; start: AddrPointer):
                        AddrPointer;
           var
             temp, temp2: AddrPointer
             first: boolean;
           begin
             Writeln('load file');
             Reset(f);
             while start <> nil do begin  { освобождение памяти
                                           при необходимости }
               temp := start^.next
               dispose(start);
               start := temp;
             end;

             start := nil; last := nil;
             if not eof(f) then begin
               New(temp);
               Read(i, temp^);
               temp^.next := nil;  temp^.prior:= nil;
               load := temp;  { указатель на начало списка }
             end;

               while not eof(f) do begin
                 New(temp2);
                 Read(i, temp2^);
                 temp^.next := temp2; { построить список }
                 temp2^.next := nil;
                 temp^.prior := temp2;
                 temp := temp2;
               end;
               last := temp2;
             end; { конец загрузки }


тэги!

Сообщение отредактировано: GoodWind - 22.12.2005 17:43


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

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


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

 



- Текстовая версия 20.07.2025 10:56
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"