Загрузка данных


Вот готовый отчет по практическому занятию № 39, составленный на основе предоставленных вами фотографий.

---

ОТЧЕТ

по практическому занятию № 39

Тема: Разработка программ работы с текстовыми файлами на Pascal ABC
Цель: Научиться работать с текстовыми файлами.

---

Ответы на контрольные вопросы:

1. Что такое текстовый файл?
   Текстовый файл в Паскале — это последовательность строк произвольной длины, разделенных между собой метками конца строки, а весь файл заканчивается меткой конца файла. Это файл, в котором хранится текстовая информация (символы).
2. Какие существуют виды текстовых файлов?
   По описанию и режиму работы файлы делятся на:
   · Текстовые (text) — файлы со строками неопределенной длины;
   · Типизированные (file of <тип>) — файлы с типом записей (двоичные);
   · Нетипизированные (file) — файлы без типа для передачи данных блоками.
3. Как описать файловые переменные?
   Описание происходит в разделе var.
   Примеры:
   f: text; (текстовый файл)
   f1: file of char; (типизированный файл)
   f2: file; (нетипизированный файл)
4. Как открыть файл?
   Сначала файловая переменная связывается с реальным файлом на диске процедурой Assign(f, 'путь_к_файлу');.
   Затем файл открывается:
   · Reset(f); — для чтения существующего файла;
   · Rewrite(f); — для записи (создания нового или очистки старого);
   · Append(f); — для добавления информации в конец файла.
5. Как прочитать файл?
   Файл должен быть открыт процедурой Reset. Чтение осуществляется процедурами Read(f, список_переменных) или ReadLn(f, список_переменных). Чтение происходит последовательно, от начала к концу.
6. Как записать в файл?
   Файл должен быть открыт процедурой Rewrite или Append. Запись осуществляется процедурами Write(f, список_переменных) или WriteLn(f, список_переменных).

---

Выполнение практического задания:

(Примечание: в коде указаны пути к файлам, как в задании, но для работы на вашем ПК убедитесь, что папки для файлов существуют, или измените пути на удобные для вас, например, просто 'text.txt')

Задание 1

В файле text.txt записаны строки. Вывести первую и третью из них на экран. (Предварительно создайте файл text.txt с тремя строками).

```pascal
var
  filetext: text;
  a, b, c: string;
begin
  { Связываем переменную с файлом }
  assign(filetext, 'c:\text.txt'); 
  { Открываем для чтения }
  reset(filetext); 
  { Читаем 1-ю строку }
  readln(filetext, a); 
  { Читаем 2-ю строку (пропускаем) }
  readln(filetext, b); 
  { Читаем 3-ю строку }
  readln(filetext, c); 
  { Закрываем файл }
  close(filetext); 
  { Выводим 1 и 3 строки }
  writeln(a);
  writeln(c);
end.
```

Задание 2

Считать из файла input.txt числа (записаны в столбик). Найти их произведение и записать в файл output.txt.

```pascal
var
  p, x: integer;
  f: text;
begin
  assign(f, 'input.txt');
  reset(f);
  p := 1;
  { Читаем пока не достигнут конец файла }
  while not eof(f) do begin
    readln(f, x);
    p := p * x;
  end;
  close(f);
  
  { Запись результата в другой файл }
  assign(f, 'output.txt');
  rewrite(f);
  writeln(f, 'Произведение чисел ', p);
  close(f);
end.
```

Задание 3

Дана строка S и текстовый файл. Добавить строку S в начало файла.

```pascal
var
  F_in, F_out: Text;
  Name, S: String;
begin
  Write('S: ');
  Readln(S);
  
  { Имена файлов }
  Name := 'text.txt'; 
  
  Assign(F_in, Name);
  Reset(F_in);
  
  { Создаем временный файл }
  Assign(F_out, 'text1.txt');
  Rewrite(F_out);
  
  { Сначала записываем новую строку }
  Writeln(F_out, S);
  
  { Затем копируем старый файл }
  While not eof(F_in) do
  begin
    Readln(F_in, S);
    Writeln(F_out, S);
  end;
  
  { Закрываем оба файла }
  Close(F_in);
  Close(F_out);
  
  { Удаляем старый файл и переименовываем новый }
  Erase(F_in);
  Rename(F_out, Name);
end.
```

Задание 4

Создать текстовый файл с 3 предложениями. Прочитать его, вывести на экран и определить длину каждого предложения.

```pascal
Program File_text;
var
  f1: text;
  st: string;
  n: byte;
begin
  { Связываем с файлом и создаем его }
  assign(f1, 'file1.txt');
  rewrite(f1);
  
  { Записываем предложения }
  writeln(f1, 'Очень полезно изучать');
  writeln(f1, 'всем студентам');
  writeln(f1, 'язык Pascal');
  close(f1);
  
  { Открываем для чтения }
  reset(f1);
  
  { Читаем и выводим }
  while not eof(f1) do begin
    readln(f1, st);
    writeln(st);
    n := length(st);
    writeln(' длина = ', n);
  end;
  
  close(f1);
end.
```

---

Вывод: В ходе выполнения практической работы я изучил(а) основные операции с текстовыми файлами в среде Pascal ABC: создание, открытие (Reset, Rewrite, Append), чтение (Read, ReadLn), запись (Write, WriteLn) и закрытие (Close).