Примеры записи программы на паскале

Как организованы записи Паскаль? Записи в Паскале — это совокупность ограниченного количества компонент, связанных логически и принадлежащих к различным типам. Полями называют компоненты записи. Каждое поле определяется определенным именем. Поле записи включает имя поля, за которым через символ «:» указывают тип данного поля.

Поля записи могут быть любого типа в языке Паскаль (исключение составляет файловый тип).

Записи Паскаль описывают при помощи зарезервированного слова record, за которым указывают описание компонент записи, которая завершается зарезервированным словом end.

Примеры записи Паскаль:

Например, кулинарный справочник содержит название рецептов и ингредиентов к ним, вследствие этого отдельную строку в данном справочнике удобнее представить в виде последующей записи:

type
Tspr = record
RECEPT: string[30];
INGRD: string[10];
end;
var spr: Tspr;

Записи можно представить, не используя имя типа:

var spr: record

Pascal — тип данных Record


RECEPT: string[30];
INGRD: string[10];
end;

Обращение к записи в общем допускается лишь в операторах присваивания, где слева и справа от знака «:=» применяются имена записей одно и того же типа. В остальных случаях операции проводят с отдельными полями записей. Для обращения к отдельной компоненте записи нужно задать имя записи, а далее через символ «.» задать имя необходимого поля:

Пример:

rec.RECEPT, rec.INGRD

Такое имя носит название составного имени. В качестве компоненты записи может выступать и сама запись. Тогда составное имя будет состоять не из двух, а из большего числа имен.

Оператор обращения к записи Паскаль:

Осуществить обращение к определенным компонентам записи можно проще, используя оператор присоединения with:

with rec do оператор;

где rec выступает в качестве имени записи, а оператор — простой или составной оператор. Оператор есть область действия оператора with, в границах которой можно не пользоваться составными именами. В нашем случае:

with rec do
begin
RECEPT:=’Napoleon’;
INGRD:=’Saharnaya pudra’;
end;

что идентично следующей конструкции:

rec.RECEPT:=’Napoleon’;
rec.INGRD:=’Saharnaya pudra’;

Инициализировать записи можно, используя типизированные константы:

Записи Паскаль

Записи с вариантами Паскаль:

Одна из разновидностей записей — это записи с вариантами, объявляющиеся при помощи ключевого слова case. Используя записи с вариантами, у вас появится возможность сохранять разнообразные структуры данных, имеющие огромную, одинаковую во всех структурах общую часть, а также некоторые небольшие различающиеся части.

Для примера создадим запись, в которой будут храниться данные о некой геометрической фигуре (отрезок, треугольник и окружность):

Читайте также:
Программа которая накладывает видео на видео

Записи Паскаль

Информатика 8 класс (Урок№15 — Запись ветвлений на языке Паскаль.)

То есть в переменной figure могут храниться данные сразу о трех наших геометрических фигурах: отрезке, треугольнике и окружности. Нам лишь остается в зависимости от типа геометрической фигуры делать обращение к соответственным полям записи.

Заметка. Отдельные поля для каждого типа фигур располагаются в одном адресном пространстве памяти, поэтому невозможно их одновременное использование. Любая запись может содержать только одну вариантную часть, после окончания которой в записи не могут присутствовать какие-нибудь другие поля. Рекомендуется, чтобы имена полей были уникальны в рамках той записи, в которой их объявили.

Источник: kvodo.ru

Записи (Record) в Паскале

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

type t = record id11, id12, …: type1; id21, id22, …: type2; . end;

здесь начинаются с id идентификаторы полей; с type – типы полей; t – имя типа.

Пример. Данные комплексного типа можно описать переменной типа record .

type complex = record re, im: real end; var c: complex;

Здесь complex – имя типа, а c – имя переменной. Переменная c состоит из двух полей: re и im , имеющих один и тот же тип ( real ). Эти поля переменной c обозначаются как c.re и c.im .

Пример. Даты событий можно описать следующим образом:

type date = record month: 1..12; day: 1..31; year: integer end; var d: date;

В этом примере описан тип date и переменная d , принадлежащая этому типу.

Переменная d описана как запись, состоящая из трех полей: month , day и year . Каждое поле содержит соответственно данные: целое число в пределах от 1 до 12 (номер месяца), целое число от 1 до 31 (день), целое число (год).

Поле day переменной d записывается как d.day .

Например, чтобы заслать в d дату 12.01.2003, надо выполнить следующие операторы:

d.month := 1; d.day := 12; d.year := 2003;

Пример. Вычислить сумму s двух комплексных чисел x = 2 + 7i и y = 6 + 3i (то есть x, y, s: complex; ).

x.re := 2.0; x.im := 7.0; y.re := 6.0; y.im := 3.0; s.re := x.re + y.re; s.im := x.im + y.im;

Запись может быть элементом других структур. Например, введем тип family (семья: отец, мать, 1-й ребенок, 2-й ребенок):

type family = (father, mother, child1, child2); var birthday: array[family] of date;

где date – описанная выше запись.

Переменная birthday есть массив, состоящий из записей – дат рождения членов семьи. Каждая дата рождения имеет тип date , который может быть описан в программе.

Читайте также:
Установить программу на телевизор LG

Для занесения даты рождения, например, mother , достаточно выполнить операторы:

birthday[mother].month := 5; birthday[mother].day := 1; birthday[mother].year := 1995;

Оператор With

Оператор with используется для удобства работы с переменными типа record (запись).

with a do st;

здесь a – имя переменной типа record , st – операции.

В операциях st при ссылках на компоненты записи имя a можно опускать.

Пример. Присвоение полям записи при использовании оператора with :

with birthday[mother] do begin month := 5; day := 1; year := 1965 end;

Источник: pas1.ru

Pascal. Запись (RECORD)

Во многих экономических и информационных задачах обрабатываются ведомости, документы, списки. При этом появляется необходимость объединять данные различного типа в одну группу. Для работы с группой данных в языке ПАСКАЛЬ введено понятие записи, одной из наиболее удобных и гибких структур данных, применяемых при описании сложных объектов.

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

Понятие записи рассмотрим на примере ведомости списка студентов с их оценками:

N| Фамилия И.О. | Оценка|

1 | Андреев С.Н. | 5 3 4 |

2 | Иванова Л.П. | 5 5 5 |

3 | Соколов Ю.Т. | 4 4 5 |

Каждая строка в этой ведомости состоит из отдельных элементов — данных различного типа:

a)порядковый номер — целое число;

б) Фамилия И.О. — массив символов;

в) оценки — массив целых чисел.

Эти данные можно объединить в одну группу и считать записью. Запись в целом и ее отдельные элементы обозначаются именами. Введем следующие обозначения: В — имя всей записи; N — порядковый номер;

ФИО — фамилия,имя,отчество;ОЦЕНКА — оценки.

Обращение к элементу записи в программе выполняется с помощью уточненного имени . Уточненное имя содержит имя записи и имя элемента и записывается в следующем виде:

ИМЯ ЗАПИСИ.ИМЯ ЭЛЕМЕНТА;

Запись можно описать тремя способамими:

    В разделе описания переменных:

var : record 1>:1>; 2>:2>; . :;
type =record 1>:1>; 2>:2>; . :; end; var :;
type B=record x,y,z:integer; end; const ved_B=(x:5,y:4,z:6);

Правила работы с записями:

  1. С компонентами записи можно обращаться как с компонентами соответствующего типа.
  2. Элемент записи можно указывать как в левой части оператора присваивания, так и в правой.
  3. Обращение к элементам записи осуществляется с помощью указания имени поля через точку.
  4. Обращение к записи в целом возможно только в операторе присваивания и только если в левой и в правой части будут стоять одинаковые записи. Например:

VED:=VED1 + VED2 ;

Общая форма оператора присоединения:

with do begin операторы, содержащие имена элементов записи end;

Читайте также:
Прикладные программы компьютера это

with b do begin n:=2 ; s:=ОЦЕНКА[1]+ОЦЕНКА[2]+ОЦЕНКА[3] ;

read(n); end;

Приведем пример оператора with:

with Data do if M=12 then begin M:=1; Year:=Year + 1; end else M:=M + 1;

Это эквивалентно следующему:

if Date.M=12 then begin Date.M:=1; Date.Year:=Date.Year + 1; end else Date.

M:=Date.M + 1;

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

Рассмотрим пример эффективного использования записей в программе начисления стипендии студентам по шаблону:

Предположим, что вводится список группы с соответствующими оценками за экзамены.

Графа “балл” вычисляет суммарную оценку за семестр. “Сумма” — определяет размер стипендии по упрощенному правилу: если нет двоек и балл равен 15, то стипендия — 75 руб.; при условии, что 12 < балл < 15, то стипендия — 62 руб.50 коп., а если 9 < балл< 12, то 50 руб. В противном случае, сумма равна 0. В графе “проф” указывается профсоюзный взнос в размере 1% от стипендии, а графа “итого” определяет сумму денег к выдаче.

В программе предусмотрим перед распечаткой итоговой ведомости упорядочение записей по убыванию в графе “балл”

progrаm spisok; type stud=record fio: string[20] ex1,ex2,ex3: 2..5; bal: 6..

15; sum: real; nalog: real; itog: real; end; var x: array[ 1..30 ] of stud; i,k,m,n: integer; y: 6..

15; z: stud; begin writeln(‘ введите кол-во студентов: ‘); readln(n); for i:=1 to n do with x[ i ] do begin write(‘введите ФИО ‘i’-го студента: ‘); readln(fio); write (‘ введите его три оценки: ‘); readln(ex1,ex2,ex3); end; for i:=1 to n do with x[ i ] do begin bal:=ex1+ex2+ex3; if (ex1=2) or (ex2=2) or (ex3=2) then sum:=0 else if bal=15 then sum:=75 else if bal>12 then sum:=62.5 else if bal>9 then sum:=50 else sum:=0; nalog:=sum * 0.01; itog:=sum-nalog; end; for k:=1 to n-1 do begin y:=x[ k ].bal; m:=k; for i:=k+1 to n do if y[ i ].bal then begin y:=x[ i ].bal; m:=i ; end; z:=x[ k ]; x[ k ]:=x[ m ]; x[ m ]:=z; end; writeln; writeln(‘ СТИПЕНДИАЛЬНАЯ ВЕДОМОСТЬ ‘); for i:=1 to 64 do write(‘-‘); writeln; write(‘ | N | Ф.И.О. | эк1 | эк2 | эк3 | балл | сумма | ‘); writeln(‘ налог | итого | ‘); for i:=1 to 64 do write (‘ — ‘); writeln; for i:=1 to n do with x[ i ] do begin write(i:3, fio:20, ex1:4, ex2:4, ex3:4); writeln(bal:5, sum:9:2, nalog:8:2, itog:7:2); end; end.

Источник: itteach.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru