Главная страница
Навигация по странице:

  • 2. Рабочее задание.

  • Ход выполнения работы.

  • Контрольная Информационные технологии. Информационные технологии


    Скачать 1.51 Mb.
    НазваниеИнформационные технологии
    АнкорКонтрольная Информационные технологии
    Дата10.06.2021
    Размер1.51 Mb.
    Формат файлаdocx
    Имя файлаКонтрольная Информационные технологии.docx
    ТипДокументы
    #216518
    страница5 из 7
    1   2   3   4   5   6   7

    Основы программирования MATLAB


    Цель работы: изучение особенностей программирования в системе MATLAB выполнение программы определения показателя политропы.


    1. Теоретическая часть

    Практически невозможно предусмотреть в одной, даже самой большой и мощной, математической системе возможность решения всех задач, которые могут интересовать пользователя. Программирование в системе MATLAB является эффективным средством ее расширения и адаптации к решению специфических проблем. Оно реализуется с помощью языка программирования системы. Большинство объектов этого языка, в частности все команды, операторы и функции, одновременно являются объектами входного языка общения с системой в командном режиме работы. Программы на языке программирования MATLAB сохраняются в виде текстовых m-файлов.

    Приведенные выше примеры программ (см. работы №№ 1, 2) часто называют скриптами (script – файлы). Более удобной разновидностью m – файлов являются функции, первой строкой которых является заголовок, использующий оператор function. Использование функций является удобным средством разделения программы на отдельные блоки алгоритмов, обратиться к которым можно из любой точки программы.

    Функции получают исходные данные в виде списка входных параметров и возвращают результаты своей работы также в виде списка выходных параметров. Одной из самых важных особенностей функций является аппарат локальных переменных. Все переменные, появляющиеся в теле функции, за исключением глобальных переменных, входных и выходных параметров, считаются локальными. Они образуют локальное рабочее пространство и доступны только в теле породившей их функции, и никакие скрипты или другие функции воспользоваться ими не могут. При написании программ – функций требуется, чтобы имя m – файла, в котором запоминается программа, обязательно совпадало с именем функции.

    Пример универсальной программы вычисления n! может быть написан следующим образом и должен быть сохранен под именем fact.m:

    function y=fact(n)

    k=1

    for i=1: n

    k=k*I;

    end

    y=k;
    Для вычисления 5! Достаточно набрать в текущей строке:

    >> p=fact(5)

    >> p= 120

    Отметим, что при обращении к функции должно выполняться соответствие между числом входных и выходных параметров. Так, например, обращения типа:

    >> [k1,k2]=fact(5)

    ??? Ошибка использования ==> fact

    Слишком много выходных аргументов.

    >> k1=fact(5,6)

    ??? Ошибка использования ==> fact

    Слишком много входных аргументов.

    >> [k1,k2]=fact(5,6)

    ??? Ошибка использования ==> fact

    Слишком много входных аргументов.

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

    Входной язык Matlab насчитывает всего 9 операторов, использующих 14 служебных слов. Соответствующие синтаксические конструкции приведены ниже:

    Таблица 4.



    Формат оператора

    Пояснение

    1

    var =expr

    Оператор присваивания, вычисляет значение выражения expr и заносит результаты вычислений в переменную var

    2

    if условие 1

    операторы_1

    elseif условие_2 операторы_2

    elseif условие_3 операторы_3 ……………………

    else

    операторы

    end

    Условный оператор. Если справедливо условие_1, то выполняется группа операторы_1, если справедливо условие_2, то выполняется группа операторов_2, Если все указанные условия не справедливы, то выполняются операторы, расположенные между else и end

    3

    switch expr

    case var_1

    операторы_1

    case var_2

    операторы_2

    …………….

    Otherwise

    операторы

    end

    Переключатель по значению выражения expr. Если оно совпадает с величиной var_1, то выполняются операторы_1, … Если expr не совпадает ни с одной из перечисленных величин, то выполняются операторы расположенные между otherwise и end

    4

    for var=e1: e2: e3

    операторы

    end

    Цикл типа арифметической прогрессии, в котором переменная var при каждом повторении тела цикла изменяется от первоначального значения e1 с шагом e2 до конечного значения e3.

    5

    while условие операторы

    end

    Цикл с предусловием, повторяющийся до тех пор пока истинно указанное условие.

    6

    try

    операторы_1

    catch

    операторы_2

    end

    Попытка выполнить группу операторы_1. При условии, что в результате их выполнения произошла ошибка, то управление передается группе операторы_2. Если ошибка не произошла выполняются операторы_1.

    7

    break

    Досрочный выход из конструкций типа for, while, switch, trycatch

    8

    function [y1,…]=fun(x1,…)

    Заголовок функции. y1, y2,… - список выходных параметров. x1,x2,… - список входных параметров

    9

    return

    Досрочный выход из тела функции.


    Комментарии начинаются с символа % и располагаются с начала строки либо правее любого последнего оператора строки. Начальные комментарии выполняют особую роль. Первая группа строк с подряд идущими комментариями до пустой строки образует текст, выдаваемый в командном окне по команде help с именем m – файла. Добавим, например, к приведенной выше программе вычисления 5! Следующий комментарий (рисунок 20):

    Выполним команду:

    >> help fact

    Функция вычисления факториала числа



    Рисунок 20. – Функция вычисления факториала
    Важным при написании программ является взаимодействия пользователя с программой. Простейший способ ввода числовой и символьной информации, набираемой с клавиатуры, использует функцию input. Эта функция допускает два формата обращения :

    >> x=input('Введите x= ');

    Введите x=

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

    Второй формат обращения к функции имеет вид : input

    x=input('Введите x','s');

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

    Для того чтобы вывести на экран значение некоторой переменной можно исключить знак ';' в конце строки, например :

    >> x= 5;

    >> x

    x=

    5

    >>

    Более гибким вариантом вывода является использование функции disp :

    >> disp(x)

    5

    >> disp('x^2+3')

    x^2+3

    >>

    Как видно данная функция не отображает имя выводимой переменной и дает возможность дополнить вывод определенными пояснениями, например :

    >> disp(strcat('Значение переменной x= ',num2str(x)));

    Значение переменной x=5

    >>

    В данном примере текст выводимый функцией disp был составлен из двух строк: ' Значение переменной x = ', '5' (функция num2str(x,n) преобразует значение переменной x в строковый тип, n – количество цифр дробной части ). Функция strcat('s1','s2') выполняет операцию горизонтального объединения двух строк s1 и s2. Для вертикального объединения можно воспользоваться функцией strvcat :

    >> disp(strvcat('Значение переменной x = ',int2str(x)));

    Значение переменной x = 5

    >>

    Отладка программы производится с помощь пунктов Debug и Breakpoint меню окна текстового редактора системы, путем установки точек останова программы. Выполнение программы приостанавливается при достижении строки помеченной точкой как показано на рисунок 2. При этом можно проверить значения переменных, выполнить определенные действия по определению корректного значения переменных и т.д. Дальнейшее выполнение программы можно организовать пооператорно (для продолжения нажать F10), что облегчает поиск ошибки, а можно и в обычном режиме (до конца или до следующей точки останова) используя клавишу F5. Как видно из рисунка 2 с помощью пункта Breakpoints можно регулировать условия останова выполнения программы в случае появления ошибки (stop if error), недопустимого значения переменных (stop if NaN Or Inf) или появлении предупреждения (stop if warning).



    Рисунок 21. – Пункты Debug и Breakpoint
    2. Рабочее задание.

    1. Выполнить упражнения из описания лабораторной работы.

    2. Оформить результаты выполнения, иллюстрируя скриншотами.

    3. Сделать вывод о проделанной работе.

    1. Ход выполнения работы.

    1. Функция ввода исходных данных:

    Ввод исходных данных будем осуществлять с помощью стандартной функции системы menu (рисунок 22):


    Рисунок 22. – Функция menu
    >> k=menu(' Заголовок ', 'Кнопка1', 'Кнопка2', 'Кнопка3',….);

    При выборе одной из кнопок переменная k будет принимать значения 1,2,3,… в зависимости от номера выбранной кнопки в списке функции menu.
    function [P0,V0,P1,V1]=Vvod

    P0=100000;V0=0.1;P1=100000;V1=0.1

    n=0;

    while n<5

    n=menu('Исходныеданные',...

    strcat('P0= ',num2str(P0)),...

    strcat('V0= ',num2str(V0)),...

    strcat('P1= ',num2str(P1)),...

    strcat('V1= ',num2str(V1)),...

    'Расчет');

    switch n

    case 1

    P0=input('P0= ');

    case 2

    V0=input('V0= ');

    case 3

    P1=input('P1= ');

    case 4

    V1=input('V1= ');

    end

    end

    Троеточие используется для переноса строки.

    Работа функции осуществляется следующим образом: при выборе одной из кнопок (например, первой), переменной n будет присвоено значение равное 1, которое сигнализирует программе о необходимости изменить параметр, соответствующий кнопке 1. Выбор и изменение параметра происходит посредством оператора switch. Так как условие оператора while выполнено (n=1<5), то цикл повторится и появится меню с новым значением измененного параметра. Выход из цикла осуществится только при выборе кнопки 'Расчет', так как значение n=5, и условие цикла нарушается.

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

    Функция Vvod возвращает значения исходных параметров, заданных пользователем (рисунок 23):



    Рисунок 23. – Функция Vvod


    1. Рассчитываем политропы сжатия:



    3. Сформируем ответ в виде функции (рисунок 5):

    function Otvet(P0, P1, V0, V1, n)

    clc; % выполняет очистку главного окна системы

    disp(' Параметры процесса ');

    disp(strcat(' Начальное давление P0: ',num2str(P0)));

    disp(strcat(' Начальный объем V0: ',num2str(P0)));

    disp(strcat(' Конечный объем V1: ',num2str(P0)));

    disp(strcat(' Показатель расширения n : ',num2str(L)));


    Рисунок 24. – Функция Otvet


    1. Общую функцию назовем Pokazatel:

    function Pokazatel

    clc;

    [P0,V0,P1,V1]=Vvod; % осуществляем ввод данных

    % Определяем n

    n=log(P0/P1)/log(V1/V0);

    %Выводим результат расчета

    Otvet(P0,V0,P1,V1,n);

    Функция Pokazatel должна располагаться самой первой в тексте программы.



    Рисунок 25. – Функция Pokazatel


    Рисунок 26. – Результат выполненной работы
    Вывод: изучили особенности программирования в системе MATLAB выполнение программы определения показателя политропы.

      1. 1   2   3   4   5   6   7


    написать администратору сайта