funcount = 0; % инициализация счетчика введенных функций
maximums = [];% инициализация массива с максимумами функций
hFuns = []; % инициализация массива указателей на линии графиков
% Обработка ввода пользователя в бесконечном цикле
while 1
str = input('Введите функцию, или new, или end: ', 's');
switch str
case 'new' % Пользователь задал очистку осей
axes(HAx); % оси с указателем HAx стали текущими
cla % очистка текущих осей
case('end') % Пользователь завершает работу с программой
break % выход из цикла
otherwise % Пользователь ввел новую функцию
funcount = funcount + 1; % увеличение счетчика функций
% Формирование команды для вычисления массива значений
eval(strcat('y =', str, ';'));
% Оси HAx должны быть текущими для вывода графика
axes(HAx)
hold on % график следует добавить на оси
% Построение графика функции, введенной пользователем,
% и добавление указателя на него в массив указателей
HFuns(funcount) = plot(x,y)
% Установка требуемых свойств линии графика новой функции
set(HFuns(funcount), 'Marker', 'o')
set(HFuns(funcount), 'MarkerEdgeColor', 'k')
set(HFuns(funcount), 'MarkerFaceColor', 'w')
set(HFuns(funcount), 'LineWidth', 1)
set(HFuns(funcount), 'Color', 'k')
% Вычисление максимума новой функции и добавление
% его значения в массив, содержащий максимумы
maximums(funcount) = max(y);
if funcount > 1 % пользователь ввел две или более функций
% Удаление маркеров с графика предыдущей функции
set(HFuns(funcount-1), 'Marker', 'none')
% Поиск функции с максимальным значением среди ранее
% введенных, в oldmax записывается значение,
% а в N - номер требуемой функции
[oldmax, N] = max(maximums(1:funcount-1));
% График
найденной функции должен отображаться жирной линией
set(HFuns(N), 'LineWidth', 3)
% Сравнение максимального значения новой функции с
% максимальным из значений предыдущих функций
if maximums(funcount) > oldmax
% Новая функция принимает самое большое значение среди
% всех функций, введенных пользователем, поэтому