Помощничек
Главная | Обратная связь


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

Лабораторная работа №11



 

Тема: Решение задач на комбинированные типы

Цель: Формирование навыков и умений по составлению программ с использованием комбинированного типа данных — записей

Краткие сведения:

Запись – структура данных, состоящая из фиксированного числа компонент, называемых полями каждая из которых может иметь свой тип.

Структурированные типы в отличие от скалярных состоят из компонент.

Регулярные типы – фиксированное число однотипных компонент.

Комбинированные типы– фиксированное число компонент различных типов.

Записи позволяют в компактной форме описывать различные объекты (списки, каталоги, картотеки, таблицы, ведомости и т.д.).
Описание записей в Паскале

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

Запись имеет следующую структуру:

IZ = RECORD Где: IZ – имя типа записи;
IK1 : T1; IK – имя поля (компоненты);
IK2 : T2; T - тип компоненты, м.б. любой стан-
. . . дартный либо предварительно
IKN :TN; определенный (кроме файлового);
END; RECORD – запись;
RECORD-END – операторные скобки.

 

Пример описания записи

Const n=25;
Type Date = Record
Year : integer; {Год}
Month : 1..12; {Число}
Day : 1..31; {Месяц}
End;
Student = Record
FIO : String[15]; {ФИО}
Dr : Date; {Дата рождения}
Str : String[20]; {Страна}
b1,b2,b3,b4,b5 : 2..5; {Поле оценок}
End;
Vec = array[1..n] of Student;

Var EMS_43a, EMS_43a, EMS_43a :Vec;

 

Порядок следования полей в записи не имеет значения.

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

Type x=(Yes, No);
Student = Record
FIO : String[25]; {ФИО}
Mark : 2..5; {Оценки}
Variant :x;
Case x of
Yes : (Str : String[20]); {Страна}
No : ( );
End;

 

Обработка записей в Паскале

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

Для обращения к полям записи используются составные имена.

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

Например:

EMS_43a[1].FIO :=’Антонов’;
EMS_43a[1].Dr.Day :=13;
EMS_43a[1].Dr. Month :=1;
EMS_43a[1].Dr. Year :=1986;

Оператор присоединения в Паскале

Оператор присоединения позволяет упростить обращение к элементам записи и имеет следующий формат записи:
With <Имя> do
OP;
Где With - с;
<Имя> - имя записи (простое или составное);
do - делать;
OP - оператор (простой или составной);

 

Вввод / вывод записей в Паскале

При вводе/выводе записей используются отдельные поля записи

For i:=1 to n do Read (EMS_43a[i].FIO, EMS_43a[i].Str)

При использовании оператора присоединения

For i:=1 to n do
With EMS_43a[i] do
Begin
Read (FIO);
Read (Str);
End;

Задания:

Вариант 1.

Даны оценки группы студентов на экзаменах по 4 предметам: алгебре, геометрии, философии, информатике. Найти, по какому предмету студенты получили наибольшее количество двоек.

Вариант 2.

Даны оценки группы студентов на экзаменах по 4 предметам: алгебре, геометрии, философии, информатике. Найти и вывести фамилии тех студентов, которые все экзамены сдали на 9.

Вариант 3.

Даны оценки группы студентов на экзаменах по 4 предметам: алгебре, геометрии, философии, информатике. Найти и вывести фамилии тех студентов, которые на экзаменах получили не ниже 7 баллов.

Вариант 4.

Даны оценки группы студентов на экзаменах по 4 предметам: алгебре, геометрии, философии, информатике. Найти, по какому предмету студенты получили наибольшее количество 10 и 9.

Вариант 5.

Известна прибыль предприятий за данный месяц, а также названия предприятий. Вывести список тех предприятий, прибыль которых была меньше указанной, или указать, что таких нет.

Вариант 6.

Даны сведения по областям: название области, количество засеянной земли рожью, собранный урожай. Вывести название области, у которой наибольшая урожайность.

Вариант 7.

Опишите, используя структуру записи, данные о владельце автомобиля (фамилия, марка автомобиля, гос. номер, цвет). Составьте программу, осуществляющую поиск владельца автомобиля «Жигули» белого цвета с фиксированным гос. номером.

Вариант 8.

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

Вариант 9.

Создать массив записей следующего типа:

Страна Территория в км2 Население млн.человек Столица
Латвия 67,7 2,6 Рига
Литва 65,2 3,4 Вильнюс
Польша 34,8 Варшава
Украина 603,7 Киев
Россия 17075,4 Москва

Найти и вывести общую площадь перечисленных стран.

Вариант 10.

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

Вариант 11.

Создать массив записей следующего типа:

Страна Территория в км2 Население млн.человек Столица
Латвия 67,7 2,6 Рига
Литва 65,2 3,4 Вильнюс
Польша 34,8 Варшава
Украина 603,7 Киев
Россия 17075,4 Москва

Найти и вывести для каждой страны плотность населения.

Вариант 12.

Создать массив записей следующего типа:

Страна Территория в км2 Население млн.человек Столица
Латвия 67,7 2,6 Рига
Литва 65,2 3,4 Вильнюс
Польша 34,8 Варшава
Украина 603,7 Киев
Россия 17075,4 Москва

Найти и вывести страну с наибольшей плотностью населения.

Вариант 13

Известен список сотрудников отдела с указанием окладов. Вывести список тех сотрудников отдела, оклад которых меньше заданного минимального, или указать, что таких нет.

Вариант – 14

Известны фамилии и средний балл за полугодие учеников класса. Напечатать список тех учеников класса, средний балл которых превышает «4» , или указать, что таких нет.

Вариант - 15

Известна информация о хранящемся на складе товаре: наименование товара и его цена. Вывести список тех товаров, цена которых меньше указанной, или указать, что таких нет.

 

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

1. Как обратиться в программе к полю записи?

2. Что необходимо сделать, чтобы описать в программе объект, ха­рактеристики которого — разнотипные данные?

3. Что необходимо сделать, чтобы описать в программе объект, ха­рактеристики которого — однотипные данные?

4. Объясните, что означают имена: х[ 2 ].position, x[ 5 ].date.month, w.name.

5. Для чего используется операторwith?

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.