Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Тема 14






«Файлы. Типы файлов. Методы работы с файлами»

Цель: Познакомиться с организацией файлов.

Вопросы к допуску и защите:

1. Что такое файл? Для каких целей используются файлы?

2. Какими причинами диктуется целесообразность применения файлов?

3. Каким образом в Паскале объявляютсяфайлы?

4. Назовите общие и отличительные особенности текстовых, типизированных и нетипизированных фыайлов.

5. Зачем используется специальная файловая переменная? Как устонавливается соответствие файловой переменной файлу во внешней памяти?

6. Что общего у процедуры Reset и Rewrite и чем они отличаются?

7. Зачем применяется процедура Close?

8. Какие процедур ы применяются для переименования и удаления файлов? Каковы особенности их использования?

9. В чем заключается специфика текстовых файлов? Назначение процедуры Append.

10. Чем отличаются процедуры Read и Write от Readln и Writeln.

11. Назначение функций Eoln, Eof, Seek.

 

Примеры решения задач

Задача 1. Поставим задачей, записать в один файл произвольный массив чисел, затем прочесть их из файла, отсортировать по не убыванию методом пузырьковой сортировки и записать отсортированный массив в новый файл.

Решение

Способ

Program Problem1; { Обработка массивов с помощью файлов }

uses WinCrt; { пузырьковая сортировка }

const

name = 'd: \Bp\prakt\p23\array1.dat';

name1 = 'd: \Bp\Prakt\p23\array1.int';

n = 100;

type

v = file of integer;

t = array [1..n] of integer;

var

f, f1: v;

a: t;

i: integer;

{----------------------------------------------------------------------------------------}

{ Открытие файла f, соответствующего на диске файлу arra1.dat

и процедура заполнения его массивом произвольных целых чисел }

Procedure create(n: integer; var a: t; var f: v);

var

i: integer;

begin

assign(f, name); { доступ к файлу f }

{$i-}

rewrite(f); { открытие его для записи }

{$i+}

if ioresult < > 0 then writeln('Такой файл не существует');

randomize;

for i: = 1 to n do

begin

a[i]: = random(201) - 100;

write(f, a[i]) {запись элементов массива в файл f}

end;

close(f); {закрытие файла f}

end;

{---------------------------------------------------------------------------------------}

{Процедура, читающая элементы из файла f, сортирующая

элементы методом " пузыря" и записывающая отсортированный

массив в новый файл array1.int}

Procedure bubble(n: integer; var f1: v);

var

i, j, p: integer;

begin

assign(f, name); {доступ к файлу f}

assign(f1, name1); {доступ к файлу f1}

create(n, a, f);

{$i-}

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

{$i+}

if ioresult < > 0 then writeln('Такой файл не существует');

rewrite(f1); {открытие файла f1 для записи}

{$i+}

if ioresult < > 0 then writeln('Такой файл не существует');

for i: = 1 to n do read(f, a[i]); {чтение из файла f}

for i: = 2 to n do

for j: = n downto i do

if a[j] < a[j - 1] then

begin

p: = a[j];

a[j]: = a[j - 1];

a[j - 1]: = p

end;

for i: = 1 to n do write(f1, a[i]); {запись отсортированного

массива в файл f1 }

close(f); close(f1) {з закрытие файла f, закрытие файла f1 }

end;

{----------------------------------------------------------------------------------------}

{Основная программа, вызывающая отсортированные элементы

из файла f1 и выводящая их на экран}

begin

assign(f1, name1); { доступ к файлу f1 }

bubble(n, f1); { вызов процедуры сортировки }

{$i-}

reset(f1); { Открытие файла f1 для чтения }

{$i+}

if ioresult < > 0 then writeln('Такой файл не существует');

writeln('Отсортированный по не убыванию массив');

for i: = 1 to n do

begin

read(f1, a[i]); { Чтение элементов массива из файла f1 }

write(a[i], ' ') { Вывод их на экран }

end;

writeln;

close(f1) {Закрытие файла f1}

end.

Способ

Program Problem1a; { Обработка массивов с помощью файлов }

uses WinCrt; { пузырьковая сортировка }

const

name = 'd: \Bp\prakt\p23\array1.dat';

name1 = 'd: \Bp\Prakt\p23\array1.int';

n = 100;

type

v = file of integer;

t = array [1..n] of integer;

var

f, f1: v;

a: t;

i: integer;

{---------------------------------------------------------------------------------------}

{Процедура, читающая элементы из файла f, сортирующая

элементы методом " пузыря" и записывающая отсортированный

массив в новый файл array1.int}

Procedure bubble(n: integer; var f1: v);

var

i, j, p: integer;

begin

assign(f, name); {доступ к файлу f}

assign(f1, name1); {доступ к файлу f1}

create(n, a, f);

{$i-}

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

{$i+}

if ioresult < > 0 then writeln('Такой файл не существует');

rewrite(f1); {открытие файла f1 для записи}

{$i+}

if ioresult < > 0 then writeln('Такой файл не существует');

for i: = 1 to n do read(f, a[i]); {чтение из файла f}

for i: = 2 to n do

for j: = n downto i do

if a[j] < a[j - 1] then

begin

p: = a[j];

a[j]: = a[j - 1];

a[j - 1]: = p

end;

for i: = 1 to n do write(f1, a[i]); {запись отсортированного

массива в файл f1 }

close(f); close(f1) { закрытие файла f, закрытие файла f1 }

end;

{----------------------------------------------------------------------------------------}

{Основная программа, вызывающая отсортированные элементы

begin

assign(f1, name1); { доступ к файлу f1 }

bubble(n, f1); { вызов процедуры сортировки }

{$i-}

reset(f1); { Открытие файла f1 для чтения }

{$i+}

if ioresult < > 0 then writeln('Такой файл не существует');

writeln('Отсортированный по не убыванию массив');

for i: = 1 to n do

begin

read(f1, a[i]); { Чтение элементов массива из файла f1 }

write(a[i], ' ') { Вывод их на экран }

end;

writeln;

close(f1) {Закрытие файла f1}

end.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.