Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Цос лаб 2

.docx
Скачиваний:
781
Добавлен:
27.03.2016
Размер:
1.19 Mб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 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. Создать файл-программу формирования гистограммы распределения случайных чисел. Закон распределения плотностей вероятности случайных чисел выбирается нажатием соответствующей кнопки:

    1. ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

  1. В структуру, содержащую матрицы размерностью 3 3, в цикле – ввести с клавиатуры три матрицы:

Необходимо: вывести введенное содержимое матриц на экран, найти сумму элементов матрицы (если сумма меньше нуля, присвоить ей значение ноль), результат вывести на экран.

  1. Сгенерировать матрицу случайных чисел размерностью 5 5. Найти сумму всех ее элементов. В зависимости от значения найденной суммы вывести на экран сообщение: 'Результат положителен' или 'Результат отрицателен'.

  1. Организовать цикл для повторного выполнения следующих действий: ввести с клавиатуры целое число в диапазоне от единицы до трех; в зависимости от введенного числа генерировать матрицу размерностью 3 3: для единицы – единичную матрицу, для двойки – нулевую, для тройки – случайных чисел, распределенных по нормальному закону. При вводе других чисел выдать сообщение об ошибке. Полученную матрицу записать на диск. Окончание цикла по введению числа с клавиатуры предусмотреть введением символьной константы ' no', при входе в цикл символьную константу задать равной 'yes'.