![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 414; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.98.210 (0.01 с.) |