42508

Тип запись. Массивы записей

Лабораторная работа

Информатика, кибернетика и программирование

Тип запись. При выполнении работы необходимо знать: Что такое тип запись Как правильно объявить тип запись и переменные типа запись Как обращаться к полям записи Как организовать работу с массивом записей Теоретический минимум: Тип запись представляет собой сложный структурированный тип данных и включает в себя ряд компонент называемых полями которые могут быть различных типов. Пример объявления типа запись: type Dt=record {название типа запись Dt дата } Yer: integer; {поле год...

Русский

2013-10-30

187 KB

5 чел.

Лабораторная работа № 11.

Тип запись. Массивы записей.

При выполнении работы необходимо знать:

  •  Что такое тип запись
  •  Как правильно объявить тип запись и переменные типа запись
  •  Как обращаться к полям записи
  •  Как организовать работу с массивом записей

Теоретический минимум:

Тип запись представляет собой сложный (структурированный) тип данных и включает в себя ряд компонент, называемых полями, которые могут быть различных типов. При задании типа записи после зарезервированного слова Record следует указать все поля типа записи и завершить задание типа словом End; Поля отделяются друг от друга точкой с запятой. Количество полей записи может быть любым.

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

type

Data=record              {название типа запись Data (дата) }

Year: integer;            {поле год имеет целый тип}

Month: 1..12;

            {поле месяц имеет тип диапазон от 1 до 12}

        Day: 1..31;                     

            {поле день имеет тип диапазон от 1 до 31}

End;                      {конец описания типа запись}

Если несколько полей типа запись имеют один и тот же тип, то их имена можно перечислить через запятую и затем после двоеточия указать этот общий тип:

type

Person=record             

{название типа запись Person (персона) }

      Name, Family: string [20];  

{поля имя, фамилия человека имеют  строковый тип}

      Sex: (Men, Women);     

{поле пол имеет перечисляемый тип мужчина, женщина}

      Age: Byte;                    

{поле возраст имеет целый тип Byte}

      Married: Boolean;            

{поле семейное положение имеет логический тип}

End;                                   

{конец описания типа запись}

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

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

Пример описания констант и переменных типа запись:   

Const

   Birthday: Data = (Year: 1971; Month: 9; Day: 24);

   Ivanov: Person = (Name:’Михаил’; Family: ‘Иванов’; Sex: Men; Age: 42; Married: True);

Var

   D1, D2, D3: Data;    {переменные типа запись Data}

   Per1, Per2: Person;   {переменные типа запись Person}

Доступ к полям записи осуществляется с указанием имени переменной (константы) и имени поля, записываемого через точку, например:

Ivanov.Age,   Per1.Name,   D1.Year,   D1.Month,   D1.Day  и так далее.


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

Per1.Name:=’Виталий’;

Per1.Family:=’Кротов’;

Per1.Sex:=Men;

Per1.Age:=26;

Per1.Married:=False;

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

                With  <имя записи> do  <оператор>

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

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

With  Per1  do begin

      Name:=’Виталий’;

      Family:=’Кротов’;

      Sex:=Men;

      Age:=26;

      Married:=False;

   End;

Большие группы разнородных данных можно организовать в виде массива записей. Например, используя тип запись Person (персона) объявить одномерный массив из нескольких записей, для того, чтобы хранить информацию о сотрудниках отдела.

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

Type

Person=record             

{название типа запись Person (персона) }

      Name, Family: string [20];  {поля имя, фамилия человека имеют  строковый тип}

      Sex: (Men, Women);     

{поле пол имеет перечисляемый тип мужчина, женщина}

      Age: Byte;                    

{поле возраст имеет целый тип Byte}

      Married: Boolean;         

{поле семейное положение имеет логический тип}

End;                                    

{конец описания типа запись}

Var   Otdel: array [1..5] of  Person;

Begin

   For i:=1 to 5 do begin

          With Otdel[i] do begin

   Writeln(‘Введите имя сотрудника ’);  

    Readln(Name);

   Writeln(‘Введите фамилию сотрудника ’);  

    Readln(Family);

   Writeln(‘Введите пол ’);  

    Readln(Sex);

    Writeln(‘Введите возраст ’);  

     Readln(Age);

    Writeln(‘Введите семейное положение 1 или 0 ’);    

    Readln(Married);

        End;

End;

  
Задача 11.

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

Решение:

Следует объявить тип запись «Книги». По условию задачи этот тип запись должен иметь 5 полей: автор книги, название книги, год издания, количество страниц, цена. Полям записи будут присвоены различные типы. Затем следует объявить массив записей. Порядковый номер элементов массива будет соответствовать порядковому номеру записи о книге.

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

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

Текст программы к задаче 11.                                        

Program Ex_11;

Uses crt;

Type

kniga=record            {Тип запись}

   avtor: string[20];           {Поле автор}

   name: string;                 {Поле название книги}

   god:word;                      {Поле год издания}

   str:word;                        {Поле количество страниц}

   cena:word;                     {Поле цена книги}

 End;

Var

  i,n:byte;

  g,max:word;

  A: array [1..5] of kniga;       

                       {Массив записей о книгах из 5 элементов}

Begin

Clrscr;                      {Цикл для ввода информации в массив}

For i:=1 to 5 do begin                             

Writeln('Автор: ');

Readln(A[i].avtor);

Writeln('Название книги: ');

Readln(A[i].name);

Writeln('Год издания: ');

Readln(A[i].god);

Writeln('Страниц: ');

Readln(A[i].str);

Writeln('Цена книги: ');

Readln(A[i].cena);

End;

Clrscr;

For i:=1 to 5 do begin                

        {Цикл для вывода информации из массива на экран}

  With A[i] do

        Writeln(avtor:15,name:15,god:6,str:6,cena:6);

End;

Writeln;

Writeln('Введите год  ');

Readln(g);

Writeln('Книги до определенного года   ');

For i:=1 to 5 do begin          

  {Цикл для поиска книг изданных до определенного года}

     if A[i].god<g then

           With A[i] do

                 Writeln(avtor:15,name:15,god:6,str:6,cena:6);

End;

max:=0;

Writeln('Книга с максимальной ценой  ');

For i:=1 to 5 do begin               

            {Цикл для поиска книги с максимальной ценой}

   if A[i].cena>max then begin

         max:=A[i].cena;

         n:=i;

         End;

End;

 With A[n] do                      

        {Вывод записи о книге с максимальной ценой}

        Writeln(avtor:15,name:15,god:6,str:6,cena:6);

Readln;

End.

Результат работы программы:

      Пушкин           Стихи    1899    456   1289

     Ахматова           Поэмы    1969    280    650

    Лермонтов           Мцыри    1990    145    237

    Солженицын    Воспоминания   1986    670    785

    Форш     Одеты камнем   1995   368    340

Введите год

1990

Книги до определенного года

        Пушкин          Стихи      1899   456   1289

      Ахматова          Поэмы    1969   280    650

    Солженицын      Воспоминания   1986    670    785

Книга с максимальной ценой

        Пушкин          Стихи   1899    456   1289


                                              Схема программы к задаче 11.

PAGE  113


EMBED Visio.Drawing.6  


 

А также другие работы, которые могут Вас заинтересовать

31481. Аналіз джерел формування капіталу підприємства 108.5 KB
  Аналіз джерел формування капіталу підприємства Лекція 9 2 год. Мета заняття: ознайомити студентів із значенням та методами аналізу капіталу підприємства поглибити їхні знання з питань оцінки складу і динаміки джерел формування капіталу методики оцінки стану та ефективності використання капіталу розвивати логічне мислення студентів привчати творчо оперувати набутими знаннями виховувати інтерес до обраної професії. ПЛАН Значення і методи аналізу капіталу підприємства. Аналіз наявності складу і динаміки джерел формування капіталу.
31482. Аналіз грошових потоків, оцінка руху грошових коштів 164 KB
  Аналіз грошових потоків Лекція 10 2 год. Мета заняття: ознайомити студентів із методами оцінки руху грошових коштів поглибити їхні знання з питань необхідності та мети використання грошових потоків на підприємстві аналізом грошових коштів у розрізі видів діяльності розвивати логічне мислення студентів привчати творчо оперувати набутими знаннями виховувати інтерес до обраної професії. ПЛАН Поняття види та значення грошових потоків для підприємства. Аналіз грошових коштів від основної інвестиційної та фінансової діяльності...
31483. Аналіз грошових потоків, оцінка грошових надходжень 121.5 KB
  Аналіз грошових потоків Лекція 11 2 год. Мета заняття: ознайомити студентів із балансовим методом оцінки грошових надходжень методикою аналізу грошових потоків із застосуванням системи коефіцієнтів поглибити їхні знання стосовно методів розрахунку обертання грошових потоків на підприємстві та їх ефективності розвивати логічне мислення студентів привчати творчо оперувати набутими знаннями виховувати інтерес до обраної професії. ПЛАН Оцінка динаміки грошових потоків по періодах. Балансовий метод оцінки грошових надходжень.
31484. Аналіз ліквідності і платоспроможності підприємства 243.5 KB
  Аналіз ліквідності і платоспроможності підприємства Лекція 12 2 год. Мета заняття: ознайомити студентів та поглибити їхні знання з питань необхідності та методики аналізу показників ліквідності і платоспроможності підприємства розвивати логічне мислення студентів привчати творчо оперувати набутими знаннями виховувати інтерес до обраної професії. ПЛАН Поняття ліквідності і платоспроможності підприємства. Основні показники ліквідності підприємства – порядок їх розрахунку та методи оцінки.
31485. Аналіз фінансової стійкості підприємства 104 KB
  Аналіз фінансової стійкості підприємства Лекція 13 2 год. Мета заняття: ознайомити студентів та поглибити їхні знання з питань сутності фінансової стійкості підприємства порядку оцінки та визначення основних показників і типів фінансової стійкості розвивати логічне мислення студентів привчати творчо оперувати набутими знаннями виховувати інтерес до обраної професії. ПЛАН Сутність фінансової стабільності та стійкості підприємства. Дидактична мета заняття: сформувати у студентів сучасне економічне мислення щодо поняття фінансової...
31486. Аналіз кредитоспроможності підприємства 153 KB
  Аналіз кредитоспроможності підприємства Лекція 14 2 год. Мета заняття: ознайомити студентів із класифікаційними моделями аналізу кредитоспроможності методикою оцінки кредитоспроможності позичальниківюридичних осіб згідно з методикою НБУ та методикою комплексного аналізу кредитоспроможності поглибити їхні знання щодо сутності кредитоспроможності підприємства розвивати логічне мислення студентів привчати творчо оперувати набутими знаннями виховувати інтерес до обраної професії. ПЛАН Сутність кредитоспроможності підприємства....
31487. Аналіз ділової активності підприємства 46.26 KB
  Аналіз ділової активності підприємства Лекція 15 2 год. Мета заняття: ознайомити студентів і поглибити їхні знання з питань основних напрямів оцінки ділової активності підприємства аналізу і порядку розрахунку показників ділової активності розвивати логічне мислення студентів привчати творчо оперувати набутими знаннями виховувати інтерес до обраної професії. Основні напрямки оцінки ділової активності підприємства. Показники що характеризують ділову активність підприємства – порядок їх розрахунку та методи оцінки.
31488. Комплексне оцінювання фінансового стану підприємства 93.99 KB
  Комплексне оцінювання фінансового стану підприємства Лекція 19 2 год. Студент повинен знати виховна мета: теоретичний матеріал досліджуваної теми методи створення рейтингу кластерного аналізу матричного аналізу та методи бальних оцінок методи порівняльної рейтингової оцінки метод рейтингового фінансового аналізу інтегральна рейтингова оцінка підприємства а також методи узагальнення результатів фінансового аналізу діяльності підприємства повинен навчитись практично застосовувати здобуті знання у подальшій практичній діяльності....
31489. Аналіз прибутковості та рентабельності підприємства 66.56 KB
  Аналіз прибутковості та рентабельності підприємства Лекція 16 2 год Актуальність теми: прибуток є головною метою та мотивом підприємницької діяльності матеріальним джерелом економічного та соціального розвитку інвестиційної та інноваційної діяльності. Дана тема дає можливість отримати уявлення про те які показники використовуються у процесі аналізу та оцінки прибутковості та рентабельності підприємства також осмислене вивчення даної теми дасть можливість оволодіти методикою розрахунку показників рентабельності та прибутковості та...