Скачать презентацию Определение и правила записи Запись структурированный тип Скачать презентацию Определение и правила записи Запись структурированный тип

с4 записи 2.ppt

  • Количество слайдов: 9

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

Описание записи в языке Паскаль осуществляется с помощью служебного слова record, вслед за которым Описание записи в языке Паскаль осуществляется с помощью служебного слова record, вслед за которым описываются компоненты записи. Завершается описание записи служебным словом end. Например, телефонный справочник содержит фамилии и номера телефонов, поэтому отдельную строку в таком справочнике удобно представить в виде следующей записи: type TRec = Record FIO: String[20]; TEL: String[7] end; var rec: TRec; Описание записей возможно и без использования имени типа, например: var rec: Record FIO: String[20]; TEL: String[7] end;

Запись может быть объявлена в разделе type: идентификатор типа = Record поле 1: тип; Запись может быть объявлена в разделе type: идентификатор типа = Record поле 1: тип; поле 2: тип; … поле. N: тип end; Например, type beg = record fam: string[25]; srtana: string[20]; status: boolean; {Олимпиада - true; чемпионат мира - false} dlina: longint; god: 1900. . 2009; vr: string[15]; end; Var a: beg;

К каждому элементу записи можно обратиться, используя составное имя, которое имеет следующую структуру: <имя К каждому элементу записи можно обратиться, используя составное имя, которое имеет следующую структуру: <имя переменной>. <имя поля> Например, a. fam; a. dlina и т. п. Если, например, требуется полю "status" присвоить значение «true» , то это делается так: a. status : = true; Поля записи могут иметь любой тип, кроме файла, в частности, сами могут быть записями.

В программе могут использоваться массивы записей. Любая обработка записей, в том числе ввод и В программе могут использоваться массивы записей. Любая обработка записей, в том числе ввод и вывод, производится поэлементно. Например, var b: array[1. . 200] of beg 1; . . . write('Число рекордсменов? '); readln(n); for i: =1 to n do with b[i] do begin write('Фамилия спортсмена? '); readln(fam); write('Гражданин какой страны спортсмен? '); readln(strana); write('Статус соревнования? '); readln(status); write('Длина дистанции? '); readln(dlina); write('Год проведения соревнования? '); readln(god); write('Время, за которое спортсмен пробежал дистанцию (мин, сек)? '); readln(vr. min, vr. sec); end; . . .

В примере был использован оператор присоединения, который имеет следующий вид: with <переменная типа запись> В примере был использован оператор присоединения, который имеет следующий вид: with <переменная типа запись> do <оператор>; Он позволяет, один раз указав имя переменной типа "запись" после слова with, работать в пределах одного оператора (простого или составного) с именами полей как с обычными переменными, т. е. не писать громоздких составных имен. Или With m do begin number: =1964; marka: =‘Audi - 100’; fio: =‘Фёдорова Н. В. ’; adres: =‘ул. Красина 53 к. 1 – 73. ’; end;

Задача. Сведения о деталях, хранящихся на складе, содержат следующие атрибуты: название, количество, стоимость одной Задача. Сведения о деталях, хранящихся на складе, содержат следующие атрибуты: название, количество, стоимость одной детали. Вывести информацию о детали, суммарная стоимость для которой максимальна. program ex_zap; type detal = record a: string[30]; kol, st: integer; end; var a: array [0. . 99] of detal; n, i, max: integer; begin write('Количество деталей? '); readln(n); for i: =0 to n-1 do With a[i] do begin write('Информация об ', i, ' детали: '); readln(a); readln(kol); readln(st); end; max : = 0; for i: = 1 to n-1 do if a[max]. kol*a[max]. st < a[i]. kol*a[i]. st then max: =i; writeln('Искомая деталь: ', a[max]. a, ' стоимостью ', a[max]. st, ' в количестве ', a[max]. kol); end.

Условие задачи типа С 4 с использованием записей. На вход в программе подаются сведения Условие задачи типа С 4 с использованием записей. На вход в программе подаются сведения о студентах с 1 -го по 5 -й курс некоторого вуза. В первой строке сообщается количество студентов N, которое больше 20, но меньше или равно 100, каждая из следующих N строк имеет следующий формат: <фамилия> <имя> <курс> <стипендия>, где <фамилия> - строка, состоящая не более чем из 20 символов, <имя> - строка, состоящая не более чем из 15 символов, <курс> - целое число от 1 до 5, <стипендия> - вещественное число. <фамилия> и <имя> , а также <имя> и <курс> и <стипендия> разделены одним пробелом. Входные данные не упорядочены никаким способом. Пример входных строк: 25 Федорова Ирина 5 4500 Иванов Сергей 3 2050 Требуется написать программу, которая будет выводить на экран фамилии и имена студентов, имеющих максимальную стипендию на своём курсе в порядке с первого курса по пятый. Если есть студенты с одинаковыми стипендиями, то следует вывести их фамилии и имена. Алфавитный порядок при выводе фамилий можно не соблюдать. Считать, что на всех курсах есть студенты, получающие стипендию. Пример выходных строк: Курс 1 Петров Иван Катаев Сергей Курс 2 Смирнов Максим

Задача с использованием записей В командных олимпиадах по программированию для решения предлагается не больше Задача с использованием записей В командных олимпиадах по программированию для решения предлагается не больше 11 задач. Команда может решать предложенные задачи в любом порядке. Подготовленные решения команда посылает в единую проверяющую систему соревнований. Вам предлагается написать эффективную, в том числе по используемой памяти, программу, которая будет статистически обрабатывать пришедшие запросы, чтобы определить наиболее популярные задачи. Следует учитывать, что количество запросов в списке может быть очень велико, так как многие соревнования проходят с использованием Интернет. Перед текстом программы кратко опишите используемый вами алгоритм решения задачи. На вход программе в первой строке подаётся количество пришедших запросов N. В каждой из последующих N строк записано название задачи в виде текстовой строки. Длина строки не превосходит 100 символов, название может содержать буквы, цифры, пробелы и знаки препинания. Пример входных данных: 6 А+B Крестики-Нолики Прямоугольник Простой делитель А+В Простой делитель Программа должна вывести список из трёх наиболее популярных задач с указанием количества запросов по ним. Если в запросах упоминаются менее трех задач, то выведите информацию об имеющихся задачах. Если несколько задач имеют ту же частоту встречаемости, что и третья по частоте встречаемости задача, их тоже нужно вывести. Пример выходных данных для приведённого выше примера входных данных: А+В 2 Простой делитель 2 Крестики-Нолики 1 Прямоугольник 1