Лекция № 7
Структуры данных
Свойства структур данных
Свойства структуры данных ЗАПИСЬ:
Синтаксические диаграммы
Описание шаблона записи
Информационная структура о студенте
Описание структуры
Информационная структура о студенте
Описание структуры
Доступ к элементу записи осуществляется с помощью операции "точка"
Оператор присоединения
Например:
Задача
Информационная структура о ЛЭП
Основная программа
Описание данных (модуль описания)
Подпрограммы модуля обработки
Процедура Ввод исходного массива записей
Процедура Вывода исходного массива записей
Процедура Вывод справки о ЛЭП, введенных в действие более 10-ти лет назад
Процедура Определение номера ЛЭП, имеющий минимальную протяженность
174.38K
Категория: ПрограммированиеПрограммирование

Структуры данных. Запись. (Лекция 7)

1. Лекция № 7

Структуры данных
Запись
1

2. Структуры данных

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

3.

Df: Статические структуры - такие
структуры, размеры которых не могут
изменяться
в
ходе
выполнения
программы.
Df: Динамические структуры - такие
структуры, размеры которых могут
изменяться
в
процессе
работы
программы.
3

4. Свойства структур данных

1.
Линейные и нелинейные.
2.
Фиксированного и переменного
размера.
3.
С произвольным доступом к
элементам и с последовательным
доступом к строго определенному
элементу.
4.
Однородные и неоднородные.
4

5. Свойства структуры данных ЗАПИСЬ:

1.
2.
3.
4.
Линейная/нелинейная
Фиксированного размера
С произвольным доступом к
элементам
Неоднородная
5

6. Синтаксические диаграммы

1.Комбинированн
ый тип
2.Список
полей
идентификат
ор
=
Фиксированная
часть
record
Список
полей
end
;
Вариантная
часть
6
;

7. Описание шаблона записи

type имя шаблона= record
имя поля 1: типа поля;
имя поля 2: типа поля;
…………………………………….
имя поля n: типа поля;
end;
7

8. Информационная структура о студенте

Студент
ФИО
Дата
рождения
Стипендия
Институт
8

9. Описание структуры

type student= record
fio : string[10];
data: string[10];
grant : real;
facultet :string[10];
end;
var st:student;
9

10. Информационная структура о студенте

Студент
ФИО
фамилия
имя
Дата
рождения
Стипендия
отчество
день
месяц
год
10
Институт

11. Описание структуры

type student= record
fio : record
suname: string[10];
surname: string[10];
name: string[10];
end;
data: record
day: 1..31;
month: 1..12;
year: 1980..2000;
end;
grant : real;
facultet :string[10];
end;
var st : student;
11

12. Доступ к элементу записи осуществляется с помощью операции "точка"

Доступ к элементу записи осуществляется с
помощью операции "точка"
<имя записи>.<имя поля>
st. grant;
st. facultet;
st.fio.name;
st.data.day;
12

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

Оператор
присоединения
with
идентифика
тор
do
оператор
,
13
;

14. Например:

st.fio. suname:=‘Петр’;
st.fio. surname :=‘Петрович’;
st.fio.name:=‘Петров’;
with st do
with fio do begin
suname:=‘Петр’;
surname :=‘Петрович’;
name:=‘Петров’;
end;
with st, fio do begin
suname:=‘Петр’;
surname :=‘Петрович’;
name:=‘Петров’;
end;
14

15. Задача

Имеются
данные
о
семи
линиях
электропередач
(ЛЭП):
шифр,
напряжение, протяженность, год ввода в
действие, дата последних линейных работ.
Требуется выдать справку о ЛЭП,
введенных в действие более 10-ти лет
назад, а также выдать сведения о ЛЭП
минимальной протяженности.
15

16. Информационная структура о ЛЭП

ЛЭП
шифр
напряжение
протяженность
год ввода в
действие
дата последних
линейных работ
16

17. Основная программа

Uses op, obrabotki;
VAR
n_min : byte;
sved : sved1;
Begin
vvod (sved);
vivod(sved);
spravka (sved);
min_prot (sved, n_min);
with sved[n_min] do
writeln(code:12, voltage:6, space:6, year:6, data)
End.
17

18. Описание данных (модуль описания)

Описание данных (модуль
unit op;
описания)
interface
const
n=10;
present_year=2016;
type
lep= record
сode : string[8] ;
voltage : integer;
space : integer;
year
: 1900..2015;
data
: string[8] ;
end;
sved1 = array[1..n] of lep;
implementation
end.
18

19. Подпрограммы модуля обработки

19

20.

unit obrabotki;
Interface
uses op;
procedure vvod (var sved:sved1);
procedure vivod (var sved:sved1);
procedure spravka (var sved:sved1);
procedure min_prot (var sved:sved1; var n_min: byte);
Implementation
20

21. Процедура Ввод исходного массива записей

procedure vvod (var sved:sved1);
var
i: byte;
Begin
for i:=1 to n do
with sved[i] do
begin
write('Введите шифр ',i,' ЛЭП’);
readln(code);
write('Введите напряжение ',i,' ЛЭП');
readln(voltage);
write('Введите протяженность ',i,' ЛЭП');
readln(space);
write('Введите год ввода в действие ',i,' ЛЭП');
readln(year);
write('Введите дата последних линейных работ на ',i,' ЛЭП');
readln(data)
end;
End;
21

22. Процедура Вывода исходного массива записей

procedure vivod (var sved:sved1);
var
i : byte;
begin
for i:=1 to n do
with sved[i] do
writeln(code, ‘
‘, voltage, ‘
‘, space, ‘
‘, year, ‘
end;
22
‘,data);

23. Процедура Вывод справки о ЛЭП, введенных в действие более 10-ти лет назад

procedure spravka (var sved:sved1);
var
i : byte;
Begin
writeln(‘Cправкa о ЛЭП, введенных в действие более 10-ти лет назад’);
for i:=1 to n do
with sved[i] do
if present_year – year>10 then
writeln(code:12, voltage:6, space:6, year:6, data);
End;
23

24. Процедура Определение номера ЛЭП, имеющий минимальную протяженность

procedure min_prot (var sved:sved1; var n_min: byte);
var
i : byte;
min : integer;
Begin
writeln(‘Сведения о ЛЭП, имеющую минимальную протяженность’);
min:=sved[1].space;
n_min:=1;
for i:=2 to n do
with sved[i] do
if space<min then begin
min:= space;
n_min:=i
end;
End;
End.
24
English     Русский Правила