Основы алгоритмизации и программирования. Часть четвертая. Файловая система Turbo Pascal. Асламова В.С - 14 стр.

UptoLike

27
Если заданного формата не хватило, то он проигнорируется. При не-
корректном задании формата для чисел типа real (например: var x:real
writeln (x:3:4)) игнорируется только его первый параметр, а число знаков по-
сле точки устанавливается, сколько задано, но не превышает точности типа.
Можно выводить вещественные числа без дробной части:
Write (123.456: 6: 0); {123}
Можно задавать выравнивание по левому краю (в этом случае значение
пишется с текущей порции без предшествующих пробелов). При этом зани-
мается поле = длина значения, никаких пробелов справа не дописывается.
Для задания такого режима следует ближайшее поле задать отрицательное:
Writeln (123.456: -6: 1, 15: -8); {123.5 и 15}
Форматы имеют смысл лишь при работе с текстовыми файлами, при-
чем нельзя задавать форматы-шаблоны, как в Фортране или в Бейсике.
Пример:
Запись n чисел в текстовый файл и выдача n натуральных чисел на
принтер. Принтер воспринимается как текстовый файл. В модуле принтера
есть описание var lst:txt, которое связывает имя lst с каналом устройства
LPT1.
Uses printer;
var i, n: integer;
zahl:text;
begin
writeln(ввод n); readln(n);
assign(zahl, zahl.txt);
rewrite(zahl);
for i=1 to n do begin
writeln(lst, i:i); {вывод на принтер}
writeln(zahl, i:i); {запись числа i в файл}
end;
close(zahl);
end.
28
Практические задания на создание и обработку тек-
стовых файлов
1. В текстовом файле d переписать все четные числа из файла f.
2. Сформировать текстовый файл d из файла f, включая в него стро-
ки, которые начинаются на гласную букву.
3. Пусть текстовый файл t разбит на непустые строки. Написать про-
грамму для подсчета числа строк, которые оканчиваются буквой z.
4. Написать программу, которая находит максимальную (минималь-
ную) длину строк текстового файла t.
5. Написать программу, переписывающую содержимое текстового
файла t2 в текстовый файл t1 (с сохранением деления на строки).
6. Написать программу, которая подсчитывает количество пустых
строк в текстовом файле t.
7. В текстовом файле t записана непустая последовательность веще-
ственных чисел, разделенных пробелами. Написать программу для
нахождения
а) наибольшего из этих чисел;
б) наименьшего из чисел записи.
8. Пусть текстовый файл t разбит на непустые строки. Написать про-
грамму для подсчета числа строк, которые начинаются с буквы d.
9. Пусть текстовый файл t разбит на непустые строки. Написать про-
грамму для подсчета числа строк, которые начинаются и оканчиваются одной
и той же литерой.
10. Пусть текстовый файл t разбит на непустые строки. Написать про-
грамму для подсчета числа строк, которые состоят из одинаковых литер.
11. В текстовом файле t1 записана последовательность целых чисел,
разделенных пробелами. Написать программу, записывающую в текстовый
файл t2
а) все положительные числа;
б) все отрицательные числа;
в) неповторяющиеся числа;
г) числа кратные пяти из файла t1
12. Написать программу, которая построчно печатает содержимое не-
пустого текстового файла t, вставляя в начало каждой печатаемой строки ее
порядковый номер (он должен занимать 4 позиции), и пробел.
                                                                               Практические задания на создание и обработку тек-
       Если заданного формата не хватило, то он проигнорируется. При не-                        стовых файлов
корректном задании формата для чисел типа real (например: var x:real
writeln (x:3:4)) игнорируется только его первый параметр, а число знаков по-         1. В текстовом файле d переписать все четные числа из файла f.
сле точки устанавливается, сколько задано, но не превышает точности типа.
                                                                                     2. Сформировать текстовый файл d из файла f, включая в него стро-
       Можно выводить вещественные числа без дробной части:
                                                                               ки, которые начинаются на гласную букву.
       Write (123.456: 6: 0);            {′123′}
                                                                                      3. Пусть текстовый файл t разбит на непустые строки. Написать про-
      Можно задавать выравнивание по левому краю (в этом случае значение       грамму для подсчета числа строк, которые оканчиваются буквой z.
пишется с текущей порции без предшествующих пробелов). При этом зани-                 4. Написать программу, которая находит максимальную (минималь-
мается поле = длина значения, никаких пробелов справа не дописывается.         ную) длину строк текстового файла t.
Для задания такого режима следует ближайшее поле задать отрицательное:                5. Написать программу, переписывающую содержимое текстового
      Writeln (123.456: -6: 1, 15: -8); {′123.5′ и ′15′}                       файла t2 в текстовый файл t1 (с сохранением деления на строки).
      Форматы имеют смысл лишь при работе с текстовыми файлами, при-                  6. Написать программу, которая подсчитывает количество пустых
чем нельзя задавать форматы-шаблоны, как в Фортране или в Бейсике.             строк в текстовом файле t.
                                                                                      7. В текстовом файле t записана непустая последовательность веще-
      Пример:
      Запись n чисел в текстовый файл и выдача n натуральных чисел на          ственных чисел, разделенных пробелами. Написать программу для
принтер. Принтер воспринимается как текстовый файл. В модуле принтера          нахождения
есть описание var lst:txt, которое связывает имя lst с каналом устройства             а) наибольшего из этих чисел;
LPT1.                                                                                 б) наименьшего из чисел записи.
                                                                                      8. Пусть текстовый файл t разбит на непустые строки. Написать про-
      Uses printer;                                                            грамму для подсчета числа строк, которые начинаются с буквы d.
      var i, n: integer;
      zahl:text;                                                                      9. Пусть текстовый файл t разбит на непустые строки. Написать про-
      begin                                                                    грамму для подсчета числа строк, которые начинаются и оканчиваются одной
        writeln(′ввод n′); readln(n);                                          и той же литерой.
        assign(zahl, ′zahl.txt′);                                                     10. Пусть текстовый файл t разбит на непустые строки. Написать про-
        rewrite(zahl);                                                         грамму для подсчета числа строк, которые состоят из одинаковых литер.
        for i=1 to n do begin
          writeln(lst, i:i);                 {вывод на принтер}                       11. В текстовом файле t1 записана последовательность целых чисел,
          writeln(zahl, i:i);                {запись числа i в файл}           разделенных пробелами. Написать программу, записывающую в текстовый
        end;                                                                   файл t2
        close(zahl);                                                                  а) все положительные числа;
      end.
                                                                                      б) все отрицательные числа;
                                                                                      в) неповторяющиеся числа;
                                                                                      г) числа кратные пяти из файла t1
                                                                                      12. Написать программу, которая построчно печатает содержимое не-
                                                                               пустого текстового файла t, вставляя в начало каждой печатаемой строки ее
                                                                               порядковый номер (он должен занимать 4 позиции), и пробел.
                                        27                                                                          28