Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лекция 9 Комбинированный тип данных Комбинированный тип record {фиксированная ча

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 19.5.2024

4

Лекция 9

Комбинированный тип данных

Комбинированный тип = record

{фиксированная часть записи}

{; вариантная часть записи}

end .

Фиксированная часть записи =

Идентификатор {, Идентификатор} : Тип

{; Идентификатор {, Идентификатор} : Тип} .

Вариантная часть записи =

сase Селектор варианта  of

Вариант записи {; вариант записи }

end .

Вариант записи = Константа {, Константа} : (  Список полей ) .

Селектор варианта = Идентификатор переменной порядкового типа.

  1.  Комбинированный тип данных языка  Паскаль позволяет в программе задавать структуру данных, которая называется записью.
  2.  Запись – поименованная последовательность разнотипных элементов. Элемент записи называется полем. Доступ к элементу записи (полю) осуществляется по имени записи и поля, которые разделены точкой.
  3.  Записи особенно удобны для описания таблиц, содержащих разнотипные графы (строковые, числовые), причем степень сложности шапки таблицы не имеет значения.

Пример 1: Склад

Наименование товара

Количество (кг)

Цена

Итого

Абрикосы

200

2.5

500

Сливы

150

3

450

Персики

140

5

700

var Tovar: record

Nazv: String[30];

Kol: Real;

Cena: Real;

Itogo: Real;

end;

begin

Tovar.Nazv := “Абрикoсы”;

Tovar.Kol := 200;

Tovar.Cena := 2.5;

Tovar.Itogo := Tovar.Kol * Tovar.Cena;

End.

type TTovar: record

Nazv: String(30);

Kol, Cena, Itogo: Real;

end;

var Tovar : array [1..3] of  TTovar; i:Byte;

begin

for i:=1 to 3 do

begin

Write(“Введие название товара =>”);

Readln(Tovar[i].Nazv);

Write(“Цену товара => ”);

Readln(Tovar[i].Cena);

Write(“Вес товара=>”);

Readln(Tovar[i].Kol);

Tovar[i].Itogo := Tovar[i].Kol * Tovar[i].Cena;

end;

end.

type TTovar: record

Nazv: String[30];

Kol, Cena, Itogo: Real;

end;

var Tovar: TTovar;                  

F: file of TTovar;

procedure In;

{эта процедура создаёт файл данных на диске}

begin

Rewrite(f);

for i:=1 to 10 do

begin

Write(“Введие название товара ”);

Readln(Tovar.Nazv);

Write(“Введите цену ”);

Readln(Tovar.Cena);

Write(“Введите вес товара ”);

Readln(Tovar.Kol);

Tovar.Itogo:=Tovar.Kol*Tovar.Cena;

Write(f, Tovar);

end;

end.

procedure Out;

{эта процедура читает файл данных с диска }

begin

reset(f);

while not(eof(f)) do

begin

Write(Tovar.Nazv);

Write(Tovar.Cena);

Write(Tovar.Kol);

Writeln(Tovar.Itogo);

end;

end.

begin

Assign(f, “d:\Info\Sklad.ttt”);

In;

Out;

end.

  1.  Запись может быть элементом другой записи или массива

Пример 2: Деканат

Фамилия И.О. студента

Год рожд -я

Группа

Отметки

математика

физика

информатика

история

Иванов И.И.

1980

312

4

5

4

4

Петров П.П.

1979

322

5

3

5

5

Сидоров С.С.

1980

312

3

5

5

4

type TMarks = record

Matem,Fizika,Inf,Istor:1..5;

end;

TStudent = record

Name : String[30];

God, Gruppa : Integer;

Otmet : TMark;

end;

var Stud : TStudent;

begin

Stud.Name := ”Иванов И.И.”;

Stud.God := 1980;

Stud.Gruppa := 312;

Stud.Otmet.Matem:=4;

Stud.Otmet.Inf:=4;

end;

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

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

type Sex = (Men, Women);

M = record

Name : String[30];

Date : 1900..2050;

M_W : Sex;

case Sex of

Men : (Work : String[25]);

Women : (Child : Byte; );

end;

var X : M;

begin

X.Name:=”Яблочкина А.И.”;

X.Date:=1970;

X.M_W:=Women;

X.Child:=2;

end.

type Figure = (Square, Triangle, Circle);

Param = record

X,Y : Real;

Fig : Figure;

case Fig of

Square : (Side : Real);

Triangle :

  (Side1,Side2,Angle:Real );

Circle : (Radius : Real);

end;

var MySquare, MyCircle : Param;

begin

MySquare.X:=3; MySquare.Y:=5;

MySquare.Side:=5;

MySquare.Fig:= Square;

MyCircle.X:=2; MyCircle.Y:=7;

MyCircle.Radius:=6;

end.

Оператор присоединения

Оператор присоединения = with список имен записей (полей) do оператор.

Оператор присоединения распространяет действие имен записей и полей, указанных в нем, на оператор, стоящий за do. Поэтому при обращении к полям записей в области действия оператора присоединения  можно опускать имена полей и записей, указанных после with. Транслятор формирует полное имя поля автоматически. Пример 2 можно было бы записать так :

var Stud : TStudent;

begin

  with Stud do

begin

Name := ”Иванов И.И.”;

God := 1980;

Gruppa := 312;

with Otmet do

 begin

Matem:=4; Fizika:=5;

Inf:=4; Istor:=4;

 end;

end;

end.




1.  Основные принципы правового регулирования трудовых отношений
2. I. Казнь короля и уничтожение монархии в Англии.html
3. иях в Россию Регион Объем в 19931997 гг
4. тема управления финансами
5. Магеллан Фернандо1
6. Вряд ли этот сугубо рабочий документ содержащий некоторые обобщения наблюдения предварительные оценки пр
7. тематики зумовленої професійними потребами
8. Развитие личности главного героя в романе А.С. Пушкина Евгений Онеги
9. Технологические характеристики грунта
10. по теме- Учение И
11. . Выберите из нижеперечисленных гормон белковопептидной природы 1
12. До исторический этап - Человек выделяется из животного мира начинает использовать огонь орудия труда
13. Свойства некоторых веществ в свете теории электролитической диссоциации
14. структура Для детей номера питание Особенности рекоменд
15. Демократия как основа политической жизни общества
16. ІІІ модулі Полтава ~ 2009 Автори- д
17. нач 20 в СДПГ Реальных различий не так много с точки зрения программы движения одинаковы
18. ВЫСШАЯ ШКОЛА 2000 УДК 7.html
19. Імпульс- 8 листопада 2012 року зустріч вихованців Харківської загальноосвітньої школиінтернату 11 з при
20. Развитие звуковой стороны речи и осознание звукового состава слова