Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИГА_Учимся программировать TURBO PASCAL 7.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.62 Mб
Скачать

Var f1 : text;

X : char;

K, SUM : INTEGER;

BEGIN

SUM := 0;

ASSIGN(F1, 'ONE');

RESET(F1);

WHILE NOT EOF(F1) DO

BEGIN

READ(F1, X);

IF (X> = '0') AND (X<= '9') THEN

BEGIN

К := ORD(X)-ORD('0');

SUM := SUM+K

END;

END;

WRITELN('SUM = :', SUM);

CLOSE(F1);

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- привяжем файл TWO к файловой переменной F1 и откроем его на чтение;

- организуем цикл по считыванию элементов файла F1 и под­счету количества цифр в нем до тех пор, пока не будет най­ден конец файла F1 с помощью функции EOF(Fl);

- выводим результат;

- закрываем файл.

Переменные:

F1 - текстовый файл;

X - очередной элемент файла;

К - вспомогательная переменная;

SUM - сумма цифр.

Borland Pascal Version 7.0 Copyright (с) 1983, 92 Borland

International

SUM = : 140

Рис. 8.5. Результат работы PRG8_4

Задача 8.5 Построить конкатенацию (последовательную за­пись) файла TWO самого с собой.

В данном случае для того, чтобы открывать файл только один на чтение, нужно воспользоваться процедурой настройки на требуемый компонент ]SEEK(F1, 0)

-пи возврата к началу файла F1. Эта процедура будет доступна только при том условии, если указать тип файла F1, например как файл символов.

ROGRAM PRG8_5;

Var f1 : file of char;

F2 : TEXT;

X : char;

I: integer;

BEGIN

ASSIGN(F1, 'TWO');

RESET(F1);

ASSIGN(F2,' ');

REWRITE(F2);

FOR I := 1 ТО 2 DO

BEGIN

WHILE NOT E0F(F1) DO

BEGIN

READ(F1, X);

WRITE(F2, X)

END;

WRITELN;

SEEK(F1, 0)

END;

WRITELN;

CLOSE(F1);

CLOSE(F2)

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- привяжем файл TWO к файловой переменной F1 и откроем его на чтение;

- переменную F2 свяжем со стандартным устройством выво­да - экраном дисплея и откроем его на вывод;

- организуем двукратный последовательный просмотр по счи­тыванию элементов файла F1 и записи их в файл F2;

- закрываем оба файла.

Переменные:

F1 - файл символов;

F2 - текстовый файл;

X - очередной элемент файла.

Borland Pascal Version 7.0 Copyright (с) 1983, 92 Borland

International

qqwerr ttttt aa ss dddd

s d f g . h j

sd ffffff

qqwerr ttttt aa ss dddd

s d f g . h j

s d ffffff

Рис. 8.6. Результат работы PRG8_5

Задача 8.6 Прочитать файл TWO и вывести его задом наперед.

Для организации просмотра файла воспользуемся функцией определения длины файла FILESIZE(Fl), которая доступна только для типизированных файлов. В этом случае длина определяется с учетом символа конца файла. Этот символ необходимо исключить из просмотра.

PROGRAM PRG8_6;

Var f1 : file of char;

F2 : TEXT;

X : char;

L, I: INTEGER;

BEGIN

ASSIGN(F1, 'TWO');

RESET(F1);

ASSIGN(F2,' ');

REWRITE(F2);

L := FILESIZE(FI);

FOR l:= L-1 DOWNTO 0 DO

BEGIN

SEEK(F1, I);

READ(F1, X);

WRITE(F2, X)

END;

WRITELN;

CLOSE(F1);

CLOSE(F2)

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- привяжем файл TWO к файловой переменной F1 и откроем его на чтение;

- переменную F2 свяжем со стандартным устройством выво­да - экраном дисплея и откроем его на вывод;

- организуем последовательный просмотр по считыванию эле­ментов файла F1 начиная с конца и записи их в файл F2;

- закрываем оба файла.

Переменные:

Fl - файл символов;

F2 - текстовый файл;

X - очередной элемент файла;

L - длина файла;

I - переменная цикла.

Borland Pascal Version 7.0 Copyright (с) 1983, 92 Borland