Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2015, 15:35   #1
krasy
Пользователь
 
Регистрация: 14.04.2015
Сообщений: 40
Подмигивание Списки

Ребят, помогите, пожалуйста, разобраться с программой. Какая строка за что отвечает. буду очень благодарна
Код:
type Ptr=^count;
count=Record
   Key:integer;
   Next:ptr;
end;
var p,q,first,l:ptr;
n,m,k,i:integer;
begin
writeln('Размер списка');
readln(m);
writeln('После какого элемента вставлять новый элемент?');
readln(n);
writeln('Введите сначала новый элемент, потом ваш список');
read(k);
new(p);
first:=p;
p^.next:=nil;
read(p^.key);
q:=p;
for i:=2 to m do
begin
     new(p);
     read(p^.key);
     p^.next:=nil;
     q^.next:=p;
     q:=p;
end;
p:=first;
i:=1;
while ((i < n - 1)and(p <> nil))do
begin
    p:=p^.next;
    inc(i);
end;
new(l);
q:= p^.next;
p^.next:=l;
l^.next:=q;
l^.key:=k;
p:=first;
while (p<>nil) do
begin
    write(p^.key,' ');
    p:=p^.next;
end;
end.
krasy вне форума Ответить с цитированием
Старый 11.05.2015, 15:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
type Ptr=^count; Описываем тип - указатель на запись
count=Record Описываем саму запись (тип)
   Key:integer; В которой есть поле целого
   Next:ptr; И указатель на следующий элемент списка
end;
var p,q,first,l:ptr; Описываем переменные для списка
n,m,k,i:integer; И какие-то целые для циклов, ввода данных и пр.
begin
writeln('Размер списка'); Просим ввести размер списка
readln(m); И принимаем ввод
writeln('После какого элемента вставлять новый элемент?'); еще чет просим
readln(n); И принимаем ввод - целое в виде судя по всему номера элемента
writeln('Введите сначала новый элемент, потом ваш список'); Еще просим (многовато просим)
read(k); И чет вводим.
new(p); Размещаем в памяти первый элемент списка
first:=p; Конкретнее говорим программе запомнить его как самый первый в отдельной переменной
p^.next:=nil; И просим программу учесть, что у этого элемента еще пока нет соседей.
read(p^.key); А так же считываем ему значение
q:=p; Не знаю зачем это, видимо еще какая-то переменка запоминает текущий элемент списка
for i:=2 to m do Потом в цикле до введенного размера списка
begin
     new(p); Размещаем очередной элемент
     read(p^.key); Вводим в него значение
     p^.next:=nil; Указываем. что справа у него еще нет соседа (т.е. он последний на данном этапе)
     q^.next:=p; И в предидущий элемент сцепляем с вновь созданным
     q:=p;
end;
p:=first; Теперь начинаем проход с начала цикла
i:=1;
while ((i < n - 1)and(p <> nil))do Пока условие какое-то выполняется
begin
    p:=p^.next; Перемещаемся по списку
    inc(i);
end;
new(l); Создаем новый элемент
q:= p^.next; И видимо вставляем его в середину списка, куда цикл заведет
p^.next:=l; А заведет он либо в конец, либо до элемента, который ранее определен введенным
l^.next:=q; Номером, перед которым нужно вставлять
l^.key:=k;
p:=first; Опять начинаем с начала списка
while (p<>nil) do Проходим до его конца
begin
    write(p^.key,' '); Выводя его элементы на экран
    p:=p^.next;
end;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.05.2015, 16:07   #3
krasy
Пользователь
 
Регистрация: 14.04.2015
Сообщений: 40
По умолчанию

Спасибо большое!!!
krasy вне форума Ответить с цитированием
Старый 11.05.2015, 16:17   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пожалуйста )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Списки (С++) whh Помощь студентам 4 11.11.2012 00:20
Списки. Leshii Паскаль, Turbo Pascal, PascalABC.NET 2 20.01.2012 12:02
(C++) списки Troi666 Помощь студентам 6 13.05.2009 00:47
Списки C++ Katya Melody Помощь студентам 0 07.05.2009 23:32