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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2009, 18:21   #1
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию Динамика Pascal

Задание:

Предметный указатель организован как линейный список.
Каждая компонента указателя содержит слово и номера страниц, на
которых это слово встречается. Количество номеров страниц, относя-
щихся к одному слову, от одного до десяти.
Составить программу, которая обеспечивает:
-начальное формирование предметного указателя;
-распечатку предметного указателя;
-распечатку номеров страниц для заданного слова.
Программа должна обеспечивать диалог с помощью меню ,
ввод/вывод в окна и контроль ошибок при вводе.

Указание: использовать динамические структуры.


у меня несколько вопросов:
1) Указатель как нужно заполнять?
2) Что означает программа дожна обеспечивать диалог с помощью меню?

З.Ы. Если некоректно составил вопросы просьба поправить.
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 31.03.2009, 19:39   #2
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

Код:
program ukazatel;
uses crt;
type
 pnode = ^node; {указатель на список}
 node = record  {список}
  slovo:string;   {слово}
  nomer:integer;   {номер страницы}
  p:pnode; {указатели на следующий элемент списка}
 end;

{процедура создания списка}
procedure Create_List(var pBegin:pnode);
var
 pAux,pT:pnode;
 ch:char;
begin
 New(pBegin);
 pBegin^.p:=Nil;
 write('Введите слово: ');
 readln(pBegin^.slovo);
 write('Введите номер страницы: ');
 readln(pBegin^.nomer);
 pAux:=pBegin;
 writeln('Ввести данные об ещё одном автобусе? (y-да, n-нет)');
 ch:=readkey;
 while(ch<>'n') do
  begin
    New(pT);
    pAux^.p:=pT;
    pT^.p:=Nil;
    write('Введите слово: ');
    readln(pT^.slovo);
    write('Введите номер страницы: ');
    readln(pT^.nomer);
    pAux:=pT;
    writeln('Ввести данные об ещё одном автобусе? (y-да, n-нет)');
    ch:=readkey;
  end;
end;

{процедура печати списка}
procedure Print_List(pBegin:pnode);
var
 pAux:pnode;
begin
 pAux:=pBegin;
 writeln('№ Страницы Слово');
 while(pAux <> Nil) do
  begin
   writeln(pAux^.nomer:10,pAux^.slovo:13);
   writeln('----------------------------------');
   pAux:=pAux^.p;
  end;
end;

{процедура очистка списков}
procedure Free_List(var pAux:pnode);
begin
 if(pAux <> Nil) then
  begin
   Free_List(pAux^.p);
   if(pAux <> Nil) then
    begin
     Dispose(pAux);
     pAux:=Nil;
    end;
  end;
end;


var
 sp:pnode; {список}
 ch:char;
begin
 clrscr;
 sp:=Nil;
 Create_List(sp);
 repeat
  clrscr;
  writeln('1. Просмотреть список');
  writeln('2. Выйти из программы');
  ch:=readkey;
  case ch of
   '1': begin
         writeln('слово и страница: ');
         Print_List(sp);
         readkey;
        end;
 until(ch='2');
 Free_List(sp);
end.
вот начал писать код, но почему то выдаёт ошибку когда компилит вот эту строчку:
Код:
'1': begin
         writeln('слово и страница: ');
         Print_List(sp);
         readkey;
        end;
Кто нибудь знает почему?
Как привязать слово к странице, как написано в задании?
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамика Pascal bpystep Помощь студентам 5 25.03.2009 22:24
Как могут забанить навсегда, если у меня динамика? SunKnight О форуме и сайтах клуба 3 16.03.2009 04:40
Задача (динамика) Witaliy Помощь студентам 3 06.03.2009 19:03