Презентация на тему: Программирование на языке Паскаль

Реклама. Продолжение ниже
Программирование на языке Паскаль
Файлы
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Принцип сэндвича !!!
Программирование на языке Паскаль
Программирование на языке Паскаль
Работа с файлами
Программирование на языке Паскаль
Последовательный доступ
Пример
Программа
Задания
Обработка массивов
Чтение данных в массив
Программа
Задания
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
Программирование на языке Паскаль
1/34
Средняя оценка: 4.5/5 (всего оценок: 52)
Код скопирован в буфер обмена
Скачать (277 Кб)
Реклама. Продолжение ниже
1

Первый слайд презентации: Программирование на языке Паскаль

Типизированн ые файлы

Изображение слайда
Изображение для работы со слайдом
1/2
2

Слайд 2: Файлы

2 Файл – это область на диске, имеющая имя. Файлы только текст без оформления, не содержат управляющих символов (с кодами < 32) ACSII (1 байт на символ) UNICODE ( 2 байта на символ) *.txt, *.log, *.htm, *.html могут содержать любые символы кодовой таблицы *.doc, *.exe, *.bmp, *.jpg, *.wav, *.mp3, *.avi, *.mpg Текстовые Двоичные Папки (каталоги)

Изображение слайда
Изображение для работы со слайдом
1/2
3

Слайд 3

3 Бинарные файлы бывают двух видов типизированные, нетипизированные. К типизированным относятся файлы, содержащие данные строго определенного типа. Обычно такие файлы представляются собой наборы записей. К нетипизированным относятся двоичные файлы, которые могут содержать любые совокупности байтов данных без привязки к какому-нибудь одному типу. Разновидности файлов

Изображение слайда
1/1
4

Слайд 4

4 Доступ к компоненту файла осуществляется через указатель файла. При выполнении операции чтения или записи указатель автоматически перемещается на следующий компонент: Организация файла

Изображение слайда
Изображение для работы со слайдом
1/2
5

Слайд 5

5 Файловая переменная типизированного файла описывается как: Описание типизированных файлов Туре <идентификатор файловой переменной> = file оf <тип компонента>; где <тип компонента> - любой тип данных, кроме файлового. Типизированные файлы используют, когда обрабатывают хранящуюся в файле последовательность компонентов одинаковой длины (чисел, записей и т.п.).

Изображение слайда
1/1
6

Слайд 6

6 Как и любая переменная языка Паскаль, файловая переменная может быть описана в инструкции объявления переменных. Например: Описание файлов Var F1: file of real; F2: file of char ; F3: file of integer; или с предварительным объявлением типа: Туре FF = file of integer; Var F 1: FF;

Изображение слайда
1/1
7

Слайд 7

7 Связь между физическим файлом и файловой переменной устанавливается специальной процедурой. Процедура Инициализация файловой переменной инициализирует файловую переменную f, связывая ее с файлом или логическим устройством, определенным строкой s t. Если файл находится в текущем каталоге, то достаточно указать имя файла и его расширение. В противном случае необходимо указать полное имя файла Assign (f, s t: string)

Изображение слайда
1/1
Реклама. Продолжение ниже
8

Слайд 8

8 Например: Инициализация файловой переменной Туре F = file of real; Var f1, f2, f3: F; ... Assign (fl, 'T1.dat'); {связывание файловой переменной с файлом в текущем каталоге} Assign (f2, 'd:\iva\a.dat'): {связывание файловой переменной с файлом в указанном каталоге}

Изображение слайда
1/1
9

Слайд 9

9 Процедура Открытие файла открывает файл, определенный файловой переменной f для чтения. При выполнении этой процедуры указатель файла устанавливается на первый компонент файла. Re s et( f );

Изображение слайда
1/1
10

Слайд 10

10 При открытии для чтения несуществующего файла регистрируется ошибка выполнения, а функция lOResult типа Word возвращает значение, отличное от 0 (см. далее описание функции). Отключив контроль операций ввода-вывода и используя функцию lOResult, можно организовать проверку наличия файла с указанным именем на диске: Открытие файла Var f: file of char; Begin Assign(f, 'a.dat'); {инициализация файловой переменной} {$ I- } {отмена контроля ошибок ввода-вывода } ReSet (f); {открытие файла для чтения} {$ I + } {включение контроля ошибок} if IOResult <>0 then WriteLn ('Файл не существует'); else WriteLn('Файл существует');

Изображение слайда
1/1
11

Слайд 11

11 Процедура Открытие файла открывает файл, определенный файловой переменной f, для записи. При открытии для записи существующего файла старый файл уничтожается без предварительной проверки и выдачи предупреждения пользователю. Если файла с таким именем не существовало, то он создается и подготавливается к записи (физически – очищается буфер). Re w rite( f )

Изображение слайда
1/1
12

Слайд 12

12 Закрытие файла, открытого для записи или чтения, осуществляется процедурой Закрытие файла Close( f ) При этом вновь созданный файл регистрируется в каталоге. ! Поскольку любое обращение к диску осуществляется через буферную память, часть данных, выводимых в файл, может остаться в буфере. Процедура закрытия файла обеспечивает вывод оставшихся компонентов из буфера в файл. Связь файловой переменной с файлом при закрытии сохраняется, и при повторном использовании этого же файла процедуру Assign применять еще раз не требуется.

Изображение слайда
1/1
13

Слайд 13

13 Процедура Стандартные процедуры и функции обслуживания типизированных файлов осуществляет чтение очередных компонентов типизированного файла. Список переменных ввода содержит одну или несколько переменных того же типа, что и компоненты файла, разделенных запятыми. Если файл исчерпан, обращение к процедуре вызывает ошибку ввода-вывода. Read( f, с1, с2,...,с n)

Изображение слайда
1/1
14

Слайд 14

14 Процедура Стандартные процедуры и функции обслуживания типизированных файлов осуществляет запись данных в типизированный файл. Список вывода содержит одно или более выражений того же типа, что и компоненты файла, разделенных запятыми. Write ( f, с1, с2,...,с n) При работе с типизированными файлами процедура Writeln не используется. !

Изображение слайда
1/1
Реклама. Продолжение ниже
15

Слайд 15

15 Процедура Стандартные процедуры и функции обслуживания типизированных файлов осуществляет установку указателя файла ( переход ) на компонент файла с номером numcomp. Seek(f, numcomp: word) Например, Seek(f, 9); осуществляет переход к десятой записи в файле f.

Изображение слайда
1/1
16

Слайд 16

16 Функция Стандартные процедуры и функции обслуживания типизированных файлов возвращает количество компонент файла, указанного файловой переменной. Может использоваться для установки на конец файла совместно с Seek() или на последнюю запись файла соответственно: FileSize(f) : longint Seek(f, FileSize(f)); Seek(f, FileSize(f)-1); Функция возвращает порядковый номер компонента, который будет обрабатываться следующей операцией ввода-вывода. FilePos(f): longint

Изображение слайда
1/1
17

Слайд 17: Принцип сэндвича !!!

17 I этап. открыть файл : связать переменную f с файлом открыть файл (сделать его активным, приготовить к работе) assign(f, 'qq.txt'); reset(f); { для чтения } rewrite(f); { для записи } II этап : работа с файлом Переменная типа «текстовый файл» или типизированный файл: var f: file of < тип >; f1:text; III этап : закрыть файл close(f); read ( f, n ); { прочитать значение в n } write ( f, n ); { записать значение n в файл } writeln ( f1, n ); {c переходом на нов.строку } append(f1); { для до записи }

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
Изображение для работы со слайдом
1/4
18

Слайд 18

18 После открытия файла для чтения или записи указатель файла стоит в его начале и указывает на первый компонент, имеющий номер 0. После каждого чтения или записи указатель сдвигается к следующему компоненту файла. Поскольку длина каждой компоненты файла строго постоянна, помимо последовательного возможно осуществление прямого доступа к компонентам файла. Удаление компонент обычно требует перезаписи файла. Обработка типизированного файла

Изображение слайда
1/1
19

Слайд 19

19 Добавление компонентов в конец файла выполняется в режиме записи. Для этого указатель файла устанавливается на его конец (как показано выше), после чего все выводимые компоненты дописываются в конец файла. Добавление компонентов в середину или начало файла может выполняться следующим образом: определяем место, в которое должны быть добавлены элементы, все последующие компоненты переписываем во временный файл, вставляем новые компоненты дописываем в файл компоненты, переписанные во временный файл. Обработка типизированного файла

Изображение слайда
1/1
20

Слайд 20: Работа с файлами

20 Особенности: имя файла упоминается только в команде assign, обращение к файлу идет через файловую переменную файл, который открывается на чтение, должен существовать если файл, который открывается на запись, существует, старое содержимое уничтожается, иначе создается нов ый при завершении программы все файлы закрываются автоматически после закрытия файла переменную f можно использовать еще раз для работы с другим файлом

Изображение слайда
Изображение для работы со слайдом
1/2
21

Слайд 21

21 Функция Стандартные процедуры и функции обслуживания файлов определяет конец файла. Как было отмечено выше, размер файла при его создании не фиксируется. Поэтому в процессе работы требуется проверка достижения конца файла. Функция принимает значение TRUE, если указатель стоит в конце файла (после последней записи). При этом, если производится чтение, то это означает, что файл исчерпан, а если идет запись, то новая запись дописывается в конец файла. Функция принимает значение FALSE, если конец файла еще не достигнут. EOF( f ):boolean

Изображение слайда
1/1
22

Слайд 22: Последовательный доступ

22 при открытии файла курсор устанавливается в начало чтение выполняется с той позиции, где стоит курсор после чтения курсор сдвигается на первый непрочитанный символ 12 5 45 67 56 ● конец файла end of file, EOF(f) 12 5 45 67 56 ● assign ( f, 'qq.dat' ); reset ( f ); read ( f, x ); как вернуться назад? close ( f ); reset ( f ); { начать с начала }

Изображение слайда
Изображение для работы со слайдом
1/2
23

Слайд 23: Пример

23 Задача: в файле input.dat записаны числа, сколько их – неизвестно. Записать в файл output.dat их сумму. Алгоритм: Открыть файл input.dat для чтения. S := 0; Если чисел не осталось, перейти к шагу 7. Прочитать очередное число в переменную x. S := S + x; Перейти к шагу 3. Закрыть файл input.dat. Открыть файл output.dat для записи. Записать в файл значение S. Закрыть файл output.dat. Можно ли обойтись без массива ? ? цикл с условием « пока есть данные»

Изображение слайда
Изображение для работы со слайдом
1/2
24

Слайд 24: Программа

24 p rogram qq; var s, x: integer; b egin assign(f, 'input. dat '); reset(f); s := 0; close(f); end. while not eof(f) do begin read(f, x); s := s + x; end; f: file of integer ; eof(f) логическая функция, возвращает True, если достигнут конец файла assign(f, 'output. dat '); rewrite(f); write(f, s); close(f); запись результата в файл output.dat

Изображение слайда
Изображение для работы со слайдом
1/2
25

Слайд 25: Задания

25 В файле data.dat записаны числа, сколько их – неизвестно. «3»: Найти сумму чётных чисел и записать её в файл output.dat. «4»: Найти минимальное и максимальное из четных чисел и записать их в файл output.dat. «5»: Найти длину самой длинной цепочки одинаковых чисел, идущих подряд, и записать её в файл output.dat.

Изображение слайда
Изображение для работы со слайдом
1/2
26

Слайд 26: Обработка массивов

26 Задача: в файле input.dat записаны числа, сколько их – неизвестно, но не более 100. Переставить их в порядке возрастания и записать в файл output.dat. Проблемы: для сортировки надо удерживать в памяти все числа сразу (массив); сколько чисел – неизвестно. Решение: выделяем в памяти массив из 100 элементов; записываем прочитанные числа в массив и считаем их в переменной N ; сортируем первые N элементов массива; записываем их в файл. Можно ли обойтись без массива ? ?

Изображение слайда
Изображение для работы со слайдом
1/2
27

Слайд 27: Чтение данных в массив

27 var A: array[1..100] of integer; f: file of integer; function ReadArray (var m: array[1..100] of integer) :integer; var i: integer; begin assign(f, 'input. dat '); reset(f); i := 0; close(f); ReadArray := i; end ; Глобальные переменные: Функция: ввод массива, возвращает число элементов while (not eof(f)) and (i < 100) do begin i := i + 1; read(f, M [i]); end; ReadArray := i; цикл заканчивается, если достигнут конец файла или прочитали 100 чисел

Изображение слайда
Изображение для работы со слайдом
1/2
28

Слайд 28: Программа

28 program qq; var A: array[1..100] of integer; f: file of integer; N, i: integer; Begin N := ReadArray (A) ; { сортировка первых N элементов } end. function ReadArray (var m:array[1..100] of integer):integer ; ... end; assign(f, 'output. dat '); rewrite(f); for i:=1 to N do write(f, A[i]); close(f); запись отсортированного массива в файл

Изображение слайда
Изображение для работы со слайдом
1/2
29

Слайд 29: Задания

29 В файле input.dat записаны числа, известно, что их не более 100. «3»: Отсортировать массив по убыванию и записать его в файл output.dat. «4»: Отсортировать массив по убыванию последней цифры и записать его в файл output.dat. «5»: Отсортировать массив по возрастанию суммы цифр и записать его в файл output.dat.

Изображение слайда
Изображение для работы со слайдом
1/2
30

Слайд 30

30 Разработать программу, создающую файл, компонентами которого являются символы, введенные с клавиатуры. Затем эта программа должна : организовывать чтение символов из файла находить указанный символ в файле и удалять его из файла. Пример

Изображение слайда
1/1
31

Слайд 31

31 Пример Program ex; Var f, f1: file of char; { две файловые переменные} ch, i: char; name: string; Begin WriteLn('Введите имя файла:'); ReadLn(name); {создание и открытие файла} Assign(f, name + '.dat'); {связываем файл с файловой переменной} ReWrite(f); {открываем файл для записи (создаем)} WriteLn('Вводите символы или ‘*’:');

Изображение слайда
1/1
32

Слайд 32

32 Пример {занесение записей в файл} while ch<>’*’ do {пока не введено символ ‘*’} begin ReadLn(ch); {вводим символ с клавиатуры} Write(f, ch); {записываем символ в файл} end; Close(f); { закрываем файл} WriteLn; {последовательное чтение записей из файла} Reset(f); {открываем файл для чтения} while not EOF(f) do {пока не достигнут конец файла} begin Read(f, ch); {читаем символ из файла} Write(ch, ' '); {выводим символ на экран} end; WriteLn;

Изображение слайда
1/1
33

Слайд 33

33 Пример WriteLn (’Введите символ для удаления:’); ReadLn(ch); {подготовка к удалению записей: переименование исходного файла и открытие нового файла с тем же именем} Close(f); {закрываем файл} ReName(f, name + '.bak'); {переименовываем файл} ReSet(f); {открываем файл для чтения} Assign(f1, name + '.dat'); {связываем новый файл с переменной} ReWrite(f1); {открываем новый файл для записи} {удаление записей - перепись остающихся записей в др. файл} while not EOF(f) do begin Read(f, i); {читаем символ из файла} if i<>ch then Write(f1, i); {если символ не подлежит удалению, то записываем его в новый файл} end; Erase(f); {удаляем старый файл, после закрытия в нем ничего не изменилось, поэтому повторно его можно не закрывать}

Изображение слайда
1/1
34

Последний слайд презентации: Программирование на языке Паскаль

34 Пример {последовательное чтение записей из нового файла} ReSet(f1); {открываем новый файл для чтения} while not EOF(f1) do begin Read(f1, Ch); {читаем из файла} Write(ch, ' '); end; WriteLn; End.

Изображение слайда
1/1
Реклама. Продолжение ниже