Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2011, 23:17   #1
ElenCelsi
Пользователь
 
Аватар для ElenCelsi
 
Регистрация: 06.01.2011
Сообщений: 14
Вопрос Тема Указатели! Pascal

Используя один просмотр текстового файла , вывести все его строки в порядке увеличения содержания в них цифр (строки должны содержать цифры).
-----------------------------------------------------------------
См ниже!

Последний раз редактировалось ElenCelsi; 07.01.2011 в 16:50.
ElenCelsi вне форума Ответить с цитированием
Старый 06.01.2011, 23:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
нужно во время "просмотра" файла занести "наши" строки в список, потом произвести сортировку списка и выводить ответ в порядке увеличения, но как это сделать я не могу напечатать
Может имелось ввиду
Код:
  assign(f, 'ftest.txt'); reset(f);
  while not seekeof(f) do
  begin
    readln(f, s);
    n := Count(s);
    if n > 0 then begin
     AddToList(MyList, s, n);
     MyList.start := SortList(Mylist.start);
    end;
  end;
  close(f);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.01.2011, 23:59   #3
ElenCelsi
Пользователь
 
Аватар для ElenCelsi
 
Регистрация: 06.01.2011
Сообщений: 14
По умолчанию

А как связать это с моей прогой?
p.s. Не сильна в Паскале (Прогу знакомый делал)

Последний раз редактировалось ElenCelsi; 07.01.2011 в 01:10.
ElenCelsi вне форума Ответить с цитированием
Старый 07.01.2011, 00:17   #4
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Почему же этот друг не дописал до конца :D
Код:
function Count(s: string): integer;
var i:integer;
begin
result:=0;
for i:=1 to length(s) do
if s[i] in ['0'..'9'] then inc(result);
end;
From Stilet: Какого карапуза код не оформляем?

Последний раз редактировалось Stilet; 07.01.2011 в 14:46.
Son Of Pain вне форума Ответить с цитированием
Старый 07.01.2011, 01:02   #5
ElenCelsi
Пользователь
 
Аватар для ElenCelsi
 
Регистрация: 06.01.2011
Сообщений: 14
По умолчанию

Говорит "лень было"(вот и знакомый)

Последний раз редактировалось ElenCelsi; 07.01.2011 в 16:51.
ElenCelsi вне форума Ответить с цитированием
Старый 07.01.2011, 01:09   #6
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Не друг значит
Son Of Pain вне форума Ответить с цитированием
Старый 07.01.2011, 01:16   #7
ElenCelsi
Пользователь
 
Аватар для ElenCelsi
 
Регистрация: 06.01.2011
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Не друг значит
Полностью с тобой солидарна!) Так программа так должна выглядеть полностью?
ElenCelsi вне форума Ответить с цитированием
Старый 07.01.2011, 01:17   #8
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Ну функция для подсчета цифр теперь есть, а так лень всматриваться, попробуй запусти )
Son Of Pain вне форума Ответить с цитированием
Старый 07.01.2011, 01:22   #9
ElenCelsi
Пользователь
 
Аватар для ElenCelsi
 
Регистрация: 06.01.2011
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Ну функция для подсчета цифр теперь есть, а так лень всматриваться, попробуй запусти )
Спасибо большое за помощь! :]

В общем, программа компилируется и выводит строки уже созданного файла, но не в порядке увеличения!(

Последний раз редактировалось Stilet; 07.01.2011 в 14:47.
ElenCelsi вне форума Ответить с цитированием
Старый 07.01.2011, 14:58   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Предлагаю свое видение сортира:
Код:
 
function SortList(L: PNode): PNode;
var i,j:PNode;q:TNode;
begin
 i:=l;
 while i<>nil do begin
   j:=l;
   while j<>nil do begin
    if i^.s>j^.s then begin
      q:=i^;
      i^.n:=j^.n;i^.s:=j^.s;
      j^.n:=q.n;j^.s:=q.s;
    end;
    j:=j^.next;
   end;
  i:=i^.next;
 end;
end;
А так же
Цитата:
MyList.start := SortList(Mylist.start);
замени на
Код:
  SortList(Mylist.start);
Нефик портить указатели.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачка для Бонард Си... тема: указатели и массивы... Катюшенька Помощь студентам 2 26.01.2009 22:18
Помогите,plz,решить задачи на С++.Тема:Указатели и ф-ии!Срочно!!! Wia Помощь студентам 5 06.12.2008 12:30