Лекция 4
1. Элементы программирования в среде MATLAB
1.9. Некоторые примеры выполнения типовых заданий на одномерные массивы.
1. Даны массивы A(m) и B(m). Сформировать массив C по правилу:
C1 = Bm + A1
C2 = Bm-1 + A2
..............
Cm = B1 + Am
Найти сумму S элементов массива C . Вывести на печать массивы A, B, C и полученную сумму S.
Пример М-файла
a=input('ввести элементы массива а: ')
b=input('ввести элементы массива b: ')
c=a+fliplr(b)
fprintf('\n summa_c=%8.2f \n',sum(c))
Пример счета
ввести элементы массива а: [1 2 3 4 5]
a =
1 2 3 4 5
ввести элементы массива b: [6 7 8 9 10]
b =
6 7 8 9 10
c =
11 11 11 11 11
summa_c= 55.00
Примечания
1.) При вводе элементы массивов (здесь a и b) помещаются в квадратные скобки, например
ввести элементы массива а: [1 2 3 4 5]
ввести элементы массива b: [6 7 8 9 10]
2.) Обращение к стандартной функции fliplr(b) производит перестановку элементов массива b в обратном порядке: 10 9 8 7 6
3.) Обращение к стандартной функции sum(c) производит суммирование элементов массива c
2. Дан массив C(m). Вывести на печать номера тех элементов массива, которые меньше последнего, и их число, а также вывести на печать элементы массива C.
Пример М-файла
c=input('ввести элементы массива c: ')
t=c(1:end-1)<c(end);
k=sum(t);
[t1,ind]=sort(1-t);
fprintf('\n номера элементов массива С: C(i)<C(end)\n'), fprintf(' %d',ind(1:k))
fprintf('\n число элементов массива С: C(i)<C(end) =%d \n',k)
Пример счета
ввести элементы массива c: [-4 4 -3 3 0 -2 2 -1 1]
c =
-4 4 -3 3 0 -2 2 -1 1
номера элементов массива С: C(i)<C(end)
1 3 5 6 8
число элементов массива С: C(i)<C(end) =5
Примечания
1) В выражении c(end) индекс end определяет последний элемент массива c .
2) Оператор t=c(1:end-1)<c(end) формирует массив t по правилу: t(i)=1, если условие c(i)<c(end) выполняется, и t(i)=0, если условие c(i)<c(end) не выполняется.
3.) Оператор [t1,ind]=sort(1-t) формирует массив t1 из элементов массива 1-t путем их сортировки по возрастанию (т.е. первые элементы, соответствующие условию c(i)<c(end), – 0, остальные – 1), а в массиве ind помещаются их номера, соответствующие их расположению в массиве 1-t , например:
t=1 0 0 1
1-t=0 1 1 0
t1=0 0 1 1
ind =1 4 2 3
3. Дан массив A(m). Переписать элементы массива в обратном порядке и найти их сумму. Вывести на печать старый массив, новый массив и полученную сумму.
Пример М-файла
a=input('ввести элементы массива а: ')
a1=fliplr(a)
fprintf('\n summa a=%8.2f \n',sum(a))
Пример счета
ввести элементы массива а: [1 2 3 4 5]
a =
1 2 3 4 5
a1 =
5 4 3 2 1
summa a= 15.00
4. Дан массив A(m). Найти сумму и количество положительных элементов ( >0), а также произведение и количество отрицательных элементов (<0 ). Вывести на печать полученные величины и массив A.
Пример М-файла
a=input('ввести элементы массива а: ')
tp=a>0;
tz=a==0;
tm=a<0;
fprintf('\n кол-во a(i)>0: %d',sum(tp))
fprintf('\n сумма a(i)>0: %8.2f',sum(tp.*a))
fprintf('\n кол-во a(i)=0: %d',sum(tz))
fprintf('\n кол-во a(i)<0: %d\n',sum(tm))
if sum(tm)>0
fprintf('\n произведение a(i)<0: %8.2f \n',prod(tm.*a+tp+tz))
end
Пример счета
ввести элементы массива а: [-5 4 -3 2 -1 0 1 -2 0]
a =
-5 4 -3 2 -1 0 1 -2 0
кол-во a(i)>0: 3
сумма a(i)>0: 7.00
кол-во a(i)=0: 2
кол-во a(i)<0: 4
произведение a(i)<0: 30.00
