metod_15.03.04_atppp_oaip_ump_2016 (1016599), страница 30
Текст из файла (страница 30)
Еслипредставление успешноCODE = 0 или номеру позициив ST, где обнаруженошибочный символПреобразует число Xвещественного или целоготипа в строку символов STВозвращает для строчнойлатинской буквы CHзаглавную. Любую другуюбукву функция возвращает безпреобразования.Выражения над множествамиПеременные множественного типа могут быть слева и справа от знака присваивания: =, если они принадлежат идентичным типам:А := В ;где А – переменная типа множества; В – выражение множественного типа.Значения множественного типа в процессе обработки данных формируются спомощью выражений над множествами.
Операндами выражений могут бытьпеременные и константы (конструкторы) множественного типа.Примеры операторов присваивания значений переменным-множествам:SEZON := []; ... SEZON := [ VESNA, ZIMA ] ;DNI := [ 14, 19 ];....А := [ 18, 45 ] ; .. А := А + В – [ 25, 31 ] ;В выражениях типа множества допустимы операции: (+) – объединения (сложения)множеств, (–) – разности (вычитания) множеств, (*) – пересечения (умножения)множеств.Объединением двух множеств (A + B) является множество, состоящее из элементов,входящих хотя бы в одно из множеств.
Разностью двух множеств (А – B) являетсямножество, состоящее из элементов множества А, не входящих в множество в.Пересечением двух множеств (А * в) является множество, состоящее из элементов,одновременно входящих в множество А и в множество В.Примеры операторов присваивания и выражений над множествами:VAR А, В, С: SET OF BYTE; ...А := [1 .. 5 ] ; В := [ 3, 4, 7];С:=А+В;{С=[1..5,7]}С:=А-В;{С=[1,2,5] }С := А * В ;{ С = [ 3, 4 ]}Над значениями множественного типа допустимы операции отношения ипринадлежности:= – проверка эквивалентности множеств; <>– проверка неэквивалентности множеств; <=– проверка вхождения; >= – проверкавключения;IN – проверкапринадлежности.
Например:А <= В – А ВХОДИТ В В ?В >= А – В включает (содержит) А ?Выбор одной из двух последних операций зависит от смысла проверки. Функцииэтих операций идентичны.Операндами операций отношения над множествами могут быть выражения надмножествами. Результатом операций отношения является логическое значение TRUEили FALSE.136Примеры операций отношения над множествами.
В результате выполнения всехопераций значение R = TRUE.Выражения над множествами.VAR M: SET OF CHAR;R: BOOLEAN ;BEGIN { Сравнение конструкторов: }R := [ 'А', 'Е' ] = [ ‘Е’, 'А' ] ;R := [ 'А', 'Е’ ] <> [ ' I ’, 'О' ] ;R := [ 'А’, 'С’ ] <= [ 'А’, 'В', 'С’, 'D' ] ;R := [] <= [ 'А’ ] ;M := [] + [ 'А' ] ;{ М = ['А']; }{ Сравнение конструктора и переменной: }R := [ 'А’ .. 'О' ] >= М ;M := М + [ 'Е', 'I’ ] ;{ М = ['А', ' Е’, ' I '];M := М – [ ' I ' ] ;{ М = ['А', 'Е']; }Для работы со множествами можно использовать операцию отношения типа"принадлежности". Форма операции: A IN Вгде А – выражение любого ординального типа (в том числе константа или переменная), результат которого совместим с базовым типом множества В; В – выражениенад множеством, в частном случае константа или переменная типа множества.Операция IN определяет принадлежность (вхождение) А к В.
Она используется дляопределения наличия конкретного значения А в В значении типа SET. Если А входит вВ, то результат этого отношения равен TRUE, а если не входит, то – FALSE. Например:IF I IN [ 1 . . 4 ] THEN . . .Расширить возможности работы со множествами, содержащими большое количествоэлементов, можно, используя массивы множеств. Множество может быть элементоммассива или записи.Для добавления или исключения элемента из множества используются операции: +(объединения) и – (вычитания).
На машинном уровне это вызывает достаточногромоздкий машинный код. Для устранения этого недостатка в 7-й версии Паскалявведены 2 стандартные процедуры с заголовками:procedure Include( var S: set of T; Elem : T );procedure Exclude( var S : set of T; Elem : T );гдеТ – базовый тип множества. Вызовы этих процедур компилируются всего в однумашинную команду. Например:var S : set of byte;begin .. . { Без процедур:}S := S + [123];S := S – [45]; . . .{ С помощью процедур:}Include ( S,123 );137Exclude ( S, 45 );Смешанные выраженияСмешанные выражения – это выражения, в которых используются различные типыопераций и операндов. Последовательность их выполнения: операции отношения самыенизкоприоритетные. Поэтому, если результат операции отношения должен бытьоперандом логической операции, отношение должно быть заключено в круглые скобки:A := ( B < – C + 25 ) AND ( X > E ) ;3 1 2 5 4 ← последовательность выполнения операций.
В смешанныхвыражениях тип результата последней операции определяет типрезультата всего выражения.Пример.VAR A, B, X : REAL ;C : BOOLEAN ;BEGINC := (X > A ) AND ( X < B ) ;…………….END.В данном случае переменная С принимает значение TRUE, если значение Xпопадает в интервал А - В. В противном случае принимает значение FALSE.8.6. ОРГАНИЗАЦИЯ ОБРАБОТКИ ДАННЫХОператоры ввода-выводаВ Турбо Паскале нет специальных операторов ввода-вывода, а рассматриваемыесегодня операторы обеспечивают обращение к стандартным процедурам обменаинформацией ПК с внешним миром: в современных ЭВМ вводом-выводом данныхуправляют специальные программы, которые включаются в состав программногообеспечения.с клавиатурыВвод------------исходныОбработка (вычисления)Выводрезультата-----------------на экран монитораПосредством процедур ввода-вывода обеспечивается резервирование определеннойобласти ОП процессора для записи туда данных извне при вводе и для вывода вовнешнюю среду.1.
Процедура READ или READLN. Процедура READ предназначена для ввода склавиатуры значений переменных (исходных данных). В общем виде процедуравыглядит так:138READ (А1, А2, …Аn);где Ai – имя переменной, значение которой должно быть введено с клавиатуры вовремя выполнения программы.Основная функция процедуры ввода заключается в преобразовании данных извнешней формы представления, понятной человеку, во внутреннюю, понятную ЭВМ, иприсвоении полученных значений переменным.При выполнении процедуры READ происходит следующее: программа приостанавливает свою работу и ждет, пока на клавиатуре будутнабраны данные (в соответствии с наличием и последовательностью написания переменных процедуры) после нажатия кнопки <ENTER> введенные значения присваиваютсяпеременным.Например, процедура READ (Temperat) означает, что после ввода с клавиатурычисла 21 и нажатия кнопки <ENTER> переменной Temperat будет присвоено значение21.Одна процедура READ позволяет получить значения нескольких переменных.
Принаборе запись вводимых чисел должна соответствовать типу переменных, онинабираются в одной строке и разделяются пробелами.Если в строке набрано больше чисел, чем задано переменных в процедуре READ тооставшаяся часть строки будет обработана следующей процедурой ввода. Например, врезультате выполнения процедурREAD (A, B);READ (C);При вводе с клавиатуры для первой процедуры строки 10 25 18 переменная Cполучит значение 18 после выполнения второй процедуры.Процедура READLN ( LN – аббревиатура от line – строка) отличается от процедурыREAD тем, что после выделения очередного числа из введенной с клавиатуры строки иприсваивания его последней переменной списка процедуры READLN, оставшаясячасть строки данных теряется и следующая процедура READLN или READ будеттребовать нового ввода.2.
Процедура WRITE или WRITELN. Процедура WRITE предназначена длявывода на экран монитора сообщений и значений переменных. При выводе значенияпеременных преобразуются из внутреннего представления и выводятся насоответствующий внешний носитель.Формат процедуры WRITE:WRITE (список имен переменных);После имени переменной после двоеточия можно поместить описание (формат) полявывода ее значения. Например, для переменной типа INTEGER – WRITE (C:4), а дляпеременной типа REAL – WRITE (C:4:5). Если для вещественной переменной впроцедуре WRITE задать только одну цифру (ширину поля), то при выводе на экранепоявится число, представленное в формате с плавающей запятой. Например, длявещественных переменных X1 и X2, получивших в ходе выполнения программызначения соответственно 13.25 и –0.3401, после выполнения процедурыWRITE (‘X1=’, X1:5:2, ‘X2=’, X2:12)на экране появится:139X1 = 13.25 X2 = -3.40100E-01После выполнения процедуры WRITE курсор остается в той позиции экрана, вкоторую он переместился после выведения последнего символа данной процедуры.Следующая процедура вывода начнет вывод именно с этой позиции.Процедура WRITELN отличается от процедуры WRITE только тем, что послевывода сообщения или значений переменных курсор переходит в начало следующейстроки.Оператор перехода GOTOОператоры программ располагаются в памяти и выполняются последовательно, впорядке записи.
Но могут быть ситуации (условия), когда необходимо пропуститьгруппу операторов. Такие пропуски производятся в программах с помощью операторовперехода.Оператор перехода предназначен для указания того, что выполнение программыдолжно продолжаться с точки программы, обозначенной меткой, значение которойстоит в операторе перехода.
Метка в тексте программы располагается непосредственноперед помеченным оператором и отделяется от него двоеточием. Оператор можнопомечать несколькими метками через двоеточие. Помечаются операторы только в томслучае, если к ним нужен переход.Форма оператораперехода: GOTO метка;Все метки, используемые в программе, должны быть объявлены в разделе описанийпосле слова LABEL.














