русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Встроенные функции


Дата добавления: 2015-06-12; просмотров: 3604; Нарушение авторских прав


Список встроенных функций, предназначенных для обработки массивов, доступен через меню Insert/Function. Основные функции сосредоточены в группе "Vector And Matrix", однако и другие группы содержат множество специальных функций, которые либо используют массивы в качестве входных параметров, как, например, рассмотренная выше функция vec2str(), либо возвращают в виде массива результаты своей работы, как, например, функция str2vec().

Некоторые из функций основной группы приведены в таблице 4 и на рисунках 11 и 12, функции других групп будут рассмотрены в последующих разделах пособия. Обозначения аргументов функций в таблице 4 – те же, что и в таблице 3.

Таблица 4 – Функции для обработки массивов

Назначение Функция Возвращаемый результат
    Определение параметров массивов rows(A) Число строк в массиве
cols(A) Число столбцов в массиве
length(V) Длина (число элементов) вектора
last(V) Индекс последнего элемента вектора
max(A) Наибольший элемент массива
min(A) Наименьший элемент массива
tr(M) Сумма диагональных элементов квадратной матрицы
  Формирование массивов identity(n) Единичная квадратная матрица n´n
diag(V) Диагональная матрица, содержащая на диагонали элементы вектора V
augment (A,B) Массив, получаемый расположением массива В справа от массива А. (массивы должны иметь одинаковое число строк)
stack(A,B) Массив, получаемый расположением массива В под массивом А (массивы должны иметь одинаковое число столбцов)
submatrix (A,i,j,m,n) Массив - фрагмент массива А: строки с i-го по j-й, столбцы с m-го по n-й

 

Окончание таблицы 4

    Сортировка элементов массивов sort(V) Вектор той же размерности, в котором элементы упорядочены по возрастанию
reverse(A) Массив (вектор либо матрица) той же размерности, в котором строки расположены в обратном порядке
csort(A,n) Массив той же размерности, в котором элементы n-го столбца упорядочены по возрастанию, и строки "переставлены" в соответствии с новым положением соответствующих элементов n-го столбца
rsort(A,n) Массив той же размерности, в котором элементы n-й строки упорядочены по возрастанию, и столбцы "переставлены" в соответствии с новым положением соответствующих элементов n-й строки
  Поиск элементов массивов match(z,A) Вектор, содержащий индексы элементов массива A, равных z
lookup (z,A,B) Вектор, содержащий элементы массива B, расположенные в тех же позициях, что и элементы массива A, имеющие значение z.
hlookup (z,A,n) Вектор, содержащий элементы n-й строки массива A, расположенные в тех же столбцах, что и элементы верхней строки, равные z.
vlookup (z,A,n) Вектор, содержащий элементы n-го столбца массива A, расположенные в тех же строках, что и элементы левого столбца, равные z.

 




Рисунок 11 – Примеры использования функций для обработки массивов

В порядке комментария к приведенным на рисунке 11 примерам следует отметить одну важную особенность, ограничивающую использование функций сортировки массивов и функций вычисления максимальных и минимальных значений их элементов: все элементы массива, являющегося операндом любой из этих функций, могут быть только скалярами сравнимых типов данных (точно такое же ограничение накладывается и на использование функции match(), которая будет рассмотрена позднее).

При этом сравнение числовых скаляров производится по их значениям, а строковых – в "алфавитном порядке", то есть по значениям числовых ASCII-кодов символов строки (слева направо). Например, 123 > 13, но: "123" < "13", "abcd" < "abcdef", 9" < "A", "S" < "s", "Z" < "a". Другими словами, символ пробел "меньше" любого другого печатаемого символа, цифра "2" меньше цифры "3", но "больше" цифры "1", любая цифра "меньше" любой буквы, любая прописная буква "меньше" любой строчной.

Рисунок 12 – Функции поиска элементов массивов


На рисунке 12 приведены примеры использования функций группы lookup, используемых для поиска элементов массивов по различным критериям. В примерах используются три массива: матрица A и вектор B, все элементы которых – числовые скаляры, и матрица С, в которой элементы первой строки и двух первых столбцов имеют строковый тип данных, а остальные элементы – числовой.

Рисунок 12 a) иллюстрирует работу функции match(). Эта функция осуществляет поиск элементов исходного массива, равных заданному значению, и возвращает вектор, содержащий индексы найденных элементов. Если исходный массив – вектор, то элементами результирующего вектора являются целочисленные скаляры (одиночные индексы), если же поиск осуществляется в матрице, то каждый элемент результирующего массива (на рисунке это массив Q) содержит двойной индекс, представленный в форме двухэлементного вектора. Во всех случаях, когда элементами массива являются другие массивы, MathCAD отображает на экране не значения этих элементов, а их размерность (в данном примере - в виде {2,1}). Доступ к каждому элементу результирующего вектора осуществляется по его индексу, например элемент Q0 представляет двойной индекс первого из найденных элементов в массиве А в виде двухэлементного вектора, в котором нулевой элемент – номер строки, первый элемент – номер столбца.

Существует ограничение на использование массива в качестве аргумента функции match() – все элементы такого массива должны быть скалярами одинакового типа данных. Например, выражение match(155,С) является недопустимым, так как массив С не является однородным, однако, выражение match("Anna",С<0>) является корректным, так как все элементы нулевого столбца массива С имеют одинаковый (строковый) тип данных.

Функция lookup(2,В,С) в примере б) отыскивает в массиве С элементы, расположенные в тех же позициях, что и элементы массива В, имеющие значение 2. Функция vlookup(2,А,2) отыскивает во втором столбце массива А элементы, расположенные в тех же строках, что и элементы нулевого столбца этого же массива, равные двум. Функция hlookup() в этом примере возвращает значение элемент массива С, расположенный на пересечении столбца с первым (левым) элементом "Phone" и строки с первым (левым) элементом "Anna".

В примере в) определена пользовательская функция search(), предназначенная для поиска в массиве C элемента, номер строки которого задается значением элемента нулевого столбца массива (переменная Who), а номер столбца – значением элемента нулевой строки (переменная What).

Функция search_all() (пример г) получает значение элемента нулевого столбца матрицы С и возвращает соответствующую строку этой матрицы, дополненную нулевой строкой-заголовком.




<== предыдущая лекция | следующая лекция ==>
Операторы преобразования массивов | ОБРАБОТКА ВНЕШНИХ ФАЙЛОВ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.042 сек.