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

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

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

> динамические структуры(списки), Исключить элемент перед i-ым элементом
Renbo
сообщение 1.05.2007 18:27
Сообщение #1


Пионер
**

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

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


Необходимо исключить элемент, стоящий перед i-тым, тоесть как я понял делаем запрос на номер элемента, а потом удаляем перед ним стоящий, так?

Вот я сделал процедуру:


procedure del_i_1_elem(First:EL);
VAR
T,Q,R:EL;
K,N:integer;
i:integer;
Begin
N:=Count_el(First);
writeln('Введите i:');
readln(i);
IF N=1 then {esli y nas v spiske 1 element}
begin
writeln('У вас только 1 элемент, удаление предыдущего не возможно');
readkey;
exit;
end;
IF (i < 1) or (i > N) then
begin
writeln('i задано некорректно');
readkey;
exit;
end;
IF i=2 then {удаление первого элемента списка}
begin
p:=First;
First:=First^.Next;
dispose(p);
end
ELSE {удаление из середины}
begin
T:=First;
Q:=Nil;
K:=1;
While K < i-1 do
begin
inc(K);
Q:=T;
T:=T^.Next;
end;
R:=T^.Next;
Q^.Next:=R;
Dispose(T);
end;
End;



Вроде бы пашет нормально, только вот если i введём как 2, то он место удаления элемента последнее инф.поле очистит, первое заменит на крякозябры из цифр. В чём проблема? wacko.gif

Это исходная допустим табличка:
----------------------------------------------------------
№ * Табельный номер * Фамилия
------------------------------------------------------------
1 * 111 * AAA
2 * 222 * BBB
3 * 333 * CCC
4 * 555 * GGG


А вот что получаем на выходе:

№ * Табельный номер * Фамилия
------------------------------------------------------------
1 * 23616 *
2 * 222 * BBB
3 * 333 * CCC
4 * 555 * GGG

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

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


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

 



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