М.А.И.
(Национальный Исследовательский Университет)
Лабораторная работа № 7
Практикум № 8
ИНСТРУМЕНТАЛЬНОЕ СРЕДСТВО EDITOR/DENUGGER
Вариант № 24
Оформил: Абрамов Иван Андреевич
Проверил: Кривилёв А. В.
Москва 2011
Цель: Знакомство с инструментальным средством Editor/Debugger, а также приобретение навыков работы со структурами выбора и повторения языка MATHLAB.
Упражнение 1.
Работа с командами главного главного меню Editor/Debugger.
Создать файл example_6_4 из примера 6.4.
answer = input ('Введите массив положительных чисел: ');
tic
a=isprime(answer(:));
if any(a)
s=sum(a);
string = ['Вы ввели ' num2str(s) ' простых чисел: '];
disp (string)
answer (a')
else
string =['Введёный массив не содержит простых чисел'];
disp (string)
end
toc
Поставить точку останова и две закладки, как показано на рис. П-8.1.
Переместить курсор ко второй закладке , а затем к первой.
Определить сколько раз в файле встречается слово string.(Find&Raplace)
Заменить в файле все слова string на str.(Find&Replace)
answer = input ( 'Введите массив положительных чисел: ' );
tic
a = isprime(answer(:));
if any(a)
s=sum(a);
str = ['Вы ввели ' num2str(s) ' простых чисел: '];
disp (str)
answer (a')
else
str =['Введёный массив не содержит простых чисел'];
disp (str)
end
toc
Сохранить файл по именем example_6_4_a .(save as)
Перейти в режим отладки (run)
После ввода необходимых чисел в командном окне выполнить один шаг (Step) и посмотреть значение переменной а.
С помощью пошагого выполнения с заходом в вызываемую функцию перейти в функцию num2str() (Step In).
Вернуться обратно в сценарис example_6_4 с помощью команды Step Out.
Завершить выполнение сценария (Continue)
Удалить контрольную точку (Clear All Breakpoints).
Удалить две закладки (Set/Clear Bookmarks)/
Установить текстовый курсор внутри слова num2str и выбрать команду Balance Delimiter.
Закрыть файл example_6_4.
Упражнение 2.
Работа с командами панели инструментов Редактора.
Создать сценарий example_6_6 из примера 6.6.
answer = input ( 'Введите массив положительных чисел: ' );
a = isprime(answer(:));
if any(a)
s=sum(a);
str = int2str(s);
d=size(str,2);
lsd=str2num(str(d));
if ((d>1)&&(str2num(str(d-1))==1)) || ~((lsd>0)&(lsd<5))
string = ['Вы ввели ' num2str(s) ' простых чисел: '];
elseif lsd==1
string = ['Вы ввели ' num2str(s) ' простое число: '];
else
string = ['Вы ввели ' num2str(s) ' простых числа: '];
end
disp (string)
answer (a')
else
string ='Во введённом массиве нет простых чисел';
disp(string)
end
Установить контрольные точки, как показано на рис. П-8.4.
Перейти в режим отладки и ввести чисел.
Выполнить инструкцию, расположенную во второй строке, и просмотреть значение переменной а.
Выполнить инструкции до следующей контрольной точки и просмотреть значения переменных s и str в случае наличия простых чисел во введённом массиве.
Выполнить инструкции до следующей контрольной точки с заходом в вызываемые функции при наличии простых чисел в вызываемом массиве . После передачи управления в вызываемые функции необходимо полностью выполнить их и вернуться в точку вызова.
Просмотреть значение переменной string и выполнить оставшиеся инструкции в сценарии.
Самостоятельная работа.
Самостоятельная работа состоит из двух заданий. Задания необходимо взять из предыдущего практикума согласно своему варианту. Решение каждого задания оформить в виде отдельного сценария.
Создать сценарий для построения кривой из первого задания.
figure,
set(gcf,'Name','Вариант №24: Трисектрисса Маклорена')
subplot (1,2,2)
a=1/3;
h = ((-2.4*pi/3)+pi/180:pi/180:(2.4*pi/3)-pi/180)
r =a./cos(h/3);
polar(h,r), axis equal, grid on,xlabel('x'),ylabel('y'),hold on
polar(0,0,'ro'),text(0.125,0.125,'\itO')
subplot (1,2,1);
[x,y]=pol2cart(h,r)
plot (x,y) ,axis equal, grid on, xlabel('x'),ylabel('y'), hold on
plot(0,0,'ro'), text(0.15,0.15,'\itO'), axis ([-3 3 -3 3]);
Перейти в режим отладки и последовательно выполнить каждую команду с просмотром значений переменных.
Вывести в командное окно пять вариантов кривой при различных значениях одного параметра (в случае наличия нескольких параметров выбрать один). Каждую кривую вывести своим цветом . Цвет кривой линии задать с помощью структуры выбора switch case end.
figure,
set(gcf,'Name','Вариант №24: Трисектрисса Маклорена')
subplot (1,2,2)
a=1/9;
b=1;
polar(0,0,'ro'),text(0.125,0.125,'\itO'), axis equal;
hold on
for n = 1:5
c=a*b, b=b*3/2
h = ((-2.4*pi/3)+pi/180:pi/180:(2.4*pi/3)-pi/180);
r =c./cos(h/3);
switch c
case 1/9
polar(h,r,'k'), axis equal, grid on,xlabel('x'),ylabel('y'),hold on
case 1/6
polar(h,r,'b'), axis equal, grid on,xlabel('x'),ylabel('y'),hold on
case 1/4
polar(h,r,'c'), axis equal, grid on,xlabel('x'),ylabel('y'),hold on
case 3/8
polar(h,r,'r'), axis equal, grid on,xlabel('x'),ylabel('y'),hold on
otherwise 9/16
polar(h,r,'g'), axis equal, grid on,xlabel('x'),ylabel('y'),hold on
end
end
subplot (1,2,1);
a=1/9;
b=1;
plot(0,0,'ro'), text(0.15,0.15,'\itO'), axis equal;
hold on
for n = 1:5
c=a*b, b=b*3/2
h = ((-2.4*pi/3)+pi/180:pi/180:(2.4*pi/3)-pi/180);
r =c./cos(h/3);
[x,y]=pol2cart(h,r);
switch c
case 1/9
plot(x,y,'k'), axis equal, grid on,xlabel('x'),ylabel('y')
case 1/6
plot(x,y,'b'), axis equal, grid on,xlabel('x'),ylabel('y'),hold on
case 1/4
plot(x,y,'c'), axis equal, grid on,xlabel('x'),ylabel('y'),hold on
case 3/8
plot(x,y,'r'), axis equal, grid on,xlabel('x'),ylabel('y'),hold on
otherwise 9/16
plot(x,y,'g'), axis equal, grid on,xlabel('x'),ylabel('y'),hold on
end
end
Используя структуры повторения for end и while end, создать анимацию. При выполнении анимации в графическом окне циклически появляются и исчезают первый вариант линии, второй . третий, четвёртый, пятый, четвёртый третий и второй. При использовании первой структуры повторения организовать десять повторов, а в случае второй структуры реализовать бесконечное число повторов.
Во время выполнения анимации в графическом окне необходимо отображать значение изменяемого параметра. Просмотреть анимацию с различной скоростью обновления изображения.