8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 144 145 146 147 148 149 150 ... 365

if NStudents >= 1

% Если число студентов больше или равно единице, то % считываем из поля Family третьей ячейки первого столбца % фамилию студента и заносим в массив строк strmas strmas - CELLMAS{3, 1}.Family;

end

% Продолжаем считывание по всем оставшимся столбцам, % начиная со второго for k = 2:NStudents

% Считываем фамилию из поля Family третьей ячейки k-го столбца

fam = CELLMASC3, к) .Family;

% Добавляем фамилию в массив строк

strmas = char(strmas, fam);

end

Результатом работы файл-функции students является массив строк с фамилиями студентов, участвовавших в проведении эксперимента:

» st = students(EXPER)

st =

Иванов

Сергеев

Пашин

Дополните файл-программу students, приведенную в листинге 8.18, проверкой, является ли входной аргумент массивом ячеек. Примените функцию isceii, которая возвращает "истину" (логическую единицу), если ее входной аргумент— массив ячеек, и "ложь" (логический ноль) в противном случае. Имеет смысл также проверять, содержит ли текущая ячейка структуру или нет. Для этого следует воспользоваться функцией isstruct. Кроме того, перед обращением к полю структуры полезно убедиться в его наличии, для чего служит функция isf ield.

Приложения с интерфейсом из командной строки

Хорошо написанная программа позволяет пользователю не только производить вычисления, но и управлять процессом в ходе работы программы. Одним из способов взаимодействия пользователя с приложением является организация интерфейса при помощи командной строки. Перед выполнени-


ем некоторых действий программа приостанавливает работу и выдает запрос в командное окно. Ответ пользователя определяет дальнейший ход выполнения программы. Данный раздел посвящен написанию приложений с таким достаточно примитивным интерфейсом, позволяющим пользователю управлять работой программы.

Простой пример, программа-калькулятор

Хорошим демонстрационным примером приложения с интерфейсом из командной строки является программа-калькулятор, вычисляющая результат арифметических операций. Пользователь вводит число, затем выбирает арифметическое действие, вводит второе число и получает результат. Для написания такой программы требуется умение организовать вывод текста на экран и получать ответ от пользователя. Как мы уже упоминали, вывод текста в командное окно осуществляется функцией disp.

Применение disp обеспечивает только одностороннюю связь программы с пользователем. Для интерактивного взаимодействия следует привлечь еще функцию input. Выходной аргумент input является значением, введенным пользователем с клавиатуры в командную строку в ответ на запрос. Запросом является строка, указанная в качестве входного аргумента, например:

n = input(Введите значение п = );

При выполнении данной команды в командное окно выводится сообщение "Введите значение п = " и выполнение программы приостанавливается до тех пор, пока пользователь не введет число с клавиатуры и не нажмет <Enter>. После выполнения input переменной п присвоится введенное значение. Ошибочный ввод не числа, а, например, символа приведет к сообщению об ошибке и повторному появлению запроса на ввод. Функция input допускает ввод строк в строковую переменную, указанную в качестве выходного аргумента, причем вторым дополнительным входным аргументом следует указать s1, например:

name - input[Введите имя , s );

На запрос input следует ввести строку, не заключая ее в апострофы, строка записывается в переменную name.

Напишите файл-функцию, реализующую следующий алгоритм.

1.Считывание первого числа в числовую переменную (примените input).

2.Получение знака арифметической операции (+, * или /) и занесение его в строковую переменную (примените input со вторым аргументом s).

3.Считывание второго числа в числовую переменную.


4.Выполнение арифметического действия в зависимости от введенного знака операции (используйте оператор переключения switch).

5.Вывод результата в командное окно.

Программу оформите в виде файл-функции без входных и выходных аргументов. Текст требуемой файл-функции приведен в листинге 8.19.

1 Листинг 8.19. Файл-функция calc

function calc % Калькулятор с интерфейсом командной строки

S Считывание в числовую переменную числа, введенного пользователем а = input(Введите первое число );

% Считывание в строковую переменную операции, введенной пользователем

oper = input(Введите арифметическую операцию (+, -, *, /) , s);

i Считывание в числовую переменную числа, введенного пользователем

b = input(Введите второе число •);

% Вычисление результата арифметической операции

switch oper

case "+1

а + b case -

a - b case 1 *

a * Ь case /1

a / b otherwise

error{1 неизвестная арифметическая операция")

end

Работа с файл-функцией calc не требует никаких дополнительных пояснений для пользователя, ему достаточно следовать инструкциям, выводимым в командное окно, и результат будет получен. Файл-функция calc достаточно хорошо защищена от неправильного использования. Команда input без дополнительного аргумента • s • проверяет, что введено число, и повторяет запрос в случае неправильного ввода. Ошибка при выборе арифметической операции обрабатывается ветвью otherwise оператора switch, которая выводит сообщение о неправильно введенной операции. Результат



0 ... 144 145 146 147 148 149 150 ... 365