Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Оператор присоединения (WITH)

Требования к отчету | Приложение А | Сформировать запись, имеющую следующую структуру |


Читайте также:
  1. А. Реакции присоединения
  2. Б. Реакции присоединения
  3. ВЗАИМОДЕЙСТВИЕ КОРРЕСПОНДЕНТА И ОПЕРАТОРА
  4. Взаимодействующие операторы
  5. Вложенные операторы try
  6. Групповая деятельность операторов
  7. Демонстрация множественных catch-операторов.

 

При обращении к компонентам записи используются составные имена. Для сокращения имен и повышения удобства работы с записями применяется оператор присоединения WITH.

WITH < идентификаторпеременной типа RECORD> DO

< оператор >;

Тогда в операторе при ссылке на компоненты записи имя переменной можно опускать. При использовании оператора присоединения фрагмент рассмотренной ранее программы будет выглядеть:

...
i:=0;
repeat
i:=i+1;
WITH MAS[I] DO
readln(shg,nzk,kd,oc)
until mas[i].shg='99999';
n:=i; sum:=0; k:=0;
for i:=1 to n do
WITH MAS[I] DO
if shg=' AI007' then
begin
sum:=sum+oc;
k:=k+1;
end;
...

Возможны вложенные описания записи и вложенные конструкции WITH. Рассмотрим пример вложенных описаний. Пусть запись о студентах содержит следующие поля:
- номер по порядку;
- фио (содержит в свою очередь поля – фамилия, имя, отчество),
- номер зачетной книжки;
- дата рождения (содержит поля –год, месяц, день).

Программа ввода и подсчета введенных записей для записей такой структуры может выглядеть

type zap=record
npp:byte;
fio:record
F,i,o:string[15];
end;
nzk:word;
dtr:record
g:1980..1990;
m:string[3];
d:1..31
end;
end;

var a:zap;
k,n:byte;

Begin
k:=0;
with a do
with fio do
with dtr do

repeat
k:=k+1;
writeln('ввод ');
readln(npp);
readln(f);
readln(i);
readln(o);
readln(nzk);
readln(g);
readln(m);
readln(d);
until d=99;
writeln(k);
readln;
End.


Дата добавления: 2015-07-19; просмотров: 57 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Теоретические положения| Решение типовых задач

mybiblioteka.su - 2015-2024 год. (0.006 сек.)