Линейные программные структуры
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

К линейным программным структурам можно отнести операторы присваивания, вычисления выражений и операторы ввода/вывода.

Оператор присваивания подробно был рассмотрен в п. 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. 2. 3. 4. 5. 6.
--> -->M = evstr(x_dialog('Матрица М=', ' ')) М = 1. 2. 3. 4. 5. 6.
 

 

Рис. 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, просмотров: 296.