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


Гость






Ну, если быстро, то вот так:
Код
uses item, list;

var
 l: tlist;
 s: string;
 p: ptitem;
 count, index: integer;

begin
 L.init;

 repeat
   write('вводите строку: '); readln(s);
   if s <> '' then L.append(s);
 until s = '';

 write('Введите еще один элемент: '); readln(s);
 L.append(s);
 L.print;

 p := L.first; count := 0;
 while assigned(p) do
   begin
     inc(count);
     p := p^.next
   end;
 writeln('count = ', count);

 write('Введите номер элемента, который следует удалить: ');
 readln(index);

 p := L.first;
 while index > 1 do
   begin
     dec(index); p := p^.next
   end;
 L.remove_item(p);
 L.print;

 L.done;
end.



P.S. Почитать про динамические структуры данных можно здесь: FAQ: Динамические структуры данных (для успешного запуска программы необходимо скачать модуль List.rar и распаковать его содержимое в отдельную папку)


Прикрепленные файлы
Прикрепленный файл  list.rar ( 1.48 килобайт ) Кол-во скачиваний: 185
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Помогите переделать прогу. Там все на объектах, а мне надо просто чтобы без объектов было, а то я в них не шарю....Там задание вообще было: создать список, добавить элемент в конец списка, удалить выбранный элемент! Еще раз повторюсь, что там все в ООП, а я в нем не шарю, помогите, плиз, переделать в нормальный вид :D

Сообщения объединены из темы "Помогите с Массивом записей"


Прикрепленные файлы
Прикрепленный файл  LAB4.zip ( 1.25 килобайт ) Кол-во скачиваний: 188
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Я тебе эту программу писал, я тебе скажу так: легче заново ее сделать, чем ПЕРЕДЕЛАТЬ без объектов. Кстати, зачем опять тему дублируешь?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






2 volvo
Если несложно, то не могли бы вы переписать прогу, а то сдавать в универ надо СРОЧНО, а то к экзамену не допустят sad.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Держи... Но больше ПЕРЕделывать ничего не буду...


Прикрепленные файлы
Прикрепленный файл  lab4.rar ( 1.11 килобайт ) Кол-во скачиваний: 177
 К началу страницы 
+ Ответить 

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

 





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