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

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

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

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


Новичок
*

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

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


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

 



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