Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЯВУ.doc
Скачиваний:
6
Добавлен:
12.11.2019
Размер:
1.51 Mб
Скачать

Задания для самостоятельной работы

Выполните бинарный поиск с использованием рекурсивной функции.

Контрольные вопросы

  1. Опишите алгоритм работы последовательного поиска.

  2. Опишите алгоритм работы бинарного поиска.

  3. Можно ли выполнить бинарный поиск в массиве 3, 7, 1, 4, 8, 9. 12?

Лабораторная работа №12. Работа с файлами

Цель работы: Освоить работу с файлами в среде Delphi. Изучить процедуры и функции обработки файлов, обработку ошибок при работе с файлами.

Подготовка к работе:

  1. Изучить процедуры и функции для работы с файлами различных типов;

  2. Изучить методы обработки ошибок ввода/вывода.

Задание 1. Создать файл f, содержащий целые числа. Сформировать файл g, содержащий четные числа из файла f. Приложение должно иметь вид, приведенный на рисунке 12.1.

  1. Выполнить необходимые действия по созданию интерфейса пользователя

  2. Для события OnClick кнопки «Пуск» запишите программный код:

procedure TForm1.Button1Click(Sender: TObject);

VAR f,g:File of Integer;

i,n,x:Integer;

begin

AssignFile(f,'c:\f1.dat'); AssignFile(g,'c:\g1.dat');

// Количество компонент в файле f

n:=StrToInt(Edit1.Text);

// Заполнение файла f

Randomize; Rewrite(f);

For i:=1 to n do

begin

x:=-50 +Random(100); Write(f,x);

end;

// Вывод на экран файла f и формирование файла g

Reset(f);

Rewrite(g);

While not Eof(f) do

begin

Read(f,x); Memo1.Lines.Add(intToStr(x));

If x mod 2 =0 then Write(g,x);

end;

// Вывод на экран фала g

Reset(g);

While not Eof(g) do

begin

Read(g,x); Memo2.Lines.Add(intToStr(x));

end;

end;

ЗАДАНИЕ 2. Создать символьный файл f. Сформировать файл g, содержащий все компоненты файла f в обратном порядке. Приложение должно иметь вид (рис. 12.2).

  1. Выполнить необходимые действия по созданию интерфейса пользователя

  2. Для события OnClick кнопки «Пуск» запишите программный код:

procedure TForm1.Button1Click(Sender: TObject);

VAR f,g:File of Char; x:Char;

i,n,k:Integer;

begin

AssignFile(f,'c:\f2.dat');

AssignFile(g,'c:\g2.dat');

// Количество компонент в файле f

n:=StrToInt(Edit1.Text);

Randomize;

// Формирование файла f

Rewrite(f);

For i:=1 to n do

begin

x:=Chr(65+Random(26)); Write(f,x);

end;

// Вывод на экран файла f

Reset(f);

While not Eof(f) do

begin

Read(f,x); Memo1.Lines.Add(x);

end;

// Формирование файла g

k:=FileSize(f); Rewrite(g);

For i:= k-1 downto 0 do

begin

Seek(f,i); Read(f,x); Write(g,x);

end;

// Вывод на экран файла g

Reset(g);

While not Eof(g) do

begin

Read(g,x); Memo2.Lines.Add(x);

end;

end;