![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
setare |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: ![]() ![]() ![]() |
Нам дан текстовый файл в кот написано 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. -------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Вопрос-то собственно в чем?
Вы задаете вопрос и приводите программу. Что я должен подумать? Что программа уже написана... И тему можно закрывать... |
setare |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: ![]() ![]() ![]() |
Нет! Извините! Проблема в том, что эта программа не работает. И я не понимаю в чем ошибка. Она не считывает и не записывает в новый файл. Она вообще ничего не делает.
-------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
volvo |
![]()
Сообщение
#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 |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: ![]() ![]() ![]() |
Он к сожалению что-то ничего не считывает. Дает пустой экран. Что делать?
-------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Не может быть... Файл со словами находится в той же директории, где и программа? Он должен содержать столько слов, сколько написано в maxLines... Я только что прогнал свою версию, все работает...
Вот, пробуйте: здесь исходник, входной файл (FF.TST) и выходной файл (у меня - OUT.ONE)... Прикрепленные файлы ![]() |
setare |
![]()
Сообщение
#7
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: ![]() ![]() ![]() |
Нет не получается. Я только что напечатала 1000 слов в файле. Он все равно не считывает их. Он вообще ничего не делает.
![]() -------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
setare |
![]()
Сообщение
#8
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: ![]() ![]() ![]() |
При малом количестве получается, а при 1000 слов нет.
-------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Где он останавливается? Или даже не начинает обработку файла?
|
setare |
![]()
Сообщение
#10
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: ![]() ![]() ![]() |
Он даже не начинает. При написании имя файла он сразу выдает черный экран и просит название нового файла(входного). Он даже не думает и ничего не считывает.ри 4 слов все прекрасно получилось.
-------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Только что прогнал файл из 1000 слов... Все сработало...
Прикрепленные файлы ![]() |
setare |
![]()
Сообщение
#12
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: ![]() ![]() ![]() |
Спасибо! Оно зработало! Хотя я ничего особенно другого не делала. Не знаю в чем проблема. Может в том что слова были в строчку. Ведь они написаны в строчку и отделены несколькими или 1 пробелом. Это ничему не мешает?
-------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
Ну конечно мешает !!!
![]() Сейчас она просто считывает до конца строки, и заносит все, что есть в этой строке в массив как одно слово... |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 23:20 |