С использованием комбинированного типа данных - ЗАПИСЬ Учитель МБОУ СОШ 4 г. Туапсе Пятакова Н. В.

Презентация:



Advertisements
Похожие презентации
Тема: Комбинированный тип данных. Цель:. Комбинированный тип данных – это структурированный тип, состоящий из фиксированного числа компонент разного типа.
Advertisements

Записи Комбинированный тип. Запись – структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. Поля записи могут быть.
Решение задач на языке ABC Pascal. С4 (высокий уровень) Тема: Обработка данных, вводимых в виде символьных строк (написать программу средней сложности.
ЕГЭ 2012 Информатика и ИКТ Консультация 4ЕГЭ 2012 Информатика и ИКТ Консультация 4.
Задания сЗадания сТребовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (х, у - действительные.
Комбинированный тип данных (Record) Решение задач Вербицкая Ольга Владимировна, Заозерная школа 16.
Записи в Паскале. НАЗВАНИЕДлина, байт Диапазон значений Byte10…255 ShortInt1-128…+127 Word20…65535 Integer … LongInt …
Записи Определение и правила записи. Определение: Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного или.
© М.Е.Макарова
Программирование на языке Паскаль ЗАПИСИ в Паскале (RECORD)
Апрель - май 2011 г. Выполнил : Шамов Сергей Ученик 11 б класса МОУ ФСОШ 2 « с углубленным изучение отдельных предметов » Апрель - май 2011 г. Задания.
Раздел 3. Множества и записи Тема 2: Тип запись. Операторы над записями 1 Магистрант: Хаитов Икром Джураевич.
1 Пример: Для каждого из 25 учеников класса известны фамилия и оценки (в баллах) по пяти дисциплинам. Требуется вычислить среднюю оценку каждого ученика.
Файловый тип данных Turbo Pascal Операции для работы с файлами 11 класс.
Записи 1.Повторение структуры данных МАССИВ 2.Определение структуры данных ЗАПИСЬ 3.Описание типа данных ЗАПИСЬ в Pascal 4.Решение задачи с использованием.
1 Записи 2 Запись – это тип данных, который может включать в себя несколько полей – элементов разных типов (в том числе и другие структуры). Свойства:
Записи Структурированный тип. Type =record end; Запись – структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. Поля.
ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ НАЧАЛА ПРОГРАММИРОВАНИЯ.
© М.Е.Макарова
© М.Е.Макарова
Транксрипт:

С использованием комбинированного типа данных - ЗАПИСЬ Учитель МБОУ СОШ 4 г. Туапсе Пятакова Н. В.

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

Описание записи в языке Паскаль осуществляется с помощью служебного слова 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: тип; поле2: тип; … полеN: тип end; Например, type beg = record fam: string[25]; srtana: string[20]; status: boolean; {Олимпиада - true; чемпионат мира - false} dlina: longint; god: ; vr: string[15]; end; Var a: beg;

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

В программе могут использоваться массивы записей. Любая обработка записей, в том числе ввод и вывод, производится поэлементно. Например, var b: array[1..200] of beg1;... 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 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 с использованием записей. На вход в программе подаются сведения о студентах с 1-го по 5-й курс некоторого вуза. В первой строке сообщается количество студентов N, которое больше 20, но меньше или равно 100, каждая из следующих N строк имеет следующий формат:, где - строка, состоящая не более чем из 20 символов, - строка, состоящая не более чем из 15 символов, - целое число от 1 до 5, - вещественное число. и, а также и и разделены одним пробелом. Входные данные не упорядочены никаким способом. Пример входных строк: 25 Федорова Ирина Иванов Сергей Требуется написать программу, которая будет выводить на экран фамилии и имена студентов, имеющих максимальную стипендию на своём курсе в порядке с первого курса по пятый. Если есть студенты с одинаковыми стипендиями, то следует вывести их фамилии и имена. Алфавитный порядок при выводе фамилий можно не соблюдать. Считать, что на всех курсах есть студенты, получающие стипендию. Пример выходных строк: Курс 1 Петров Иван Катаев Сергей Курс 2 Смирнов Максим

var p:array[1..100] of record name: string; kurs:integer; stip: real; end; c:char; i,k,n,m:integer; max_kurs:array[1..5] of real; begin readln(n); for i:=1 to n do max_kurs[i]:=0;{обнулено мах значение стипендии по всем 5 курсам} for i:=1 to n do begin p[i].name:=''; repeat read(c); p[i].name:=p[i].name+c until c=' ';{считана фамилия} repeat read(c); p[i].name:=p[i].name+c until c=' ';{считано имя} read(m);{считан курс} p[i].kurs:=m; read(p[i].stip);{считана стипендия} if p[i].stip>max_kurs[p[i].kurs] then max_kurs[p[i].kurs]:=p[i].stip; readln; end; {цикла} {вывод студентов с мах стипендией на курсе} writeln('максимальная стипендия студентов);writeln; for k:=1 to 5 do begin writeln('курс',k); for i:=1 to n do with p[i] do begin if ((kurs=k)and (stip=max_kurs[k])) then writeln(name); end; writeln; end; readln; end.

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

program C4; type avto= record d:integer;{d-kolichestvo poiavlenii zadach s1} s1:string;{nazvanie zadachi} end; var s:string; a : array [1..11] of avto; {massiv sodergahii zapisi} n,i,j,num,max,maxi:integer; begin num:=0;{num - kolichestvo razlichnix zadach} readln(n);{n - kolichestvo vsex nazvanii zadach} for i:=1 to n do begin readln(s);{vvodim nazvanie zadachi} j:=1; while (j a[j].s1) do j:=j+1;{proveriaem bila li do etigo dannoe nazvanie zadachi} if j

Спасибо за внимание