|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.03.2008, 17:03 | #1 |
Пользователь
Регистрация: 15.03.2008
Сообщений: 20
|
Файл
Помогите дорешать простенькую задачку:
Задан текстовый файл(к примеру, one.txt) состоящий из строк с числами. Найти в файле строку, числа в которой упорядочены по возрастанию, и вывести её на экран. Если таких строк несколько, то вывести все. uses crt; var f:text;i:integer; begin assign(f,'one.txt'); {$I-}; reset(f); {$I+}; if ioresult=o then while not eof(f) do begin readln(f,i); ... Вот дольше что-то совсем не знаю, как задать условие, чтобы последовательность возрастала. |
29.03.2008, 17:47 | #2 |
Форумчанин
Регистрация: 03.01.2008
Сообщений: 102
|
Создаете цикл, котрый равен длине строки, находите первое число, когда находите второе число, то проверяете больше ли оно предыдущего, если да то продолжаете поиск, если нет, то прерываете. А номер строки записываете в отдельную переменную. В принципе ничего сложного.
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
Последний раз редактировалось Makarov; 29.03.2008 в 17:49. |
30.03.2008, 10:44 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
простая говорите ;-)))
и правда простая ;-)) Код:
|
30.03.2008, 12:55 | #4 |
Пользователь
Регистрация: 15.03.2008
Сообщений: 20
|
Спасибо за помощь, вот только она у меня не работает,т.е. компилируется и черный экран. Ты проверял ее у себя?
Последний раз редактировалось Ketu; 30.03.2008 в 12:57. |
30.03.2008, 16:10 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
разумеется, я у себя проверил.
Ты не забыл положить файл one.txt заполненный числами? ну смотри, приложил полный комплект... |
30.03.2008, 17:24 | #6 | |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Цитата:
для удобства в начале написать uses crt;, а после begin - clrscr; |
|
30.03.2008, 20:37 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
puporev
по поводу Readln(F) ВЫ не правы!!! обратите внимание, в коде стоит чтение Read(f,i), после Eoln(f) нужно прочитать перевод строки через Readln(f) а вот про close(f) в конце я забыл... ;-(( И в конце программы перед END. можно добавить readln; просто для того, чтобы оставить работу до нажания Enter. И пустые строки у меня не выводит.... чудеса!... что же касается остальных замечаний - полностью со всеми согласен. Ещё добавлю, что: - не проверяется строки с одним значением в строке (они попадают в возрастающие...) - нет проверки данных, если в строке будет не число - прога вывалится по ошибке. впрочем, так же, как и нет проверки на наличие самого файла с данными. - за счёт того, что числа считываются, а потом собирается строчка в программе, строка выводимая может отличаться от строки в файле (за счёт пробелов) |
30.03.2008, 22:21 | #8 |
Пользователь
Регистрация: 15.03.2008
Сообщений: 20
|
Большое всем спасибо, очень выручили.
|
31.03.2008, 07:10 | #9 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
To Serge_Bliznykov.
Признаю свою ошибку, просто вижу Readln нет, ну я и переделал, смотрю заработало, а дальше просто не смотрел. Пустые строки у меня видимо как раз из-за того, что я убрал Readln(F). |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Бат файл | combays | Помощь студентам | 2 | 14.07.2008 10:11 |
chm файл | Михаил Юрьевич | Общие вопросы Delphi | 2 | 10.07.2008 08:17 |
Как с поиощью hiew вставить в файл строчку, "раздвинуть" файл и вставить туда строчку? | barand | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 28.06.2008 10:58 |
dll файл | Briz | Общие вопросы Delphi | 3 | 22.10.2007 17:17 |
Файл | vitalik007 | Общие вопросы Delphi | 2 | 03.09.2007 22:07 |