рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Теоретические сведения

Теоретические сведения - раздел Информатика, ИНФОРМАТИКА Физические Файлы Файл – Поименованная Область Для Хранения Да...

Физические файлы

Файл – поименованная область для хранения данных на физическом носителе. Доступ к файлу для обмена данными происходит по имени.

Устройства ЭВМ, с которыми происходит обмен данными, в MS DOS также рассматриваются как файлы и имеют свои имена:

CON – клавиатура (экран дисплея); если ‘СОN’ организован для чтения, то это клавиатура, если для записи – экран;

LPT1, LPT2, LPT3 – параллельные порты (если установлены) – порты вывода данных;

PRN – принтер (синоним LPT1);

COM1, COM2 – последовательные порты коммуникации – порты ввода-вывода;

AUX – синоним COM1;

NUL – фиктивное устройство (бездонный файл) – только для вывода.

Логические файлы

Логический файл описывается с помощью переменной одного из файловых типов:

Var f : <файловый тип>.

Он связывается с физическим файлом путем присвоения переменной файлового типа имени физического файла:

assign(f, <имя физического файла>).

После этого все обращения к файлу производятся через файловую переменную f. Так поступают для унификации работы с файлами, чтобы можно было работать не с физическими устройствами ЭВМ, а с их логическими представителями.

 

Буфер

Ввод данных в файл и вывод их из файла организуется через буфер. Буфер – область в памяти, отводимая при открытии файла. Вначале все, что вводится (выводится), пишется в буфер. Только при наполнении или специальной команде сброса буфера происходит передача содержимого в файл.

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

При выводе на экран эффект буферизации отключается.

 

Файловые типы

В Турбо Паскале существует три типа файлов:

· текстовые файлы – TEXT;

· типизированные (компонентные) файлы – FILE OF <тип>;

· бестиповые файлы – FILE.

Например:

Var f1 : text;

f2 : file of real;

f3 : file;

Текстовые файлы содержат коды ASCII (в этом смысле они как бы типизированы).

Типизированные файлы хранят данные в виде машинных кодов. Прочитать их непосредственно нельзя, но зато легко производить обмен данными между диском и рабочей памятью.

Бестиповые файлы также хранят данные в виде кодов, но более грубо – в виде произвольного набора отдельных байтов. Чтение из такого файла должно производиться программным путем.

Минимальной единицей хранения для файлов всех типов является байт.

Файловую переменную нельзя присвоить другой файловой переменной.

При использовании файловых переменных в качестве формальных параметров необходимо использовать слово var, т.е. они всегда являются параметрами-переменными.

Процедуры, общие для всех типов файлов:

Процедура Действие
ASSIGN (var f, <имя файла> : string) Связывает файловую переменную f с именем физического файла
RESET(var f) Открывает файл с логическим именем f для чтения
REWRITE(var f) Открывает файл с логическим именем f для записи
СLOSE(var f) Закрывает канал ввода-вывода с логическим именем f
RENAME (var f, <новое имя файла>: string) Переименовывает физический файл, связанный с логическим файлом f, придавая ему <новое имя>. Применимо только к закрытому файлу
ERASE(var f) Стирает (удаляет) файл f. Файл должен быть закрытым (и существовать)
EOF(var f) Функция, принимающая значение true, если головка считывающего устройства достигла конца файла, и false – в противоположном случае

 

К команде RESET(f) (т.е. организации чтения) можно обращаться многократно, при этом каждый раз считывание начинается с первого элемента.

К команде REWRITE(f) также можно обращаться многократно, но при этом вся предыдущая информация стирается полностью.

Между повторными установками RESET или REWRITE не обязательно закрывать файл (т.е. не обязательно использовать CLOSE).

Команда CLOSE(f) должна лишь ОДИН раз закрывать ОТКРЫТЫЙ файл. Если не закрыть, то ошибка не будет зарегистрирована, но в случае записи в файл (rewrite) будет записана не вся информация, а только та, которую удалось переправить посредством буфера.

В новом имени файла при переименовании нельзя менять название диска.

Текстовые файлы состоят из строк длиной от 0 до 256 символов. Признак конца строки – #13 (как и ENTER). Он объединен с символом #10. Признак конца файла – #26 (как и ^Z). Эти символы на экран не выводятся.

Числа при записи в текстовый файл автоматически преобразуются в строки, при чтении – наоборот.

Для чтения из файла используются функции:

READ(f,<список переменных>) – считывает одно или более значений из логического файла f в одну или более переменных, указанных в списке;

READLN(f,<список переменных>) – выполняет те же действия, что и процедура Read, а затем делает переход на начало следующей строки файла.

Для записи в файл используются функции:

WRITE(f,<список выражений>) – записывает результаты выражений из списка в файл с логическим именем f;

WRITELN(f,< список выражений >) – выполняет те же действия, что и процедура Write, а затем делает переход на начало следующей строки файла.

По умолчанию размеры буфера для текстового файла – 128 бит. Для его изменения используется команда SetTextBoof(f, Buffer). Величина Buffer должна быть определена ранее в описательной части, например так:

Var Buffer : array[1..4*1024] of byte;

Эта команда должна быть использована до открытия файла (т.е. до команд RESET (f) или REWRITE(f)).

Рекомендуется размеры буфера устанавливать кратными 512: диск читается по секторам и дорожкам, длина считываемой информации колеблется от 512 до 4096 байт.

ДОПИСЫВАНИЕ текста (или чисел) в текстовый файл обеспечивается командой APPEND(f), которая должна употребляться только после CLOSE(f). После нее файл также должен быть закрыт.

Команды Eof(f) и SeekEOf(f) схожи; различие в том, что для SeekEOf(f) “прозрачны” пробелы, символы конца строки, символы #10 и символы табуляции #9.

Функция SeekEOLn(VAR FV:text):boolean возвращает True при достижении маркера конца строки, причем указатель файла пропускает все пробелы и знаки табуляции, предшествующие маркеру.

Функция SeekEOfF(VAR FV:text):boolean возвращает значение True, если указатель файла находится на маркере конца файла.

Пример выполнения лабораторной работы

Задание.

1. q = 'AB*1', a = 'DF#2', b = 'KM@3', W = -122×10-9, E = 156,

F = (1,2,3,4,5).

2. Найти разность R между максимальным и минимальным элементами массива

Программа для первой части задания:

program lab_8_1;

uses crt;

var

F :array [1..10] of integer; {Массив F}

teta,alfa,beta :string[4]; {Стринги}

w :real; {Вещественное число W}

e :integer; {Целое число Е}

i :integer; {Счетчик элементов массива F}

n :integer; {Количество элементов массива F}

fi,fo :text; {Файловые переменные fi,fo}

begin

clrscr;

assign (fi,'input8_1.pas'); {Файловой переменной fi}

{назначается файл input8_1.pas}

reset (fi); {Текстовый файл открывается для чтения}

readln(fi,teta,alfa,beta); {Чтение из файла первой строки}

readln(fi,w,e); {Чтение из файла второй строки}

readln(fi,n); {Чтение из файла третьей строки}

for i:=1 to n do read(fi,F[i]);{ Чтение из файла четвертой строки}

close(fi); {Закрывается прочитанный файл fi}

{Выводим информацию в файл:}

assign(fo,'out_8_1.pas'); {Файловой переменной fo}

{назначается файл out_8_1.pas}

rewrite(fo); {Текстовый файл fo открывается}

{для записи}

writeln(fo,' teta=',teta,' alfa=',alfa,' beta=',beta);

writeln(fo,' w=',w:12:9,' e=',e:4);

write(fo,' F=(');

for i:=1 to n do write(fo,F[i]:3);

writeln(fo,' )');

close(fo); {Закрывается файл fo,}

{созданный программой}

{выводим информацию на экран:}

writeln(' teta=',teta,' alfa=',alfa,' beta=',beta);

writeln(' w=',w:12:9,' e=',e:4);

write(' f=(');

for i:=1 to n do write(F[i]:3);

writeln(' )'); writeln; writeln;

writeln('Смотрите результаты в файле out_8_1.pas');

repeat until keypressed; {Ожидание нажатия клавиши}

end.

Файл исходных данных Input8_1.pas:

AB*1DF#2KM@3 -122E-9 156 1 2 3 4 5

 

Файл результата Out_8_1.pas:

teta=AB*1 alfa=DF#2 beta=KM@3 w=-0.000000122 e= 156 F=( 1 2 3 4 5 )

 

Программа для второй части задания:

 

program lab_8_2;

uses crt;

const MaxDim = 10; {максимальный размер матрицы}

type arr=array[1.. MaxDim,1.. MaxDim] of integer; {описание типа arr}

{для массива А }

var A : arr; {массив А}

R : integer; {разность}

Amax : integer; {максимальный элемент}

Amin : integer; {минимальный элемент}

i,j : integer; {счетчики по строкам, столбцам}

m : integer; {размер квадратной матрицы}

fi,fo : text; {файловые переменные}

begin

clrscr;

assign (fi, 'input8_2.pas'); reset (fi);

assign (fo, 'out_8_2.pas'); rewrite (fo);

readln (fi,m); {чтение размера матрицы из}

{первой строки файла}

if m>DimMax then {проверка размера матрицы}

begin

m:=DimMax;

writeln(‘Матрица из файла урезана до размера массива’);

end;

 

for i:=1 to m do {чтение из файла матрицы А}

begin

for j:=1 to m do read ( fi,A[i,j] );

readln(fi); {перевод указателя файла на новую строку}

end;

close( fi );

Amin:=A[1,1]; {начальные установки}

Amax:=A[1,1];

{поиск минимального и максимального элементов:}

for i:=1 to m do

for j:=1 to m do

begin

if A[i,j] < Amin then Amin:=A[i,j];

if A[i,j] > Amax then Amax:=A[i,j];

end;

R:=Amax-Amin; {разность}

writeln (fo,' Amax=',Amax,' Amin=',Amin,' Разность=',R);

writeln ('Amax=',Amax,' Amin=',Amin,' Разность=',R);

close (fo);

repeat until keypressed;

end.

 

Файл исходных данных Input8_2.pas:

 

12 4 -7 6 1 7 -8 3 2

 

Файл результата Out_8_2.pas:

Amax=12 Amin=-8 Разность=20

 

Варианты заданий

 

Задача 1

 

1. .

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21. .

22.

23.

24.

25..

26.

27.

28.

29.

30.

 

Варианты заданий для задачи 2взять из лабораторной работы № 5.

 

– Конец работы –

Эта тема принадлежит разделу:

ИНФОРМАТИКА

Национальный аэрокосмический университет им Н Е Жуковского... Харьковский авиационный институт... А В Карташов Ю А Скоб В А Халтурин И А Трофимова...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Теоретические сведения

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

ИНФОРМАТИКА
Учебное пособие по лабораторному практикуму   Харьков “ХАИ” 2005 УДК 681.3.06+519.6   Информатика / А.В. Карташов, Ю.А. Скоб, В.А. Ха

Элементы среды Турбо Паскаль
Среда Турбо Паскаль включает в себя редактор, компилятор, редактор связей и отладчик. В окне редактора первая строка содержит все команды главного меню: File– опе

Логический тип: BOOLEAN .
Отводится 1 байт памяти. Значением является множество из двух упорядоченных элементов с названием FALSE и TRUE. Форма изображения – запись соответствующего слова false или true.

Действительные типы величин.
Наиболее распространенная из этих форм – REAL. Для величин этого типа отводится 6–7 байт памяти. Допустимы положительные и отрицательные значения порядка 10-39…10+3

Процедуры ввода данных
  Для ввода значений величин типа: real, integer, char используется стандартная процедура, которую условно можно представить в следующем виде: read[ln][([файл], идентификатор

Процедура вывода данных
  Процедура вывода используется для стандартных типов данных вида real, integer, char, boolean и имеет вид write[ln][([файл],параметр1[:w1[:d1]],параметр2[:w2[:d2]],..)],

Теоретические сведения
Оператор условия if является одним из самых популярных средств, изменяющих естественный порядок выполнения операторов программы. Он может принимать одну из следующ

Теоретические сведения
  Очень часто при составлении программ встречается ситуация, когда действие необходимо выполнить некоторое количество раз. Здесь требуется оператор цикла. В языке Pasc

Вывод коэффициента рекуррентности q
        до цикла

Теоретические сведения
Простые типы данных определяют различные множества атомарных (неразделимых) значений. Составные или структурированные типы, в отличие от простых, задают множества «сложных» значений; каждое значени

Теоретические сведения
Подпрограмма – это специальным образом оформленный алгоритм, который может многократно использоваться при решении более общей задачи. В языке Pascal подпрограмма является частью осн

Теоретические сведения
Определение Запись – структура, состоящая из конечного числа компонент, называемых полями. Компоненты записи (поля) могут принадлежать разным типам. Компонента (поле) – пер

Теоретические сведения
  Модули пользователя Модуль в Турбо Паскале – специальным образом оформленная библиотека определений типов, констант, переменных, а также процедур и функций. Самостоя

Создание модуля
Модуль содержит: · заголовок модуля (UNIT <имя модуля>); · раздел объявлений – интерфейс : INTERFACE; · раздел реализаций – IMPLEMENTATION; · раздел инициа

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги