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

Примеры решаемых задач

Пример 1. Составить программу, которая:

а) запишет в файл Message. txt текстовое сообщение;

б) прочитает из файла Message. txt текстовое сообщение и выведет его на экран.

Пояснение. Для решения этой и подобной задач лучше составлять две отдельные программы: первая программа формирует файл, вторая – его обрабатывает.

Программы:

Program A;

Uses Crt;

Var s : string; { переменная s для хранения текстового сообщения }

f : text; { f – файловая переменная }

Begin

Clrscr;

Assign (f, ’Message. txt’); { связывание файловой переменной f с файлом ’Message. txt’, который будет создан в текущей папке }

Rewrite(f); { открыли файл для записи }

Write (‘Введите текст сообщения ‘);

Readln (s); { ввели в переменную s текст сообщения }

Writeln (f, s);{ записали в файл содержимое переменной s }

Close (f); { закрыли файл }

Writeln (‘Файл создан’);{ вывели на экран поясняющее сообщение }

Readln

End.

Program B;

Uses Crt;

Var m : string; { переменная m для хранения текстового сообщения }

t : text; { t – файловая переменная }

Begin

Clrscr;

Assign (t, ’Message. txt’); { связывание файловой переменной f с файлом ’Message. txt’, который существует в текущей папке }

Reset (t); { открыли файл для чтения }

Readln (t, m); { считали из файла t в переменную s текст сообщения}

Writeln (‘Сообщение:' , m); { вывели на экран текст сообщения }

Close (t); { закрыли файл }

Readln

End.

Пример 2. Составить программу, которая:

а) запишет в файл Students.txt список студентов группы (фамилия и год рождения);

б) обработает файл Students.txt следующим образом:

- выведет на экран список студентов группы;

- выведет список студентов заданного года рождения;

- допишет в файл информацию о новом студенте.

Программы:

Program A;

Uses Crt;

Var fam : string; { переменная fam для хранения фамилии студента }

year, n, k : integer; { переменная year для хранения года рождения}

f : text; { f – файловая переменная }

Begin

Clrscr;

Assign (f, ’Students. txt’); { связывание файловой переменной f с файлом ’Students. txt’, который будет создан в текущей папке }

Rewrite(f); { открыли файл для записи }

Write (‘Введите количество студентов в группе ‘);

Readln (n);

For k:=1 To n Do

Begin

Write(‘Введите фамилию ’,k,’-го студента ’);

Readln (fam); { Ввели в переменную fam фамилию }

Writeln (f, fam); { записали в файл фамилию студента и символ Eoln }

Write(‘Введите год его рождения ’);

Readln (year); { Ввели в переменную year год рождения }

Writeln (f, year) { записали в файл год рождения студента и символ Eoln }

End;

Close (f); { закрыли файл }

Writeln (‘Файл создан’); { вывели на экран поясняющее сообщение}

Readln

End.

Program B;

Uses Crt;

Var fam : string; { переменная fam для хранения фамилии студента }

year, n, : integer; { переменная year для хранения года рождения }

f : text; { f – файловая переменная }

Begin

Clrscr;

Assign (f, ’Students. txt’); { связываем файловую переменную f с файлом ’Students. txt’, который будет создан в текущей папке }

{ а) вывод на экран содержимого файла ’Students. txt’ }

Reset (f); { открываем файл для чтения }

Writeln (‘Список группы ‘);

While Not Eof (f) Do { пока не достигнут конец файла }

Begin

Readln (f, fam); { читаем из файла фамилию и символ Eoln }

Readln (f, year);{ читаем из файла год рождения и символ Eoln}

Writeln (fam:20, year: 5) { печатаем фамилию и год рождения }

End;

Close (f); { закрываем файл }

{ б) поиск в файле студентов заданного года рождения }

Write (‘Задайте нужный год рождения ’);

Readln (x); { вводим год для поиска }

Reset (f); { снова открываем файл для чтения}

While Not Eof (f) Do { пока не достигнут конец файла }

Begin

Readln (f, fam); { читаем из файла фамилию и символ Eoln }

Readln (f, year);{ читаем из файла год рождения и символ Eoln}

If year = x then { если год рождения очередного студента равен требуемому }

Writeln (fam) { выводим фамилию на экран }

End;

Close (f); { закрываем файл }

{ в) дополнение файла данными о новом студенте }

Write (‘Введите фамилию нового студента ’);

Readln (fam);

Write (‘Введите год его рождения ’);

Readln (year);

Append (f); { открываем файл для дополнения }

Writeln (f, fam); { дописываем в файл новую фамилию (и Eoln) }

Writeln (f, year); { дописываем в файл год рождения (и Eoln) }

Close (f); { закрываем файл }

Readln

End.

Примечание. В приведенном примере программы при дополнении файла данными о новом студенте не производится проверка условия, что информация о новом студенте уже есть в файле.