Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Inf&syst12 (2).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
310.27 Кб
Скачать

12 Информатика и системология. 1 сем. Модуль 2: ска Maple. Тема 2 Типы данных, переменные, макроопределения Тема 2Типы данных, переменные, макроопределения

В этой теме рассматриваются базовые вопросы программирования в Maple. За исключением раздела 2.4 («Решение уравнений и неравенств»), изложенные здесь сведения не имеют непосредственного практического применения, но материал последующих тем, так или иначе, опирается на них [на эти сведения].

2.1Алфавит, лексемы

Входной алфавит языка Maple содержит:

1) буквы латинского алфавита (A..Z; a..z);

2) десятичные цифры (0..9);

3) специальные символы, см. табл. 2.1;

4) буквы русского языка.

Таблица 2.1 — Специальные символы алфавита

-

!

@

(

{

"

%

;

*

=

$

)

}

|

\

:

/

<

.

[

`

&

#

+

^

>

,

]

'

_

?

~

Из символов алфавита строятся минимальные единицы языка — лексемы (tokens). В Maple лексемы делятся на:

  • зарезервированные ключевые слова: операторы и ключевые слова языка;

  • строки;

  • символические имена: имена переменных, функций,...;

  • натуральные числа;

  • разделители (знаки пунктуации).

2.1.1Зарезервированные ключевые слова

Зарезервированные ключевые слова, см. раздел справки Maple Keywords (Reserved Words), включают 11 операторов (and, or, xor, not, implies, union, intersect, subset, minus, mod, assuming) и 36 ключевых слова языка (часть из которых относится к устаревшим):

  • ключевые слова для построения управляющих конструкций (if, then, elif, else; while, for, from, to, next…) [будут рассмотрены в теме «Управляющие структуры»];

  • слова для построения процедур (proc, local, global, options, return, error, description…) [будут рассмотрены в теме «Процедуры»];

  • слова для построения модулей (export, module, use) [будут рассмотрены в теме «Модули»];

  • слова для организации обработки исключений (try, catch, finally) [будут рассмотрены в подтеме «Обработка исключительных ситуаций»];

  • функции чтения и записи (read, save) [будут рассмотрены в теме «Средства ввода/вывода»];

  • функции или инструкции (quite, stop, done) завершения работы для Command-Line Maple («интерфейса командной строки») [в этом учебном курсе рассматриваться не будут].

Зарезервированные ключевые слова нельзя использовать в качестве символических имен (имён переменных; о символических именах будет рассказано в п. 2.1.2). В частности, им нельзя присваивать значения. Попытка присвоить значение зарезервированному ключевому слову приводит к сообщению об ошибке.

Операторы подразделяются на «нульарные» (операторы без операндов), унарные (действующие на один операнд) и бинарные.

«Нульарные» операторы — это предопределенные имена %, %%, %%% результата последней, предпоследней и предшествующей предпоследней операции. Основное предназначение этих имен возможность использовать в последующих выражениях результатов операций, если эти результаты не были присвоены некоторой (некоторым) переменной (переменным). Например

> sin(Pi/6);

1/2

> % +3;

7/2

Естественно, такая возможность важна в тех случаях, когда вычисление громоздко и не может быть быстро повторено. (Иначе можно было бы просто переписать фрагмент с присвоением результата некоторой переменной, и выполнить повторно вычисление результата.) Maple имеет специальный механизм для сохранения выполненных в течении сеанса результатов. Поэтому в большинстве простых случаев возможность, предоставляемая унарными операторами, пользователями не используется. Эта возможность часто использовалась в те времена, когда производительность компьютеров была достаточно мала.

Таблица 2.2 — Унарные операции

Обозна­чение

Описание

Пример или комментарий

+

Знак числа

+8

-

Знак числа, смена знака

-8

!

Факториал. n! = 1*2*…n

3! (результат: число 6)

$

Создание последовательности ($ m..n)

$ 1..10 (будет описан в разделе последовательности)

not

Логическое отрицание

not B. (см. пример ниже таблицы)

&string

Определение пользовательского оператора

Будет рассмотрен после темы «Процедуры»

%целое

Метка

.

Десятичная точка

.1 (задаёт значение 0.1)

Пример для not (о булевых значениях будет подробнее написано ниже)

> B:= true: # присвоили переменной B значение «Истина»

> A:= not B;

A := false

Метки в Maple используются не так как в большинстве языков программирования высокого уровня. В этой СКА метки служат для представления больших выражений: метками помечаются подвыражения. Допустимость использования меток в больших выражениях и длина, начиная с которой возможно выделять подвыражение и присваивать ему метку определяется значениями интерфейсных переменных задаваемых при помощи вызова функции interfece (детали приведены в помощи к функции interface).

Таблица 2.3 — Бинарные операции

+

Сложение.

..

Построение диапазона

-

Вычитание

:=

Присвоение

*

Умножение

<

Меньше чем

/

Деление

<=

Меньше или равно

^

Возведение в степень (или **)

>

Больше чем

$

Построение последовательности

>=

Больше или равно

@

Композиция

<>

Неравно

@@

Кратная композиция

->

Создание оператор-функции

,

(Запятая) Разделитель выражений

union

Объединение множеств

||

Соединение строк

intersect

Пересечение множеств

.

Десятичный разделитель (в числе)

::

Описание типа

and

Логическое И

mod

Вычисление по модулю

or

Логическое ИЛИ

:-

выбор элемента модуля

xor

Логическое исключающее ИЛИ

&string

Определение пользовательского оператора

implies

импликация

Пример композиции и кратной композиции

> a:= sin: b:= cos:

> (a@b) (x);

sin(cos(x))

> f:= (a@@3)(x);

> expand(f);

sin(sin(sin(x)))

Композиция используется при достаточно «продвинутом» программировании и в этом курсе рассматриваться не будет.

Большая часть приведенных в таблице операторов будет описана ниже в соответствующих разделах.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]