18.03.2011, 22:26 | #1 (permalink) |
Sparkling
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
|
Линейный список. Паскаль.
|
18.03.2011, 22:26 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Пожалуйста, примите ко вниманию эти обсуждения Линейный вход в автомагнитоле Sony Линейный усилитель 100У-101 |
19.03.2011, 20:32 | #4 (permalink) |
Sparkling
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
|
да, диалоговый режим. я предполагаю с использованием кейза, но. не знаю как его использовать с текстом, а не с цифрами, всё-таки главное "фамилия". а не номер телефона..
возможно бы я сделала считывание картотеки из файла, а уж потом что-то типо - 1- считывание данных картотеки из файла; 2-вывод картотеки на экран; 3- вывод номера телефона и время разговора по фамилии; 4- извещение на оплату по фамилии; 5-выход. Вот как я это себе представляю, но не знаю как осуществить и за что взяться.... |
19.03.2011, 21:58 | #5 (permalink) |
Sparkling
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
|
Вот мой стандартный линейный список, от которого я пляшу.
пока безуспешно Сдавать скоро, а кроме мыслей никаких действий не приходит(( Программа: Код:
program linked_list; uses crt; const n = 5; type pnode = ^node; node = record { элемент списка } d : word; s : string; p : pnode; end; var beg : pnode; { указатель на начало списка } i, key :integer; s : string; option : word; const text: array [1 .. n] of string = ('one', 'two', 'three', 'four', 'five'); procedure add(var beg : pnode; d : word; const s : string); var p : pnode; t : pnode; { указатель для просмотра списка } begin new(p); { создание элемента } p^.d := d; p^.s := s; { заполнение элемента } p^.p := nil; if beg = nil then beg := p { список был пуст } else begin { список не пуст } t := beg; while t^.p <> nil do { проход по списку до конца } t := t^.p; t^.p := p; { привязка нового элемента к последнему } end end; function find(beg : pnode; key : word; var p, pp : pnode) : boolean; begin p := beg; while p <> nil do begin { 1 } if p^.d = key then begin { 2 } find := true; exit end; pp := p; { 3 } p := p^.p; { 4 } end; find := false; end; procedure insert(beg : pnode; key, d : word; const s : string); var p : pnode; { указатель на создаваемый элемент } pkey : pnode; { указатель на искомый элемент } pp : pnode; { указатель на предыдущий элемент } begin if not find(beg, key, pkey, pp) then begin writeln(' vstavka ne vipolnena '); exit; end; new(p); {1} p^.d := d; p^.s := s; {2} p^.p := pkey^.p; {3} pkey^.p := p; {4} begin if (d<key) or (d=0) then begin p^.d:=pkey^.d; p^.s:=pkey^.s; pkey^.s:=s; pkey^.d:=d; end; end; end; procedure del(var beg : pnode; key : word); var p : pnode; { указатель на удаляемый элемент } pp : pnode; { указатель на предыдущий элемент } begin if not find(beg, key, p, pp) then begin writeln(' ydalenie ne vipolneno'); exit; end; if p = beg then beg := beg^.p { удаление первого элемента } else pp^.p := p^.p; dispose(p); end; procedure print(beg : pnode); var p : pnode; { указатель для просмотра списка } begin p := beg; while p <> nil do begin { цикл по списку } writeln(p^.d:3, p^.s); { вывод элемента } p := p^.p { переход к следующему элементу списка } end; end; begin clrscr; for i := 1 to 5 do add(beg, i, text[i]); while true do begin writeln('1 - Number of Telephine , 2 - Delete Number, 3 - Out Spisok, 4 - Exit'); readln(option); case option of 1: begin { вставка } writeln('Number client:'); readln(key); writeln('Number Telephone:'); readln(i); readln(s); Insert(beg, key, i, s); end; 2: begin { удаление } writeln('klych dly ydalenia'); readln(key); del(beg, key); end; 3: begin { вывод } writeln('vivod spiska'); print(beg); end; 4: exit; { выход } end; writeln; end; end. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
20.03.2011, 13:52 | #7 (permalink) |
Sparkling
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
|
Нужно сделать как можно быстрее. для меня пока не совсем понятно как)))
препод говорит "ой, вообще лёгкое задание, сами сделаете"... возможно кто-то это "лёгкое" задание может за денюшку с полными комментариями сделать? |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|