Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программа на Указатели!

66K
06 января 2011 года
Elen_Celsi
1 / / 06.01.2011
Используя один просмотр текстового файла , вывести все его строки в порядке увеличения содержания в них цифр (строки должны содержать цифры).
******************************************
Program Ukazateli;
type
PNode = ^TNode;

TList =
record
start, finish: PNode;
end;

TNode =
record
n: integer;
s: string;
next: PNode;
end;

procedure AddToList(var L: TList; s: string; digits: Integer);
var T: PNode;
begin
new(T);
T^.next := nil;
T^.s := s;
T^.n := digits;

if L.start = nil then
L.start := T
else
L.finish^.next := T;

L.finish := T;
end;

{ Эту сортировку я вставила, потому что была готовая }

function SortList(L: PNode): PNode;

function insert(a: PNode; L: PNode): PNode;
begin
a^.next := nil;
if L = nil then insert := a
else
if a^.n < L^.n then begin
a^.next := L; insert := a;
end
else begin
L^.next := insert(a, L^.next);
insert := L;
end;
end;

begin
if L = nil then SortList := nil
else SortList := insert(L, SortList(L^.next));
end;

procedure PrintList(L: PNode);
begin
while L <> nil do
begin
writeln(L^.s);
L := L^.next;
end;
end;

function Count(s: string): integer;

{
Тут функция получает строку
и должна вернуть количество цифр в этой строке
}

begin
end;

var
f: text;
s: string;
MyList: TList;
n: integer;

begin
MyList.start := nil; MyList.finish := nil;

assign(f, 'ftest.txt'); reset(f);
while not seekeof(f) do
begin
readln(f, s);
n := Count(s);
if n > 0 then AddToList(MyList, s, n);
end;
close(f);

PrintList(myList.start);
readln;

MyList.start := SortList(Mylist.start);
PrintList(myList.start);
readln;

{ ... Здесь список надо будет удалить }
end.
********************************************************
p.s. нужно во время "просмотра" файла занести "наши" строки в список, потом произвести сортировку списка и выводить ответ в порядке увеличения, но как это сделать я не могу напечатать
Кто сможет подскажите как дописать! Буду благодарна...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог