
Цос лаб 2
.docxЛАБОРАТОРНАЯ РАБОТА № 2.
ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ
Цель работы – изучение средств системы по формированию массивов структур, интерактивному вводу информации, записи информации на диск, созданию М-файлов и приобретение практических навыков их использования.
1. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Массивы структур
Обычные массивы удобны при работе с однородными данными – числами или строками. Если данные неоднородные, то для их хранения удобно использовать массив структур, каждый элемент которого является структурой с одинаковым набором полей, содержащих соответствующее значение. Такая информация может быть представлена в виде таблицы с полями, содержащими однотипные элементы.
Например, информация о студентах может быть заключена в структуре со следующими полями:
Фамилия (family), содержит строку с фамилией; Год рождения (year), содержит число;
Оценки (marks), содержит массив из пяти элементов с оценками.
При использовании массивов структур необходимо помнить следущее: Доступ к структурам, входящим в массив, осуществляется при помощи
индексации;
Поле отделяется от имени структуры при помощи точки.
Допускается два способа заполнения массива структур – операторами присваивания для всех полей каждой структуры массива или функцией strict.
Задание 1. Создать третью запись в массиве структур Student:
Интерактивный ввод информации
Для ввода числовой и символьной информации используется функция input.
Синтаксис
x = input('<приглашение> ')
Задание 2. Ввести матрицу с клавиатуры, для ввода матрицы A задать следующую команду:
Задание 3. Составить вектор из шести элементов геометрической
прогрессии. Элементы геометрической прогрессии рассчитываются по формуле
Pn = P1*qn–1. Пусть P1 = 3, q = 2, n = 6.
Задание 4. Сформировать структуру, содержащую матрицу размерностью 3 3 и ввести две матрицы с клавиатуры; после ввода содержимое массивов структуры вывести на экран.
Оператор if
Оператор if может применяться в простом виде для выполнения блока команд при выполнении некоторого условия или в конструкции if–elseif–else для написания разветвляющего алгоритма:
Синтаксис if <условие>
<операторы MatLab> end
Для ветвления: if <условие>
<операторы MatLab> elseif <условие> <операторы MatLab> elseif <условие> <операторы MatLab> else
<операторы MatLab> end
В зависимости от выполнения того или иного условия работает соответствующая ветвь программы; если все условия неверны, то выполняются команды, размещенные после else.
Задание сложных условий производится с применением логических операторов. Логические операторы и примеры их использования приведены в табл. 2.1.
Задание 5. Организовать цикл для введения вектор-строки из трех целых чисел. При этом, если введенное значение текущего элемента вектора отрицательно, оно возводится в квадрат, если положительно – в куб.
Задание 6. Ввести с клавиатуры вектор из трех нечетных целых чисел, входящих в диапазон от 5 до 9. В зависимости от значения вводимого элемента должна сгенерироваться матрица размерностью 3 3 со значениями элементов, равными значению вводимого элемента. Если в векторе значение элемента не принадлежит к заданному диапазону, выдается сообщение об ошибке.
Задание 7. Записать матрицу случайных чисел в файл с названием rand.txt на диск (столбцы в матрице будут отделяться друг от друга вертикальными линиями).
Задание 8. Ввести с клавиатуры в массив структур mas две матрицы 3 3 и записать введенные матрицы в файлы c названиями f1.txt и f2.txt на диск C.\
Задание 9. Создать файл-программу формирования гистограммы распределения случайных чисел. Закон распределения плотностей вероятности случайных чисел выбирается нажатием соответствующей кнопки:
-
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ
-
В структуру, содержащую матрицы размерностью 3 3, в цикле – ввести с клавиатуры три матрицы:
Необходимо: вывести введенное содержимое матриц на экран, найти сумму элементов матрицы (если сумма меньше нуля, присвоить ей значение ноль), результат вывести на экран.
-
Сгенерировать матрицу случайных чисел размерностью 5 5. Найти сумму всех ее элементов. В зависимости от значения найденной суммы вывести на экран сообщение: 'Результат положителен' или 'Результат отрицателен'.
-
Организовать цикл для повторного выполнения следующих действий: ввести с клавиатуры целое число в диапазоне от единицы до трех; в зависимости от введенного числа генерировать матрицу размерностью 3 3: для единицы – единичную матрицу, для двойки – нулевую, для тройки – случайных чисел, распределенных по нормальному закону. При вводе других чисел выдать сообщение об ошибке. Полученную матрицу записать на диск. Окончание цикла по введению числа с клавиатуры предусмотреть введением символьной константы ' no', при входе в цикл символьную константу задать равной 'yes'.