Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[16]

close(fl); END.

Здесь полагается что в файле F1. txt записаны данные, которые в редакторе текста имеют вид:

Леонтьев 5 4 4 5 4 3 Ивлев 4 5 3 4 3 4

и т. д.

После считывания данных в программе происходит их сортировка перебором и запись в файл F2. txt в алфавитном порядке первой буквы фамилии.

Примечание: Линейный массив "S" строкового типа можно представить как двумерный массив "S" символьного типа. Здесь первый индекс соответствует номеру элемента одномерного массива "S", а второй - номеру символа в элементе одномерного массива "S".

При считывании данных из файла неопределенной длины можно использовать функцию EoF(f); возвращающую признак конца файла, а именно: EoF(f) равен True если указатель стоит на признаке конца файла (код #26), иначе EoF(f) равен False. Приведем пример операторов для считывания текста из файла FF1. t, кодировки текста и записи в файл FF2. t с сохранением кода #13.

assign(f1, FF1. t); reset(fl); assign(f2, FF2. t); rewrite(f2);

while not EoF(fl) do begin read(f1,c); {считываем переменную типа Char } if c <> #13 then c:=pred(c); write(f2,c) {кодируем и выводим на экран } end;

Практическое задание N 1. 26

1.В первой программе рассчитать значения функции Y=sin(x) при изменении "х" с шагом 0. 01 в диапазоне от 0 до 3. Записать в файл F1. txt значения "х" и "у". Во второй программе считать из файла F1. txt значения "х" и "у", рассчитать значения функций Z1=y2, Z2=y3 и добавить значения Z1, Z2 в конец файла F1. txt.

2.Выполнить пункт 1 для функции Y=ex .

3.Записать в файл F1. d массив отрицательных целых чисел "A" по убыванию, а в файл F2. d массив положительных целых чисел "A" по возрастанию. Массив "A" из 25 целых чисел задается в диапазоне от -10 до +10 функцией Random.

4.Записать в файл F1. d массив четных целых чисел "A" по убыванию, а в файл F2. d массив нечетных целых чисел "A" по возрастанию. Массив "A" из 30 целых чисел задается в диапазоне от 0 до 20 функцией Random.

Примечание к п. п. 3, 4: одинаковые числа должны располагаться в одной строке.

5.Записать в конец файла F1. t список из фамилий (в алфавитном порядке) с оценками по пяти предметам. Список фамилий (в произвольном порядке) с оценками считывается из файла F1. t, предварительно набранного в редакторе текста.

6.Зашифровать текст, считанный из файла F1. t, предварительно набранного в редакторе текста и записать в конец файла F1. t. Во второй программе дешифровать текст и добавить в конец файла F1.t. Алгоритм шифровки разработать самостоятельно.

close(f2);


В Турбо-Паскале имеется возможность программной установки атрибутов файла. Атрибуты устанавливаются для закрытых файлов после связи файловой переменной с именем файла на диске.

Узнать исходный атрибут файла можно процедурой

Установить атрибут файла можно процедурой

GetFattr(f,

SetFattr(f,

Здесь f - имя файловой переменной,

af - имя переменной исходного, либо устанавливаемого атрибута (тип Word). Стандартные атрибуты файла (обозначим "ads") заданы в модуле DOS константами:

Наименование

Константа "ads" Д

Значение ко воичное

нстанты "ads" Шестнадцатиричное

Только для чтения

Скрытый файл Системный файл Архивный файл

ReadOnly

Hidden System

0000 0001

0000 0010 0000 0100

0010 0000

$02 $04 $20

При "добавлении" стандартных атрибутов файла "ads" необходимо учитывать исходный атрибут "af". Например, если файл имеет исходный атрибут ReadOnly, то выражение af:= af + ReadOnly эквивалентно записи af:= $01+$01; т. е. атрибут файла станет Hidden ($02).

Следовательно процедуры GetFattr(f,af); и SetFattr(f,af+ReadOnly); в данном случае уберут атрибут ReadOnly и установят атрибут Hidden. Таким образом, арифметические операции сложения, вычитания атрибутов можно проводить, только зная исходный атрибут файла.

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

Напомним эти правила:

бит "A"

операция

бит "B"

результат

Выводы:

1.Результат операции "A and B" равен значению бита "В",

кроме случая "добавления" к

нулевому биту единичного.

2.Результат операции "A or B" равен значению бита "A", кроме случая "добавления" к нулевому биту единичного.

Здесь важно проследить результат " добавления" битов к исходным, поскольку стан дартный атрибут "ads" имеет только один единичный бит в соответствующей позиции.

Таким образом, условие (af and ads) = ads верно, если "af" и "ads" содержат единичные биты в соответствующей позиции.


Следовательно, операторы для снятия стандартного атрибута из исходного могут иметь вид:

GetFattr(f,af); If (af and ads) = ads then SetFattr(f,af-ads);

В обратном случае можно "добавить" к исходному атрибуту "af" стандартный "ads". "Добавить" стандартный атрибут можно без проверки исходного атрибута, используя операцию "or". Например:

GetFattr(f,af); SetFattr(f, af or ads);

В данном случае " добавление" единичного бита однозначно изменяет исходный атрибут файла.

Практическое задание N 1. 27

1. Считать фамилии и оценки учащихся из файла (IN. TXT), предварительно набранного в редакторе текста и вывести в файл (OUT. TXT) таблицу: фамилии - оценки, для учащихся с оценкой >=4. Установить атрибут "ReadOnly" для файла IN. TXT и атрибут "Hidden" для файла OUT. TXT. Попробовать изменить данные файла IN.TXT в текстовом редакторе. Во второй программе убрать атрибуты.

1. 12. Разработка функций и процедур 1. 12. 1. Описание функций и процедур

Практически во всех алгоритмических языках имеется возможность программирования функций и процедур - блоков операторов, оформленных в виде подпрограмм. Разработка функций и процедур необходима при многократном использовании в разных местах программы или в нескольких программах блока операторов, выполняющих однотипные действия, например, расчет значений сложной функции при различных значениях аргумента. В Турбо - Паскале имеется также возможность создавать библиотеки (модули), состоящие из специальных процедур и функций, отличных от поставляемых в пакете ( модули System, Crt, Graph).

Процедуры (подпрограммы) и функции, определяемые программистом, приводятся в разделе описания основной программы. Процедуры и функции имеют заголовок, раздел описания и раздел операторов (см. структуру программы на стр. ).

Заголовок процедуры состоит из служебного слова Procedure, имени процедуры и списка параметров, например:



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53]