![]() |
|
Главная Терминология Хоора 1 2 3 4 5 [ 6 ] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 обозначаюгся как succ{x) (последующее значение) и pred(x (предшествующее значение). Упорядоченность значени типа Т определяется правилом {ct<ci){l<j) (1.2 1.4. стжндлртные простые типы Стандартные простые типы - это типы, которые являютсв встроенными для большинства ЭВМ. Они включают целые числа, логические значения и множество символов печати. В крупных вычислительных машинах имеются также веще, ственные числа и соответствующее множество простых операций. Мы обозначаем эти типы идентификаторами: Integer, Boolean, real, char. Тип integer содержит подмножество целых чисел, размер которого может быть различным в разных вычислительные системах. Но предполагается, что все действия с данными этого типа являются точными и выполняются по обычным правилам арифметики и что вычисление прерывается, если результат оказывается за границами допустимого подмножества. Стандартные операции - это четыре действия арифметики: сложение (-+-), вычитание (-), умножение (*) и деление (div). Последнее должно давать целый результат, опуская возможный остаток, так, что для любых тип т--п < (mdivrt)*flm. (1.3) Операция взятия остатка определяется с помощью деления уравнением (mdiv )* -f-(mmodn) = m. (1.4) Таким образом, m div п -это целое от деления т на п, а т mod п - остаток от деления. Тип real обозначает подмножество вещественных чисел. .В то время как арифметические.действия с целыми числами дают точные результаты, для арифметических действий со значениями типа real допускается неточность в пределах ошибок округления, так как в вычислениях участвует конечное число цифр. В этом состоит явное различие между типами integer и real, существующее в большинстве языков программирования. Деление вещественных чисел, дающее вещественный результат, мы обозначаем косой чертой (/), а деление целых чисел - div. Два значения стандартного типа Boolean (булевское) обозначаются идентификаторами true (истина) и false (ложь), Таблица 1.1. Булевские операции
Операции над булевскими, значениями - это логические конъюнкция, дизъюнкция и отрицание, значения которых приведены в табл. 1.1. Логическая конъюнкция обозначается символом f/v (или and), логическая дизъюнкция - символом V (или ог)Т а отрицание - символом ~i (или not). Заметим, что операции сравнения дают результат типа Boolean. Следовательно, результат сравнения можно присваивать какой-либо булевской переменной или использовать в качестве операнда в булевских выражениях. Например, пусть даны булевские переменные р и д и целые переменные л: == 5, = 8, г = 10, тогда присваивания р:=х = у д:={х<у) A{y<:Z) дают р = false я q - true. Стандартный тип char включает множество печатаемых символов. К сожалению, не существует общего стандартного множества символов, принятого во всех вычислительных системах. Поэтому использование слова стандартный может здесь ввести в заблуждение; его следует понимать в смысле стандартный для вычислительной системы, на которой должна выполняться данная программа . По-видимому, наиболее широко используется множество символов, определенное Международной организацией по стандартизации (ISO), и особенно его американская версия ASCII (американский стандартный код для обмена информацией). Поэтому в приложении А дана таблица символов ASCII. Она включает 95 печатаемых (графических) символов и 33 управляющих символа; последние используются в основном для передачи данных и для управления печатающим устройством. Широко распространено подмножество из 64 печатаемых символов (только прописные буквы), которое Называется ограниченным множеством ASCII. Для того чтобы описывать алгоритмы, работающие с символами, т. е. значениями типа char, независимо от вычислительной системы мы определим некоторые свойства множества символов, делающие его связным. Это следующи свойства: 1. Тип char содержит 26 латинских букв, 10 арабски.х циф^ и некоторое количество других графических символов та ки.х, как знаки препинания. 2. Подмножества букв и цифр упорядочены и связны, т. е. (М'<л:) Л (л;<20х - буква, (О' < ;с) Л < 90 х - цифра. (1.5) 3. Тип char содержит непечатаемый, пустой символ (пробел), который может использоваться как разделитель. (На рис. 1.1 пробелы обозначаются как .) Для написания программ в машинно-независимом виде особенно важно наличие функций преобразования между THISLllSUALlTEXT THISUISUAUTEXT Рис. 1.1. Представления текста. двумя стандартными типами char и integer. Мы называем эти функции ord(с)-порядковый номер символа с в множестве char и chr{i)-i-й символ множества char. Таким образом, chr -это обратная функция от ord и наоборот, т. е. ord{chr(i))==i (если chr(i) определена), chr{nrd{c)) = c. Особого внимания заслуживают функции / (с) = orrf(c)-.ord(O) = положение с среди цифр, g(О == chr(i + ord(O)) = 1-я цифpa. Например, f(30 = 3, g(5) = 5. Таким образом, f-ная функция от g и наоборот, т. е. f{g{i))==i (0</<9). gif{c))c (0<с<9). обрат- (1.8) Эти функции преобразования используются для перевода внутреннего представления чисел в последовательности цифр и наоборот. Они фактически и представляют собой такой перевод на простейшем уровне - для одной цифры. |