metod_15.03.04_atppp_oaip_ump_2016 (1016599), страница 32
Текст из файла (страница 32)
Вызовы этих процедурмогут быть только в пределах тела цикла. Обе процедуры без параметров.Процедура BREAK прекращает выполнение данного цикла. Управление передаетсяоператору, следующему сразу за данным циклом.I := IN (начальное значение)НетI <= IK (конечноезначение)I := I + DIДаSBREAKПроцедура CONTINUE (продолжение) обеспечивает досрочное прекращениеочередного прохода цикла и переход за последний оператор цикла, т.е. к анализу концацикла и выполнению следующей итерации.I := IN (начальное значение)НетI <= IK (конечноезначение)I := I + DIДаCONTINUES146Пример программы с использованием процедур BREAK и CONTINUE.В первой части примера производится суммирование и вывод всех элементовмассива А, кроме отрицательных и нулевых элементов массива.Во второй части примера необходимо суммировать положительныеэлементы массива А до первого попавшегося отрицательного.CONST A : ARRAY [ 1 ..
5 ] OF INTEGER = ( 1, 2, -3, -4, -5 ) ; VARS, I : INTEGER ;BEGIN{Суммирование и вывод положительных и не нулевых элементов массива }S := 0 ;FOR I :=1 TO 5 DOBEGINIF A [ I ] <= 0 THEN CONTINUE ;WRITELN ( ‘ A [ ‘, I, ‘ ] = ‘, A [ I ]) ;S := S + A [ I ] ;END ;WRITELN ( ‘ S = ‘, S ) ;{ Суммирование и вывод положительных элементов массива допервого попавшегося отрицательного }S := 0 ;FOR I :=1 TO 5 DOBEGINIF A [ I ] < 0 THEN BREAK ;S := S + A [ I ] ;END ;WRITELN ( ‘ S = ‘, S ) ;END .8.7. ВВОД-ВЫВОД ДАННЫХОсновные понятияПонятие файлаВ современных ЭВМ для длительного хранения данные размещаются на внешнихустройствах в виде физических файлов.Под физическим файлом понимается либо именованная область внешней памяти(ВП) либо логическое устройство - источник или приемник информации.К достоинствам файла можно отнести: Данные, организованные в виде файла, могут использоваться в нескольких программах;Файл сохраняет свои значения по окончанию работы программы, где он создан; Этоединственный способ размещения данных очень большого объема.147Любой файл характеризуется тремя свойствами:1) файл или устройство имеет имя;2) файл содержит компоненты (элементы, записи) одного типа;3) размер (длина) создаваемого файла не оговаривается и ограничивается толькоемкостью доступной памяти или устройства.Имя физического файла, который связывается с файлом программы, может бытьопределено с помощью любого выражения строкового типа.
Частным случаемвыражения может быть строковая константа или строковая переменная.Результатом выполнения выражения должно быть имя файла, допустимоев DOS:- оно может содержать до 8 разрешенных символов: латинских букв, цифр исимволов: !, #, $, %, &, ', ( , ), _;- имя может начинаться с любого разрешенного символа;- за именем может следовать точка и расширение - последовательность от одного дотрех разрешенных символов.Перед именем файла может быть путь к файлу – или через корневой каталог или втекущем каталоге. Если после имени МД стоит \ - обратная косая черта, то путь кфайлу начинается с корневого каталога; например C:\ означает, что используетсякорневой каталог. За именем корневого каталога может следовать одно или несколькоимен каталогов нижнего уровня. Перед каждым из них должна быть \ - обратная косаячерта. Последним в перечне пути будет имя файла. Если в имени физического файланет черты или указано только имя файла, без имени МД и пути, то производится поискфизического файла в текущем каталоге, установленном в системе.
Максимальнаядлина имени вместе с путем 79 символов. Имена МД: А и В обычно относятся кнакопителям на гибких дисках, имена от С до Z - к ЖМД.Путь может формироваться в процессе выполнения программы. Пример фрагментапрограммы для обработки данных с помощью одной файловой переменной рядафизических файлов:CONSTNAME : STRING = ‘ С: \ DIR \ SUBDIR \ rezl.txt ’; { путь к файлу }...NAME := 'F: \ rez2.txt';{ файл - в корневом каталоге }где С, F - имена МД;DIR - имя каталога;SUBDIR - имя подкаталога;rezl.txt, rez2'.txt — имена физических файлов.В приведенном примере используется типизированная константа NAME.
Сначалаона получает значение в разделе CONST, а затем это значение изменяется в текстепрограммы с помощью оператора присваивания.Логические устройстваСтандартные аппаратные средства ПК в Паскале называются логическимиустройствами. Они рассматриваются как потенциальные источники или приемникиинформации и имеют логические имена.Если к ПК подключено несколько принтеров, обращение к ним осуществляется поих логическим именам LPT1, LPT2 и LPT3. Имена LPT1 и PRN - синонимы.148Средствами DOS можно переназначить имя PRN на любое другое выводноеустройство.Имена устройствCONPRNLPT1, LPT2, LPT3AUXNULНазначение устройствКонсоль: клавиатура или экран монитораЛогическое имя принтераЛогические имена принтеровИмя коммутационного канала для связи с другими ПКЛогическое имя "пустого" устройстваЛюбая программа обработки данных может изменять значения каких-либо данных(переменных) только в ОП.
Внешняя память на МД предназначена только для храненияданных. Для изменения данных, расположенных на МД, они должны быть введены(скопированы) в ОП, скорректированы, а затем возвращены на МД. Резервированиеопределенной области ОП для работы с физическим файлом в программе осуществляетобъявляемая в программе переменная файлового типа (логический файл).Таким образом, процесс работы с физическим файлом предполагает следующиефазы:1. Определение имени физического файла;2. Объявление имени логического файла (файловой переменной);3. Определение связи файловой переменной с именем конкретногофизического файла;4. Открытие файла (подготовка к копированию данных физического файла в ОП);5. Чтение данных из физического файла в ОП;6.
Запись результатов обработки данных программой из ОП в физический файл;7. Закрытие файла, в результате чего прекращается связь между файлом ипрограммой и формируется признак конца файла.Файловая переменная (логический файл) освобождает программиста отнеобходимости знания технической организации обмена данными междуаппаратными средствами компьютера, т.к. программа работает не с конкретнымифизическими устройствами, а с их образами в виде файловых переменных.
При этомкаждой такой переменной ставится в соответствие физический файл.Объявление файловОбъявление файлов можно производить в разделе ТУРЕ илиVAR. В Паскале можно использовать 3 типа файлов:1) текстовые, тип объявляется словом TEXT;2) типизированные (двоичные), тип объявляются словами FILE OF тип;3) нетипизированные (бестиповые), тип объявляется словом FILE.Передача компонентов текстового файла всегда сопровождается их преобразованиемиз символьного представления во внутреннее и наоборот – из внутреннего всимвольное.При обработке типизированного файла обмен данными выполняется безпреобразования.149Нетипизированные файлы отличаются тем, что для них не указывается типкомпонентов файла.
Эти файлы используют для высокоскоростного копированияфайлов из ВП в ОП и обратно.Пример объявления текстовых файлов:VAR Fl, F2 : TEXT;где Fl, F2 — файловые переменные, имена логических файлов.При объявлении типизированных файлов определяется тип компонентов файла.Форма объявления типизированных файлов в разделе VAR:VAR список имен файлов : FILE OF тип-компонентов ;Пример объявления типизированных файлов. Файл STUD в примере имееткомпоненты типа STR, а файл FLR - типа Real; STUD и FLR - имена файловыхпеременных.ТУРЕ STR = RECORD{ определение типа компонентов файла }FIO : string [20] ;NZ : byte ;NG : string [6]END;VAR STUD : FILE OF STR ;{ объявление файла STUD }FLR : FILE OF Real;{""FLR }Или:TYPE STR = RECORDFIO : string [20] ;N2 : byte ;NG : string [6] END;FL = FILE OF STR ; { определение типа файла }VAR STUD : FL ;{ объявление файла STUD }FLR : FILE OF Real;{ "" FLR }Связь файловых переменных с физическими файлами.Любой программе на Паскале по умолчанию доступны только текстовые файлыINPUT и OUTPUT.
Все остальные файлы и логические устройства становятсядоступными программе только после выполнения процедуры Assign - связыванияфайловой переменной (логического файла) с именем физического файла илиустройства.Существует возможность обработать посредством одного логического файла рядфизических файлов того же типа, подключая логический файл поочередно кразличным физическим файлам процедурой Assign.Файл №1………….Файл № iФайл № nWriteAssign ( F, ‘Файл № I )ReadОП переменных программыЛогический файлпрограммы F150Форма вызова процедуры Assign:Assign ( F, FN ) ;где F - имя файловой переменной;FN - строковое выражение, определяющее имя физического файла или логическогоустройства.Если FN задано в виде пустой строки (отмена связи с файлом), то файловаяпеременная связывается с терминалом: с клавиатурой или с экраном.
Например:Assign ( F, ' ' ) ;где F - имя переменной типа текстового файла. Примеры связи логических файлов сфизическими:Assign ( F, 'LR1.DAT' );Assign (INPUT, 'LR.DAT');Assign (OUTPUT, 'LR.RES');Открытие и закрытие файловДля открытия файлов используются процедуры Reset, Rewrite и Append.
Формаобращения к ним:Reset (файловая переменная) ;Rewrite (файловая переменная) ;Append (файловая переменная) ;гдефайловая переменная - это переменная, связанная с физическим файлом илилогическим устройством с помощью Assign.При выполнении процедуры Reset дисковый файл или логическое устройствоподготавливается к чтению данных. Внутренняя переменная-указатель, связанная сэтим файлом, указывает на начало файла, т.
е. на его компонент с номером 0.При попытке открыть процедурой Reset несуществующий файл или инициироватьчтение из логического выводного устройства (например, из PRN) возникает ошибка.Паскаль допускает и чтение (Read) и запись (Write) в ранее созданные типизированные файлы, открытые с помощью процедуры Reset. Это позволяет корректировать и дополнять созданные типизированные файлы.Встроенная процедура Rewrite инициирует запись данных в новый файл или выводданных на логическое устройство, связанное с файловой переменной.














