Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

Выполнение практических заданий

Лабораторная работа №10.

Тема: Записи.

Цель:Развить навыки обработки структурного типа - запись. Научиться описывать записи с заданной структурой. Уметь использовать различные методы описания записей. Освоить приемы ввода данных по полям записи.

Оборудование и материалы:Методическое пособие, ПЭВМ, ручка, карандаш, линейка, ластик, шаблон А4.

Ход работы

Методические рекомендации.

Необходимая информация содержится в лекции № 14.

Решение задач представить в следующем порядке: постановка задачи, построение математической модели, блок-схемы, программный код, тестирование.

Задание для лабораторной работы выбрать согласно варианту по приведённой таблице. Вариант определяется порядковым номером в журнале группы.

 

Образцы решения типовых задач.

Запись - это структура данных, состоящая из фиксированного числа компонент, называемых полями. Каждое поле имеет свой идентификатор и тип. К компонентам записи возможен прямой доступ и они могут выборочно обновляться. Идентификатор в самой записи должен быть уникальным. Для обращения к отдельным полям записи указываются составные имена: имя записи, после которого ставится точка и записывается идентифика­тор поля. Запись можно передавать в качестве параметра процедуры или функции, но зна­чением функции запись быть не может.

В общем виде описание типа для записи можно представить:

type <Идентификатор типа>=record

<идентификатор 11>[,< идентификатор 12>,...]: <тип 1>;

< идентификатор 21 >[,< идентификатор 22>,...]: <тип 2>;

End;

 

Опишем одномерный массив, каждый элемент которого представляет собой за­пись, имеющую структуру типа ta:

type ta= record

p1 : real;

p2: char;

p3: byte

End;

var A: arrya [1..1O] ofta;

 

Запись может объявляться и непосредственно в разделе описания переменных.

varTa: record

p1 : real;

p2: char;

p3: byte

End;

 

Рассмотрим пример. Дан массив записей со следующей структурой:

- шифр группы;

- номер зачетной книжки;

- код дисциплины;

- оценка.

Требуется определить средний балл студентов группы 125 АСОИУ. При вводе массива последняя запись имеет шифр группы «99999».

programSRBALL;

type zap= record

shg: string [5];

nzk: integer;

kd: 1..100;

oc:2..5

End;

var mas:array [1..100]ofZAP;

k,n,i: byte;

sum: real;

Begin

i:=0;

Repeat

i:=i+1;

readln(mas [i]. shg, mas [i]. nzk, mas [i]. kd, mas [i]. oc)

untilmas [i]. shg ='99999';

n:=I; sum:=0; k:=0;

fori:=1to Ndo

ifmas [i]. shg =’ 125 АСОИУ ’then

begin

sum:=sum+ mas [i]. oc;

inc(k) ;

end;

ifk<>0 thensum:=sum/k;

writeln('Средний балл в группе =', sum );

end.

В операторе ввода данных необходимо указать полное имя каждого поля, а не про­сто имя записи. Данные во входном потоке должны быть в соответствии с обычными пра­вилами.

Оператор присоединения.При обращении к компонентам записи используются составные имена. Для сокра­щения имен и повышения удобства работы с записями применяется оператор присоедине­ния with.

with <идентификатор переменной типа record > do

< оператор >;

Тогда в операторе при ссылке на компоненты записи имя переменной можно опускать.

При использовании оператора присоединения фрагмент рассмотренной ранее про­граммы будет выглядеть:

Begin

i:=0;

withmas [i]do

Begin

Repeat

i:=i+1;

readln(mas [i]. shg, mas [i]. nzk, mas [i]. kd, mas [i]. oc)

untilmas [i]. shg ='99999';

n:=I; sum:=0; k:=0;

for i:=1toNdo

if mas [i]. shg =’ДK101’then

begin

sum:=sum+ mas [i]. oc;

inc(k) ;

end;

End;

if k<>0then sum:=sum/k;

writeln ('Средний балл в группе =', sum );

end.

Запись с вариантами

Состав и структура записи могут динамически меняться в зависимости от значения какого-либо из своих полей, называемого полем-признаком.

В общем виде описание записи с вариантами выглядит так:

type идентификатор типа >=record идентификатор поля 1>:<тип 1>; идентификатор поля 2>:<тип 2>;

case <селектор>:<тип селектора> of

<метка варианта1>:(<поле варианта11>:<тип 11>

[;<поле вар-та 12>:<тип 12>;<поле варианта 13>:<тип 13>;...]);

<метка варианта 2>: (<поле варианта 21 >:<тип 21 >

[;<поле вар-та 22>:<тип 22>;<поле варианта 23>:<тип 23>;...]);

<метка варианта к>:(<поле варианта к1>:<тип kl>

[;<поле вар-та к2>:<тип к2>;<поле варианта кЗ>:<тип кЗ>;...]);

<метка варианта m>:( ) end;

В этом описании вариантная часть записывается после постоянной части, к которой относятся поля 1, 2 . . . , и может быть только одна в записи. Метки варианта должны иметь такой же тип, как у селектора. Если какой-либо метке варианта не соответствуют поля, то записываются пустые круглые скобки, как у метки варианта.

Пусть требуется описать запись следующей структуры. В каждой записи имеются поля, содержащие табельный номер и фамилию. В зависимости от того, кому принадле­жит запись, состав остальных полей может быть разным:

- для студентов поля: номер группы и специальность;

- для преподавателей: институт, кафедра, стаж работы;

- для сотрудников дополнительных полей нет.

В виде графа структуру записей можно изобразить:

Описание соответствующей записи структуры данных:

typetz=record

tn: byte;

fio: string;

case n:charof

‘P': (in: byte; kaf: string; st: byte);

'S': (ng:byte; sp:integer);

‘A’ : ( )

End;

varz : tz;



 

Выполнение практических заданий.

  Вариант     № задач     Вариант     № задач     Вариант     № задач  
1, 21, 36 11, 31, 36 1, 32, 37
2, 22, 37 12, 32, 37 2, 33, 38
3, 23, 38 13, 33, 35 3, 34, 39
4, 24, 39 14, 34, 38 4, 35, 40
5, 25, 40 15, 35, 39 5, 26, 41
6, 26, 41 16, 21, 40 6, 27, 42
7, 27, 42 17, 22, 41 7, 28, 43
8, 28, 43 18, 23, 45 8, 29, 44
9, 29, 44 19, 24, 35 9, 30, 45
10, 30, 45 20, 25, 36 10, 21, 34

 

1.а) Описать структуру с именем STUDENT, содержащую следующие поля:

- NAME- фамилия и инициалы;

- Номер группы;

- Успеваемость (массив из пяти элементов ).

б) Написать программу, выполняющую следующие действия:

- Ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по возрастанию номера группы;

- Ввод на дисплей фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше 4,0;

- Если таких студентов нет, вывести соответствующее сообщение.

2.а) Описать структуру с именем STUDENT, содержащую следующие поля:

- NAME- фамилия и инициалы;

- Номер группы;

- Успеваемость (массив из пяти элементов ).

б) Написать программу, выполняющую следующие действия:

- Ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по возрастанию среднего балла;

- Ввод на дисплей фамилий и номеров групп для всех студентов, имеющих оценки 4 и 5;

- Если таких студентов нет, вывести соответствующее сообщение.

3. а) Описать структуру с именем STUDENT, содержащую следующие поля:

- фамилия и инициалы;

- Номер группы;

- Успеваемость ( массив из пяти элементов ).

б) Написать программу, выполняющую следующие действия:

- Ввод с клавиатуры данных в массив, состоящих из десяти структур типа STUDENT; записи должны быть упорядочены по алфавиту;

- Вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2;

- Если таких студентов нет, вывести соответствующее сообщение.

4.а) Описать структуру с именем STUDENT, содержащую следующие поля:

- Название пункта назначения рейса;

- Номер рейса;

- Тип самолета.

б) Написать программу, выполняющую следующие действия:

- Ввод с клавиатуры данных в массив, состоящий из семи элементов типа AEROFLOT; записи должны быть упорядочены по возрастанию номера рейса;

- Вывод на экран номеров рейсов и типов самолетов, вылетающих в пункт назначения, название которого совпало с названием, введенным с клавиатуры;

- Если таких рейсов нет, выдать на дисплей соответствующее сообщение.

5. а) Описать структуру с именем AEROFLOT, содержащую следующие поля:

- Название пункта назначения рейса;

- Номер рейса;

- Тип самолета.

б) Написать программу, выполняющую следующие действия:

- Ввод с клавиатуры данных в массив, состоящий из семи элементов типа AEROFLOT; записи должны быть размещены в алфавитном порядке по названиям пунктов назначения;

- Вывод на экран пунктов назначения и номеров рейсов, обслуживаемых самолетом, тип которого введен с клавиатуры;

- Если таких рейсов нет, выдать на дисплей соответствующее сообщение.

6.а) Описать структуру с именем WORKER, содержащую следующие поля:

§ Фамилия и инициалы работника;

§ Название занимаемой должности;

§ Год поступления на работу.

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER; записи должны быть размещены по алфавиту;

§ Вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;

§ Если таких работников нет, вывести на дисплей соответствующее сообщение.

7.а) Описать структуру с именем TRAIN, содержащую следующие поля:

§ Название пункта назначения;

§ Номер поезда;

§ Время отправления.

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN; записи должны быть размещены в алфавитном порядке по названиям пунктов назначения;

§ Если таких поездов нет, выдать на дисплей соответствующее сообщение.

8.а) Описать структуру с именем TRAIN, содержащую следующие поля:

§ Название пункта назначения;

§ Номер поезда;

§ Время отправления.

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN; записи должны быть упорядочены по номерам поезда;

§ Вывод на экран информацию о поездах, направляющихся в пункт, название клавиатуры которого введено с клавиатуры;

§ Если таких поездов нет, выдать на дисплей соответствующее сообщение.

9.а) Описать структуру с именем TRAIN, содержащую следующие поля:

§ Название пункта назначения;

§ Номер поезда;

§ Время отправления.

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN; записи должны быть упорядочены по номерам поездов;

§ Вывод на экран информации о поезде, номер которого введен с клавиатуры;

§ Если нет таких поездов, выдать на дисплей соответствующее сообщение.

10.а) Описать структуру с именем MARSH, содержащую следующие поля:

§ Название начального пункта маршрута;

§ Название конечного пункта маршрута;

§ Номер маршрута.

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа MARSH, записи должны быть упорядочены по номерам маршрутов;

§ Вывод на экран информации о маршруте, номер которого введен с клавиатуры;

§ Если таких маршрутов нет, выдать на дисплей соответствующее сообщение.

11.а) Описать структуру с именем MARSH, содержащую следующие поля:

§ Название начального пункта маршрута;

§ Название конечного пункта маршрута;

§ Номер маршрута.

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа MARSH, записи должны быть упорядочены по номерам маршрутов;

§ Вывод на экран информации о маршруте, который начинается или кончается в пункте, название которого введено с клавиатуры;

§ Если таких маршрутов нет, выдать на дисплей соответствующее сообщение.

12.а) Описать структуру с именем NOTE, содержащую следующие поля:

§ Фамилии, имя;

§ Номер телефона;

§ День рождения ( массив из трех чисел ).

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть упорядочены по датам дней рождения;

§ Вывод на экран информации о человеке, номер телефона которого введен с клавиатуры;

§ Если такого нет, выдать на дисплей соответствующее сообщение.

13.а) Описать структуру с именем NOTE, содержащую следующие поля:

§ Фамилии, имя;

§ Номер телефона;

§ День рождения ( массив из трех чисел ).

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть размещены по алфавиту;

§ Вывод на экран информации о людях, чьи дни рождения приходятся на месяц, значение которого введено с клавиатуры;

§ Если такого нет, выдать на дисплей соответствующее сообщение.

14.а) Описать структуру с именем NOTE, содержащую следующие поля:

§ Фамилии, имя;

§ Номер телефона;

§ День рождения ( массив из трех чисел ).

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть упорядочены по трем первым цифрам номера телефона;

§ Вывод на экран информации о людях, чья фамилия введена с клавиатуры;

§ Если такого нет, выдать на дисплей соответствующее сообщение.

15.а) Описать структуру с именем ZNAK, содержащую следующие поля:

§ Фамилия, имя;

§ Знак Зодиака;

§ День рождения ( массив из трех чисел ).

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK; записи должны быть упорядочены по датам дней рождений;

§ Вывод на экран информации о человеке, чья фамилия введена с клавиатуры;

§ Если такого нет, выдать на дисплей соответствующее сообщение.

 

16. а) Описать структуру с именем ZNAK, содержащую следующие поля:

§ Фамилия, имя;

§ Знак Зодиака;

§ День рождения ( массив из трех чисел ).

б) написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK; записи должны быть упорядочены по датам дней рождений;

§ Вывод на экран информации о людях, родившихся под знаком, наименование которого введено с клавиатуры;

§ Если такого нет, выдать на дисплей соответствующее сообщение.

17.а) Описать структуру с именем ZNAK, содержащую следующие поля:

§ Фамилия, имя;

§ Знак Зодиака;

§ День рождения ( массив из трех чисел ).

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK; записи должны быть упорядочены по знакам Зодиака;

§ Вывод на экран информации о людях, родившихся в месяц, значение которого введено с клавиатуры;

§ Если такого нет, выдать на дисплей соответствующее сообщение.

18. а) описать структуру с именем PRICE,содержащую следующие поля:

§ Название товара;

§ Название магазина, в котором продается товар;

§ Стоимость товара в руб.

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE; записи должны быть размещены в алфавитном порядке по названиям товаров;

§ Вывод на экран информации о товаре, название которого введено с клавиатуры;

§ Если таких товаров нет, выдать на дисплей соответствующее сообщение.

19. а) Описать структуру с именем PRICE,содержащую следующие поля:

§ Название товара;

§ Название магазина, в котором продается товар;

§ Стоимость товара в руб.

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE; записи должны быть размещены в алфавитном порядке по названиям магазинов;

§ Вывод на экран информации о товарах, продающихся в магазине, название которого введено с клавиатуры;

§ Если таких товаров нет, выдать на дисплей соответствующее сообщение.

20. а) Описать структуру с именем ORDER, содержащую следующие поля:

§ Расчетный счет плательщика;

§ Расчетный счет получателя;

§ Перечисляемая сумма в руб.

б) Написать программу, выполняющую следующие действия:

§ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ORDER; записи должны быть размещены в алфавитном порядке по расчетным счетам плательщиков;

§ Вывод на экран информации о сумме, снятой с расчетного счета плательщика, введенного с клавиатуры;

Если такого расчетного счета нет, выдать на дисплей соответствующее сообщение

21.Составить программу, которая содержит динамическую информацию о наличии автобусов и автобусном парке.

  • Номер автобуса;
  • Фамилию и инициалы водителя;
  • Номер маршрута.

Программа должна обеспечивать:

  • Начальное формирование данных обо всех автобусах в парке в виде списка;
  • При выезде каждого автобуса из парка вводится номер автобуса, и программа удаляет данные об этом автобусе из списка автобусов, находящихся в парке, и записывает эти данные в список автобусов, находящихся на маршруте;
  • При въезде каждого автобуса в парк вводится номер автобуса, и программа удаляет данные об этом автобусе из списка автобусов, находящихся на маршруте, и записывает эти данные в список автобусов, находящихся в парке;

По запросу выдаются сведения об автобусах, находящихся в парке, или на маршруте.

22.Составить программу, которая содержит текущую информацию о книгах в библиотеке.

Сведения о книгах содержат:

  • Номер УДК;
  • Фамилию и инициалы автора;
  • Название;
    год издания;
  • Количество экземпляров данной книги в библиотеке.

Программа должна обеспечивать:

  • Начальное формирование данных о всех книгах в библиотеке в виде двоичного дерева;
  • Добавление данных о книгах, вновь поступающих в библиотеку;
  • Удаление данных о списываемых книгах;
  • По запросу выдаются сведения о наличии книг в библиотеке, упорядоченные по годам издания.

23. Составить программу, которая содержит текущую информацию о заявках на авиабилеты.

Каждая заявка содержит:

  • Пункт назначения;
  • Номер рейса;
  • Фамилию и инициалы пассажира;
  • Желаемую дату вылета.

Программа должна обеспечивать:

  • Хранение всех заявок в виде списка;
  • добавление заявок в список;
  • Удаление заявок;
  • Вывод заявок по заданному номеру рейса и дате вылета;
  • Вывод всех заявок.

24.Составить программу, которая содержит текущую информацию о заявках на авиабилеты.

Каждая заявка содержит:

  • Пункт назначения;
  • Номер рейса;
  • Фамилию и инициалы пассажира;
  • Желаемую дату вылета.

Программа должна обеспечивать:

  • Хранение всех заявок в виде списка в виде двоичного дерева;
  • добавление и удаление заявок;
  • По заданному номеру рейса и дате вылета вывод заявок с их последующим удалением;
  • Вывод всех заявок.

25.Составить программу, которая содержит текущую информацию о книгах в библиотеке.

Сведения о книгах содержит:

  • Номер УДК;
  • Фамилию и инициалы автора;
  • Название;
  • Год издания;
  • Количество экземпляров данной книги в библиотеке.

Программа должна обеспечивать:

  • Начальное формирование данных о всех книгах в библиотеке в виде списка;
  • При взятии каждой книги вводится номер УДК, и программа уменьшает значение количества книг на единицу или выдает сообщение о том, что требуемой книги в библиотеке нет, или требуемая книга находится на руках;
  • При возращении каждой книги вводится номер УДК, и программа увеличивает значение количества книг на единицу.
  • По запросу выдаются сведения о наличии книг в библиотеке.

26.Составить программу, которая содержит динамическую информацию о наличии автобусов в автобусном парке.

Сведения о каждом автобусе содержат:

  • Номер автобуса;
  • Фамилию и инициалы водителя;
  • Номер маршрута;
  • Признак того, где находится автобус – на маршруте или в парке.

Программа должна обеспечивать:

  • Начальное формирование данных о всех автобусах в виде списка;
  • При выезде каждого автобуса из парка вводится номер автобуса, и программа устанавливает значение признака <<автобус на маршруте>>;
  • При въезде каждого автобуса в парк вводится номер автобуса, и программа устанавливает значение признака <<автобус в парке>>;
  • По запросу выдаются сведения об автобусах, находящихся в парке, или об автобусах, находящихся на маршруте.

27.Составить программу, отыскивающую проход по лабиринту.

Лабиринт представляется в виде матрицы, состоящий из квадратов. Каждый квадрат либо открыт, либо закрыт. Вход в закрытый квадрат запрещен. Если квадрат открыт, то вход в него возможен со стороны, но не с угла. Каждый квадрат определяется его координатами в матрице.

Программа находит проход через лабиринт, двигаясь от заданного входа. После отыскания прохода программа выводит найденный путь в виде координат квадратов. Для хранения пути использовать стек.

28.Гаражная стоянка имеет одну стояночную полосу, причем въезд и выезд находятся в одном конце полосы. если владелец автомашины приходит забрать свой автомобиль , который не является ближайшим к выходу, то все автомашины, загораживающие проезд, удаляются, машина данного владельца выводится со стоянки, а другие машины возвращаются на стоянку в исходном порядке.

Написать программу, которая моделирует процесс прибытия и отъезда машин. Прибытие или отъезд автомашины задается командной строкой, которая содержит признак прибытия или отъезда и номер машины. Программа должна выводить сообщение при прибытии или выезде любой машины. При выезде автомашины со стоянки сообщение должно содержать число раз, которое машина удалялась со стоянки для обеспечения выезда других автомобилей.

29.Сведения о каждой квартире содержат:

  • Количество комнат;
  • Этаж;
  • Площадь;
  • Адрес.

Составить программу, которая обеспечивает:

  • Начальное формирование картотеки;
  • Ввод заявки на обмен;
  • Поиск в картотеке подходящего варианта: при равенстве количества комнат и этажа и различии площадей в пределах 10% вводится соответствующая карточка и удаляется из списка, в противном случае поступившая заявка включается в список;
  • Вывод всего списка.

30.Анкета для опроса населения содержит две группы вопросов.

Первая группа содержит сведения о респонденте:

  • Возраст;
  • Пол;
  • Образование ( начальное, среднее, высшее ).

Вторая группа содержит вопрос анкеты, ответ на который либо ДА, либо НЕТ.

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

  • Обеспечивает начальный ввод анкет и формирует из них линейный список;
  • На основе анализа анкет выдает ответы на следующие вопросы: а) сколько мужчин старше 40 лет, имеющих высшее образование, ответили ДА на вопрос анкеты; а) сколько женщин моложе 30 лет, имеющих среднее образование, ответили НЕТ на вопрос анкеты; а) сколько мужчин моложе 25 лет, имеющих начальное образование, ответили ДА на вопрос анкеты.
  • Производит вывод всех анкет и ответов на вопросы.

31.Составить программу, которая содержит текущую информацию о книгах в библиотеке.

Сведения о книгах содержит:

  • Номер УДК;
  • Фамилию и инициалы автора;
  • название;
  • Год издания;
  • Количество экземпляров данной книги в библиотеке.

Программа должна обеспечивать:

  • Начальное формирование данных о всех книгах в библиотеке в виде списка;
  • Добавление данных о книгах, вновь поступающих в библиотеку;
  • Удаление данных о списываемых книгах;
  • По запросу выдаются сведения о наличии книг в библиотеке, упорядоченные по годам издания.

32.На междугородной телефонной станции картотека абонентов, содержащая сведения о телефонах и их владельцах, организована как линейный список.

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

  • Обеспечивает начальное формирование картотеки в виде линейного списка;
  • Производит вывод всей картотеки;
  • Вводит номер телефона и время разговора;
  • Выводит извещение на оплату телефонного разговора.

33.На междугородной телефонной станции картотека абонентов, содержащая сведения о телефонах и их владельцах, организована как двоичное дерево.

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

  • Обеспечивает начальное формирование картотеки в виде двоичного дерева;
  • Производит вывод всей картотеки;
  • Выводит номер телефона и время разговора;
  • Выводит извещение на оплату телефонного разговора.

34.Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования. Для каждого поезда указывается:

  • Номер поезда;
  • Станция назначения;
  • Время отправления.

Данные в информационной системе организованы в виде линейного списка.

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

  • Обеспечивает первоначальный ввод данных в информационную систему и формирование линейного списка;
  • Производить вывод всего списка;
  • вводит номер поезда и выводит все данные об этом поезде;
  • Вводит название станции назначения и выводит данные обо всех поездах, следующих до этой станции.

35.Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования.

Для каждого поезда указывается:

  • Номер поезда;
  • Станция назначения;
  • Время отправления.

Данные в информационной системе организованы в виде двоичного дерева.

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

  • Обеспечивает первоначальный ввод данных в информационную систему и формирование двоичного дерева;
  • Производить вывод всего дерева;
  • вводит номер поезда и выводит все данные об этом поезде;
  • Вводит название станции назначения и выводит данные обо всех поездах, следующих до этой станции.

Программа должна обеспечивать диалог с помощью меню и контроль ошибок при вводе.

36. Дан список учебной группы, включающий 20 человек. Для каждого студента известны: фамилия, имя, дата рождения, оценки по всем дисциплинам за последний семестр. Составить программу, которая обеспечивает ввод информации и отображение ее на экран в виде таблицы. Отобразить на экран анкетные данные студентов-отличников в виде таблицы. Отобразить на экран фамилию и имя студентов, родившихся зимой и весной.

37. Сведения об экзамене содержат следующие данные: дисциплину (программирование, алгебра, история, геометрия), дату сдачи экзамена (год, месяц, день), сведения о студенте (факультет, курс, группа, номер в журнале) и экзаменационную оценку. Задан набор сведений об экзаменах, сданных студентами за последние два года; в них факультет и предмет кодируются первыми буквами названия. Определить количество неуспевающих по программированию на экономическом факультете среди студентов первого курса, сдававших экзамены зимой 1995 года, вывести на экран их группу и номер в журнале.

38. Сведения об экзамене содержат следующие данные: дисциплину (программирование, социология, иностранный язык, физика), дату сдачи экзамена (год, месяц, день), сведения о студенте (фамилия, факультет, курс, группа) и экзаменационную оценку. Задан набор сведений об экзаменах, сданных студентами за последние несколько лет; в них факультет и предмет кодируются первыми буквами названия. Определить количество отличников по программированию на технологическом факультете среди студентов первого курса, сдававших экзамены летом 1995 года, вывести на экран их фамилии и группу.

39. Сведения об экзамене содержат следующие данные: дисциплину (программирование, вычислительная техника, информатика), дату сдачи экзамена (год, месяц, день), сведения о студенте (факультет, курс, группа, номер в журнале) и экзаменационную оценку. Задан набор сведений об экзаменах, сданных студентами за последние несколько лет; в них факультет и предмет кодируются первыми буквами названия. Определить, на каком факультете самый высокий средний балл по программированию среди студентов первого и второго курсов, сдававших экзамены зимой 1995 года.

40. Сведения об экзамене содержат следующие данные: дисциплину (программирование, вычислительная техника, информатика), дату сдачи экзамена (год, месяц, день), сведения о студенте (факультет, курс, группа, номер в журнале) и экзаменационную оценку. Задан набор сведений об экзаменах, сданных студентами за последние несколько лет; в них факультет и предмет кодируются первыми буквами названия. Определить, на каком факультете самый высокий показатель качества успеваемости по информатике (то есть самый высокий процент отличников и хорошистов) среди студентов первого курса, сдававших экзамены зимой 1995 года или летом 1996 года.

41. Справка о междугороднем телефонном разговоре содержит: номер телефона абонента (6 цифр), дату (год, месяц, день), время (час, минута), код города (3 цифры), номер телефона в другом городе (7 цифр), продолжительность разговора (в минутах), категорию (срочный, обычный) и тариф (плата в рублях за минуту). Определить дату такого телефонного разговора, которой является максимальным по продолжительности среди срочных разговоров за указанный месяц.

42. Справка о междугороднем телефонном разговоре содержит: номер телефона абонента (6 цифр), дату (год, месяц, день), время (час, минута), код города (3 цифры), номер телефона в другом городе (7 цифр), продолжительность разговора (в минутах), категорию (срочный, обычный) и тариф (плата в рублях за минуту). Вывести на экран код города и номер телефона в другом городе для телефонных разговоров, состоявшихся с телефона 235678 8 марта 1996 года.

43. Справка о междугороднем телефонном разговоре содержит: номер телефона абонента (6 цифр), дату (год, месяц, день), время (час, минута), код города (3 цифры), номер телефона в другом городе (7 цифр), продолжительность разговора (в минутах), категорию (срочный, обычный) и тариф (плата в рублях u1079 за минуту). Вывести на экран номер телефона абонента, код города и номер телефона в другом городе для срочных телефонных разговоров, состоявшихся между 15 марта и 12 апреля 1996 года .

44. Деталь автомобиля описывается инвентарным номером (положительное целое число), весом (в килограммах), ценой и стоимостью (в рублях), датой начала производства (год, месяц, день), статусом (имеет или не имеет знак качества) и объемом производства (в штуках за смену). В заданной последовательности сведений о деталях найти инвентарные номера деталей с наибольшей датой начала производства среди всех заданных деталей. Вывести на экран инвентарный номер, объем производства, цену и стоимость деталей со знаком качества.

45. Деталь автомобиля описывается инвентарным номером (положительное целое число), весом (в килограммах), ценой и стоимостью (в рублях), датой начала производства (год, месяц, день), статусом (имеет или не имеет знак качества) и объемом производства (в штуках за смену). В заданной последовательности сведений о деталях найти инвентарные номера деталей с минимальным весом среди деталей без знака качества. Вывести на экран инвентарный номер, объем производства, цену и стоимость деталей, выпускаемых с февраля 1977 года.

 

Контрольные вопросы.

 

1. Что понимается под записью в языке Паскаль?

2. Как объявляются записи?

3. Какие операции допустимы над полями записи?

4. Как организовать ввод и вывод данных типа записи?

5. Как осуществляется доступ к полям записи?

6. Можно ли использовать в записи поля одного типа?

7. Чем отличается запись от массива?

8. Каково назначение оператора присоединения?

9. Назначение и общий вид записи с вариантами.