- •А.И. Газейкина Основы структурного программирования на языке Паскаль
- •Тема 1. Линейные программы 4
- •Некоторые стандартные функции языка Турбо Паскаль
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 2. Разветвляющиеся программы Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 3. Циклические программы Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 4. Обработка данных строкового типа Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 5. Система типов языка Паскаль Краткое изложение теоретического материала
- •Тема 6. Перечисляемый тип Краткое изложение теоретического материала
- •Тема 7. Тип-диапазон Краткое изложение теоретического материала.
- •Тема 8. Множество (множественный тип) Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 9. Массивы в языке Паскаль Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 10. Графика в языке Паскаль Краткое изложение теоретического материала
- •Контрольные задания
- •Тема 11. Подпрограммы в языке Паскаль Краткое изложение теоретического материала
- •Процедуры в языке Турбо Паскаль
- •Функции в языке Турбо Паскаль
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 12. Тип данных запись (Record) Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 13. Работа с файлами в языке Паскаль Краткое изложение теоретического материала
- •Текстовые файлы
- •Примеры решаемых задач
- •Типизированные файлы
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 14. Динамические переменные в языке Паскаль Краткое изложение теоретического материала Статические и динамические переменные
- •Указатели
- •Типизированные указатели
- •Нетипизированные указатели
- •Динамические структуры данных
- •Примеры решаемых задач
- •Контрольные задания
- •Список литературы
Примеры решаемых задач
Пример 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.
Примечание. В приведенном примере программы при дополнении файла данными о новом студенте не производится проверка условия, что информация о новом студенте уже есть в файле.