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

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

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

> вставить элемент в I-ю позицию списка, не получается :(
сообщение
Сообщение #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 килобайт ) Кол-во скачиваний: 236
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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