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

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

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

> Задача на ссылочные типы данных, Не выходит решить...
сообщение
Сообщение #1


Новичок
*

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

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


Спасибо огромное форуму. Смог решить 2 задачи по вставке и удалению элемента при работе с динамической памятью. Вот только не пойму как решить с помощью описанных у вас процедур 2 задачи:

1)
type tip_elem=integer;
ukaz=^dinam;
dinam=record
ed:tip_elem;
next:ukaz;
end;
.
Удалить из списка Ukaz за каждым вхождением элемента Е один элемент отличный от Е (если он есть).

2) Певая часть условия совпадает... Удалить из списка Ukaz все нули
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

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

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


Цитата
А теперь у меня к тебе просьба: прокомментируй мою программу, пожалуйста, чтобы было ясно, понял ты ее или нет...

Ну если комментировать пошагово:
Делаем цикл по элементам списка.
Сравниваем текущую фактическую часть с вводимым значением с клавы.
Ну понятно, если равно, то надо найти число отлично от Е, то тогда
t присваиваем знач ссылки r.(t видимо тоже ukaz) и меняем ссылку r на ссылку t.
Освобождаем память.
Ну и для продолжения цикла стандартно r := r^.next; ... Еще лучше я разберусь, когда сейчас попробую осуществить это все в проге.

Заполнял я список так...
 begin
clrscr;
h:=nil;
writeln('vvedite kol-vo zapisey');
readln(n);
for i:=1 to n do begin
write('chislo ');
readln(e);
addel(h,e) end;
...
...
...
procedure addel(var h:ukazat; e:tip_elem);
var p,pr:ukazat;
begin
new(p);
p^.ed:=e;
p^.next:=nil;
if h=nil then h:=p
else begin
pr:=h;
while pr^.next<>nil do
pr:=pr^.next;
pr^.next:=p;
end;
end;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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