yandex rtb 1
ГоловнаЗворотній зв'язок
yande share

Основы программирования

9. ЗАПИСИ

1. Запись (record) - это структура (тип данных), предназначенная для хранения в оперативной памяти компьютера сложных данных, состоящих из отдельных компонент различных типов, которые называются полями. Запись описывают в разделе type или в разделе var с помощью такой конструкции:

<имя записи>=гесогd

                    <имя поля 1> : <тип поля 1>;

                    …

                    <имя поля n> : <тип поля n>;

         end;

Пример. Информацию об анкетных данных студентов можно представить с помощью таких полей: фамилия, имя, дата рождения и средний балл. Созданную структуру опишем как тип записи gruppa.

type gruppa = record {Описываем тип записи gruppa}

name, surname : string[20];    {Описываем}

birthday : record                    {соответствующие поля}

year : 1975..1985;

month : 1..12;

day : 1..31;

end;

sball : real

end;

Доступ к полю конкретной записи обеспечивает составное имя

<имя записи>.<имя поля>

Переменные-записи типа gruppa объявляют в разделе var так: studentl, student2 : gruppa. В программе этим переменным можно присвоить, например, такие значения:

studentl.surname := 'Игорь'; student2.birtday.month := 5.

Составными именами пользоваться неудобно. Они ведут к громоздким выражениям. Для их упрощения служит команда присоединения with.

2. Команда присоединения (with). Команда присоединения даёт возможность записывать в программе только имена полей. Общий вид команды with такой:

with <имя переменной типа запись> do <команда>;

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

К переменным из предыдущего примера можно обратиться так:

with studentl do

begin

name := ‘Гудимов’;

surname := ‘Андрей’;

with birthday do

begin

year := 1980;

month := 12;

day := 28;

end;

sball := 4.9

end;

Задача 1. Используя тип массив записей, составить программу для учета и обработки данных о наличии на складе автомашин. Вывести на экран информацию о моделях и годах выпуска машин, цена которых меньше, чем 3000 у.е.

Пусть запись содержит такие поля: модель (marka), год выпус­ка (year) и цена машины (price).

program Avtoprice;

uses Crt;

const      n = 10;

type        avto = record

marka : string[15];

year, price : integer;

end;

var         al : array[l..n] of avto;

і : integer;

begin

clrscr;

for і := 1 to n do

with al[i] do

begin

writeln('Введите марку машины:');

readln(marka);

writeln(‘Год выпуска:’);

readln(year);

writeln(‘Цена:’);

readln(price);

end;

writeln;

writeln('Фирма предлагает такие машины:');

for і := 1 to n do

with al[i] do

writeln(marka:15, year: 10, '   $', price);

writeln;

write('Bыведите информацию о машинах,');

writeln('n;eHa которых меньше 3000 у.е.:');

for і := 1 to n do

with al[i] do

if price < 3000 then

writeln(marka:15, year: 10);

readln

end.

Задание 1. Дополните описания типа полем цвет (color) и выведите на экран информацию о машинах красного цвета, выпущенных за последние семь лет.

Задание 2. Решите задачу № 18 своего варианта.

 

 

 

 

 

17