programmirovanie_l6-2016

Содержание

Слайд 2

Записи

Type имя=record
имя_поля11, …, имя_поля1n:тип1;
. . . . . . . . .

Записи Type имя=record имя_поля11, …, имя_поля1n:тип1; . . . . . .
. . . . . . . . . . . . . . . . . . . . .
имя_поляk1, …, имя_поляkm:типk;
End;
Type date=record
day:1..31;
month:1..12;
year:integer;
End;
Var d:date;

Слайд 3

Type student=record
Fio:string [40];
God_r:integer;
Usp:real;
End;
Const n=10;
Var S:student;
Arr_student:array[1..n] of student;

Type student=record Fio:string [40]; God_r:integer; Usp:real; End; Const n=10; Var S:student; Arr_student:array[1..n] of student;

Слайд 4

Описание записи в разделе var

var <имя_записи>: record <имя_поля1>,_,<имя_поляN>: <тип_полей>;
<имя_поляS>: <тип_поляS>;
...

Описание записи в разделе var var : record ,_, : ; :
end;
var zap1: record x,y: real;
i,j,k: integer;
flag: boolean;
a: array[1..100] of byte;
data: record day:1..31;
month: 1..12;
year: 1900..2100;
end;
end;

Слайд 5

Возможна ситуация

var x: real;
r: record x: real;
y: real
end;

Возможна ситуация var x: real; r: record x: real; y: real end;

Слайд 6

Обращение к полю

d.date:=30;
d.month:=12;
d.year:=1993;

Обращение к полю d.date:=30; d.month:=12; d.year:=1993;

Слайд 7

Запись – компонент других структур

Type family=(father,mother,child);
Var birthday:array[family] of date;
Обращение к полям:
birthday[father].day:=30;
birthday[father].month:=12;
birthday[father].year:=1964;

Запись – компонент других структур Type family=(father,mother,child); Var birthday:array[family] of date; Обращение

Слайд 8

with <имя_записи> do
begin <операторы>
{имена полей здесь используются как < имя_поля>, а не

with do begin {имена полей здесь используются как , а не как
как
<имя_записи>.<имя_поля>}
end;
With birthday[father] do
Begin
day:=30;
month:=12;
year:=1964;
End;

Слайд 9

Но!

with my_birthday do
begin day:= 17;
month:= 3; {поле записи my_birthday.month}
year:= 2004;
programma.month:= 5;

Но! with my_birthday do begin day:= 17; month:= 3; {поле записи my_birthday.month}
{глобальная переменная month}
end;

Слайд 10

Запись с вариантной частью

Type имя=record
имя_поля1:тип1;
. . . . . . . .

Запись с вариантной частью Type имя=record имя_поля1:тип1; . . . . .
. . . . . . .
имя_поляN:типN;
Case переключатель:тип Of
метка1:(имя_поля11:тип11;имя_поля12:тип12;…);
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
меткаk:(имя_поляk1:типk1;имя_поляk2:типk2;…);
End;

Слайд 11

Type kind=(married,single);
person=record
name:string;
datebirth:date;
Case yesno:kind Of
married:(name1:string;date1:date);
single:();
End;

Type kind=(married,single); person=record name:string; datebirth:date; Case yesno:kind Of married:(name1:string;date1:date); single:(); End;

Слайд 12

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

Пример. Для того чтобы описать содержимое библиотеки, необходима следующая информация: Графы "Название"
"Издательство" являются общими для всех трех вариантов, а остальные поля зависят от типа печатного издания.

Слайд 13

type biblio = record
name,publisher: string[20];
case item: char of
'b': (author: string[20]; year: 0..2020);
'n':

type biblio = record name,publisher: string[20]; case item: char of 'b': (author:
(data: date);
'm': (year: 1700..2004;
month: 1..12;
number: integer);
end;
Var bibl:array[10] of biblio;

Begin
Bibl[1].name:=‘forest’;
Bibl[1].publisher:=‘avanta’;
Bibl[1].item:=‘b’;
Bibl[1]. author :=‘petya’;
Bibl[1]. year:=1987;

Слайд 14

Вложенные операторы with

type date = record day: 1..31;
month: 1..12;
year:

Вложенные операторы with type date = record day: 1..31; month: 1..12; year:
1900..2005;
end;
student = record name: string[100];
year: 1950..2005; {год поступления}
gruppa: string[5];
birth: date;
end;
var ivanov: student;

Слайд 15

 begin
...
with ivanov do
begin
...
with birth do
begin
...
year:= 2001; {birth.year}
gruppa:= 'IT01'; {ivanov.gruppa}
...
end;
...
end;
End.

begin ... with ivanov do begin ... with birth do begin ...

Слайд 16

Множества

Type имя=set of базовый_тип;
или
Type monet=(r1,r5,r10);
Var sum: set of monet;
Конструкторы множеств: [r1],

Множества Type имя=set of базовый_тип; или Type monet=(r1,r5,r10); Var sum: set of
[r1,r10]
if c in ['a','e','i','o','u']
then writeln('Гласная буква');
if set1 < [k*2+1..n,13] then set1:=[];
Операции: =,<>,>=,<=,in,+,-,*,:=

Слайд 17

var s1: set of char; {множество из 256-ти элементов}
s2: set of 'a'..'z','A'..'Z'; {множество из

var s1: set of char; {множество из 256-ти элементов} s2: set of
52-х элементов}
s3: set of 0..10; {множество из 11-ти элементов}
s4: set of boolean; {множество из 2-х элементов}

Слайд 18

Type n=1..9;
Var k:set of n;
k:=[];
k:=[3..6]; …
[1,3]=[3,1]
[1..3]=[1,2,3]
[1]<>[2]
[1,2,3] <>[1,4,3]
[1,2]<=[1,2,3]
[1,2,5]> [1,2,3]
[3] in [1,2,3]

Type n=1..9; Var k:set of n; k:=[]; k:=[3..6]; … [1,3]=[3,1] [1..3]=[1,2,3] [1]
Имя файла: programmirovanie_l6-2016.pptx
Количество просмотров: 59
Количество скачиваний: 0