Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_3_MATLAB.doc
Скачиваний:
28
Добавлен:
24.11.2018
Размер:
3.32 Mб
Скачать

Операторы цикла Оператор for … end

Цикл forend применяют в тех случаях, когда заранее известно, сколько раз нужно выполнить цикл. Синтаксис оператора for … end:

for x = xn: hx: xk

операторы

end

Здесь х – имя переменной – счетчика цикла, xn – начальное значение счетчика цикла, xk – конечное значение счетчика цикла, hx – шаг приращения счетчика цикла. Если шаг цикла равен 1, то hx можно опустить.

Выполнение цикла начинается с присвоения счетчику начального значения. Далее выполняется проверка, не превосходит ли счетчик конечное значение. Если результат проверки положительный, то цикл считается завершенным и управление передается следующему за циклом оператору. В противном случае выполняются операторы цикла. После чего счетчик меняет свое значение на величину шага и алгоритм повторяется. Для досрочного выхода из цикла используется оператор break.

Цикл while

Цикл while используется, когда количество проходов заранее не известно, но известно условие завершения цикла. Синтаксис оператора while:

while условие

операторы

end

Обработка массивов и матриц средствами м-языка

Пример 3-10. Требуется поэлементно ввести матрицу А размером NM. Программа ввода матрицы А размером NM на М-языке:

N = input( ‘N=’);

M = input( ‘M=’);

for i = 1:N

for j = 1:M

a(i, j) = input(‘введите элемент’);

end

end

Пример 3-11. Требуется упорядочить элементы массива А, состоящего из N элементов, в порядке их возрастания.

Приведем фрагмент программы на М-языке, реализующий алгоритм упорядочения по возрастанию:

for i = 1:N-1

for j = 1:N-i

if A(j)>A(j+1)

B=A(j);

A(j) = A(j+1);

A(j+1) = B;

end

end

end

Отладка м-программ в matlab

Отладка программ – одна из самых трудоемких задач при программировании. Matlab располагает довольно развитыми инструментами отладки: точками останова, пошаговым выполнением, отображением текущих значений переменных. Рассмотрим основные возможности Matlab для выявления и устранения ошибок в М-файлах.

Основные средства отладки находятся в меню Debug.

Отладку программы целесообразно начинать с расстановки в тексте М-файла точек останова. Точки останова устанавливаются (кликом мышью) напротив тех строк М-файла, на которых выполнение программы прерывается. В строке 5 М-файла (Рис. 3-3.) установлена точка останова.

Рис. 3- 3.

В командной строке при этом появляется символы К>> (Рис. 3-4.). Чтобы продолжить выполнение программы, необходимо выполнить команду Run/Continue или нажать на клавишу F5.

Рис. 3- 4.

В момент останова программы в окне Workspace можно посмотреть значение любой переменной (Рис. 3-5).

Рис. 3- 5.

При необходимости, кликнув мышью на переменной, можно открыть окно редактора массивов Array Editor (Рис. 3-6.)

Рис. 3- 6.

Убрать точку останова можно, кликнув по ней мышью.

Чтобы программа останавливалась в точке останова только при выполнении определенного условия, необходимо ввести это условие в соответствующее окно (Рис. 3- 7.). Вызвать это окно можно с помощью команды Debug/Set/Modify Conditional Breakpoint.

Рис. 3- 7.

Кроме точек останова при отладке М-файла можно использовать режим пошагового выполнения программы: Debug/Step (F10).

Задание 3-3. Написать М-программу для реализации следующих алгоритмов.

1. Задана последовательность А из n целых чисел. Сформировать из нее новую последовательность В по следующему правилу: первое число последовательности А становится первым числом последовательности В, каждое следующее число последовательности А становится элементом последовательности В только в том случае, если оно больше предыдущего числа последовательности В (например, исходные числа – 1, 2, 1, 4, 3, 1, 7, 5, результат – 1, 2, 4, 7).

2. Задана последовательность А из n целых чисел. Сформировать из нее новую последовательность В, состоящую из чисел массива А, которые больше среднего арифметического чисел массива А.

3. Задана матрица А(n, n). Поменяйте в ней местами максимальный и минимальный элементы.

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