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

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

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

> вставить элемент в I-ю позицию списка, не получается :(
Wait
сообщение 17.05.2005 12:42
Сообщение #1


Новичок
*

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

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


Здравствуйте, у меня тут прога со списком с ООП...
Не получается вставить в процедуре obj.insert со второго по шестой элемент...
Надо ввести номер позиции для ввода и что вводить...
Получилось ввести только первый элемент...
Проверьте, пожалуйста, а то уже плохо мне от этой проги... :molitva:
Код

program ex1;
uses crt;
type p=^el;
el=record
data:byte;
next:p;
end;
obj=object
root,last,l:p;
id:string[5];
constructor init;
procedure build;
procedure output;
procedure insert;
end;
constructor obj.init;
begin
root:=nil;
last:=nil;
new(l);
end;
procedure obj.build;
var eli:p;i:byte;
begin
randomize;
write('input list id: ');
readln(id);
writeln('list ',id,':');
new(root);
root^.data:=random(10);
eli:=root;
for i:=2 to 5 do begin
new(eli^.next);
eli^.next^.data:=random(10);
eli:=eli^.next
end;
eli^.next:=nil;
end;
procedure obj.output;
var eli:p;
begin
eli:=root;
while eli<>nil do begin
writeln(eli^.data);
eli:=eli^.next;
end;
end;
procedure obj.insert;
var eli,mem:p;d,i,k:byte;
begin
write('input element to insert: ');
readln(d);
write('input the position for inserting of ',d,': ');
readln(i);
if (i=1) then begin
new(eli);
eli^.data:=d;
eli^.next:=root;
if (eli^.next=nil) then eli^.next^.next:=nil;
root:=eli;
end else if (i=2) then begin
mem:=eli^.next;
new(eli^.next);
eli:=eli^.next;
eli^.data:=d;
eli^.next:=mem
end else begin
for i:=3 to 5 do eli:=eli^.next;
mem:=eli^.next;
new(eli^.next);
eli:=eli^.next;
eli^.data:=d;
eli^.next:=mem
end;
end;
var list:obj;
begin
list.build;
list.output;
list.insert;
writeln('---------------');
list.output;
readln
end.


Прикрепленные файлы
Прикрепленный файл  12_10.PAS ( 1.33 килобайт ) Кол-во скачиваний: 132
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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