|
|||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Оператор циклу for. Правила вводу даних з командного вікнаЦикл for використовується для виконання заданого числа дій, що повторюються. У загальному випадку цикл має наступну форму запису for <умова циклу> <команди MatLab> end Нехай потрібно виконати процедуру знаходження суми відповідних елементів двох векторів та вивести на екран результуючий вектор. Програма, що записується у М-файл матиме вигляд a=[1 2 6 7 9 45 3]; b=[2 4 5 7 8 12 4]; for n=1:length(a) %початок та умови циклу c(n)=a(n)+b(n); %сумування векторів end; %кінець циклу c %вивід результуючого вектора на %екран На екрані з’явиться вектор с c = 3 6 11 14 17 57 7 У цьому прикладі використовується команда length(a), що визначає розмір заданого вектора. Це використовується тоді, коли цей розмір невідомий, або задається користувачем. У протилежному випадку можна було б записати for n=1:i, де i – розмір заданого вектора. При роботі з векторами та матрицями часто виникає задача вводу елементів з клавіатури. Для цього застосовується команда input('текст'). Наприклад потрібно задати розмір квадратної матриці, ввести її елементи з клавіатури та вивести її на екран. Текст програми буде мати наступний вигляд A=0; n=input('Введіть розмір квадратної матриці '); for i=1:n for j=1:n disp(['Введіть елемент матриці А(' num2str(i) ', ' num2str(j) ')']); A(i,j) = input(' '); end; end; disp(A) Для усунення можливості існування матриці А, що була створена раніше і записана у робочу область, цій матриці присвоюється нульове значення на початку програми. Вивід тексту на екран з проханням ввести відповідний елемент матриці реалізується за допомогою команди disp. У випадку виводу однієї змінної на екран вона має форму запису disp(A), у випадку виводу тексту disp('текст'), а у випадку виводу декількох змінних, наприклад елементів векторів, disp(['текст', num2str(n)]), де num2str(n) – функція перетворення номера елемента у текстовий формат для виводу на екран. Для виводу на екран елементів матриць, ця команда приймає більш складний вигляд, як показано у програмі. Розглянемо приклад. Дано дві квадратні матриці n-го порядку. Ввести з клавіатури порядок матриць, заповнити матриці вручну, знайти суму цих матриць та записати результат у нову матрицю. Текст М-файлу матиме наступний вигляд A=0; B=0; C=0; %створення початкових нульових матриць n=input('Введіть розмір квадратної матриці '); for i=1:n for j=1:n disp(['Введіть елемент матриці А(' num2str(i) ', ' num2str(j) ')']); A(i,j) = input(' '); end; %цикл вводу першої матриці end; disp('A=') disp(A) %виведення першої матриці на екран for i=1:n for j=1:n disp(['Введіть елемент матриці B(' num2str(i) ', ' num2str(j) ')']); B(i,j) = input(' '); end; %цикл вводу другої матриці end; disp('B=') disp(B) %виведення другої матриці на екран for i=1:n for j=1:n C(i,j)=A(i,j)+B(i,j); end; %цикл сумування матриць end; disp('Результат суми відповідних елементів матриць') disp('C=') disp(C) %вивід на екран результату суми
6.4.3 Умовний оператор if (if…else) Оператор if (if…else) використовується для побудови циклів з виконанням чи невиконанням деяких умов. У загальному випадку він має наступну форму запису if <умова> <команди MatLab> else <команди MatLab> end Приклад. Задано два вектори. Написати програму порівняння елементів цих векторів. Якщо елементи однакові, то у результуючий вектор вивести на його місце цей елемент, якщо елементи різні, то вивести на його місце нуль. Програма у М-файлі матиме наступний вигляд a=[1 4 5 6 7]; b=[2 3 5 5 7]; %завдання векторів c=0; for i=1:5 %цикл перебору елементів векторів if a(i)==b(i) %умова рівності елементів c(i)=a(i); else c(i)=0; %протилежна умова end end disp('c=') disp(c) %вивід на екран результату На екрані з’явиться наступний результат c= 0 0 5 0 7 У даному прикладі для реалізації протилежної умови до рівності елементів векторів використовується оператор else. Розглянемо ще один приклад. Задана квадратна матриця. Ввести розмір та елементи матриці з клавіатури. Знайти кількість непарних елементів, що розташовані під головною діагоналлю, включаючи останню. Вивести на екран вектор із цих елементів. Лістінг програми буде мати вигляд A=0; C=0; k=1; disp('Введіть розмір квадратної матриці А ') n=input(''); for i=1:n for j=1:n disp(['Введіть елемент матриці А(' num2str(i) ', ' num2str(j) ')']); A(i,j) = input(' '); end; end; disp('A=') disp(A) for i=1:n for j=1:n if i>=j && mod(A(i,j),2)~=0 C(k)=A(i,j); k=k+1; end; end; end; disp('C=') disp(C) disp('Кількість непарних елементів') disp(length(C)) На екрані відобразиться наступне Введіть розмір квадратної матриці А Введіть елемент матриці А(1, 1) Введіть елемент матриці А(1, 2) Введіть елемент матриці А(1, 3) Введіть елемент матриці А(2, 1) Введіть елемент матриці А(2, 2) Введіть елемент матриці А(2, 3) Введіть елемент матриці А(3, 1) Введіть елемент матриці А(3, 2) Введіть елемент матриці А(3, 3) A= 1 2 3 5 6 7 1 5 8 C= 1 5 1 5 Кількість непарних елементів Умова знаходження елементів під головною діагоналлю, включаючи останню i>=j, та умова їх непарності mod(A(i,j),2)~=0 записується у команді if i>=j && mod(A(i,j),2)~=0. У цій програмі також використовується один з логічних операторів «логічне І», яке позначається символом &&. Інші логічні оператори та операції співвідношення наведені у таблиці 6.3.
Таблиця 6.3.
Література: [1], 223-230, 234-243; [2], стор. 54-63.
Завдання на СРС: Переривання циклу. Оператор Break. Література: [1], стор. 247-248. Контрольні запитання 1. Як створити новий М-файл? 2. Опишіть структуру М-файлу. 3. Які імена забороняється присвоювати М-файлу? 4. Оператор циклу for. Приклади застосування. 5. Оператор циклу if. Приклади застосування. 6. Назвіть основні логічні оператори. 7. Назвіть основні операції співвідношення. 8. Оператор циклу (if…else). Приклади застосування. Лекція 7 Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |