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

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

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

> Переделать список без ООП, помогите, очень надо!!!
сообщение
Сообщение #1


Новичок
*

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

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


Здравствуйте!
Прощу вашей помощи. Вот такая задача: Вводим любой список(массив записей) с клавиатуры. Список должен быть двусвязный. Потом программа должна "спросить" о добавлении нового элемента в список. Ну, типа, writeln('Введите еще один элемент') и добавить его в КОНЕЦ СПИСКА. Потом программа должна определить количество элементов в списке. И в конце должна "спросить" writeln('Введите номер элемента, который следует удалить') и удалить тот элемент, который я ввел с клавиатуры. Очень нужна ваша помощь! Даже не могу показать вам свой исходник, т.к. его просто у меня нет sad.gif
ОЧЕНЬ ПРОШУ - ПОМОГИТЕ! БОЛЬШОЕ СПАСИБО!
p.s. Извините, может это и есть в FAQ, но времени у меня мало, чтобы искать, а срочно надо до завтрашнего дня!
ЕЩЕ РАЗ СПАСИБО!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2





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

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


SunDevil,
нашел свою программку за первый курс
посмотри ее, надеюсь она будет тебе в помощь
Если что удали парочку ненужных тебя для процедур
Код

Program spiski;
uses crt;
type Ukazat=^Inform;
    Inform=record fam:string[15];
    ††††next:Ukazat;
    prev:Ukazat;
                  end;
var temp,first,wqw,cut,p,pk:Ukazat;
   ch:char;
      ffam:string[15];
{========================================================================}
   Procedure Zapolnenie;
begin
ClrScr;
new(temp);
write('Vvedite element: ');
readln(temp^.fam);
if first=nil then
  begin
  temp^.prev:=nil;
  temp^.next:=nil;
  first:=temp;
  cut:=temp;
  end
     else begin
     temp^.next:=nil;
     temp^.prev:=cut;
     cut^.next:=temp;
     cut:=temp;
     end;
end;
{========================================================================}
   Procedure Udal;
begin
ClrScr;
if first=nil then
begin
writeln;
writeln('!!!!!!!  Tablisa pusta   !!!!!!!!!');
end
  else
   begin
   write('Vvedite udalayemiy element spiska: ');
   readln(ffam);
       temp:=first;
                 wqw:=first;
while temp<>nil do begin
temp:=wqw;
while (ffam<>temp^.fam) and (temp<>nil)
do temp:=temp^.next;
      if temp=nil then
   begin
   write{('Takogo elementa net')};
   readln;
   end
   else
    begin
    if first<>cut then
   if temp^.prev=nil then
                begin
                temp^.next^.prev:=temp^.prev;
                first:=temp^.next;
  end
      else
 if temp^.next=nil then
                  begin
                  temp^.prev^.next:=temp^.next;
                  cut:=temp^.prev;
                  end
    else begin
                    temp^.prev^.next:=temp^.next;
                    temp^.next^.prev:=temp^.prev;
   end
                else  first:=nil;
      dispose(temp);
      end;
   end;  end;
end;
{======================================================================}
       Procedure Poisk;
begin
ClrScr;
if first=nil then
begin
writeln;
writeln('!!!!!!!  Tablisa pusta   !!!!!!!!!');
end
  else
   begin
   write('Vvedite element: ');
   readln(ffam);
       temp:=first;
while (ffam<>temp^.fam) and (temp<>nil)
do  temp:=temp^.next;
      if ffam=temp^.fam then
   begin
   writeln('Spisok sodergit danniy element ');
   readln;
   end;
 if temp=nil then
   begin
   write('Takogo  elementa v spiske net');
   readln;
   end; end;end;
{=======================================================================}
         PROCEDURE Vstavka;
begin
ClrScr;
   begin
   write('Vvedite element posle kotorogo vi hotite vstavit : ');
   readln(ffam);
       temp:=first;
  while (ffam<>temp^.fam) and (temp<>nil)
  do  temp:=temp^.next;
if ffam=temp^.fam then
   begin
new(pk);
write('Vvedite vstavlayemiy element: ');
readln(pk^.fam);
†pk^.next:=temp^.next;
     pk^.prev:=temp;
     temp^.next:=pk;
     pk^.next^.prev:=pk;
     end;  end;
  if temp=nil then
   begin
   write('Takogo  elementa v spiske net');
   readln;
   end; end;
{===========================================================================}
         Procedure Prosm;
begin
ClrScr;
temp:=first;
if first<>nil then
begin   writeln('Spisok elementov:  ');
while temp<>nil do
      begin
 writeln('  ',temp^.fam);
temp:=temp^.next;
  end;
  end
else writeln('Tablica pusta':40);
readln;
end;
begin clrscr; Textcolor(6);
repeat
writeln;
writeln( '           Viberite deistvie:');
writeln('1-Zapolnenie');
writeln('2-Udalit');
writeln('3-Prosmotret');
writeln('4 -Poisk ');
writeln('5 -Vstavka ');
writeln('0-Vixod');
readln(ch);
case ch of
'1':Zapolnenie;
'2':Udal;
'3':Prosm;
'4':Poisk;
'5':Vstavka
 end;
until ch='0';
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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