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

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

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

 
 Ответить  Открыть новую тему 
> Указатели, Сортировка по альфавиту
setare
сообщение 18.03.2005 18:50
Сообщение #1


Бывалый
***

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

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


Нам дан текстовый файл в кот написано 1000 слов. Длина стлов не превышает 150. Нужно используя указатель сортировать эти слова по альфавиту и записать в новый файл.
Код

type
mas=array[1..200] of string;
 var
  ukm:^mas;
  flname,s:string;
  f,f1:text;
  i,j:integer;
   begin
    writeln('Vvedit imya fila.');
    readln(flname);
    assign(f,flname);
    reset(f);
    new(ukm);
     for i:=1 to 200 do
      readln(f,ukm^[i]);
      writeln(ukm^[i]);
      close(f);
     for J:=1 to 199 do
      for i:=1 to 200-j do
       if Ukm^[i]>Ukm^[i+1] then
        begin
         s:=ukm^[i];
         Ukm^[i]:=Ukm^[i+1];
         Ukm^[i+1]:=S;
        end;
     writeln('Vvedite imya novogo fila.');
     readln(flname);
     assign(f1,flname);
     rewrite(f1);
      for i:=1 to 200 do
       writeln(f1,Ukm^[i]);
      close(f1);
      Dispose(Ukm);
   end.


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.03.2005 18:58
Сообщение #2


Гость






Вопрос-то собственно в чем?

Вы задаете вопрос и приводите программу. Что я должен подумать? Что программа уже написана... И тему можно закрывать...
 К началу страницы 
+ Ответить 
setare
сообщение 18.03.2005 19:03
Сообщение #3


Бывалый
***

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

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


Нет! Извините! Проблема в том, что эта программа не работает. И я не понимаю в чем ошибка. Она не считывает и не записывает в новый файл. Она вообще ничего не делает.


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.03.2005 19:24
Сообщение #4


Гость






Ну, а если я перепишу ее вот так:
Код

const
 maxLines = 1000;
Type
 PStr = ^TStr;
 TStr = String[150]; { Это же максимальный размер, не так ли? }
 mas = array[1 .. maxLines] of PStr;
var
 ukm: mas;
 flname,s:string;
 f,f1:text;
 i,j:integer;

begin
 writeln('Vvedit imya fila.');
 readln(flname);
 assign(f,flname);
 reset(f);

 for i:=1 to maxLines do
   begin
     ukm[i] := new(pstr)
     readln(f, ukm[i]^);
     writeln(ukm[i]^);
   end;
 close(f);

 { пузырьковая сортировка ? }
 for i:=1 to maxLines do
   for j:=maxLines downto i+1 do
     if Ukm[j - 1]^ > Ukm[j]^ then
       begin
         s:=ukm[j-1]^;
         Ukm[j-1]^:=Ukm[j]^;
         Ukm[j]^:=S;
       end;

 writeln('Vvedite imya novogo fila.');
 readln(flname);
 assign(f1,flname);
 rewrite(f1);
 for i:=1 to 1000 do
   begin
     writeln(f1,Ukm[i]^);
     dispose(ukm[i]);
   end;
 close(f1);
end.


Вот так, скорее всего, должно работать...
 К началу страницы 
+ Ответить 
setare
сообщение 18.03.2005 19:32
Сообщение #5


Бывалый
***

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

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


Он к сожалению что-то ничего не считывает. Дает пустой экран. Что делать?


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.03.2005 19:43
Сообщение #6


Гость






Не может быть... Файл со словами находится в той же директории, где и программа? Он должен содержать столько слов, сколько написано в maxLines... Я только что прогнал свою версию, все работает...

Вот, пробуйте: здесь исходник, входной файл (FF.TST) и выходной файл (у меня - OUT.ONE)...


Прикрепленные файлы
Прикрепленный файл  _setare.rar ( 566 байт ) Кол-во скачиваний: 123
 К началу страницы 
+ Ответить 
setare
сообщение 18.03.2005 20:07
Сообщение #7


Бывалый
***

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

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


Нет не получается. Я только что напечатала 1000 слов в файле. Он все равно не считывает их. Он вообще ничего не делает. sad.gif


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
setare
сообщение 18.03.2005 20:11
Сообщение #8


Бывалый
***

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

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


При малом количестве получается, а при 1000 слов нет.


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.03.2005 20:16
Сообщение #9


Гость






Где он останавливается? Или даже не начинает обработку файла?
 К началу страницы 
+ Ответить 
setare
сообщение 18.03.2005 20:19
Сообщение #10


Бывалый
***

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

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


Он даже не начинает. При написании имя файла он сразу выдает черный экран и просит название нового файла(входного). Он даже не думает и ничего не считывает.ри 4 слов все прекрасно получилось.


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.03.2005 20:22
Сообщение #11


Гость






Только что прогнал файл из 1000 слов... Все сработало...


Прикрепленные файлы
Прикрепленный файл  _setare_2.rar ( 616 байт ) Кол-во скачиваний: 115
 К началу страницы 
+ Ответить 
setare
сообщение 18.03.2005 20:28
Сообщение #12


Бывалый
***

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

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


Спасибо! Оно зработало! Хотя я ничего особенно другого не делала. Не знаю в чем проблема. Может в том что слова были в строчку. Ведь они написаны в строчку и отделены несколькими или 1 пробелом. Это ничему не мешает?


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.03.2005 20:47
Сообщение #13


Гость






Ну конечно мешает !!! smile.gif Каждое слово должно быть на отдельной строке... Иначе будут проблемы при чтении из файла... Программа просто напросто не будет знать, сколько символов считывать для каждого слова.

Сейчас она просто считывает до конца строки, и заносит все, что есть в этой строке в массив как одно слово...
 К началу страницы 
+ Ответить 

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

 



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