Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Фортран Теория Информатика

.pdf
Скачиваний:
45
Добавлен:
24.01.2023
Размер:
11.02 Mб
Скачать

30. Встроенные функции при программировании на Фортране. Элементные числовые функции. Вычисление максимума и минимума.

Возвращает максимум из двух или более значений MAX(a1, a2, [, a3,...]) Возвращает минимум из двух или более значений MIN(a1, a2, [, a3,...])

31. Встроенные функции при программировании на Фортране. Математические элементные функции. Генерация случайных чисел.

CALL RANDOM_NUMBER(harvest) - возвращает псевдослучайное число или массив таких чисел из равномерно распределенного интервала: 0 x 1.

32. Встроенные функции при программировании на Фортране. Функции для работы с массивами.

ALLOCATED(array) - возвращает значение стандартного логического типа, равное .TRUE., если размещаемый массив array (массив, имеющий атрибут ALLOCATABLE) в данный момент размещен, и .FALSE. - в противном случае.

SIZE(array [, dim]) - возвращает стандартное целое, равное размеру массива array, или, если присутствует скалярный целый параметр dim, протяженность (экстент) вдоль заданного измерения dim.

SHAPE(source) - возвращает одномерный массив стандартного целого типа, содержащий форму массива или скаляра source.

ALL(mask [, dim]) - возвращает .TRUE., если все элементы логического массива - маски mask вдоль заданного измерения dim истинны, или .FALSE. - в противном случае.

PRODUCT(array [, dim] [, mask]) - вычисляет произведение всех элементов целочисленного или вещественного массива вдоль необязательного измерения dim. Перемножаемые элементы могут отбираться необязательной маской mask.

SUM(array [, dim] [, mask]) - подобна PRODUCT, но вычисляет сумму элементов массива.

TRANSPOSE(matrix) - меняет местами (транспонирует) столбцы и строки матрицы (двумерного массива) matrix. Тип и разновидность типа результирующего массива и matrix одинаковы. Если matrix имеет форму (k, n), то результат имеет форму (n, k).

33. Встроенные функции при программировании на Фортране. Функции обработки строк.

LEN(string) - возвращает длину строки string. Результат имеет стандартный целый тип.

ADJUSTL(string) - элементная функция; выполняет левое выравнивание символьной строки.

ADJUSTR(string) - элементная функция; выравнивает символьную строку по правой границе.

INDEX(string, substring [, back]) - элементная функция; возвращает номер позиции, с которой начинается первое вхождение строки substring в строке string.

REPEAT(string, ncopies) - возвращает строку, содержащую ncopies повторений строки string

SCAN(string, set [, back]) - возвращает номер позиции значения для поиска

34. Модули в Фортране. Оператор USE. Атрибуты PUBLIC и PRIVATE.

Модули используются для определения глобальных данных, которые могут использоваться во всех подпрограммах или исключительно в нужной подпрограмме.

Оператор USE позволяет:

ограничить доступ к объектам модуля за счет применения параметра ONLY;

использовать в программной единице для объектов модуля другие имена.

Атрибут PUBLIC указывает, что объект модуля может быть доступен в результате use-ассоциирования в использующих модуль программных единицах.

Атрибут PRIVATE указывает, что объект модуля может быть использован только внутри модуля. Задание атрибутов может быть выполнено как отдельным оператором, так и при объявлении типа

35. Оператор многовариантного выбора SELECT CASE в Фортране. Select-case используется для замены else-if, когда исходов больше чем 3.

SELECT CASE (тест-выражение) CASE(СП1)

[БОК1] [CASE(СП2) [БОК2]]

...

[CASE DEFAULT [БОКn]]

END SELECT

36. Оператор WHERE в Фортране.

В Фортране можно, используя оператор или конструкцию WHERE, выполнить присваивание только тем элементам массива, значения которых удовлетворяют некоторым условиям.

integer :: b(5) = (/ 1, -1, 1, -1, 1 /)

 

 

 

 

 

 

where(b > 0) b = 2 * b

! b > 0 - логическое выражение - массив

print *, b

!

2

-1

2

-1

2

integer :: b(5) = (/ 1, -1, 1, -1, 1 /) where(b > 0)

b = 2 * b end where

37. Оператор FORALL в Фортране

Подобно WHERE и сечениям FORALL заменяет циклы с присваиванием массивов, например вместо цикла

do i = 1, 100 d(i, i) = 2 * g(i) end do

лучше использовать

forall(i = 1:100) d(i, i) = 2 * g(i)

В DO-цикле операторы выполняются немедленно при каждой итерации. FORALL работает иначе: первоначально вычисляется правая часть выражения для всех итераций и лишь затем выполняется присваивание.

38. Назначение системы Matlab, области применения, особенности. Элементы окна среды Matlab.

MATLAB сокращение от Matrix Laboratory - система для осуществления численных расчетов, моделирования технических и физических систем, а также выполнения научных и инженерных расчетов при работе с массивами данных.

Области применения:

·математические вычисления

·создание алгоритмов

·моделирование

·анализ, обработка и визуализация данных

·научная и инженерная графика

·разработка приложений с GUI

Система допускает обращение к программам, написанным на языках Fortran, C/C++. Особенности:

·Результат выводится сразу же после оператора в том случае, если после него нажата клавиша Enter; если вывод результата после оператора нежелателен, ставьте после него точку с запятой.

·Все переменные в MATLAB считаются матрицами (это очень важная особенность MATLAB).

·По правилу умолчания все переменные имеют тип double (вещественное восьмибайтовое значение).

Элементы среды:

·командное окно, предназначенное для ввода команд языка MATLAB;

·окно предыстории, в котором запоминается информация из командного окна;

·рабочая область содержит сведения об имеющихся в памяти переменных;

·проводник текущей директории представляет собой проводник файловой системы, встроенный в MATLAB.

39. Работа с файлами в Matlab. Построение графиков.

В текстовом файле матрица должна быть представлена как прямоугольная таблица чисел, разделенных пробелами, с равным количеством элементов в каждой строке. Имя файла должно иметь непустое расширение, отличное от .mat.

Команда:

load имя_файла.расширение

Для сохранения массива в текстовый файл можно воспользоваться командой:

save имя_файла.расширение имя_массива -ASCII Построение графиков:

plot

x = 0:pi/100:2*pi; y = sin(x); plot(x,y)

40. Язык программирования Matlab: типы данных; константы и переменные. Типы данных: логический (logical), символьный (char), целый (int8, int16,

int32, int64), вещественный (single, double)

Числовые константы: 3, -99, 0.0001, 9.6397238, 1.60210e-20, 6.02252e23

Логические константы: 1 - истина (true) и 0 - ложь (false)

имена - последовательность латинских букв, цифр и символов подчеркивания;

на первом месте буква;

регистр важен;

namelengthmax

ans, eps, pi, i, j, inf, NaN

Может иметь длину до 63 символов.

Избегайте использования имен встроенных функций для переменных

41.Язык программирования Matlab: встроенные функции и специальные

величины;

·Сложение, вычитание, умножение, деление, возведение в степень

·Тригонометрические функции

·Матричные сложение, вычитание, умножение, деление, возведение в степень

·Трансцендентные функции (логарифм, квадратный корень и т.п.)

·plot

42.Язык программирования Matlab: операции: простые и матричные;

·Матричные операции выполняются по правилам линейной алгебры.

·Простые операции над массивами выполняются поэлементно над соответствующими элементами массивов одинаковых размеров.

·Для обозначения простой операции перед знаком операции ставится точка, например, .*

·Простая операция может выполняться над парой скаляр-массив. Тогда скаляр участвует в операции над каждым элементом массива.

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

43.Язык программирования Matlab: выражения; операторы;

44. Язык программирования Matlab: кодирование основных алгоритмических структур.

45.Понятие М-файла. Скрипты, их назначение. Отладка и профилирование M-файлов.

М-файла - это текстовый файл, содержащий инструкции языка MATLAB, с расширением .m. Для вызова М-файла достаточно записать в окне команд MATLAB (или в другом М-файле) его имя без расширения:

edit имя_файла

Скрипты - это простейшие М-файлы. Они имеют с командным окном (или с вызвавшим скрит М-файлом) общее рабочее пространство переменных. При вызове скрипта просто выполняются содержащиеся в нём команды. Скрипты не имеют параметров.

46.Функции в Matlab: правила создания и вызова.

Функция - это подпрограмма MATLAB, она имеет собственное, независимое от вызывающего кода, пространство рабочих переменных. Обычно Имеют параметры.

Передача параметров в функции обычно осуществляется либо через параметры функции, либо через глобальные переменные.

Правила создания и вызова:

1.Функция содержится в отдельном М-файле. Имя М-файла должно совпадать

сназванием функции.

2.Если параметров больше одного их необходимо заключать в [квадратные скобки] и чередовать запятой. Если параметр один скобки можно опустить.

3.Фактические параметры, передаваемые в функцию должны соответствовать формальным по числу, порядку, типу и структуре.

4.Функция может использовать не только локальные данные, из своей рабочей рабочей области, но и глобальные данные (базовой рабочей области).

5.Чтобы объявить какой-либо параметр внутри функции как глобальный, перед его объявлением нужно использовать ключевое слово global.

47.Встроенные функции Matlab обработки векторов и матриц: length, size.

·size - Размер массива

sz = size(A) возвращает вектор-строку, элементами которого являются длины соответствующих размерностей A. Например, если A матрица 3 на 4, затем size(A) возвращает векторный [3 4].

·length - Длина самого большого измерения массива.

L = length(X) возвращает длину самого большого измерения массива в X. Для векторов длина является просто числом элементов. Для массивов с большим количеством размерностей длиной является max(size(X)). Длина пустого массива является нулем.

48.Встроенные функции Matlab обработки векторов и матриц: sum, min, max, mean, prod.

·min – Вычисляет минимальные значения среди элементов столбцов матрицы, возвращает вектор-строку минимальных значений столбцов исходной матрицы:

·max – Вычисляет максимальные значения среди элементов столбцов матрицы, возвращает вектор-строку максимальных значений столбцов исходной матрицы:

У этих функций может может быть еще один выходной параметр, содержащий индексы минимальных элементов столбцов:

[min_stolb, ind_min]=min(A); [max_stolb, ind_max]=max(A);

·sum - Сумма элементов массива, eсли A вектор, sum(A) возвращает сумму элементов, если A матрица, sum(A) возвращает вектор-строку, содержащий сумму каждого столбца.

·mean - Среднее

·prod - Произведение элементов массива, аналогично sum

49.Встроенные функции Matlab обработки векторов и матриц: diag, tril, triu.

·diag - Диагональ матрицы

·tril, triu - нижний и верхний фрагменты матрицы

tril(X) – возвращает матрицу, все элементы которой выше главной диагонали X заменены нулями, неизменными остаются лишь элементы нижней треугольной части, включая элементы главной диагонали;

tril(X.k) – возвращает неизменной нижнюю треугольную часть матрицы X начиная

сk-й диагонали. При k=0 это главная диагональ, при k>0 – одна из верхних диагоналей, при k<0 – одна из нижних диагоналей.

triu(X) – возвращает неизменной верхнюю треугольную часть матрицы X включая элементы главной диагонали, и заменяет нулями остальные элементы;

triu(X.k) – возвращает неизменной верхнюю треугольную часть матрицы X начиная

сk-й диагонали. При k=0 – это главная диагональ, при k>0 – одна из верхних диагоналей, при k<0 – одна из нижних диагоналей.

50.Встроенные функции Matlab обработки векторов и матриц: issorted, sort,

sortrows.

·issorted - проверка упорядоченности массива

·sort(a) — возвращает вектор, полученный из вектора a упорядочиванием по возрастанию.

sort(a, 'ascend') — эквивалентно sort(a) .

sort(a, 'descend') — возвращает вектор, полученный из вектора a упорядочиванием по убыванию.

sort(A) — возвращает матрицу, полученную из матрицы А упорядочиванием каждого ее столбца по возрастанию. Допустим последний в списке аргумент – строка

'ascend' или 'descend'.

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

sortrows (A) — по возрастанию элементов первого столбца. sortrows(A,column) — по возрастанию элементов столбца с номером column.

51.Встроенные функции Matlab обработки векторов и матриц: randperm, ind2sub, sub2ind, reshape.

p = randperm(n) возвращает вектор-строку, содержащий случайное сочетание целых чисел от 1 до n не повторяя элементы.

p = randperm(n,k) возвращает вектор-строку, содержащий k уникальные целые числа, выбранные случайным образом от 1 до n.

ind2sub — преобразует элемент в индексы (координаты) этого элемента sub2ind — преобразует индексы в значение элемента с этими индексами reshape — изменяет размерности массива.

52.Встроенные функции Matlab обработки векторов и матриц: find. Выбор строки, столбца, произвольной части матрицы в среде Matlab.

find

Найдите индексы и значения ненулевых элементов Синтаксис

k = find(X) k = find(X,n)

k = find(X,n,direction) [row,col] = find(___) [row,col,v] = find(___)

Описание

k = find(X) возвращает вектор, содержащий линейные индексы каждого ненулевого элемента в массиве X.

Если X вектор, затем find возвращает вектор с той же ориентацией как X. Если X многомерный массив, затем find возвращает вектор-столбец линейных

индексов результата.

k = find(X,n) возвращает первый n индексы, соответствующие ненулевым элементам

вX.