Решение 1-й задачи (сценарии и протоколы сессии)
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

//Первый сценарий–функция poisk_m_vect.sce для обработки вектора//Среди n последних элементов вектора mas функция poisk_m_vect // находит количество элементов, равных вводимому числу m

// Исходные данные: входные параметры числа m , n и вектор mas ;

//выходные параметры функции mas2 и kol

function [mas2,kol]=poisk_m_vect(mas,m,n)

k=length(mas);//Кол-во элементов в векторе mas

//Поиск числа m среди n последних элементов

// Вектор mas 2 содержит индексы найденных элементов

mas2=find(mas(k-n+1:$)==m);

// Кол-во найденных элементов = длине созданного массива

Kol=length(mas2);

endfunction

 

//Конец сценарияpoisk_m_vect.sce=========================================

 

 

//Второй сценарий Pr 1_3_1. sce для решения 1-й задачи

// Реализует загрузку сценария poisk_m_vect.sce,ввод исходных данных,

// обращение к функции poisk_m_vectи вывод результатов

 

clear; // Очистка окна Обозреватель данных

clc; // Очистка Командного окна

//Загрузка сценария обработки вектора

exec('poisk_m_vect.sce');

// Создание вектора и вводисходных данных для его обработки

n=input("Введите число n =");

m=input("Введите искомое число m =");

k=input("Введите кол-во элементов вектора ");

a=input("Введите начальное значение диапазона для вектора ");

b=input("Введите конечное значение диапазона для вектора ");

//Создание вектора в заданном диапазоне

mas=grand(1,k,"uin",a,b);

//Вывод исходного массива на экран

disp(mas,"Исходный массив:");

//Обращениек функции для обработки вектора

[mas2,kol]= poisk_m_vect(mas,m,n);

//Вывод массива mas 2 с индексами

disp(mas2,"Индексы найденных элементов в новом векторе");

// Вывод результата решения задачи

mprintf('Среди последних %1d элементов исходного массива \n',n);

mprintf('кол-во чисел =%1d равно %3d',m,kol);

//Конец сценария Pr 1_3_1. sce===============================================

 

 

-->// Сессия Командного окна:

-->//Практическое занятие 1.3 по теме

-->// «Матричные операции создания, доступа, извлечения
-->// и модификации»

-->// Вариант 0, задание 1

-->// Выполнил: Студент группы БИН1801 Иванов И.И.

-->//Вызов и выполнение сценария Pr 1_3_1. sce

-->

-->clear // Очистка окна Обозревателя данных

-->clc // Очистка Командного окна

--> exec('Pr1_3_1.sce', 0);

Введите число n =4

Введите искомое число m =3

Введите кол-во элементов вектора 10

Введите начальное значение диапазона для вектора 2

Введите конечное значение диапазона для вектора 4

 

 Исходный массив:

2. 3. 4. 3. 4. 3. 4. 4. 3. 4.

 Индексы найденных элементов в новом массиве

3.

Среди последних 4 элементов исходного массива

 кол-во чисел =3 равно 1

-->//Конец сессии 1-го задания ===========================================

 


 

 

Пример выполнения задания 2

1) Решить 2-ю задачу: Найти среднее арифметическое первого столбца матрицы и заменить этим значением элементы последней строки матрицы.

 

2) Решение 2-й задачи (сценарии и протокол сессии):

 

//Первый сценарий – функция obrab_matr.sce для решения задачи 2

 

//Функция находит среднее арифметическое первого столбца матрицы A

//и заменяет этим значением элементы последней строки матрицы

function [sred, A]=zamena(A)

sred=mean(A(:,1)); // Среднее арифметическое первого столбца матрицы

 [Nr,Nc]=size(A); //Определение числа строк и столбцов матрицы

A(Nr,:)=sred;//Замена элементов последней строки

endfunction

 

//Конец сценария obrab _ matr . sce ==========================================

 

 

//Второй сценарий Pr 1_3_2. sce для решения 2-й задачи

// Реализует загрузку сценария obrab _ matr.sce, ввод исходных данных,
// формирование матрицы A , вызов функции zamena и вывод результатов

 

clear;// Очистка окна Обозреватель данных

clc; // Очистка Командного окна

//Загрузка сценария обработки матрицы

exec('obrab _ matr.sce');

N=input("Введите размер матрицы NxN ");

//Генерация матрицы размером NxN и значениями от 0 до 100

A=grand(N,N,"uin",0,10);

disp(A,"Исходная матрица: ");

 [sred,A]= zamena(A); //Вызов функции решения задачи

//Вывод результатов на экран

mprintf('Среднее арифметическое первого столбца равно %f',sred);

disp(A,"Полученная матрица после замены : ");

// Конец сценария Pr 1_3_2. sce ==============================================

 

-->// Сессия командного окна:

-->// Практическое занятие 1.3 по теме

-->// «Матричные операции создания, доступа, извлечения
-->// и модификации. Векторизация и индексирование»

-->// Вариант 0, задание 2

-->// Выполнил:Студент группы БИН1801 Иванов И.И.

-->//Вызов и выполнение сценария Pr 1_3_2. sce

--> exec('Pr1_3_2.sce');  

Введите размер матрицы NxN 5

 Исходная матрица:

10. 0. 1. 5. 4.

7. 3. 3. 10. 6.

4. 10. 10. 1. 8.

10. 10. 1. 8. 7.

2. 5. 0. 10. 3.

 

Среднее арифметическое первого столбца равно 6.600000

 Полученная матрица после замены:

10. 0. 1. 5. 4.

7. 3. 3. 10. 6.

4. 10. 10. 1. 8.

10. 10. 1. 8. 7.

6.6 6.6 6.6 6.6 6.6

-->//Конец сессии 2-го задания ===========================================

 

 





Содержание отчета

 

1) Титульный лист

2) Название и цель практического занятия

3) Общее задание

4) Сценарии, вначале которых должна быть введена информация в виде комментариев:

· имя и назначение каждого сценария;

· номер задания и формулировка решаемой задачи и/или краткое перечисление действий, реализуемых в сценарии.

5) Протокол сессии Командного окна, вначале которого должна быть введена информация в виде комментариев:

· название практического занятия;

· вариант индивидуального задания и номер задания;

· ФИО студента, номер группы;

· краткое перечисление действий, выполняемых во время сессии.

 

 

1.3.6. Контрольные вопросы по теме

1) Способы создания векторов и матриц.

2) С использованием какой функции можно определить длину вектора?

3) С использованием каких функций Scilab можно определить в матрице число строк, число столбцов и общее количество элементов матрицы?

4) С какого числа начинается индексация вектора?

5) Какую матрицу создает операция ones?

6) Каким образом в Scilab могут быть объединены две матрицы?

7) Назначение и формат функции cat?

8) Каким образом создается вектор с постоянным шагом?

9) Можно ли создать матрицу, элементы строки которой изменяются с постоянным шагом?

10) Каким образом удалить из матрицы определенный столбец?

11) Что такое векторизация?

12) Стандартное индексирование векторов и матриц.

13) Что такое векторное индексирование матриц.

14) Что такое логическое индексирование матриц.

15) Что такое поэлементные действия (операции с точкой) и где они используются?

16) Каким образом можно транспонировать вектор или матрицу?

17) Требуется ли при работе с векторами и матрицами предварительное объявление их размера?

18) Какой символ используются для разделения элементов матрицы в строке, а какой для разделения ее строк?

19) Какие команды предназначены для заполнения матрицы случайными числами, распределенными по равномерному или нормальному закону распределения?

20) Формат команд выбора минимального и максимального значения элемента матрицы.

 


1.


Дата: 2019-11-01, просмотров: 1003.