Работа с массивом из записей
Лабораторная работа №7
Цель работы:
1. Научиться описывать записи с заданной структурой
2. Освоить приемы ввода данных по полям записи
Типовой пример
Дан список, содержащий N записей (N£100) следующей структуры:
№ рейса | Пункт отправления | Пункт назначения | День недели | Время отправления Час Мин | Цена билета |
5 символов | 15 символов | 15 симв. | 1..7 | 0..23 0..59 | Real |
1) Ввести заданый список с экрана в массив записей Spis.
2) Ввести искомый номер рейса - Isk_nom.
3) Найти в списке рейс с заданным номером.
4) Вывести информацию о найденном рейсе на экран.
Текст программы
Uses crt;
Type
T_Time=record
Hour:0..23;
Min:0..59;
end;
tzap=record {Описание типа для одной записи списка}
nom:string[5];
p1,p2:string[15];
day:1..7;
time:T_Time;
price:real;
end;
Var Spis:array[1..100]of tzap; {Описание списка}
N,i:byte;
Isk_nom:string[5];
Begin
Write(' Введите число записей в списке N = ');
Readln(N);
Writeln('Введите список по полям - каждое поле с новой строки');
For i:=1 to N do
With Spis[i] do
begin
Write(' Номер очередного рейса - 5 символов ');
Readln(nom);
Write(' Пункт отправления - 15 символов ');
Readln(p1);
Write(' Пункт назначения - 15 символов ');
Readln(p2);
Write(' День недели - от 1 до 7 ');
Readln(day);
Write(' Время отправления - часы (от 0 до 23) и
минуты (от 0 до 59), через пробел ');
Readln(time.hour,time.min);
Write(' Цена билета = ');
Readln(price);
end;
writeln(' введите искомый номер рейса - 5 символов ');
Readln(Isk_nom);
{Oрганизация поиска заданного рейса в массиве записей Spis}
for i:=1 to N do
with Spis[i] do
if nom = Isk_nom then
begin
writeln(' Рейс найден');
writeln(nom,' ',p1,' ',p2,' ',day,' ',time.hour,':',time.min,' ',price);
readkey;
halt;
end;
writeln(' Рейс не найден');
readkey;
End.
Примечание: При вводе символьной информации необходимо учитывать, что пробел также является символом.
Варианты заданий
Вариант 1
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:
Шифр книги Ф.И.О. авторов Название Год
тип строка тип строка тип строка издания
5 символов 20 символов 15 символов целое
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск книг, изданных в 1960 году и шифром, начинающимся с буквы "А" с выводом найденных записей на экран.
Вариант 2
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Шифр товара Наименование Цена (в руб.) Количество
тип строка тип строка вещественное экземпляров
5 символов 20 символов число целое число
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск товаров, имеющих цену меньше 20000 руб. и количеством
экземпляров больше 100 с выводом найденных записей на экран.
Вариант 3
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Номер рейса Пункт отправления Пункт назначения Дни
тип строка тип строка тип строка полетов
5 символов 10 символов 10 символов от 1 до 7
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск рейсов, вылетающих из города " Волгоград" в среду(3день)
с выводом найденных записей на экран.
Вариант 4
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Ф.И.О. Домашний адрес Номер участка Год
тип строка тип строка тип рождения
15 символов 20 символов integer 1900..2000
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск всех граждан из списка, родившихся до 1950 года и номером
участка = 55 с выводом найденных записей на экран.
В А Р И А Н Т 5
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Шифр товара Наименование товара Цена(руб.) Признак
тип строка тип строка число типа наличия или
5 символов 20 символов real отсутствия
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск всех товаров, имеющихся в наличии и цена которых не
превышает 15000 руб., с выводом найденных записей на экран.
В А Р И А Н Т 6
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Ф.И.О. Факультет Группа Год рождения
20 символов 5 символов 6 символов целое число
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск всех студентов, группы " 97ВС1", родившихся в 1979
году с выводом найденных записей на экран.
В А Р И А Н Т 7
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Ф.И.О. авторов Название Год Шифр
тип строка тип строка издания строка
20 символов 20 символов целое 8 символов
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск книг, названия которых начинаются с буквы " П" и
изданных до 1990 года с выводом найденных записей на экран.
В А Р И А Н Т 8
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Ф.И.О. авторов Название Год Шифр
тип строка тип строка издания строка
20 символов 20 символов целое 8 символов
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск книг, поле шифр которых начинаются с буквы " Т" и
изданных после 1990 года с выводом найденных записей на экран.
В А Р И А Н Т 9
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Номерр рейса Пункт отправления Пункт назначения Дни
тип тип строка тип строка полетов
integer 20 символов 10 символов от 1 до 7
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск всех рейсов с номерами большими, чем 50, и вылетающими в
" Краснодар", с выводом найденных записей на экран.
В А Р И А Н Т 10
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Ф.И.О. Домашний адрес Номер участка Год
тип строка тип строка тип рождения
15 символов 30 символов integer 1900..2000
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск всех граждан, родившихся до 1970 года и фамилия которых
начинается с буквы " П" с выводом найденных записей на экран.
В А Р И А Н Т 11
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Шифр книги Ф.И.О. авторов Название Год
тип строка тип строка тип строка издания
5 символов 20 символов 15 символов целое
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск книг, изданных до 1950 году и шифром " СС11" с выводом
найденных записей на экран.
В А Р И А Н Т 12
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Шифр товара Наименование Цена(в руб.) Количество
тип строка тип строка вещественное экземпляров
5 символов 20 символов число целое число
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск товаров, имеющих цену не меньше 20000 руб. и количеством
экземпляров больше 180 с выводом найденных записей на экран.
В А Р И А Н Т 13
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Номер рейса Пункт отправления Пункт назначения Дни
тип строка тип строка тип строка полетов
5 символов 12 символов 10 символов от 1 до 7
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск рейсов, вылетающих из города " Владивосток" в 1 или 3
день недели с выводом найденных записей на экран.
В А Р И А Н Т 14
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Ф.И.О. Домашний адрес Номер участка Год
тип строка тип строка тип рождения
15 символов 20 символов integer 1900..2000
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск всех граждан из списка, родившихся до 1980 года и номером
участка не более 100 с выводом найденных записей на экран.
В А Р И А Н Т 15
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Шифр товара Наименование товара Цена(руб.) Признак
тип строка тип строка число типа наличия или
5 символов 20 символов real отсутствия
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск всех товаров, которых нет в наличии и имеющих цену, не
меньше 25000 руб. с выводом найденных записей на экран.
В А Р И А Н Т 16
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Ф.И.О. Факультет Группа Год рождения
20 символов 5 символов 6 символов целое число
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск всех студентов, группы " 97ВС2", родившихся до 1980
году с выводом найденных записей на экран.
В А Р И А Н Т 17
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Ф.И.О. авторов Название Год Шифр
тип строка тип строка издания строка
20 символов 20 символов целое 8 символов
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск книг, фамилии авторов которых начинаются с буквы " В", и
изданных после 1990 года с выводом найденных записей на экран.
В А Р И А Н Т 18
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Ф.И.О. авторов Название Год Шифр
тип строка тип строка издания строка
20 символов 20 символов целое 8 символов
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск книг, поле шифр которых начинаются с буквы " Т" и
изданных в 1990 году с выводом найденных записей на экран.
В А Р И А Н Т 19
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Номер рейса Пункт отправления Пункт назначения Дни
тип тип строка тип строка полетов
integer 20 символов 10 символов от 1 до 7
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск всех рейсов с номерами меньшими, чем 100 и вылетающими в
из пункта " Краснодар" с выводом найденных записей на экран.
В А Р И А Н Т 20
1. Дан список, содержащий не менее 10 записей, каждая из которых имеет
структуру:
Ф.И.О. Домашний адрес Номер участка Год
тип строка тип строка тип рождения
15 символов 30 символов integer 1900..2000
2. Разработать программу, выполняющую следующие функции:
- ввод данного списка в массив записей;
- вывод массива записей на экран;
- поиск всех граждан, родившихся после 1970 года и фамилия которых
начинается с буквы " А" с выводом найденных записей на экран.
Подпрограммы
При разработке сложных программ используют так называемый структурный подход к программированию и нисходящее проектирование программ, когда сложная программ разбивается на более (или менее) функционально-законченные части, каждая из которых проще исходной программы. Такие программы легче отлаживать и использовать. Отдельные части программы называют подпрограммами. Использование подпрограмм наиболее эффективно в тех случаях, когда одна и та же подпрограмма может использоваться в программе не один раз, возможно с различными параметрами. Это позволяет экономить память компьютера.
Подпрограммы, в свою очередь, могут разбиваться на более мелкие части, реализуемые также в виде подпрограмм более низкого уровня.
В языке Турбо Паскаль используют подпрограммы двух типов: процедуры (Procedure) и функции (Function). Подпрограммы по структуре сходны с программой, но они обязательно имеют оригинальное имя, которое указывается в заголовке. Подпрограммы описываются в разделе описаний, использующих (вызывающих) их программ (или подпрограмм).
16. 1 Процедуры. Описание процедур. Область действия имён