Использование вложенного оператора If.

Условные операторы в Pascal можно вкладывать друг в друга. Для этого используется вложенный оператор IF. Рассмотрим это на примере программы, которая будет считать количество корней квадратного уравнения.

Функции Copy, Pos, процедуры Delete, Insert.

Функция Copy позволяет копировать из строки часть символов. Функция имеет 3 параметра. Copy (st, index, count). St-строка из которой копируют, Index-номер символа, с которого начинается копирование, Count-количество символов, которое будет ...

Функции trunc, round в Pascal.

Для того чтобы в Паскаль можно было оперировать не только целыми числами, но и дробными существуют вещественные типы данных. Один из таких типов называется Real. В этом уроке мы рассмотрим 2 функции, которые производятся над дробными числами. Это ...

Циклы и массивы

Алфавит языка Паскаль.

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

Вложенные итерационные циклы.

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

Иногда в разделе описания типов Type может присутствовать не один тип записи, а несколько. Например, один из компонентов записи, такой как «дата выпуска автомобиля» можно превратить в запись и указать для нее свои компоненты, например, год выпуска, месяц выпуска и день выпуска.

 Использование нескольких типов записи в Паскале.


  1. program zapisi3;
  2. uses crt;
  3. type opisanie=record
  4. marka: string[45];
  5. color: string[8];
  6. probeg: real;
  7. end;
  8. data_vip=record
  9. god:integer;
  10. mes:byte;
  11. den:byte;
  12. end;
  13. var auto: opisanie;
  14. vipusk:data_vip;
  15. begin
  16. clrscr;
  17. writeln ('Введите описание автомобиля ');
  18. writeln ('Введите марку автомобиля');
  19. readln (auto.marka);
  20. writeln ('Введите цвет автомобиля');
  21. readln (auto.color);
  22. writeln ('Введите пробег автомобиля');
  23. readln(auto.probeg);
  24. writeln('Введите год, месяц и день выпуска ');
  25. writeln (‘Год’);
  26. readln(vipusk.god);
  27. writeln (‘Месяц’);
  28. readln(vipusk.mes);
  29. writeln (‘День’);
  30. readln(vipusk.den);
  31. writeln ('Все данные введены');
  32. writeln ;
  33. writeln (' Марка автомобиля: ', auto.marka);
  34. writeln(' Цвет автомобиля: ', auto.color);
  35. writeln(' Пробег автомобиля : ', auto.probeg:6:0);
  36. writeln(' Дата выпуска автомобиля: ', vipusk.god,' ' ,vipusk.mes,' ' ,vipusk.den);
  37. readln
  38. end.

Строка №3 - №7. Здесь указываем первый тип записи «opisanie».

Строка №8 - №12. Здесь указываем второй тип записи под названием «data_vip».

Соответственно для 2-х типов записи указываем 2 переменные. В строке №13 объявляем переменную «auto» и указываем для нее тип «opisanie». В строке №13 объявляем переменную «vipusk» и указываем для нее тип данных «data_vip».

Как и в предыдущих примерах, доступ к различным компонентам переменных осуществляется путем указания имени переменной и имени компонента.
Обратите внимание на строку №35. Здесь осуществляется вывод на экран значений 3-х переменных в одном операторе Writeln. Чтобы они не сливались друг с другом между ними ставится пробел.

zapisi v paskalj....zapisi v paskalj......

zapisi v paskalj.....

 


Дополнение к материалу.

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


Предыдущая статья : Записи (продолжение).

Оглавление : Уроки Паскаль. Записи.

Следующая статья : Оператор присоединения With . . Do.


Комментарии  

 
+2 # iva 29.12.2011 17:38
Но это же не вложенные записи, а просто две отдельные записи, зависимые лишь по замыслу автора программы.
А бывают ли записи действительно вложенными, как матрешка?
 
 
+2 # Administrator 02.01.2012 16:41
Можно. Сначала вводится тип записи "data_vip", а затем в типе opisanie создается компонент, например, "vipusk" и для него указывается тип данных "data_vip". Доступ к полям производится таким образом. Например к полю "god" - auto.vipusk.god.
Фактически весь пример будет выглядеть так:
program zapisi3;
uses crt;
type data_vip=record
god:integer;
mes:byte;
den:byte;
end;
type opisanie=record
marka: string[45];
color: string[8];
probeg: real;
vipusk: data_vip;
end;
var auto: opisanie;
begin
clrscr;
writeln ('Введите описание автомобиля ');
writeln ('Введите марку автомобиля');
readln (auto.marka);
writeln ('Введите цвет автомобиля');
readln (auto.color);
writeln ('Введите пробег автомобиля');
readln(auto.probeg);
writeln('Введите год, месяц и день выпуска ');
writeln ('Год');
readln(auto.vipusk.god);
writeln ('Месяц');
readln(auto.vipusk.mes);
writeln ('День');
readln(auto.vipusk.den);
writeln ('Все данные введены');
writeln ;
writeln (' Марка автомобиля: ', auto.marka);
writeln(' Цвет автомобиля: ', auto.color);
writeln(' Пробег автомобиля : ', auto.probeg:6:0);
writeln(' Дата выпуска автомобиля: ', auto.vipusk.god ,' ' ,auto.vipusk.me s, ' ' ,auto.vipusk.den);
readln
end.
 
 
+1 # Раиль 11.11.2016 22:11
var auto: opisanie;

Забыл ты идентификатор.
 
   ГлавнаяПаскальЗаписи в ПаскальВложенные записи.