- •Тема2 Пошаговые вычисления в командном окне. Содержание.
 - •1.2. Формат вывода результата вычислений.
 - •1.7. Задания.
 - •1.1. Арифметические вычисления.
 - •1.3. Использование элементарных функций.
 - •1.3.1 Некоторые встроенные элементарные функции:
 - •1.3.2 Некоторые специальные константы:
 - •1.5. Векторы.
 - •1.5.1 Ввод, сложение вычитание.
 - •1.5.3 Основные функции для работы с векторами.
 - •1.6. Матрицы.
 - •1.6.1 Различные способы ввода матрицы.
 - •1.6.4 Действиями с матрицами и элементами матриц.
 - •Содержание.
 - •2.1 Создание м-файлов.
 - •2.2 Создание файл-функций.
 - •2.3 Задания.
 - •2.1 Создание м-файлов.
 - •2.2 Создание файл-функций.
 - •Содержание.
 - •3.7 Задания.
 - •3.2 Построение графиков функции одной переменной.
 - •3.3 Несколько графиков функций в одних осях.
 - •3.4 Несколько графиков в одном графическом окне.
 - •3.5 Вывод графиков в отдельные окна.
 - •3.6 Оформление графиков.
 - •Содержание.
 - •5.6 Задания.
 - •5.2 Оператор цикла while:
 - •5.3. Оператор ветвления if.
 - •5.5 Способы ввода данных и вывода результатов.
 
Содержание.
5.1 Оператор цикла for.
5.2 Оператор цикла while.
5.3 Оператор ветвления if.
5.4 Функции от функций.
5.5 Способы ввода данных и вывода результатов.
5.6 Задания.
__________________
5.1 Оператор цикла for:
for count = start:step:final
команды MatLab
end
Здесь count – переменная цикла; start – её начальное значение; final – конечное значение; step – шаг на который увеличивается (или уменьшатся) переменная count. Если шаг равен 1, то его можно не указывать.
Например, создадим матрицу Q,
размера 
,
элементы которой вычисляются по формуле:
,
для этого в М-файле hil
 создадим цикл:
------------------------------------------------------------------------------------------------------------------------
% Задание размера матрицы Q
n = 4;
% Инициализируем матрицу Q и заполняем её нулями
Q = zeros(n);
% Вычисляем элементы матрицы Q
for i = 1:n
for j = 1:n
Q(i, j) = 1/(i + j - 1);
end
end
% Отображаем матрицу на экране
disp('Матрица Q = ')
disp(Q)
------------------------------------------------------------------------------------------------------------------------
5.2 Оператор цикла while:
while условие цикла
команды MatLab
end
В условии цикла используются операции отношения или логические операторы:
| 
			 Обозначение  | 
		
			 Операции отношения  | 
	
| 
			 = =  | 
		
			 равенство  | 
	
| 
			 < (>)  | 
		
			 Меньше (больше)  | 
	
| 
			 < = (> =)  | 
		
			 Меньше или рано (больше или равно)  | 
	
| 
			 ~ =  | 
		
			 Не равно  | 
	
| 
			 Логические операторы  | 
		
			 Условие  | 
		
			 Запись в MatLab  | 
		
			 Эквивалентная запись  | 
	
| 
			 Логическое « и »  | 
		
			 
  | 
		
			 and (x<3, k = = 4)  | 
		
			 (x<3) & (k = = 4)  | 
	
| 
			 Логическое « или »  | 
		
			 
  | 
		
			 or (x = = 1, x = = 2)  | 
		
			 (x = = 1) | (x = = 2)  | 
	
| 
			 Логическое « нет »  | 
		
			 
  | 
		
			 not ( x = =2)  | 
		
			 ~ (x = = 2)  | 
	
Пример. Найдем сумму диагональных элементов матрицы Q. Набираем команды внимательно, чтобы не произошло зацикливание программы. В случае зацикливания надо принудительно прервать выполнение M-файла. Для этого следует нажать клавиши Ctrl+C или Ctrl+Break.
Продолжаем М-файл hil.
------------------------------------------------------------------------------------------------------------------------
s = 0;
k = 1;
while k <= n
s = s + Q(k, k);
k = k+1;
end
% Отображаем сумму на экане
disp('Сумма диагональных элементов матрицы Q = ')
disp( s );
-----------------------------------------------------------------------------------------------------------------------
У цикла while нет переменной цикла, в отличие, от цикла for, поэтому пришлось до начала цикла присвоить переменной k значение нуль, а затем увеличивать k на единицу.
5.3. Оператор ветвления if.
Оператор if может применяться в простом виде
if условие
команды MatLab
end
Например, напишем файл-функцию Rfun для вычисления выражения
![]()
проверяющую значение аргумента.
------------------------------------------------------------------------------------------------------------------------
function f = Rfun(x);
if abs(x) < 1
warning ('результат комплексный')
end
f = sqrt(x^2-1);
-----------------------------------------------------------------------------------------------------------------------
Команда warning служит для вывода предупреждения в командное окно.
Теперь вызов Rfun от аргумента, меньшего единицы по модулю, приведет к выводу в командное окно предупреждения:
>> y = Rfun(0.2)
Warning: результат комплексный
y =
0 + 0.9798i
В общем виде оператор ветвления представляет конструкцию
if - elseif – else
Напишем файл-функцию ifdem, демонстрирующую работу if - elseif – else.
-----------------------------------------------------------------------------------------------------------------------
function ifdem(a);
if (a == 0)
disp('a равно нулю')
elseif a == 1
disp('a равно 1')
elseif a == 2
disp('a равно 2')
elseif a >= 3
disp('a больше или равно 3')
else
disp('a меньше 3, но не равно 0, 1, 2')
end
----------------------------------------------------------------------------------------------------------------------
В зависимости от выполнения того или иного условия работает соответствующая ветвь программы, если все условия неверны, то выполняются команды, размещенные после else.
Вызовем функцию ifdem с аргументом 1.2:
При организации циклических вычислений следует, позаботься о том, чтобы внутри цикла не возникало ошибок, и не было зацикливания программы. Для досрочного прерывания цикла можно использовать команду break. Оператор break прерывает цикл и происходит выполнение операторов, расположенных в строках следующих за последним end.
Например, напишем программу prch, определяющую является ли заданное число N простым.
------------------------------------------------------------------------------------------------------------------------
N = input('Ведите число: ')
% Предполагаем, что число простое (pr=1)
pr = 1;
% Перебираем все возможные делители числа N от 2 до N/2
for i=2:N/2
% Если N делится на i,
if mod(N,i) == 0
% то число N не является простым (pr=0)
pr =0;
% и прерывается выполнение цикла
break;
end
end
% Если pr равно 1, то N - простое число
if pr == 1
disp('ПРОСТОЕ ЧИСЛО')
else
disp('НЕ ЯВЛЯЕТСЯ ПРОСТЫМ ЧИСЛОМ')
end
------------------------------------------------------------------------------------------------------------------------
Прервать не только цикл, но и программу можно также оператором error.
Например, изменим начало программы prch.
------------------------------------------------------------------------------------------------------------------------
N = input('Ведите число: ')
ost = round(N)- N;
if (N > 0) & (ost == 0)
% Предполагаем, что натуральное число простое (pr=1)
pr = 1;
else
error('ЧИСЛО N НЕ ЯВЛЯЕТСЯ НАТУРАЛЬНЫМ')
end
% Перебираем все возможные делители числа N от 2 до N/2
........
------------------------------------------------------------------------------------------------------------------------
Теперь, если ввести число, не являющимся натуральным, то программа прервется и укажет об ошибке ввода.
