- •Департамент образования и науки
- •1. Этапы решения задач на эвм. Алгоритмизация. Блок-схемы.
- •2. Назначение системы программирования.
- •3.Связь функция - клавиатура в интегрированной среде Turbo Pascal
- •4. Команды экранного редактора
- •4.1 Команды перемещения курсора
- •4.2 Команды вставки/удаления
- •4.3 Команды работы с блоками
- •5. Технология компиляции
- •6. Технология отладки программы
- •7. Программирование линейных алгоритмов
- •Задание 1
- •8. Программирование разветвляющихся вычислительных процессов
- •Задание 2
- •9. Программирование циклов с параметром
- •Задание 3
- •10. Программирование циклов с условием
- •Задание 4
- •11. Работа с векторами
- •Задание 5
- •12. Работа с матрицами
- •Задание 6
- •13. Обработка символьных строк
- •Задание 7
- •14. Записи. Файлы.
- •Задание 8
- •15. Процедуры
- •Задание 9
- •16. Функции
- •Задание 10
14. Записи. Файлы.
Под записью понимается структура данных, объединяющая под одним именем данные различных типов. Записи состоят из фиксированного числа элементов, называемых полями. Поле - это переменная определенного типа. Различные поля могут иметь (в отличии от элементов массива) различный тип. Обращение к элементу записи выполняется с помощью составного (уточненного) имени. Первая часть составного имени - это имя записи, вторая часть - имя поля. Между именем записи и именем поля ставится точка: ZAP.IMP, где ZAP - имя записи, IMP - имя поля.
При решении многочисленных задач обработки больших объемов информации используются файлы, которые позволяют запоминать, изменять, хранить и читать различную информацию на внешних носителях. Файл представляет собой структурированный тип данных, содержащий последовательность компонентов (чаще всего записей) одного типа и одной длины. Число элементов в файле (длина файла) не фиксировано. Это является основным отличием файла от массива. Файл, не содержащий ни одного элемента, называется пустым, его длина равна нулю.
При необходимости формирования или использования файла в разделе описаний программы должна быть описана файловая переменная. Описание файловой переменной имеет следующий вид:
type имя-типа=file of базовый-тип;
var имя-файловой-переменной : имя-типа;
или
var имя-файловой переменной : file of базовый-тип;
В качестве базового типа элементов файла можно использовать любой тип данных (как простой, так и сложный), за исключением типа file.
Задание 8
ЦЕЛЬ РАБОТЫ:
Изучить правила описания и использования переменных типа запись в языке Паскаль.
Получить практические навыки работы с файлами.
ПРИМЕР 1:Создать файл для хранения записей вида:
Запрос выводится с новой строки для каждого поля. Например:
Телевизор
Название . . . . . . . . . РЕКОРД
Цена (тыс.) . . . . . . . 3000
Диагональ . . . . . . . . 59
Изображение (ц/ч) . . Ц
Производитель . . . . .
Завод . . . . . . . . Фотон
Город . . . . . . . . Москва
Директор . . . . . Иванов
После записи файла осуществить поиск в нем названий телевизоров стоиостью менее 2 млн.руб.
program zapis;
const maxn = 30;
type TV = record
Name : string[20];
Price : 1 .. 32000;
Diagonal : 1 .. 50;
Color : char;
Proizv : record
city : string[25];
factory : string[50];
director : string[30];
end;
end;
tele = file от TV;
var f : tele;
was : boolean;
z:TV;
begin
writeln ('Ввод записей');
writeln ('Признак окончания ввода - *');
assing (f,'f.dat');
rewrite(f);
writeln (' Телевизор ');
write (' Название . . . . . .');readln(z.name);
while z.name <> ' * ' do
begin
write (' Цена (тыс.). . . . . .');readln(z.Price);
write (' Диагональ . . . . . .');readln(z.Diagonal);
write (' Изображение (ц/ч). . .');readln(z.Color);
writeln (' Производитель. . . . . ');
with z.Proizv do
begin
write (' Завод . . . . . . .');readln(city);
write (' Город . . . . . . .');readln(factory);
write (' Директор. . . . . .');readln(director);
tnd;
write (f,z)
writeln (' Телевизор');
write ('Название .......'); readln (z.name)
end;
close (f);
writeln ('Файл сформирован');
reset (f);
was:=false; {признак того, что искомые телевизоры найдены)
writeln ('Названия телевизоров стоимостью менее 2 млн.руб.');
while not eof(f) do
begin
read (F,Z);
if z.price < 2000 then
begin
writeln (z.name);
was:=true
end
end;
if was=false then
writeln ('Не найдены');
close(f)
end.
ПОРЯДОК РАБОТЫ
Составить программу формирования и поиска в файле (табл.14).
СОДЕРЖАНИЕ ОТЧЕТА
Отчет должен содержать текст программы, данные для контрольного примера и результат.
ТАБЛИЦА 14
НОМЕР |
УСЛОВИЕ |
1 |
Создать файл, содержащий сведения о пациентах поликлиники. Структура записи: ФИО пациента, год рождения, адрес, диагноз. Выбрать информацию о пациентах, обратившихся с диагнозом "грипп". |
2 |
Создать файл, содержащий сведения о книгах, находящихся в читальном зале библиотеки. Каждая запись должна содержать: фамилию и инициалы автора, название книги, место издания, наименование издательства, год издания. Выбрать зиписи о книгах издательства "Высшая школа", выпущенных после 1990 года. |
3 |
Создать файл, содержащий информацию о свободных местах в поездах. Запись содержит: дату выезда, номер рейса, конечный пункт назначения, время отправления, число свободных купейных мест, число свободных плацкартных мест. Выдать информацию об имеющихся свободных местах на определенное число. |
4 |
Разработать программу ("электронную сваху") для поиска женихов и невест. Создать два файла: список женихов и список невест. В каждом списке кандидат (жених или невеста) характеризуется записью содержащей порядковый номер кандидата; данные о кандидате (возраст, рост, вес); требования к партнеру (минимальное и максимальное значение соответствующего параметра). Сформировать списки пар с учетом требований кандидата. |
5 |
Создать файл, содержащий сведения об учениках. Каждая запись должна содержать: номер по списку, фамилию, имя, отчество; год рождения; адрес. Выбрать сведения об учениках, проживающих на улице Книповича. |
6 |
Создать файл, содержащий сведения об изучаемых предметах. Запись должна содержать: название предмета, общее количество часов на год, количество часов в неделю. Выбрать информацию о предметах, количество часов в неделю для которых больше 4. |
7 |
Создать файл, содержащий сведения о компьютерах. Структура записи: тип ПК, тактовая частота, объем ОП, объем винчестера, стоимость. Выбрать информацию о компьютерах, имеющих объем ОП более 2 Мбайт. |
8 |
Создать файл, содержащий сведения о рейсах самолетов. Для каждого рейса указаны: номер рейса, тип самолета, пункт назначения, время вылета, дни вылета. Выбрать информацию о рейсах на Санкт-Петербург. |
9 |
Создать файл, содержащий сведения об итогах сдачи экзамена. Каждая запись содержит фамилию и имя, годовую оценку, оценку за экзамен, итоговую оценку. Выбрать информацию об учащихся, повысивших годовую оценку на экзамене. |
10 |
Создать файл, содержащий сведения об учащихся. Каждая запись содержит фамилию и имя учащегося, его адрес, телефон. Выбрать информацию об учащихся имеющих телефон. |