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

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

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

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


Гость






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

Предлагается, что уже построен и задан указателем Р связанный односторонний список, элементами которого являются символы.
а) Подсчитать число элементов списка.
б) Проверить упорядочен ли список по возрастанию.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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, и начинал обрабатывать список не с первого, а со второго элемента.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Спасибо огромное за совет volvo! smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.


Код должен быть в тегах
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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('НЕупорядочен');


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


Гость






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

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

 





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