Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Записи

Содержание

Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов, называемых полями. Идентификатор (имя) поля должен быть уникален только в пределах записи. Обращение к значению поля осуществляется с помощью составного имени
Записи в языке Pascal Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного В языке Turbo Pascal различают фиксированные и вариантные записи.Фиксированная запись состоит из Описание фиксированной записейType  имя типа = record			имя поля 1 : тип;			имя Пример:Type  Car = record		  Number: string[10]; Для упрощения доступа к полям записи используется оператор присоединения With  где К записям в целом применим оператор присваивания . Например 			А :=В Над Pascal  допускает использование вложенных записей (т.е. поле записи может быть в Например:   Type zap1 = record			Day : byte;		{день}			Month : 1..12;	{месяц}			Year : Пример обращения к дню рождения студента:  For i:=1 to 10 doWith Задача:Из массива записей, содержащего информацию о преподавателях (фамилия_имя_отчество, читаемые дисциплины) вывести в Program zapis;typeMas=array[1..10] of string; TRec = Record    FIO: String[40]; beginwriteln('Введите количество преподавателей ');readln(kol);For i:=1 to kol dobeginWrite('Введите ФИО -');readln(rec[i].fio);write('Введите количество дисциплин op:=1; {сортировка массива записей в алфавитном порядке фамилий} while op=1 do {op=1 Writeln('Введите название дисциплины для поиска преподавателя'); readln(st); op:=0; {op- признак наличия преподавателей, В языке Pascal  имеется возможность задать тип записи, содержащий произвольное число Вариантная часть формируется с помощью оператора Case. Он задает поле признака, которое Количество полей каждого из вариантов неограниченно. Объем памяти, необходимый для записи с Описание вариантной записиType  имя типа = record	имя поля 1 : тип; Type Tmark1=record         {экзамены 1 Tstudent= record	{информация о студенте}	FIO:string[40];	   {фамилия,имя,отчество}	Gruppa:string[4];	   {группа}	Year: integer; Program Katalog; {каталог лит-ры в библ}Type Publ=(Book, Journal, NewPaper);Liter=record		 title: string[50]; Const count=10;Var Katalog: array[1..count] of liter;		i: 1..count;		Yes_liter:boolean;{поиск заданной лит-ры}		Vibor: byte; {выбор вида Case Vibor of1: Katalog[i].v:=Book;2: Katalog[i].v:=Journal;3: Katalog[i].v:=NewPaper;End;With Katalog[i] doBegin		Write(‘фамилия автора’);		Readln (autor);		Write(‘название книги’);		Readln(title); Case V of {начало ввода данных в вариант. часть							записи}Book: begin Write(‘год издания’); //процедура вывода данныхProcedure Vivod_data;Begin Write(‘литература №’);		With Katalog[i] do 		begin Write(‘название’, title);			Write(‘фамилия автора’, // поиск литературы по типу изданияProcedure Find_liter;Write(‘введите число, указывающее тип издания’);Readln(Vibor);Case Vibor For i:=1 to count doIf Katalog[i].V=E then 					begin					kol:=kol+1;					Vivod_data; {вывод}					Yes_liter:=true					 end;If Yes_liter=false then //головнаяbeginFor i:=1 to count doInput_data; {ввод данных}Find_data;  {поис литературы}end.
Слайды презентации

Слайд 2 Запись – это структурированный тип данных, состоящий из

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

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

Идентификатор (имя) поля должен быть уникален только в пределах записи.
Обращение к значению поля осуществляется с помощью составного имени - идентификатора переменной (имени записи) и идентификатора поля, разделенных точкой.
 

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


Слайд 4 В языке Turbo Pascal различают фиксированные и вариантные

В языке Turbo Pascal различают фиксированные и вариантные записи.Фиксированная запись состоит

записи.
Фиксированная запись состоит из одного или нескольких полей, для

каждого из которых при объявлении указывается имя (идентификатор) и тип

Слайд 5 Описание фиксированной записей
Type имя типа = record
имя

Описание фиксированной записейType имя типа = record			имя поля 1 : тип;			имя

поля 1 : тип;
имя поля 2 : тип;
.

. .
имя поля N: тип
end;
Var Имя записи : имя типа;

где record, end – зарезервированные слова ( запись, конец);
имя поля1,..имя поля n – список полей;


Слайд 6 Пример:
Type Car = record
Number: string[10];

Пример:Type Car = record		 Number: string[10];	   {номер}		 Marka: string[20];

{номер}
Marka: string[20];

{марка автомобиля}
FIO: string[50] {фамилия владельца}
end;
Var a,b: Car;

Пример обращения к полям записи:
a. Marka, B.FIO, а.Number


Слайд 7 Для упрощения доступа к полям записи используется оператор

Для упрощения доступа к полям записи используется оператор присоединения With  где

присоединения With
 


 
где With, do – зарезервированные слова

( с, делать);
имя записи – имя переменной типа запись, за которым возможно следует список вложенных полей;
оператор – любой (один) оператор языка Pascal .

Например: With A do Marka:=’Жигули’

With имя записи do
оператор;


Слайд 8 К записям в целом применим оператор присваивания .

К записям в целом применим оператор присваивания . Например 			А :=В


Например А :=В

Над полями записей можно выполнять любые

операции, присущие данному типу.


Слайд 9 Pascal допускает использование вложенных записей (т.е. поле

Pascal допускает использование вложенных записей (т.е. поле записи может быть в

записи может быть в свою очередь тоже записью).

Уровень

вложения не должен превышать 9.

Слайд 10 Например:
Type zap1 = record
Day :

Например:  Type zap1 = record			Day : byte;		{день}			Month : 1..12;	{месяц}			Year :

byte; {день}
Month : 1..12; {месяц}
Year : word {год}
end;
zap2 = record
FIO: string[30];

{фамилия студента}
Gruppa: integer; {номер группы}
Birthday: zap1 {дата рождения}
end;
Var Spisok: array [1..10] of zap2;

Слайд 11 Пример обращения к дню рождения студента:

For

Пример обращения к дню рождения студента: For i:=1 to 10 doWith

i:=1 to 10 do
With spisok[i] , birthday do
day

:= 23;

Слайд 12 Задача:
Из массива записей, содержащего информацию о преподавателях (фамилия_имя_отчество,

Задача:Из массива записей, содержащего информацию о преподавателях (фамилия_имя_отчество, читаемые дисциплины) вывести

читаемые дисциплины) вывести в алфавитном порядке фамилии преподавателей, читающих

заданную дисциплину.

Слайд 14 Program zapis;
type
Mas=array[1..10] of string;
TRec = Record

Program zapis;typeMas=array[1..10] of string; TRec = Record  FIO: String[40]; {ФИО

FIO: String[40]; {ФИО преподавателя}

KOL: integer; {количество читаемых дисциплин}
DIS: Mas; {перечень читаемых дисциплин}
end;
zap=array[1..15] of Trec;
var rec:zap;
k:trec;
op,kol,i,j,n:integer;
st:string;



Слайд 15 begin
writeln('Введите количество преподавателей ');
readln(kol);
For i:=1 to kol do
begin
Write('Введите

beginwriteln('Введите количество преподавателей ');readln(kol);For i:=1 to kol dobeginWrite('Введите ФИО -');readln(rec[i].fio);write('Введите количество

ФИО -');
readln(rec[i].fio);
write('Введите количество дисциплин -');
readln(rec[i].kol);
For j:=1 to rec[i].kol do

begin
Write('Введите ',j,'-ую дисциплину- ');
readln(rec[i].dis[j]);

end;
end;


Слайд 16 op:=1;
 {сортировка массива записей в алфавитном порядке фамилий}

op:=1; {сортировка массива записей в алфавитном порядке фамилий} while op=1 do

while op=1 do {op=1 – сортировка закончена}
begin
op:=0;

for i:=1 to kol-1 do
if rec[i].FIO>rec[i+1].FIO then
begin
k:=rec[i];
rec[i]:=rec[i+1];
rec[i+1]:=k;
op:=1;
end;
end;


Слайд 17 Writeln('Введите название дисциплины для поиска преподавателя');
readln(st);
op:=0;

Writeln('Введите название дисциплины для поиска преподавателя'); readln(st); op:=0; {op- признак наличия

{op- признак наличия преподавателей, читающих заданную дисциплину}
For i:=1

to kol do
For j:=1 to rec[i].kol do
if rec[i].dis[j]=st then begin
op:=1;
writeln(rec[i].Fio);
end;
if op=0 then
writeln ('нет преподавателей, читающих дисциплину -', st);
end.


Слайд 18 В языке Pascal имеется возможность задать тип

В языке Pascal имеется возможность задать тип записи, содержащий произвольное число

записи, содержащий произвольное число вариантов структуры. Такие записи называются

записями с вариантами. Записи с вариантами обеспечивают средства объединения записей, которые похожи , но не идентичны. Они состоят из фиксированной и вариантной частей.

Слайд 19 Вариантная часть формируется с помощью оператора Case. Он

Вариантная часть формируется с помощью оператора Case. Он задает поле признака,

задает поле признака, которое определяет, какой из вариантов в

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

Слайд 20 Количество полей каждого из вариантов неограниченно. Объем памяти,

Количество полей каждого из вариантов неограниченно. Объем памяти, необходимый для записи

необходимый для записи с вариантами, складывается из объемов полей

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


Слайд 21 Описание вариантной записи
Type имя типа = record
имя

Описание вариантной записиType имя типа = record	имя поля 1 : тип;

поля 1 : тип;
. . .
имя поля N:

тип;
Case поле признака : тип of
константа выбора 1 : (поле, … : тип);
. . .
константа выбора n : (поле, … : тип)
end;
 
Var Имя записи : имя типа;


Слайд 22 Type Tmark1=record

Type Tmark1=record     {экзамены 1 семестра}			Matem1:byte;	  {математика}			LinAlg:byte;

{экзамены 1 семестра}
Matem1:byte; {математика}
LinAlg:byte;

{линейная алгебра}
Programir: byte; {программирование}
end;

Tmark2=record {экзамены 2 семестра}
Mаtem2: byte; {математика}
Electron: byte; {электроника}
Fisika: byte; {физика}
DigAutom: byte; {цифровые автоматы}
end;

Например:


Слайд 23 Tstudent= record {информация о студенте}
FIO:string[40]; {фамилия,имя,отчество}
Gruppa:string[4];

Tstudent= record	{информация о студенте}	FIO:string[40];	  {фамилия,имя,отчество}	Gruppa:string[4];	  {группа}	Year: integer;

{группа}
Year: integer;

{год рождения}
{вариантная часть}
Case semester: byte of {выбор семестра}
1: (mark1: Tmark1);
2: (mark2: Tmark2)
еnd;

Var gr921: array[1..15] of Tstudent;

Слайд 24 Program Katalog; {каталог лит-ры в библ}
Type Publ=(Book, Journal,

Program Katalog; {каталог лит-ры в библ}Type Publ=(Book, Journal, NewPaper);Liter=record		 title: string[50];

NewPaper);
Liter=record
title: string[50]; {название}
autor: string[50]; {автор}

Case V: Publ of {начало вариантной части}
Book: (YearB: integer);
Journal: (Num: 1..12;
YearJ: 1900..2012);
NewPaper: (Day:1..31;
Month: 1..12;
YearN: integer);
end;


Слайд 25 Const count=10;
Var Katalog: array[1..count] of liter;
i: 1..count;
Yes_liter:boolean;{поиск заданной

Const count=10;Var Katalog: array[1..count] of liter;		i: 1..count;		Yes_liter:boolean;{поиск заданной лит-ры}		Vibor: byte; {выбор

лит-ры}
Vibor: byte; {выбор вида издания}
E: Puble; {для задания искомого

типа}
//процедура ввода данных
Procedure Input_data;
Writeln(‘Введите кол-во литературы’,i);
Writeln(‘введите число, указывающее номер издания:’);
Readln(Vibor);{задание полю признака конкретного значения}


Слайд 26 Case Vibor of
1: Katalog[i].v:=Book;
2: Katalog[i].v:=Journal;
3: Katalog[i].v:=NewPaper;
End;
With Katalog[i] do
Begin
Write(‘фамилия

Case Vibor of1: Katalog[i].v:=Book;2: Katalog[i].v:=Journal;3: Katalog[i].v:=NewPaper;End;With Katalog[i] doBegin		Write(‘фамилия автора’);		Readln (autor);		Write(‘название книги’);		Readln(title);

автора’);
Readln (autor);
Write(‘название книги’);
Readln(title);



Слайд 27 Case V of {начало ввода данных в вариант.

Case V of {начало ввода данных в вариант. часть							записи}Book: begin Write(‘год

часть
записи}
Book: begin Write(‘год издания’);
Readln(YearB);
end;
Journal: begin Write(‘номер’);

Readln(Num);
Write(‘год издания’);
Readln(YearJ);
end;
NewPaper: begin Write(‘день’);
Readln(Day);
Write(‘месяц’);
Readln(Month);
Write(‘год издания’);
Readln(YearN);
end;
End
End;





Слайд 28 //процедура вывода данных
Procedure Vivod_data;
Begin Write(‘литература №’);
With Katalog[i] do

//процедура вывода данныхProcedure Vivod_data;Begin Write(‘литература №’);		With Katalog[i] do 		begin Write(‘название’, title);			Write(‘фамилия


begin Write(‘название’, title);
Write(‘фамилия автора’, autor);
Case V of {начало вывода

на экран вариантной части}
Book: Write(‘год издания’, YearB);

Journal: begin Write(‘номер’, Num ); Write(‘год издания’, YearJ);
end;
NewPaper: begin Write(‘день’, Day );
Write(‘месяц’, Month);
Write(‘год издания’, YearN );
end;
end;
end;
End;






Слайд 29 // поиск литературы по типу издания
Procedure Find_liter;
Write(‘введите число,

// поиск литературы по типу изданияProcedure Find_liter;Write(‘введите число, указывающее тип издания’);Readln(Vibor);Case

указывающее тип издания’);
Readln(Vibor);
Case Vibor of
1: E:=Book;
2: E:=Journal;
3: E:=

NewPaper
end;
Yes_liter:=false;{не найден ни один экземпляр издания}
Kol:=0;



Слайд 30

For i:=1 to count do
If Katalog[i].V=E then
begin
kol:=kol+1;
Vivod_data;

For i:=1 to count doIf Katalog[i].V=E then 					begin					kol:=kol+1;					Vivod_data; {вывод}					Yes_liter:=true					 end;If Yes_liter=false

{вывод}
Yes_liter:=true
end;
If Yes_liter=false then Write(‘в библиотеке нет такой литературы’)
Else

Write(‘всего в библиотеке таких изданий’, kol);
end;



  • Имя файла: zapisi.pptx
  • Количество просмотров: 108
  • Количество скачиваний: 0