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

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

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

 
 Ответить  Открыть новую тему 
> Списки, Пусть задан список слов...
сообщение
Сообщение #1


Новичок
*

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

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


Условие задачи:
Пусть задан список слов из каждой группы слов оставить только одно.
Я написал код, но программа не работет. Пожалуйста проверьте и объясните, что не правильно.
program XXX;
uses
  SysUtils,
  windows;

type
   tinfo = string;

   plist = ^tlist;
   tlist = record
				info: tinfo;
	 		next: plist;
   end;

 procedure PrintList(L: plist);
 var
   p: plist;
 begin
   p := L;
   while p<>nil do
   begin
	 write (p^.info, ' ');
	 p := p^.next;
   end;
   writeln;
 end;

 procedure InitList (var L: plist);
 begin
   L := nil;
 end;

 procedure DisposeList (var L: plist);
 var
   d: plist;
 begin
   while L<>nil do
   begin
	 d := L;
	 L := L^.next; 
	 dispose (d);  
   end;
 end;

 function IsEmpty(L: plist): boolean;
 begin
   IsEmpty := L = nil;
 end;

 procedure AddToEndOfList (var L: plist; info: tinfo);
 var
   p,p_pred: plist;
   q: plist;
 begin
   if IsEmpty (L) then
	 begin
	   new (q);
	   q^.next := nil;
	   q^.info := info;
	   L := q;
	 end
   else
	 begin
	   p := L;
	   while p<>nil do
	   begin
		 p_pred := p;
		 p := p^.next;
	   end;
	   new (q);		   
	   p_pred^.next := q;
	   q^.next := nil;
	   q^.info := info;   
	 end;
 end;

 procedure ReadList(var L: plist);
 var
   info: tinfo;
 begin
   InitList (L);
   while not eoln do
   begin
	 read (info);
	 AddToEndOfList (L, info);
   end;
   readln;
 end;
//вот здесь начинаются проблемы
 procedure MakeNewList(var L: plist; L1: plist);
 var
   p, h: plist;
   info: tinfo;
 begin
   InitList (L);
   p := L1;
   while p<>nil do
   begin
	 info := p^.info;
	 h:=p^.next;
	 if (p^.info<>h^.info) and (p<>nil) then

	   AddToEndOfList (L, info);
	 p := p^.next;
   end;
 end;

 var
   L,
   L1: plist;

begin
   SetConsoleCp (1251);
   SetConsoleOutputCp (1251);
   writeln ('Введите список');
   ReadList (L1);
   readln;
   MakeNewList (L,L1);
   writeln ('Новый список ');
   PrintList (L);
   readln;
   DisposeList (L);
   DisposeList (L1);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

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


Непонятно условие.
Если дан список, то при чем здесь группы?

Или я неправильно восстановил пропущенные знаки препинания?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Сорри! Уже голова не варит.
Правильное условие:
Пусть задан список слов из каждой группы подряд идущих одинаковых слов оставить только одно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

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


Пожалуйста то же самое, только со знаками препинания.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


Пусть дан список слов. Из каждой группы подряд идущих одинаковых слов оставить только одно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

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

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


Че не понятно-то?
Если есть подряд идущие элементы с одинаковыми значениями, то удалить все эти элементы, оставив тока один с данным значением и так сотворить с элементами всего списка.

To adriano.

Добавлено через 1 мин.
Вася, я правильно понял? )

Сообщение отредактировано: not_programmer -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


Ну да всё так.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

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

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


Посмотри вот это: Все о динамических структурах данных.
Может полезное что-нибудь найдешь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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