К линейным программным структурам можно отнести операторы присваивания, вычисления выражений и операторы ввода/вывода.
Оператор присваивания подробно был рассмотрен в п. 2.1.2. Кратко напомним, что оператор присваивания является фундаментальным оператором системы программирования Scilab:
ИмяПеременной = Выражение .
Оператор предназначен для инициализации переменных (присвоения им конкретных значений соответствующего типа) и обозначается символом =, слева от которого находится имя переменной, а справа любое допустимое выражение (правила записи арифметических, логических и строковых выражений были рассмотрены в п. 1.2).
Все переменные, используемые в правой части оператора присваивания, должны быть предварительно проинициализированы. Если командная строка заканчивается символом точка с запятой (;), то результат выполнения оператора не выводится, иначе он выводится в следующей строке командного окна. Это замечание распространяется и на выполнение операторов присваивания, расположенных в sce-файлах.
Приведем несколько примеров использования операторов присваивания (рис.1.5.4-1).
-->// Примеры использования операторов присваивания --> --> a = 2; // Присваивание переменной a числового значения (скаляр) --> x = a^2 - 20; // Присваивание переменной x значения выражения a2-20 --> x x = -16. --> --> A = [2 -4 7]; // Присваивание переменной A значений вектора [2 -4 7] --> A A = 2. -4. 7. --> --> s1 ="Система"; // Присваивание переменным s 1 и s 2 -->s2 = "Scilab"; // значений строковых констант --> -->s = s1 + " " + s2 // Присваивание переменной s значения выражения s = Система Scilab |
Рис. 1.5.4-1 Примеры использования операторов присваивания
Простейшие операторы ввода/вывода данных
Часто приходится создавать программы, которые способны не просто выполнять какие-либо команды и выдавать результаты, но и обмениваться информацией с пользователем в процессе работы через интерфейс. На определенном этапе такая программа может прервать свою работу и выдать запрос пользователю, а ее дальнейшее поведение, например, продолжить или прекратить вычисления, будет зависеть от введенного пользователем ответа на этот запрос. Интерактивное взаимодействие пользователя легко реализуется путем создания интерфейса с помощью командной строки или специальных функций.
Для организации простейшего ввода в Scilab можно воспользоваться, в первую очередь, функцией:
x = input('Подсказка');
Функция input выводит в командной строке Scilab Подсказку, и ожидает от пользователя ввода значения, которое затем присваивается переменной х. На рис.1.5.4-2 представлен способ ввода исходных данных с использованием функции input.
--> // Пример и спользование функции ввода input --> -->y = input('Введите y = ') Введите y = 5 y = 5. |
Рис. 1.5.4-2 Использованием функции inputдля ввода данных с клавиатуры
Кроме функции inputдля ввода данных можно воспользоваться специальными диалоговыми окнами для интерактивного ввода. Эту возможность можно реализовать с помощью функций x_dialog, x_mdialog, x_choose, x_matrix, x_message и x_message_modeless.
Рассмотрим подробно работу функции x_dialog, которая имеет следующий формат:
Переменная= x _ dialog ('Подсказка','Значение');
Функция x_dialog выводит на экран диалоговое окно с именем
Ввод значения, в котором над полем ввода отображается Подсказка . Если при использовании функции x_dialog строка 'Значение' задана пустой строкой, то поле ввода диалогового окна пусто, и пользователь может ввести в него нужное значение. Если же строка 'Значение' непустая, то эта строка отображается в поле ввода диалогового окна. После щелчка по кнопке ОК значение, отображенное в поле ввода, присваивается переменной.
На рис.1.5.4-3 представлен способы ввода исходных данных с использованием диалоговое окно, при использовании функции x_dialog.
--> // Пример использования функций x _ dialog -->y = x_dialog('Введите y = ', '5 ') |
Рис. 1.5.4-3 Использованием функций x _ dialog
для ввода данных с клавиатуры
При этом, если функция input возвращает значение числового типа, тоx _ dialog–строкового. Поэтому при использовании для ввода числовых значений функцииx _ dialog, возвращаемую строку следует преобразовать в число с помощью функции evstr. Можно также предложить следующую форму использования функции x _ dialogдля ввода числовых значений:
Переменная = evstr ( x _ dialog ('Подсказка', 'Значение'));
В качестве Значения может быть использован вектор или матрица. Функция evstr распознает символы, используемые при вводе массивов (пробел, запятая или точка с запятой). Если ввод строки закончить нажатием клавиши <Enter>, то поле ввода очищается, и команда x _ dialog снова ожидает ввода Значений, и так диалог с пользователем происходит до тех пор, пока не будет нажата кнопка ОК (рис.1.5.4-4).
-->// Использование функции x _ dialog
--> // для ввода значений вектора
-->
--> V = evstr(x_dialog('ВекторV=', ' '))
V =
|
Рис. 1.5.4-4 Использование команды x _ dialogдля ввода вектора и матрицы
Для вывода значения переменной или текста можно использовать функцию disp, имеющую следующий формат:
disp(b),
где b – имя переменной или заключенный в кавычки или апострофы текст.
Сделаем несколько замечаний по использованию функции disp. Функция disp осуществляет вывод значений заданных переменных или заданного текста в Командное окно. Чтобы вывести значения нескольких переменных в одну строку, например, при создании таблиц данных, нужно создать единый объект, который содержал бы все эти значения. Это можно сделать, объединив соответствующие переменные в вектор, пользуясь операциями для создания вектора-строки, например, x=[x1 x2 ...xn]. Тогда вывод значений нескольких переменных будет осуществляться в одну строку (Пример1, рис. 1.5.4-5).
Другой способ форматированного вывода данных – это использование функции m printf (п. 1.2). Пример2, рис. 1.5.4-5 показывает применение функции m printf.
--> // Вывод значений нескольких переменных в одну строку --> --> // Пример1 -->x1 = -3.14; x2 = -2.5; x3 = 5.6; x4 = -9.33; -->disp([x1 x2 x3 x4]) -3.14 -2.5 5.6 -9.33 --> --> // Пример2 -->disp(mprintf('Параметр1 = %g Параметр2 = %g',x1,x2)) Параметр1 = -3.14 Параметр2 = -2.5 |
Рис. 1.5.4-5 Вывод значений нескольких переменных в одну строку
Если необходимо использовать элементы форматирования, то первый шаг, который нужно сделать – решить, что именно надо отображать. Если это целое число, число с плавающей точкой или строка, то необходимо выбрать соответствующий спецификатор для базового типа формата.
Затем определяется, какой ширины должно быть печатаемое поле в символах. Обычно это определяет самое большое по величине печатаемое число, которое ожидаетcя в результате выполнения программы. Иногда этот размер определяется шириной предоставленного поля в форме или таблице. Элемент ширины необходимо задать так, чтобы он хорошо подходил как к самым большим, так и к самым малым числам. Можно разработать формат для корректного вывода самого большого числа, но если нужно обеспечить заданную точность, то лучше использовать набор условных операторов с разными вариантами формата вывода.
Чаще всего применяются элементы форматирования, приведенные на рис. 1.5.4-6.
--> // Примеры часто используемых элементов форматирования
-->
--> // %d – управляющие символы для вывода целого десятичного числа
-->f1 = msprintf('масса: %dграмм ', 2358)
масса: 2358 грамм
-->
--> // % f – управляющие символы для вывода дробного десятичного числа
-->f1 = msprintf('Время: %f секунд', 1.432)
Время: 1.432 секунд
Рис. 1.5.4-6 Примеры часто используемых элементов форматирования
Вывод некоторых символов, таких как, например, –', нужно сопровождать слешем \ ', а, кроме того, можно добавлять различные управляющие последовательности, например, \n – перевод строки (Приложение 1.2,
табл.1.2.4-5).
Дата: 2019-11-01, просмотров: 326.