Использование записей в программе.

В Паскаль-программе кроме обычных переменных, содержащих одно значение, могут использоваться переменные, основанные на типе запись (record). Такие переменные могут хранить несколько значений разных типов (содержать несколько полей), необходимых при обработке составных данных. В запись группируются необходимые по условию задачи переменные. Это облегчает  написание программы, в которой необходимо обрабатывать блоки, содержащие группы данных различных типов.

    

Описание:

Эта программа показывает пример объединения координат точек в запись. Здесь используется массив из записей типа RecPoint. Каждая такая запись содержит в себе поля с координатами x, y, z и поле комментария. Таким образом, одна запись описывает одну точку, а массив из записей представляет собой набор точек.

 

Текст программы:

 

Program Records;             {Проект "Begin ... end!" -> www.tolks.narod.ru}         

Uses crt;                              {Пример программы с использованием записей}              

type                                                                          

    RecPoint = record {Описание типа новой записи}                           

            x, y, z: real;                                                   

            comment: string                                                   

            end{Завершение описания типа записи}                          

var                                                                           

  Point: array [1..10] of RecPoint; {Использование описанного ранее типа записи для описания переменной}                                        

  i: integer;                                                                

  delta: real;                                                               

begin                                                                         

     Clrscr;                                                                 

     {Вычисление координат x, y, z точек и помещение результатов в поля записи, а также запись комментария при выполнении условия z - x > 100}                                    

     for i := 1 to 10 do                                                     

     begin                                                                   

          Point[i].x := 2*i - 3;                                              

          Point[i].y := 3*Point[i].x + 2;                                    

          Point[i].z := 6*Point[i].y - 2*Point[i].x + 1;                     

          delta := Point[i].z - Point[i].x;                                   

          if delta > 100 then Point[i].comment := 'z - x > 100.'             

                       else Point[i].comment := 'Нет комментариев.';         

     end;                                                                    

     {Вывод названия полей}                                                  

     Writeln ('Результа расчёта (поля записи):');                             

          Write (' ':7,'x');                                                 

          Write (' ':8,'y');                                                 

          Write (' ':8,'z');                                                 

          Writeln ('      комментарии');                                     

                                                                              

      {Вывод результатов расчёта - вывод значений полей записи}              

     for i := 1 to 10 do                                                      

     begin                                                                   

          Write (Point[i].x:8:3,'  ');                                       

          Write (Point[i].y:8:3,'  ');                                        

          Write (Point[i].z:8:3,' ':2);                                      

          Writeln (Point[i].comment);                                   

     end;                                                                    

                                                                             

     Readkey;                                                                

end.                                                                         

'Загрузить текст программы'

 

Примечания:

 

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

 

Посмотрите на изменения в выполнении программы после каждого изменения её текста.

'К списку тем'

 

{Примечание:

1. Если Вы не смогли найти ответы на вопросы о программе, то Вы можете связаться с авторами. Для этого посетите страничку "Обратная связь".                                

                                                                              

2. Размещать приведённые материалы с сайта проекта "Begin ... end!" (www.tolks.narod.ru) на других сайтах (как полностью, так и частично) можно только с согласия авторов проекта и только с обязательным указанием адреса проекта "Begin ... end!" (www.tolks.narod.ru).}

 

Hosted by uCoz