Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Стандартные процедуры работы с множествамиСодержание книги
Поиск на нашем сайте
Вывод элементов множества
Program VivodMN; Type mn=set of char; Var a:mn; x: char; Begin a:=[‘f’, ‘j’, ‘e’]; For x:=’a’ to ‘z’ do If x in a then write (x) End. Пример 1: Дана строка символов, слова разделены любым знаком препинания. Вывести слова начинающиеся гласной буквой, оканчивающиеся согласной.
Тема 2.9 Записи Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов, называемых полями. Идентификатор (имя) поля должен быть уникален только в пределах записи. Обращение к значению поля осуществляется с помощью составного имени - идентификатора переменной (имени записи) и идентификатора поля, разделенных точкой.
имя записи. имя поля
В языке Turbo Pascal различают фиксированные и вариантные записи.
Описание фиксированной записи
Type имя типа = record имя поля 1: тип; имя поля 2: тип; ... имя поля N: тип end; Var имя записи: имя типа;
где record, end – зарезервированные слова (запись, конец); имя поля1,..имя поля n – список полей; Например: Type Car = record Number: integer; {номер} Marka: string[20]; {марка автомобиля} FIO: string[50] {фамилия владельца} end; Var a,b: Car; Пример обращения к полям записи: a. Marka, B.FIO, A.Number Для упрощения доступа к полям записи используется оператор присоединения With With имя записи do оператор
где With, do – зарезервированные слова (с, делать); имя записи – имя переменной типа запись, за которым возможно следует список вложенных полей; оператор – любой (один) оператор языка Pascal. Например: With A do Marka:=’Жигули’
К записям в целом применим оператор присваивания. Например А:=В Над полями записей можно выполнять любые операции, присущие данному типу. Pascal допускает использование вложенных записей (т.е. поле записи может быть в свою очередь тоже записью). Уровень вложения не должен превышать 9.
Например: Type zap1 = record Day: byte; {день} Month: 1..12; {месяц} Year: word {год} end; zap2 = record FIO: string[30]; {фамилия студента} Gruppa: integer; {номер группы} Birthday: zap1 {дата рождения} end; Var Spisok: array [1..10] of zap2;
Пример обращения к дню рождения студента: For i:=1 to 10 do With spisok[i], birthday do day:= 23;
В языке Pascal имеется возможность задать тип записи, содержащий произвольное число вариантов структуры. Такие записи называются записями с вариантами. Записи с вариантами обеспечивают средства объединения записей, которые похожи, но не идентичны. Они состоят из фиксированной и вариантной частей. Вариантная часть формируется с помощью оператора Case. Он задает поле признака, которое определяет, какой из вариантов в данный момент будет активизирован. Значением признака в каждый текущий момент выполнения программы должна быть одна из расположенных далее констант. Константа, служащая признаком, задает вариант записи и называется константой выбора. Количество полей каждого из вариантов неограниченно. Объем памяти, необходимый для записи с вариантами, складывается из объемов полей фиксированной части и максимального по объему поля переменной (вариантной) части. Запись может иметь только одну вариантную часть и она должна размещаться в конце записи.
Описание вариантной записи
Type имя типа = record имя поля 1: тип; ... имя поля N: тип; Case поле признака: тип of константа выбора1: (поле, …: тип); ... константа выбора n: (поле, …: тип) end; Var имя записи: имя типа;
Например: Type Tmark1 = record {экзамены 1 семестра} Matem1:byte; {математика} LinAlg:byte; {линейная алгебра} Program: byte; {программирование} end;
Tmark2 = record {экзамены 2 семестра} Mаtem2: byte; {математика} Electron: byte; {электроника} Fisika: byte; {физика} DigAutom: byte; {цифровые автоматы} end; Tstudent = record {информация о студенте} FIO:string[40]; {фамилия,имя,отчество} Gruppa:string[4]; {группа} Year: integer; {год рождения} {вариантная часть} Case semester: byte of {выбор семестра} 1: ( mark1: Tmark1); 2: (mark2: Tmark2) End; Var gr921: array[1..15] of Tstudent;
Пример1: Из массива записей, содержащего информацию о преподавателях (фамилия_имя_отчество, читаемые дисциплины) вывести алфавитном порядке фамилии преподавателей, читающих заданную дисциплину. Program zapis; Type Mas= array [1..10] of string; TRec = Record FIO: String[40]; {ФИО преподавателя} KOL: integer; {количество читаемых дисциплин} DIS: Mas; {перечень читаемых дисциплин} end; zap= array [1..15] of Trec; var rec:zap; k:trec; op,kol,i,j,n:integer; st:string;
Begin writeln('Введите количество преподавателей '); readln(kol); For i:=1 to kol do Begin Write('Введите ФИО -'); readln(rec[i].fio); write('Введите количество дисциплин -'); readln(rec[i].kol); For j:=1 to rec[i].kol do Begin Write('Введите ',j,'-ую дисциплину- '); readln(rec[i].dis[j]); end; end; op:=1;
{сортировка массива записей в алфавитном порядке фамилий} while op=1 do {op=1 – сортировка закончена} Begin op:=0; for i:=1 to kol-1 do if rec[i].FIO>rec[i+1].FIO then Begin k:=rec[i]; rec[i]:=rec[i+1]; rec[i+1]:=k; op:=1; end; end;
Writeln('Введите название дисциплины для поиска преподавателя'); readln(st); op:=0; {op- признак наличия преподавателей, читающих заданную дисциплину} For i:=1 to kol do For j:=1 to rec[i].kol do if rec[i].dis[j]=st then begin op:=1; writeln(rec[i].Fio); end; if op=0 then writeln (‘нет преподавателей, читающих дисциплину -’, st); end.
Результаты решения задачи
Введите количество преподавателей Введите ФИО -Смирнова Ольга Петровна Введите количество дисциплин -2 Введите 1-ую дисциплину- информатика Введите 2-ую дисциплину- вычислительная техника Введите ФИО -Авдеева Людмила Петровна Введите количество дисциплин -1 Введите 1-ую дисциплину- вычислительная техника Введите ФИО -Фомин Иван Сергеевич Введите количество дисциплин -2 Введите 1-ую дисциплину- физика Введите 2-ую дисциплину- электроника Введите название дисциплины для поиска преподавателя вычислительная техника Авдеева Людмила Петровна Смирнова Ольга Петровна
Введите количество преподавателей Введите ФИО -Романова Елена Сергеевна Введите количество дисциплин -2 Введите 1-ую дисциплину- физика Введите 2-ую дисциплину- математика Введите ФИО -Дмитриев Андрей Владимирович Введите количество дисциплин -2 Введите 1-ую дисциплину- история Введите 2-ую дисциплину- философия Введите название дисциплины для поиска преподавателя информатика нет преподавателей, читающих дисциплину -информатика
Тема 2.10 Файлы данных Файл – представляет собой последовательность компонент, расположенных на внешнем носителе информации. Любой файл имеет три характерные особенности: - у него есть имя; - содержит компоненты одного типа; - длина создаваемого файла никак не оговаривается при его объявлении ограничивается только емкостью устройства внешней памяти. В языке Pascal различают 3 типа файлов данных: 1. Типизированные – это файл, длина любого компонента которого строго постоянна, что дает возможность организовать прямой доступ к каждому из них (т.е. доступ к компоненту по его порядковому номеру). Компонентами типизированного файла могут быть вещественные, целочисленные, символьные, логические типы данных и записи. 2. Текстовые – это совокупность символов, разделенных на строки переменной длины. В конце каждой строки стоит признак конца строки EOLN (end of line). Доступ к каждой строке возможен только последовательно, начиная с первой. Компонентами текстового файла могут быть данные следующих типов: символьные, стринги, вещественные и целочисленные. 3. Нетипизированные – отсутствие типа компонентов делает эти файлы совместимыми с любыми другими файлами и позволяет организовать высокий скоростной обмен данными между внешним запоминающим устройством (ВЗУ) и оперативной памятью (ОП). Относятся к файлам прямого доступа.
Чтение данных из файла (т.е. ввод данных в ОП машины) и запись данных в файл (т.е. вывод данных из ОП на ВЗУ) осуществляется через файловые переменные.
|
||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-15; просмотров: 405; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.108.233 (0.008 с.) |