Символьные строковые константы
Символьные строки - последовательность любого, в том числе и равного нулю количества символов, заключенных в апострофы. Символы - из набора ASCII. ‘Номер’, ‘Summa’, ‘_ _ ‘, ‘A+B’ ‘Д’’АРТАНЬЯН’ - внутри апостроф - двойной Const C1 = ‘ ‘; C2 = ‘РЕЗУЛЬТАТ’; К строкам применимы операции отношения. Результат: True или False, сравнение происходит посимвольно слева направо. ‘ABC’>=’ACB’àрезультат False, т.к. ‘B’<’C’ Переменной нельзя присвоить значение строки!!! Ограничение - максимальный размер строки, воспринимаемый компилятором, - не более 126 символов. Строка, состоящая из одного символа, называется символьной константой. Если между апострофами нет ни одного символа, то такая строка называется пустой (см. далее раздел «Регулярные типы»). Для включения в строку символов, не имеющих физического изображения, используется их ASCII -код с символом # перед ним, например,A = ‘#31’ - это - управляющий символ. Задания 1. Можно ли выполнить / (деление) над переменными целого типа? 2. Определить:Odd(15) Odd(26) Succ(137) Pred(26) 3. Найти ошибки в записи вещественных чисел. 4..0Е – 2 - 71 - 6.1 0.1Е – 5 А56 2.1 5. Вычислить:Trunc(5.61) Round(17.16) Round(- 17.16) 6. Что не правильно? Odd(17.1) Cos(32.1) Cos(5) Sin(0.2) Succ(3.2) Pred(7) 7. Найти: Ord(chr(49)) = 49 Chr(ord(‘+’)) = + Pred(‘B’) = ‘A’ Succ(‘B’) = ‘C’ 8. Вычислить при A = 2, B = 3, C = 4, M = 5, X = 6, E = True а) (A+B)/C*M = (2+3)/4*5 = б) 2+X*X/(X+(A+B)/5) = 2+6*6/(6+(2+3)/5) = 2+36/7 = в) (A<B) and (X+A-<B) or (C<M) or E = 9. Записать: а) A не принадлежит отрезку [0;3] б) A принадлежит отрезку [- 2,0] в) A принадлежит промежуткам [- 5,- 4] или [0,2) или (3.2,7]
НЕСТАНДАРТНЫЕ ПРОСТЫЕ ТИПЫ (ОПРЕДЕЛЯЕМЫЕ ПОЛЬЗОВАТЕЛЕМ) Мы установили, что тип данных задает набор значений, которыемогут принимать данные. Например,.данныецелого типа могут принимать значения целых чисел. от -32768 до 32767, данные логического типа - значения True и False. Задание типа данных устанавливает и ограниченный набор операций, которые могут выполняться над этими данными. Например, над данными вещественного типа можно выполнять операции +, -, *, /, но нельзя производить операции Div и Mod, которые предназначены для данных целого типа.
Типизация данных значительно уменьшает возможность появления ошибок. Если все же ошибки возникают, то компилятор сам их обнаруживает и сообщает нам об этом. Учитывая ценность типизации данных, в языке Паскаль помимо стандартных типов (целого, действительного, логического, символьного) введены и другие типы, нестандартные (определяемые пользователем). Язык Паскаль предоставляет программисту широкие возможности для задания дополнительных типов, характеристики которых программист может определить самостоятельно. Новые типы описываются в разделе типов или определяются непосредственно при описании переменных. Перечисляемый тип Очень часто в программах целое число используется не в качестве арифметической величины, а как указатель некоторого элемента сравнительно небольшого множества. В таких случаях в описании программы обычно приводится список всех возможных значений вместе с указанием предполагаемой интерпретацией каждого значения. Такую величину можно рассматривать как элемент специального типа, который в языке Паскаль называется перечисляемым типом данных. Перечисляемый тип определяется как упорядоченный набор идентификаторов, заданный путем их перечисления. Пример. Type Colour = (Red, Orange, Green); Перечисляемый тип задается списком значений (объектов), которые могут принимать переменные этого типа. При этом каждый объект есть имя. Перечислимый тип задается самим программистом, в зависимости от того, какую задачу он решает. Перечислимый тип состоит из списка констант. Переменные этого типа могут принимать значения любой из этих констант. Числа, логические и символьные константы не могут являться объектами перечислимых типов. Применение перечислимого типа повышает наглядность программы и дает возможность автоматически контролировать допустимость значений переменных.
Язык Паскаль представляет программисту широкие возможности для задания дополнительных типов, характеристики которых программист может определить самостоятельно. Новые типы описываются в специальном разделе типов или определяются непосредственно при описании переменных. Описание перечисляемого типа имеет вид: Type Имя типа = (Список констант); Var: Имя переменной: имя типа; Здесь под константой понимается особый вид констант - констант, задаваемых пользователем. Под списком понимается перечень констант, разделенных запятыми. Сам список заключается в круглые скобки. В общем виде: Type T = (A1, A2,...,An); Пример. Type Year = (Winter, Spring, Summer, Autumn); Var A:Year; Здесь Year - имя перечисляемого типа: Зима, Весна, Лето, Осень - константы; A - переменная, которая может принимать значение любой из констант. Объект, указанный в списке,может присутствовать только в одном описании. Пример. Type T1 = (One, two, three); T2 = (Tree, four, five); Эти два задания типов несовместимы. Имена объектов, указанных в описании перечисленного типа, являются константами этого типа. В языке Паскаль допускается указывать константы перечислимого типа непосредственно в разделе переменных без использования раздела Type. Пример. Var A: (Winter, Sprihg, Summer, Autumn); Но лучше использовать описание данных с использованием раздела Type. Нельзя присваивать переменной одного типа значения из имени другого типа. Пример. Type Name =(Jon, Tom, Nick); Color =(Red, Blue, Black); Var X, Y, Z: Name; C1, C2: Color; Каждая из констант имеет порядковый номер, счет начинается с нуля. Упорядоченность констант позволяет применять к ним операции отношения (сравнения): <,<=,=, <>, >, >=. Результат операции будет логического типа (Type, False). Winter < Spring < Summer < Autumn (Зима < Весна< Лето< Осень) Свойства перечисляемого типа: 1) Ai <> Aj, если i ><j (различимость). 2) Ai < Aj, если i < j (упорядоченность). 3) Значениями типа Т могут быть только А1, А2,... Аn.
Упорядоченность определяется той последовательностью, в которой перечислены константные идентификаторы. Наличие упорядоченности позволяет применить стандартные функции: Ord (x) - нахождение порядкового номера, Pred (x) - нахождение предыдущего элемента, Succ (x) - нахождение последующего элемента. Succ (Ai) = Ai +1 для i= 1,2,...n-1 - последующий член. Pred (Ai) = Ai- 1 для i = 1,2,3...n - предыдущий член. Ord (Ai) = i -1 - функция определения порядкового номера Аi. Нумерация условно начинается с нуля. Пример. Имеется перечень зверей: лиса, волк, заяц, зубр, тигр, лев, медведь, косуля, олень, барс. Определить порядковый номер тигра (N1) и порядковый № зверя после косули (N2) Program Zver; Type Zver = (lisa,volk,zaiac,zubr,tigr,lev,medved,kosulia,olen,bars); Var P1,P2: Zver; N1,N2: Integer; Begin P1: = tigr; P2: = Succ (kosulia); N1: = Ord(P1)+1; N2: = Ord(P2)+1; Writeln (‘N1 = ‘, N1:2); writeln (‘N2 = ‘, N2: 2); End. Так как счет перечислимых начинается с нуля, а не с единицы, для вычисления порядкового номера необходимо прибавить единицу. Пример. Некто по средам и пятницам учится, в остальные будние дни работает. Составить программу, распечатывающую эти занятия последовательно по дням недели. Program Den; Type Week = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday); Var Day: Week; Begin For Day: = Monday To Sunday Do If (Day: = (Wednesday) Or (Day = Friday) Then Writeln (‘Study’) Else If (Day: = (Saturday) Or (Day = Sunday) Then Writeln (‘Nothing’) else Writeln (‘Work’) End. Результат будет такой: Work Work Study Work Study Nothing Nothing В языке Paskal нельзя вводить и выводить данные перечислимого типа с помощью операторов Read и Write.
Читайте также: Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|