Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 18.03.2011, 22:26   #1 (permalink)
Хелен
Sparkling
 
Аватар для Хелен
 
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
По умолчанию Линейный список. Паскаль.

Ошиблась в списывании задания. Помогите пожалуйста =)
Миниатюры
eaia.png  
Хелен вне форума   Ответить с цитированием

Старый 18.03.2011, 22:26
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Пожалуйста, примите ко вниманию эти обсуждения

Линейный вход в автомагнитоле Sony
Линейный усилитель 100У-101

Старый 19.03.2011, 19:13   #2 (permalink)
Хелен
Sparkling
 
Аватар для Хелен
 
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
По умолчанию

Видимо никто мне не поможет...
Хелен вне форума   Ответить с цитированием
Старый 19.03.2011, 20:08   #3 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

вы 1) тоже не можете сделать??
это задание нужно делать в форме диалога?
kreol вне форума   Ответить с цитированием
Старый 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, 01:02   #6 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

мда. не самое легкое задание. я думал по другому делать...
kreol вне форума   Ответить с цитированием
Старый 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
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 08:29.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.