Московский государственный технический университет

им. Н. Э. Баумана




Лабораторная работа №6

ГРАФИКИ ФУНКЦИЙ ОДНОЙ ПЕРЕМЕННОЙ











Выполнил:

Группа:

Проверил: Звягин Ф.В.










Москва 2016.

Цель работы:


1. Ознакомиться с глобальными, локальными и статическими переменными.

2. Научиться создавать и использовать собственные функции в MatLab.

3. Приобрести навыки организации обмена информации между командным окном и функцией через механизм формальных и фактических параметров.

Краткие методические указания:

1. Создать два варианта функции для решения задачи. В первом варианте

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

переменные, а во втором – через формальные и фактические параметры.

2. В командном окне задать исходные данные и вызвать функцию, пере-

дав ей входные и получив выходные значения.

3. Использовать статическую переменную для подсчёта количества вызовов каждой из функций и одну и ту же глобальную переменную для подсчёта

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

Задание 2 варианта:

2. В одномерном массиве вычислить сумму элементов до последнего нулевого и произведение элементов, расположенных правее него.




Исходный код скрипта:

Функция one:

%Фактические параметры

function[s,p]=one(a)

persistent numb;

global allnumb;

if isempty(numb)

numb=0;

end

if isempty(allnumb)

allnumb=0;

end

numb=numb+1;

allnumb=allnumb+1;


%%

k =length(a);

while((a(k)~=0)&&(k>0))

k = k-1;

end;

s = 0;

for i = 1 :1 :k-1

s = s+a(i);

end;

p = 1;

for i = k+1:1:length(a)

p = p*a(i);

end;

%%


fprintf('Функция one для фактических переменных\nВызвана %d раз\n',numb);

fprintf('Всего вызвано функций %d\n',allnumb);



Функция two:

%глобальные параметры

function two()

persistent numbe;

global allnumb;

if isempty(numbe)

numbe=0;

end

if isempty(allnumb)

allnumb=0;

end

numbe=numbe+1;

allnumb=allnumb+1;


%%

global p;

global s;

global A;

k =length(A);

while((A(k)~=0)&&(k>0))

k = k-1;

end;

s = 0;

for i = 1 :1 :k-1

s = s+A(i);

end;

p = 1;

for i = k+1:1:length(A)

p = p*A(i);

end;


%%

fprintf('Функция two для глобальных переменных\nВызвана %d раз\n',numbe);

fprintf('Всего вызвано функций %d\n',allnumb);


Вызов функций:



Вывод:

1. Ознакомился с глобальными, локальными и статическими переменными.

2. Научился создавать и использовать собственные функции в MatLab.

3. Приобрел навыки организации обмена информации между командным окном и функцией через механизм формальных и фактических параметров.




Случайные файлы

Файл
57215.rtf
59792.rtf
163178.rtf
kursovik.doc
141616.rtf