Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
11
Добавлен:
25.04.2015
Размер:
409.6 Кб
Скачать

5Доп [19-22], 10доп.[95-99], 11доп.[321-338]

Тема 11. Типизированные файлы

Форма проведения: тренинг.

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

Задания:

Контрольный пример.

Даны сведения о студентах: фамилия студента, год рождения, место рождения и адрес. Необходимо создать файл, созданный файл прочитать и вывести сведения о студентах алмаатинцах, возраст которых не превышает 18 лет.

program primer9;

uses crt;

type

mydata=record

fio:INTEGER;

year:integer;

place:string;

addr:string;

end;

myfile=file of mydata;

var

fin,fout:myfile;

trec:mydata;

n,i,k:integer;

procedure inputdata;

begin

write('Kolichestvo = ');

readln(n);

for i:=1 to n do

begin

with trec do

begin

write('Surname: '); read(fio);

write('Year: '); readLN(year);

write('Place: '); readln(place);

write('Address: '); readln(addr);

end;

write(fin,trec);

end;

end;

procedure select;

begin

reset(fin);

for i:=1 to n do

begin

read(fin,trec);

if (abs(trec.year-2004)<=18) and (pos('Almaty',trec.place)<>0) then

begin

write(fout,trec);

k:=k+1;

end;

end;

end;

procedure outdata;

begin

reset(fout);

if k=0 then writeln('<<<<Svedenii net>>>>')

else

for i:=1 to k do

begin

writeln('*********************');

read(fout,trec);

with trec do

begin

writeln(fio);

writeln(year);

writeln(place);

write(addr);

readln;

end;

end;

end;

begin

clrscr;

assign(fin,'data.txt');

assign(fout,'outdata.txt');

rewrite(fin);

rewrite(fout);

k:=0;

inputdata;

select;

outdata;

close(fin);

close(fout);

end.

1осн. [104-108]

5Доп [19-22], 10доп.[95-99], 11доп.[321-338]

Тема 12. Текстовые файлы.

Форма проведения: решение задач.

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

Варианты заданий:

1. Дан текстовый файл. Вывести количество содержащихся в нем символов и строк (маркеры концов строк EOLN и конца файла EOF при подсчете количества символов не учитывать).

2. Дана строка S и текстовый файл. Добавить строку S в начало и конец файла.

3. Дан текстовый файл. Удалить из него первую и последнюю строку.

4. Даны два текстовых файла с именами Name1 и Name2. Создать новый текстовый файл с именем Name3, являющийся объединением содержимого файлов Name1 и Name2 (в указанном порядке).

5. Даны два текстовых файла с именами Name1 и Name2. Добавить в конец файла Name1 содержимое файла Name2.

6. Дан текстовый файл, содержащий более трех строк. Удалить из него три последние строки.

7. Дано число k (< 10) и текстовый файл, содержащий более k строк. Удалить из файла последние k строк.

8. Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла.

9. Дано число k и текстовый файл. Удалить из файла строку с номером k (строки нумеруются от 0). Если строки с таким номером нет, то оставить файл без изменений.

10. Дано число k и текстовый файл. Вставить пустую строку перед и после строки с номером k (строки нумеруются от 0). Если строки с таким номером нет, то оставить файл без изменений.

11. Дан текстовый файл. Удалить из него пустые строки.

12. Дана строка S и текстовый файл. Заменить в файле все пустые строки на строку S.

13. Дан текстовый файл. Заменить в нем все подряд идущие пробелы на один пробел.

14. Дан текстовый файл, содержащий текст, выровненный по левому краю. Выровнять его по [правому краю]1|центру2, добавив в начало каждой непустой строки необходимое количество пробелов (ширину текста считать равной 50). Строки нечетной длины перед центрированием дополнять слева пробелом.

15. Дан текстовый файл, содержащий текст, выровненный по левому краю. Абзацы текста разделяются одной пустой строкой. Выровнять текст по ширине (то есть и по левому, и по правому краю), увеличив в каждой непустой строке (кроме последних строк абзацев) количество пробелов между словами, начиная с первого пробела в строке (ширину текста считать равной 50).

Контрольный пример.

Дан текстовой файл. Получить копию файла.

program primer10; var f,g: text;     s: string; begin     {установка связи файловых переменных с именами файлов}     assign(f, ‘data1.txt’);     assign(g, ‘data2.txt’);     {открытие файлов для чтения и записи}     reset(f); rewrite(g);     while not(eof(f)) do         begin             readln(f,s); {чтение из файла в строку}             writeln(g,s) {запись в файл из строки}         end;     {закрытие файлов}     close(f); close(g) end.

1осн. [104-108]

Соседние файлы в папке лекции паскаль