Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕтодичка по практическим работам.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
156.28 Кб
Скачать

Контрольные вопросы

  1. Заголовок функции. Тип функции.

  1. Основной выходной параметр функции и побочные эффекты.

  2. Формальные и фактические параметры.

  3. Параметры-значения и параметры-переменные.

  4. Вызов функции и возврат из функции.

  5. Передача фактических параметров по ссылке и по значению.

  6. Возврат значения.

  7. Глобальные и локальные данные подпрограмм. Области видимости.

Лабораторная работа 8. Работа с текстовыми файлами Основные сведения

Текстовый файл состоит из строк символов. Строки разделяются символом CR (код 13) – «возврат каретки», который может быть объединен с символом LF (код 10) – «перевод строки». Конец текстового файла обозначается символом Ctrl+Z (код 26).

Файловая переменная для текстового файла определяется следующим образом:

Var имя_файловой_переменной : text;

Процедуры и функции для работы с текстовыми файлами:

assign(var F:text; FileName:string) связывает файловую переменную F с именем файла FileName.

reset(var F:text) открывает файл F только для чтения.

rewrite(var F:text) создает и открывает для записи новый файл, связанный с файловой переменной F.

append(var F:text) открывает существующий файл F для дозаписи.

close(var F:text) закрывает файл F.

eof(var F:text):boolean возвращает TRUE, если уже достигнут конец файла или FALSE – в противном случае.

eoln(var F:text):boolean возвращает TRUE, если указатель файла находится на символе конца строки или конца файла, FALSE – в противном случае.

read(var F:text; var V1; var V2;...) – чтение из файла F значений переменных V1, V2... .

readln(var F:text; var V1; var V2;...) – аналогична read, но после ввода всех переменных V1, V2... указатель файла перемещается в начало следующей строки.

write(var F:text; V1; V2;...) – вывод в текстовый файл F значений переменных V1, V2.... Элемент вывода имеет вид: имя_переменной[:ширина[:точность]]

writeln(var F:text; V1; V2;...) – делает то же, что и write, после чего помещает в файл признак конца строки.

Пример выполнения

Открыть два текстовых файла. Один, ранее уже созданный, на чтение, другой, новый, на запись. Переместить содержимое первого файла во второй, вставляя '?' перед каждым пробелом и '!' после каждого пробела, а также вставляя признак конца строки после каждых 50 символов.

program PRIMER;

var

fInp,fOut : text; {входной и выходной файлы}

C : char; {текущий символ входного файла}

I : integer; {счетчик символов текущей строки выходного файла}

begin

assign(fInp,'FOLD.TXT');

assign(fOut,'FNEW.TXT');

reset(fInp);

rewrite(fOut);

I:=0;

while not eof(fInp) do begin

while not eoln(fInp) do begin

read(fInp,C);

if C<>' ' then begin

if I=50 then begin

writeln(fOut); {к новой строке выходного файла}

I:=0 {сброс счетчика символов текущей строки выходного файла}

end;

write(fOut,C);

I:=I+1

end

else begin

case I of

50: begin

writeln(fOut);

write(fOut,'?');

write(fOut,' ');

write(fOut,'!');

I:=3

end;

49: begin

write(fOut,'?');

writeln(fOut);

write(fOut,' ');

write(fOut,'!');

I:=2

end;

48: begin

write(fOut,'?');

write(fOut,' ');

writeln(fOut);

write(fOut,'!');

I:=1

end;

else begin

write(fOut,'?');

write(fOut,' ');

write(fOut,'!');

I:=I+3

end

end { case I of }

end

end; { while not eoln(fInp) }

readln(fInp)

end; { while not eof(fInp) }

close(fInp);

close(fOut)

end.