Говорухин В., Цибулин Б. Компьютер в математическом исследовании (Говорухин В., Цибулин Б. Компьютер в математическом исследовании.djvu), страница 8
Описание файла
DJVU-файл из архива "Говорухин В., Цибулин Б. Компьютер в математическом исследовании.djvu", который расположен в категории "". Всё это находится в предмете "компьютерный практикум по специальности" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 8 - страница
Объединить данные двух списков можно путем перехода к последовательностям при помощи команды Основные объекты 45 > с1АВ:- [[А[].'сВ[]]; ЕИВ:= [2, 3, 5, 7, 4, 6, 8, 9 ] Того же результата можно добиться использованием команды ор: ПАВ:-[ор((А).ор((Вц, ВИВ н> [ 2, 3, 5, 7, 4, 6, 8, 9 ] При помощи команды 2)р можно объединять списки по заданному правилу. Эта команда может быть использована для преобразования данных из разных списков в список пар [троек) для вывода графика. Например, образуем пары из элементов двух списков — Я и В: > АВ: Юр((х,у)->[х.у],(АДВ): АВ:= [[2, 4], [3, 6], [5, 8], [7, 9]] В результате получается последовательность списков.
Заключив переменную АВ в квадратные скобки, получаем нужный для построения графика по точкам список списков [АВ1 Сам график строится при помощи команды р1 от; р)ос([АВ]) '. Для сортировки элементов списка []5 используется команда зог((Ы5. РВМ) При помощи дополнительного параметра гОМ вЂ” функции или термина — можно задать порядок следования элементов списка. Для числовых элементов термин "<" [действует по умолчанию) определяет упорядочивание в порядке возрастания, а термин ">" устанавливает обратный порядок. Для строковых и символьных элементов команда зогс упорядочивает элементы списка в лексикографическом порядке [1ехог(]е г или 51г) пд).
Для термина зб(] ге за упорядочивание производится по адресам памяти, в которых расположены элементы списка. Приведем примеры: > зогг( П,3.2]): зог(([1,3.2].">"); [1,2,3] [3,2, 1] > 1:-["Ы".Ь,"а2","Ь".а]: зогСП..къг1од): зог(($.,)ехогоег); [а, "а", Ь, -ь", ты "] [а, "а", ь, "ь", "ы "] > Х: ["Ь". 1,а2."е".2]: еогъ(Е): зогъ(с.аеегеее); [1.
2, "а", ".Ь", а2] 46 Глава 1. Основы Мар(е [1, 2, "в", "Ь", а2) Приведем пример сортировки с введением функции для указания правила, здесь используем команду оценки [вычисления) булевского выражения еча1ь, заданное правило позволяет упорядочить числа так, чтобы квадрат следующего числа превосходил значение текущего: > аог(Ц6,2,5.11. (х.у)->еча1щх<у"2) ); Е) хе [1,2,6,5) Множество — ве1 Заключив последовательность выражений в фигурные скобки, получим переменную типа эе1 (множество). Именно в виде множеств удобно задавать системы уравнений и получать найденные Мар)е решения уравнений: > ех:-2.3.х"2,'аЬс'.2.
аех:-(ех): хех х> (2, 3, хе, аЬс) Уже из примера видно, что в объектах типа аег удаляются одинаковые элементы. Множество есть неупорядоченная совокупность элементов. Команда эес(ЕХ) для последовательности ЕХ эквивалентна действию фигурных скобок (ЕХ). При работе с множествами необходимы операции объединения оп) оп, пересечения ) пгегэесг, вычитания п)1 пса. Для образования пустого множества достаточно пары фигурных скобок: > варс:-(); пен:=варс ип(оп (аЬс,З): етр):=( ! лев:= ( 3, аьс ) > пен )псегаесг аех: (3, аьс) Имеются также полные аналоги этих операций — одноименные команды.
В этом случае в качестве аргументов указываются имена множеств, участвующих в операции. Результат последней операции получится также после исполнения команды > "1п(егаесг"(пен.аех): (3, аьс) Массив — аггау Массивы или объекты типа аггау позволяют организовывать данные, используя для индексации отрицательные числа и нуль. Массив создается по команде аггау( ЕОМ. О 1 А Д 15) Параметры ее имеют следующее назначение: функция ЕОМ задает свойства массива, переменная 01А определяет диапазоны изменения индексов, а Е15 есть список элементов массива.
Каждый из параметров может быть опущен, игв по крайней мере один диапазон или список элементов должны быль заданы. В качестве ! Основные объекты (ау имени г()Н могут быть использованы следующие стандартные методы: эунпе[г1с, апс1аупаесг1с, зрагае, О1адопа), 1()епс)Су, рассаде.
Это позволяет определить соответственно массивы симметричные и антисимметричные (кососимметричные), разреженные (нули для неупомянутых элементов), массивы с ненулевой диагональю и единичные. Имя рассаде указывает на процедуру, служащую для ввода элементов. Например, для создания массива из четырех элементов с именем А используется следующая конструкция: > А:-аггау(-1..2): А:=впау(-! ..2, [ )) Сама переменная А при этом считается строковой (агг)пд), а любой элемент массива — индексной переменной (тп()ехе()). С элементами можно работать, как с обычными переменными: присваивать нм значения, использовать при организации выражений.
Например: > А[-Ц:-Пнегту: А[Ц:-'йкукен': А[0):-О. А[Ц:-А[0)-А[2); А:= -А г Чтобы посмотреть содержимое массива, используем команду рг(п[: > рг1пт(А): впау(-1 .. 2, [ (-1) = дне>ту (0) =О (1) =-Ат (2) =А )) Отметим, что один из элементов массива так и остался с начальным содержимым— с именем Ав Кстати, использование переменной с индексом вовсе не означает, что это элемент массива. Можно вводить переменные с индексом без предварительного описания массива. Пример такого рода дан в разделе, посвященном последовательностям выражений. таблица — 1аЫе При помощи команды таэ) Е можно оРганизовать данные в виде таблицы, отказавшись от целочисленной нумерации: СвЫе(н)НА15) Здесь функция г()И определяет свойства таблицы, а список элементов [15 формируется в виде пар равенств: Индекс-Значение.
Для задания свойства можно использовать методы, перечисленные ранее. Например, создадим таблицу, устанавливающую соответствие между цифрами в английском н итальянском языках: 48 Глава 1. Основы Мар[е > Т:-таэ)е[арагае.[опе-илодио-бие,аггее-[ге)); Т:= гаыа[ара гае, [глгае = гга, ола = ило, лчо = оие)) Метод заполнения таблицы зрагзе выбран для того, чтобы при обращении с именем, которого нет в таблице, выдавался бы нуль. Действительно: > Т[опе); Т[Т)чей ило О Если же сформировать таблицу без указания метода, то при аналогичном обращении получим: > Та >-таь)е[[опе-ило.тно-сое.[нгееРЕге)): Та[[1че): Та:= гаыейглгее = гге, оле = или, лчо = йи«1) Т'о, Элементами таблицы, в свою очередь, могут быть таблицы, а также множества, списки и массивы.
Таким способом обеспечивается возможность определения раз- нородных данных, например, таблиц физических констант, записанных в разных системах единиц. Сложные типы данных Комбинируя данные разных типов, можно получить, например, списки множеств или последовательности списков и т. д. К составным типам относятся 1пг[ехаЫе, аег[оепйа[ ТаЫаг, )таЫе. Встроенными типами (Ьо[[1-[и) являются Апг[, Ог, Мо1, поп пео[пг„ рояп[, попрояпд пее[п[, пейайче, рояйче, поппейайче, попрояйче.
Большое число типов связано с необходимостью адекватно обрабатывать многообразие математических конструкций. Кроме того, в дополнение к имеющимся типам можно создавать свои, расширяя возможности Мар!е для решения возникающих задач. Для работы с данными и извлечения элементов полезны команды пора (число операндов) и ор(взятие операнда), см. главу 2 «Аналитические преобразования в Мар1ею Команда [пар и простые команды работы со списками Опишем действие ряда команд, позволяющих эффективно обрабатывать данные (числа, выражения и другие), составляющие списки. Очень важной является команда вар[ГОМА[5) Эта команда применяет функцию Е[)М к каждому элементу объекта [[5, в качестве которого может выступать список, множество или выражение.
Вычисление косинуса для нескольких значений из списка демонстрирует следующий пример: > вар[сов,[О,РЫ2.Ра)): [ 1. О. -11 'Основные объекты 49 Кроме того, применяемая функция может быть задана непосредственно в теле команды внр. Например; > эер(х->х"3,[-1,2,е]); [-1, 8, а'1 При помощи команды отар можно формировать объекты с дополнительными элементами. Это достигается введением третьего и последующих параметров. Например, можно организовать последовательность обращений к функции т с тремя параметрами, где два аргумента одинаковы, а меняется только первый аргумент: > нар(т,[а.Ь],О.о). [((а, О, т(), Г(Ь, О, т() ] Чтобы вставить дополнительный параметр впереди, имеется команда внр2, работу которой демонстрирует следующий пример: > аар2((.А.