мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версия | |||
pascal:records [17/10/2011 12:20] – dnaumov | pascal:records [17/10/2011 13:04] (текущий) – dnaumov | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Объединение разнородных элементов (Запись) ===== | ===== Объединение разнородных элементов (Запись) ===== | ||
- | Массивы объединяют однородные единицы информации – элементы одного и того же типа. Но многообразие информации нельзя свести только к какому-то одному типу данных. Например, | + | Массивы объединяют однородные единицы информации – элементы одного и того же типа. Но многообразие информации нельзя свести только к какому-то одному типу данных. Например, |
- | Данные такого рода, описывающие существенные стороны того или иного объекта путем включения в описание нескольких, | + | Данные такого рода, описывающие существенные стороны того или иного объекта путем включения в описание нескольких, |
- | **Запись | + | **Запись – структурированный комбинированный тип данных, |
- | Например, | + | Например, |
{{: | {{: | ||
Строка 15: | Строка 15: | ||
<code pascal|Описание типа> | <code pascal|Описание типа> | ||
type < имя _ типа >=record | type < имя _ типа >=record | ||
- | < | + | < |
- | < | + | < |
| | ||
- | < | + | < |
end ; | end ; | ||
</ | </ | ||
Строка 24: | Строка 24: | ||
где **record** – служебное слово, а **< | где **record** – служебное слово, а **< | ||
- | Описание анкеты | + | Описание анкеты ученика в Паскале будет выглядеть так: |
<code pascal|Пример фрагмента программы описания записи Паскаля> | <code pascal|Пример фрагмента программы описания записи Паскаля> | ||
Строка 32: | Строка 32: | ||
| | ||
| | ||
- | curs: 1..5; | + | cl: string[5]; |
- | grupp: string[3]; | + | gr: string[3]; |
end; | end; | ||
</ | </ | ||
Строка 39: | Строка 39: | ||
Такая запись Паскаля, | Такая запись Паскаля, | ||
- | Поля записи Паскаля могут иметь любой тип, в частности сами могут быть записями. Такая возможность используется в том случае, | + | Поля записи Паскаля могут иметь любой тип, в частности сами могут быть записями. Такая возможность используется в том случае, |
{{: | {{: | ||
+ | |||
<code pascal|Пример фрагмента программы описания записи Паскаля> | <code pascal|Пример фрагмента программы описания записи Паскаля> | ||
Type anketa1=record | Type anketa1=record | ||
fio: string[45]; | fio: string[45]; | ||
pol: char; | pol: char; | ||
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | end; | + | end; |
- | adres: record | + | |
- | | + | |
- | | + | |
- | | + | |
- | end; | + | end; |
- | curs: 1..5; | + | cl: string[5]; |
- | grupp: string[3]; | + | gr: string[3]; |
end; | end; | ||
</ | </ | ||
Строка 67: | Строка 68: | ||
<code pascal|Задание переменной> | <code pascal|Задание переменной> | ||
var | var | ||
- | student: anketa; | + | pupil: anketa; |
- | student 1: anketa 1; | + | pupil1: anketa1; |
</ | </ | ||
- | Теперь нам нужно узнать, | + | Теперь нам нужно узнать, |
<code pascal|Уточняющий идентификатор> | <code pascal|Уточняющий идентификатор> | ||
Строка 77: | Строка 78: | ||
</ | </ | ||
- | Например, | + | Например, |
- | <code pascal|Обращение к полю | + | <code pascal|Обращение к полю |
- | student.curs :=3; | + | pupil.cl :=3; |
< | < | ||
- | Для того чтобы обратиться к полю god в записи | + | Для того чтобы обратиться к полю god в записи |
<code pascal|Обращение к полю god> | <code pascal|Обращение к полю god> | ||
- | student1.dat_r.god: | + | pupil1.dat_r.god: |
</ | </ | ||
Строка 93: | Строка 94: | ||
===== Операции над записями ===== | ===== Операции над записями ===== | ||
- | Единственная операция, | + | Единственная операция, |
+ | |||
+ | |||
+ | <code pascal|Присваивание> | ||
+ | var | ||
+ | | ||
+ | |||
+ | begin | ||
+ | |||
+ | ... | ||
+ | |||
+ | | ||
+ | |||
+ | ... | ||
+ | |||
+ | end. | ||
+ | </ | ||
Все другие операции производятся над отдельными полями записи. | Все другие операции производятся над отдельными полями записи. | ||
Строка 110: | Строка 127: | ||
| | ||
| | ||
- | curs: 1..5; | + | cl: string[5]; |
- | grupp: string[3] | + | gr: string[3] |
end; | end; | ||
- | var student: anketa; | + | var pupil: anketa; |
begin | begin | ||
- | | + | |
| | ||
| | ||
- | | + | |
| | ||
- | | + | |
| | ||
- | | + | |
- | | + | |
- | | + | |
| | ||
- | | + | |
| | ||
| | ||
| | ||
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
end. | end. | ||
</ | </ | ||
Строка 148: | Строка 165: | ||
| | ||
| | ||
- | curs: 1..5; | + | cl: string[5]; |
- | grupp: string[3] | + | gr: string[3] |
end; | end; | ||
- | var student: array [1..100] of anketa; | + | var pupil: array [1..100] of anketa; |
I: integer; | I: integer; | ||
Строка 159: | Строка 176: | ||
for I:=1 to 100 do | for I:=1 to 100 do | ||
begin | begin | ||
- | writeln (‘введите сведения о’, I , ‘-м | + | writeln (‘введите сведения о’, I , ‘-м ученике’); |
writeln (‘введите фамилию, | writeln (‘введите фамилию, | ||
- | readln (student[I].fio); | + | readln (pupil[I].fio); |
writeln (‘введите дату рождения’); | writeln (‘введите дату рождения’); | ||
- | readln (student[I].dat_r); | + | readln (pupil[I].dat_r); |
writeln (‘введите адрес’); | writeln (‘введите адрес’); | ||
- | readln(student[I].adres); | + | readln(pupil[I].adres); |
- | writeln (‘введите курс’); | + | writeln (‘введите класс’); |
- | readln(student[I].curs); | + | readln(pupil[I].cl); |
writeln (‘введите группу’); | writeln (‘введите группу’); | ||
- | readln (student[I].grupp); | + | readln (pupil[I].gr); |
end; | end; | ||
| | ||
| | ||
- | | + | |
for I:=1 to 100 do | for I:=1 to 100 do | ||
- | if student[I].curs=2 then | + | if pupil[I].cl=' |
- | | + | |
end. | end. | ||
</ | </ | ||
Строка 194: | Строка 211: | ||
<code pascal|Пример фрагмента программы c записью и префиксом Паскаля> | <code pascal|Пример фрагмента программы c записью и префиксом Паскаля> | ||
for I:=1 to 100 do | for I:=1 to 100 do | ||
- | | + | |
begin | begin | ||
- | writeln (‘введите сведения о’, I , ‘-м | + | writeln (‘введите сведения о’, I , ‘-м ученике’); |
writeln (‘введите фамилию, | writeln (‘введите фамилию, | ||
readln (fio); | readln (fio); | ||
Строка 203: | Строка 220: | ||
writeln (‘введите адрес’); | writeln (‘введите адрес’); | ||
readln(adres); | readln(adres); | ||
- | writeln (‘введите курс’); | + | writeln (‘введите класс’); |
- | readln(curs); | + | readln(cl); |
writeln (‘введите группу’); | writeln (‘введите группу’); | ||
- | readln (grupp); | + | readln (gr); |
| | ||
< | < |