Матросов А.В. Maple 6. Решение задач высшей математики и механики (1185909), страница 51
Текст из файла (страница 51)
г. Специальные символы Символ Описание Символ Описание Пробел Точка с запятой Двоеточие Левая круглая скобка Правая круглая скобка Левая квадратная скобка Плюс Правая квадратная скобка Левая фигурная скобка Минус илн дефис Звездочка Косая черта Правая фигурная скобка Обратный апостроф нлн обратные кавычки Процент Обратная косая черта Номер Вопросительный знак "Крышка" Восклицательный знак Равенство Меньше больше Коммерческое АТ Знак доллара Точка Запятая Апостроф или одинарные кавычки Двойные кавычки Вертикальная черта Амперсанд Подчеркивание губ Главе б.
Основы программн ння в МарЬ Из допустимых символов языка составляются лексемы — минимальные лексические единицы, распознаваемые интерпретатором языка Мар!е. К ним относятся ключевые слова (зарезервированные слова, используемые для формирования языковых конструкций), символы допустимых операций, имена переменных, функций и команд, строки, натуральные и целые числа, а также знаки препинания (разделители).
Ключевые слава имеют специальное значение для интерпретатора. Они используются для формирования конструкций ветвления и цикла, изменения принятого в соответствии с семантикой конструкции алгоритма выполнения программы, определения процедур и модулей и т. д. Эти слова нельзя использовать в качестве имен пользовательских переменных. Они являются зашищенными, и любая попытка присвоить такому имени какое-либо значение приведет к ошибке выполнения. Ключевыми словами в Мар!е 6 являются: апс! епа оо еаче Ьпеах ьп1епаесс 1оса1 попса орсьоп орсьопа аСор ппеп епгоп Ьу сассп ехропп еь оп Сеасгзретоп с!о Гтпа11у Гоп ргос Чптп геаа опзоп сап ао1е пехс с!опе е11Г д1оЬа1 1Г еп11е поп гесогп е1ае Таблица б.в. Унарные операции Операция Описание Унарный плюс (знак числа) Унарный минус (знак числа нлн операция смены знака содержимого переменной), Над обьектами Мар!е можно выполнять разнообразные операции: числа можно складывать, вычитать, умножать и делить; множества — пересекать, объединять, вычитать и т.
д. Для операций Мар!е предусмотрены специальные символы и имена, которые, как и ключевые слова, можно использовать только в предписанном для них смысле. Три типа операций допустимы в Мар!е: унарные, бинарные и без операндов. Укорные операции требуют для своего задания только один операнд, например, операция определения числа, противоположного заданному, — унарный минус. В табл.
5.2 представлены все унарные операции Мар!е. Часть !. Основы Мар)е Таблица 5.2 (окончание) Операция Описание Факториал (постфиксная операция, применяется к натуральным числам) Создание последовательности (применяется к диапазону) Логическое отрицание Формирование нейтральной операции поп йзггтпс Десятичная точка в представлении вещественного числа, отделяющая целую часть от дробной (постфиксная и префиксная операция) %целое Метка Замечание Все операции в табл. 5.2, относительно которых не указан их тип, являются префиксными. Бинарные операции выполняют определенные действия над двумя операнда- ми, например, операция умножения двух чисел является бинарной, два ее сомножителя и есть два операнда, над которыми выполняется действие.
Все бинарные операции перечислены в табл. 5.3. Таблица 5.3. Бинарные операции Операция Описание Операция Описание Диапазон Построение последовательности Композиция функций Повторная композиция потоп паппз Взгтхлд Разность множеств Ьптехзест Пересечение множеств . Обзявлеиие типа Сложение Вычитание Умножение Деление Возведение в степень Нейтральная операция Разделитель выражений Конкатенация Десятичная точка Присваивание Меньше чем Меньше или равно Больше чем Больше или равно Не равно Создание функции Объединение множеств Глава б. Основы программи озання з МарЬ Таблица б.б (онончание) В Мар1е существует три операции без операндов: 6, ьь и ььь, которые ссьща- ются, соответственно, на три предыдущих вычисленных выражения.
Все операции, за исключением нескольких, читателю знакомы по гл.'2, по- этому здесь мы остановимся только на трех пока неизвестных операциях: композиция, повторная композиция и нейтральная операция. Операция композиция 6 применяется для создания композиции двух функций ((В(х)) (сложной функции), и ее операндами должны быть имена функций: > (яьп61п) (х) г Ил(!п(х)) .9105964993 > ечя16((яьгг61п)(Р1))Г Операция 66 используется для создания повторной композиции одной функции, определяемой ее первым операндом, например, г(г(1(х))). Вторым операндом этой операции должно быть натуральное число, задающее коли- чество раз повторения функции в композиции: > (яг.п663) (х) ' (ип )(х) , (з) ягп( 5(п( я го(х ) ) ) (з!и )(1) > ехрягх((%) ' > (ятп663)(Р1/2)г Замечание' Повторную композицию не следует путать с возведением функции в степень.
Например. зьп((г) "2 представляет произведение зьп,(х1*зэп(к) и в области вывода отображается квк згп(х)', тогда как (з1п662) (х) определяют повтор- ную композицию функции язп, определяемую как гз)л ( яхгпг (хи Обратите внимание, что повторная композиция отображается в области вы- вода как имя функции с верхним индексом, указывающим число ее повто- рений в композиции. Команда зхрягс(() раскрывает ее и представляет в виде последовательности применения функции.
Часть 1 Основы Марго 27В Мар!е предоставляет пользователю возможность определить собственную операцию (унарную и бинарную), используя так называемые 8г-имена. Для этого после амперсанда ь следует задать либо правильное имя (последовательность буквенно-цифровых символов, начинающуюся с буквы), либо последовательность специальных символов, в которой, правда, нельзя использовать символы: ь, П ц), 1, !, 1, 1„',:, ', ', В, 1 и т. сь-имена, или лейлгральные операции, рассматриваются интерпретатором Мар1е как некоторые операции, которые не имеют никакой семантики. Они интерпретируются как вызовы функций. Если пользователь желает определить смысл нейтральной операции, то этого можно достичь, присвоив имени соответствующей нейтральной операции процедуру Мар!е: > ь- 3; ег-(3 ) > а ьегГа ег и егабд с > ьаг3гГ':=ртос1х, у) хеу; епсг ртос; Лагат';= ргос (х, у) х е у епд ргос > 2 ьагЫ гп 2+Ь Замечание Если в нейтральной операции используются два операнда, то ее результат отображается в виде бинарной операции, если один или больше двух — то в виде неопределенной функции.
В сложных выражениях нейтральная операция имеет наивысший приоритет по сравнению с другими операциями. Поэтому выражение 3*2 капп 1 при семантике операции касс, определенной как сложение чисел, будет вычислено равным 3, а не т Имена, которые в Мар1е могут быть символьными или индексными, используются для задания переменных, в которых можно сохранять результаты выполнения команд и операторов.
Символьные имена представляют собой последовательности буквенно-цифровых символов и символа подчеркивания, начинающиеся с буквы. Большое количество символьных имен защищено, и их нельзя использовать в качестве ИМЕН ПОЛЬЗОВатЕЛЬСКИХ ПсрЕМЕННЫХ бЕЗ СНятИя ЗащИтЫ КОМацдсй ппртокесг1). Эти имена имеют определенный смысл в языке и представляют имена встроенных функций, типов данных и названия команд Мар)е. С другой стороны, если необходимо из каких-либо соображений защитить имя, т. е. 279 Глава б. Основы п ог амми вания в Мар[е запретить пользователю его использование в левой части оператора присваивания, можно воспользоваться командой реосесс (). Снять защиту можно в любой момент командой ппркосесс(). Такие действия имеет смысл применять к определяемым пользователем процедурам или константам: > Мог[п1пэ Бсее1:=2.1Е5г Моди1иэ Егее1:= 2[0000. > ргопесГ('Мос[п1пэ Бпее1')) > Мойп1пэ Ягее1."=2Е5) Еггое, атгегпрсгпд Со аээ1дп Со 'Мос(п1пэ Ягее1' н)>1сп 1э рпотесГее( Индексные имена представляют собой символьные имена с нижним индексом.
Для их задания следует после символьного имени в квадратных скобках задать последовательность выражений, причем само индексное имя также может иметь нижний индекс: > ):=1г > А[2,3) г > А[1"2+1,К+1)[Г1оаг); '[хе Отметим, что каждое индексное выражение в индексном имени вычисляется, т, е, если в нем встречается переменная, которой присвоено значение, то вместо нее подставляется зто значение, как видно при задании последнего индексного имени в приведенном примере. При проверке типа имени, которому не присвоено никакого значения (так называемого не вычисленного имени), команда нпасгуре() возвращает значЕНие эуиоо1 длл сИМВОлЬНОгО Имени И 1пг[ехее( для ИНДексНОГО имени. Замечание Семантика индексного имени не предполагает, что используемое в нем символьное имя является массивом или таблицей. Так, в нашем примере А не является массивом, однако если в дальнейшем имя л будет определено как массив, то индексное имя л[г,з) будет ссылаться на соответствующий элемент массива А.
Заключение в обратные кавычки любой последовательности символов, вю)ючая пробелы и специальные символы, формирует правильное имя Мар[е. Дальнейшее использование подобных 'имен осуществляется 'их заданием в обратных кавычках: > 'п[с[ "*1: х"2+дг ' пщ-е (= х~ + 9 2ВО Часть 1. Основы Мар!е > 'п(с)-*') хе+9 Для создания имен можно также использовать операцию конкатенации ) ) или команду сап О, описание которых дано в гл. 2: > х () 9,х (( две( х9, хАВС > и:=4: х (( (3*о+2) х!4 > х (! (3*и+2)) х//(3 т+ 2) Строка — зто последовательность символов, заключенная в двойные кавыч- КИ.
ЕЕ ТИПОМ яВЛяЕтСя тИП втх1пд. ДЛя Задаиня СИМВОЛа дВОйНЫХ КаВЫЧЕК (") в строке перед ним необходимо ввести символ обратной косой черты (1). Эти идущие подряд два символа трактуются как один символ двойных кавычек. Аналогично вводится и символ обратной косой черты, т. е. для задания в строке обратной косой черты его следует ввести дважды. Это связано с тем, что одиночная обратная косая черта трактуется как символ переноса длинной строки на другую строку ввода.
Для выделения подстроки или символа из строки используется индексная запись. > "а1 "а") 1епчсь(%) ) Ь Количество символов в строке "а("а" 3 > "а11а" ( 1епчсп(%] ( () Количество символов в строке "а((а" 3 > "тлвв 1в 1 > опе всхтпд!" "ТЛ)в и опе мппаг' > Ъ(6..-1)) () выделение подстроки, начиная с шестого символа и до конца. "и опе в(т(пя(" Натуральные числа — зто любая последовательность цифр. Мар)е игнорирует стоящие слева нули. Целые числа — это натуральные числа или натуральные числа со знаком + или — перед ними.