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

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

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

 
 Ответить  Открыть новую тему 
> Упорядочен ли список?!
MagZzz
сообщение 27.03.2005 11:05
Сообщение #1


Гость






Привет всем! Помогите с задачкой!! :p2:

Предлагается, что уже построен и задан указателем Р связанный односторонний список, элементами которого являются символы.
а) Подсчитать число элементов списка.
б) Проверить упорядочен ли список по возрастанию.
 К началу страницы 
+ Ответить 
volvo
сообщение 27.03.2005 11:24
Сообщение #2


Гость






Это как раз зависит от того, как именно задан список... Если список задан так:
Код
type pitem = ^item;
 item = record
   elem: char;
   next: pitem;
 end;

то подсчет числа элементов:
Код
function count(list: pitem): integer;
var x: integer;
begin
 x := 0;
 while list <> nil do begin
   list := list^.next;
   inc(x)
 end;
 count := x
end;

Упорядоченность списка попробуйте сделать сами, я бы для этого ввел дополнительную переменную типа char, и начинал обрабатывать список не с первого, а со второго элемента.
 К началу страницы 
+ Ответить 
MagZzz
сообщение 27.03.2005 15:14
Сообщение #3


Гость






Спасибо огромное за совет volvo! smile.gif
 К началу страницы 
+ Ответить 
MagZzz
сообщение 3.04.2005 16:06
Сообщение #4


Гость






Вот я тут по левому наштряпал программку, но она список сортирует! blink.gif Чё надо переделать чтоб она выдавала только ответ отсортирован список или нет!! Спасибо за внимание!! unsure.gif
Исходный код
program sortir;
uses crt;
type
p_stud=^student;
student=record
name:string[20];
next:p_stud;
end;
const
sum: longint = 0;

var
head:p_stud;
cur:p_stud;
p:p_stud;
name:string[20];
node: p_stud;
tekst:text;

begin
clrscr;
Writeln(' -- Ishodnyi spisok --');
writeln;
assign(tekst,'D:\income.txt');
reset(tekst);
while not EOF(tekst) do
begin
Readln(tekst,name);
Writeln('', name,' ');
end;
close(tekst);
assign(tekst,'D:\income.txt');
reset(tekst);
Readln(tekst,name);
reset(tekst);
while not EOF(tekst) do
begin
Readln(tekst,name);
inc(Sum, Length(name))
end;
close(tekst);
Writeln;
Writeln('— Kollichestvo elementov - ', Sum ,' ');
Writeln;
assign(tekst,'D:\income.txt');
reset(tekst);

repeat
readln(tekst,name);
if length (name)<>0 then begin
new(node);
node^.name:=name;
node^.next:=NIL;
cur:=head;
p:=NIL;
while(name>cur^.name) and (cur<>NIL) do begin
p:=cur;
cur:=cur^.next;
end;
if p = NIL then begin
node^.next:=head;
head:=node;
end
else begin
node^.next:=p^.next;
p^.next:=node;
end;
end;
until length(name)=0;
cur:=head;
writeln(' -- - --');
while cur<>NIL do begin
writeln(cur^.name);
cur:=cur^.next;
end;
writeln('----------------------------');
readln;
close(tekst);
end.


Код должен быть в тегах
 К началу страницы 
+ Ответить 
volvo
сообщение 3.04.2005 16:42
Сообщение #5


Гость






Код
var
 is_good: boolean;
 pred_str: string[20];
 last: p_stud;
...
last := nil;
{ Заполняем список БЕЗ сортировки }
repeat
 readln(tekst,name);
 if name <> '' then begin
   new(node);
   node^.name := name;
   node^.next := nil;

   if head = nil then head := node
   else last^.next := node;
   last := node;
 end;
until name='';
{ и проверяем на упорядоченность }
is_good := true;
pred_str := head^.name;

p := head^.next;
while (p <> nil) and (is_good) do begin
 is_good := is_good and (p^.name > pred_str);
 pred_str := p^.name; p := p^.next
end;

if is_good then Writeln('упорядочен')
else writeln('НЕупорядочен');


Кстати, что, обязательно писать ВСЮ программу в основном блоке? Что, ее нельзя было хоть как-то структурировать? Например, сделать вставку элемента в список отдельной процедурой... Ведь со структурированной программой намного легче работать...
 К началу страницы 
+ Ответить 
MagZzz
сообщение 4.04.2005 1:42
Сообщение #6


Гость






Спасибо volvo огромное тебе ещё раз!! smile.gif
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 20.07.2025 18:11
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"