Примеры и задания для работы с файлами




Пример 1. Написать программу, которая вводит с клавиатуры три вещественных числа и записывает эти числа и их сумму в файл FXD.DAT.

PROGRAM FileFD;

VAR

y, x1, x2, x3: real;

FD: TEXT;

BEGIN

ASSIGN(FD, 'FXD.DAT');

READ(x1, x2, x3); {ввод трех чисел}

REWRITE(FD); {открыть файл для записи}

y:= x1 + x2 + x3;

WRITELN(FD,' x1=',x1,' x2=',x2,' x3=',x3); {вывод в файл x1,x2,x3}

WRITELN(FD,' сумма = ',y); {вывод в файл суммы}

CLOSE(FD); {закрыть файл}

END.

Пример 2. Вычислить суммы элементов в столбцах двумерного числового массива А[1..2,1..4], заданного в файле FILE1.dat. Полученные значения поместить в файл FILE2.dat.

Для решения задачи разработана СА (рис. 16) и программа:

 
 

 


 

 

Program lr_11;

Var

a: array [1..2,1..4] of integer;

s: array[1..4] of integer;

i, j: integer;

f1, f2: text; {объявление файловых переменных текстового типа}

Begin

ASSIGN(f1,’FILE1.dat’); {связывание f1 с физическим файлом}

ASSIGN(f2,’FILE2.dat’);

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

for i:=1 to 2 do

for j:=1 to 4 do

Read(f1, a[i, j]); {чтение из файла, связанного с f1 }

CLOSE (f1); {закрыть файл, связанный с f1}

REWRITE (f2); {открыть файл для записи}

WRITELN (f2,’ 1 2 3 4 - столбцы’); {вывод в файл через f2}

WRITELN (F2,’суммы по столбцам); {вывод в файл через F2}

for j:=1 to 4 do

begin

s[j]:= 0;

for i:=1 to 2 do

s[j]:= s[j] + a[i,j];

write(f2, s[j]:3) {вывод в файл через F2}

end;

CLOSE(F2) {закрыть файл, связанный с F2}

END.

Файл результатов

Исходный файл FILE2.dat

FILE1.dat 1 2 3 4 - столбцы

2 2 3 4 суммы по столбцам

5 2 3 4 7 4 6 8

 

Задания для самостоятельного выполнения

Задание 1

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

Задание 2

1. В текстовом файле Т1 записана последовательность целых чисел, разделенных пробелами. Написать программу, записывающую в текстовый файл Т2 все положительные числа из Т1.

2. В текстовом файле f1 записана последовательность чисел. Сформировать текстовый файл f 2, содержащий все числа в обратном порядке.

3. В текстовом файле Т1 записана последовательность чисел. Разработать программу, переписывающую в текстовый файл Т2 сначала все положительные числа из Т1, нуль, затем – все отрицательные числа.

4. В текстовом файле f 1 дана последовательность целых чисел, разделенных пробелами. Записать в текстовый файл F2 все положительные числа, а в файл F3 – отрицательные числа и нулевые элементы.

5. Сформировать файл из девяти строк, в первой из которых – одна единица, во второй – две двойки,…, в девятой – девять девяток.

6. Даны два файла F1, F2. Сформировать третий файл F, в который сначала записать все элементы файла F1, а затем – элементы файла F2.

7. Элементы каждого из заданных в двух файлах массивов X и Y упорядочены по возрастанию. Объединить элементы этих двух массивов в один файл F с упорядочением их по возрастанию.

8. В заранее подготовленном файле K задан массив из 15 целых чисел. Выделить в другой файл те элементы массива K, индексы которых являются степенями двойки.

9. В текстовом файле S1 записана последовательность из N*K чисел. Написать программу, формирующую в файле S2 матрицу из N строк по K чисел в каждой строке.

10. В файле W задан массив из девяти элементов. В новом файле WW сформировать массив, в котором каждому элементу будет присвоено значение соседнего с ним справа. Последнему элементу присвоить значение первого.

11. В файле D1 задана квадратная матрица вещественных чисел. Сформировать файл D2, в котором поменять местами первую и последнюю строки.

12. В текстовом файле F подготовить последовательность целых чисел, разделенных пробелами. Написать программу, записывающую в текстовый файл FF все различные значения, встречающиеся в файле F.

13. В файле X1 задана матрица целых чисел. Сформировать файл Х2, в котором все элементы с четными номерами строки и столбца матрицы заменить нулем (стереть).

14. В файле X задан массив из 20 чисел. Упорядочить его по возрастанию и занести в файл Y.

15. Задана в файле строка текста. Выполнить все циклические сдвиги слов в заданном тексте влево. Каждый полученный при этом текст вывести в другой файл.

16. В файле Y1 задана матрица вещественных чисел. Сформировать файл Y2, в котором строки матрицы упорядочены по убыванию элементов первого столбца.

17. В файле дан текст из 20 символов. Напечатать сначала все цифры, входящие в него, затем латинские буквы, далее русские буквы и все остальные литеры, сохраняя при этом взаимное расположение символов в каждой из четырех групп. Создать четыре новых файла, каждый из которых содержит свою группу символов.

18. Имеется текстовый файл BOOK. Написать программу, которая игнорирует исходное деление этого файла на строки, переформирует его, разбивая на строки так, чтобы каждая строка оканчивалась точкой либо содержала ровно 40 литер, если среди них нет точки.

19. Имеется текстовый файл T. Вывести в новый файл и напечатать первую из самых коротких его строк.

20. Имеется текстовый файл, содержащий фразу. Написать программу, которая считывает из файла литеры до первой точки и записывает их (без точки) в другой текстовый файл, формируя в нем строки по 20 символов (в последней строке литер может быть меньше).

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: