Работа с массивом из записей

 

Лабораторная работа №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 Процедуры. Описание процедур. Область действия имён