|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
08.12.2012, 14:36 | #1 (permalink) |
Member
Регистрация: 26.10.2012
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Паскаль. Текстовый файл
Сделала всё это используя массив, но преподаватель сказал что все просчеты надо вести в самом файле и массив не использовать, натолкните на мысль как это сделать. |
08.12.2012, 14:36 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Подскажу вам, что на форуме имеются аналогичные по содержанию обсуждения Паскаль. Задача на типизированный файл Из типизированного файла в текстовый Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл Текстовый файл Паскаль. Создать массив целых чисел и записать его в файл AbiWord 2.8.4: бесплатный текстовый редактор |
08.12.2012, 18:01 | #2 (permalink) |
Member
Регистрация: 26.10.2012
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Вот это то что у меня получилось написать для ввода этих чисел. Но вот как теперь остальное сделать...и вообще имеет ли смысл ниже написанное.
Program variant_11; Uses WinCRT; var f:text; a:string; Begin Assign(f,'f.txt'); ReWrite(f); WriteLn('Vvedite chisls:'); ReadLn(a); If (a='0') Then Begin WriteLn('net'); Erase(f); Exit; End Else begin a:=a+' '; Write(f,a); End; Repeat Write('Ochered chislo:'); ReadLn(a); If (a<>'0') Then begin a:=a+' '; Write(f, a); end; Until (a='0'); WriteLn('Ishod fail:'); Reset(f); WhIle not eof(f) do Begin read(f,a); Write(a); End; Close(f); End. |
08.12.2012, 20:06 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да уж, дорогая Бетти, боюсь, пассаж насчет "терминатора" Вы поняли слишком буквально, и вместо того, чтобы просто прервать ввод на нулевом числе, Вы пытаетесь при вводе нуля совсем уничтожить файл! Думаю, этого не надо. Не говоря уж о том, что незакрытый файл уничтожить не получится.
Насчет того, что "преподаватель сказал что все просчеты надо вести в самом файле", то тут надо поразмыслить. Я, честно говоря, сходу не очень вижу, как это. Сейчас попробую что-нибудь придумать. |
08.12.2012, 21:08 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Честно говоря, не очень понимаю, что имел в виду Ваш перподаватель, поскольку никаких "просчетов в самом файле" язык Паскаль не предусматривает, а уж тем более в файле текстовом. Такой файл допускает только ввод текста, дозапись в конце, чтение и уничтожение. Всё! Типизированные файлы (да и то не все), в отличие от текстовых, позволяют еще поиграть с номером позиции компонета (команды Seek, FilePos и еще несколько), но и от них толку в данном случае немного.
Предлагаю такой вариант, во всяком случае, тут без массивов: Код:
var f:text; a,Min,Max:Longint; Begin Assign(f,'f.txt'); ReWrite(f); Write('Vvedite chislo: '); ReadLn(a); If a<>0 then begin Min:=a; Max:=a; Write(f,' ',a); repeat Write('Ochered chislo: '); ReadLn(a); If a<>0 then begin Write(f,' ',a); if a<Min then Min:=a; if a>Max then Max:=a; end; until a=0; Close(f); Writeln; Writeln; Reset(f); Writeln('Initial sequence:'); Repeat Read(f,a); Write(' ',a); Readln; Until EoF(f); Close(f); Writeln; Writeln; Reset(f); Writeln('Modified sequence:'); Repeat Read(f,a); If a=Min then Write(' ',Max) else If a=Max then Write(' ',Min) else Write(' ',a); Until EoF(f); Close(f); Readln; end; End. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
08.12.2012, 21:21 | #6 (permalink) |
Member
Регистрация: 26.10.2012
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо вам большое
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|