Базовые вычисления в Scilab
Краткие теоретические сведения
Входной язык системы, т.е. набор правил и символов, на котором пользователь может запрограммировать свой алгоритм и получить результат, представлен данными, выражениями, операторами.
Данные – константы и переменные – записываются по общепринятым правилам. Они делятся на пользовательские и системные.
Основные системные переменные и константы, применяемые в Scilab:
%i или %j – мнимая единица (корень квадратный из –1);
%pi – число p=3,1415926…;
%inf – значение машинной бесконечности;
%e – число e=2.7182818;
ans – результат выполнения последней операции.
Действительные константы могут быть целыми, вещественными, с фиксированной и плавающей точкой. Возможно представление чисел в научном формате с указанием мантиссы и порядка числа. Дробная часть отделяется от целой точкой.
Например:
5 -45 - целые константы.
2.301 -897.999 - вещественные константы.
125.35е-25 17.06e-12 - вещественные константы с указанием мантиссы и порядка числа.
Символьная константа представляет собой набор символов, заключенных в двойные кавычки. Например: “Курить вредно!”, “Задайте элементы массива”.
Символ // используется для ввода комментариев к вычислениям.
Например:
L=2*pi*r // Вычисление длины окружности
//Программа табулирования функции
Имя переменной (идентификатор) должно соответствовать следующим требованиям:
- должно начинаться с буквы,
- может содержать буквы латинского алфавита, цифры и символ подчеркивания,
- Scilab различает большие и малые буквы.
Примеры допустимых имен переменных:
V1, sp, prim4, sum, rez1.
Выражения в Scilab делятся на арифметические и логические. Арифметическим выражением называется совокупность констант, переменных, стандартных функций, связанных знаками арифметических операций. Арифметические выражения могут содержать круглые скобки
Ниже приведен перечень основных арифметических операций.
Название | Знак операции | Пример |
Сложение | + | x+y |
Вычитание | - | x-y |
Умножение | * | x*y |
Возведение в степень | ^ | x^5 |
Обратное (справа налево) деление матриц | \ | x\y |
Деление матриц слева направо | / | x/y |
В Scilab приоритет возведения в степень выше приоритетов умножения и деления, приоритет умножения и деления выше приоритета сложения и вычитания. Для изменения приоритета операций в математических выражениях используются круглые скобки. Степень вложения скобок не ограничивается.
Ниже приводятся некоторые часто употребляемые математические функции.
Описание | Имя | Описание | Имя |
Абсолютная величина | abs(x) | Синус | sin(x) |
Экспонента | exp(x) | Тангенс | tan(x) |
Натуральный логарифм | log(x) | Котангенс | cot(x) |
Знак числа | sign(x) | Арккосинус | acos(x) |
Десятичный логарифм | log10(x) | Арксинус | asin(x) |
Корень квадратный | sqrt(x) | Арктангенс | atan(x) |
Косинус | cos(x) | Арккотангенс | acot(x) |
Приведем примеры записи арифметических выражений в системе Scilab.
Запись в математике: | Запись в Scilab: cos(x^2)/(x+sin(x)^3)+exp(-2.1) (1.2-2*x)/log10(x+3.2)-sqrt(abs(x-5.8)) |
Одним из основных операторов в Scilab является оператор присваивания. В программе этот оператор выполняет следующие функции - присваивает переменной, стоящей слева от знака «=» значение выражения, стоящего справа.
Общий вид оператора присваивания:
Имя_переменной = Выражение
В качестве параметра Имя_переменной может выступать имя простой переменной, структурированной переменной (вектора, матрицы), имя функции. В качестве параметра Выражениеприменяется арифметическое, логическое или строковое выражение.
Ниже приведен пример правильной записи оператора присваивания.
A = cos(x)+c-d^2*p^2+4.92
В SciLab в качестве оператора ввода используется функция input, которую, в силу ее значимости при программировании, принято называть оператором.
Она имеет следующий общий вид:
ИМЯ = input(Символьная константа)
Здесь ИМЯ –это имя простой переменной, Символьная константа –любой набор символов, заключенный в двойные кавычки. Символьная константа, как правило, разъясняет смысловое назначение вводимой переменной. Например:
S=input(“Задайте площадь”)
A=input(“Задайте значение А=”)
Оператор выполняется следующим образом: в командном окне выводится набор символов, стоящий в скобках после input (символьная константа), выполнение программы приостанавливается, и компьютер переходит в режим ожидания; пользователь вводит константу и введенная константа помещается в оперативной памяти в переменную, стоящую слева в операторе input.
При запуске на выполнение программы, содержащей оператор ввода, следует учитывать, что пока пользователь не ввел константу в ответ на запрос своей программы, оператор ввода продолжает свою работу. Система Scilab в это время блокирует выход и закрытие окна рабочего стола.
Если необходимо вывести данные на экран дисплея в определенной последовательности, применяется функция disp, которую принято называть оператором вывода. Оператор имеет следующий общий вид:
Disp( Выражение )
Здесь Выражение –это арифметическое, логическое или символьное выражение, частным случаем которого являются константы или переменные любого типа.
Каждый новый оператор disp выполняет вывод с новой строки командного окна, например (переменным a, b, k, d уже присвоены числовые значения):
Фрагмент программы c=a-b+k*d; disp ('результат='), disp(c); | Командное окно результат= |
Практическая часть
Задание 1. Вычисление арифметических выражений с присваиванием
Постановка задачи. Присвоить значения переменным и вычислить значение арифметического выражения с использованием оператора присваивания.
y = | x =51,6 a = 3,8 b = 0,14 c =4,13 |
Последовательность выполнения задания такова.
Шаг 1. Создать программу и записать ее в редакторе SciNotes.
Шаг 2. Записать программу в файл на диск с именем, содержащим тип .sce, например, zadanie1.sce.
Шаг 3.Запустить программу на выполнение.
Если компиляция программы прошла успешно, то результаты выполнения программы будут отражены в командном окне.
Если в результате компиляции были найдены ошибки в программе, то необходимо вызвать программу в окно программы и повторить последовательность, начиная с п.1.
Программа x=51.6 a=3.8 b=0.14 c=4.13 y=abs(cos(x)^2/(b*x-a*b*c)) disp("результат =") disp(y) | Командное окно результат = 0.0109008 |
Индивидуальные задания приведены в таблице 2.1.
Таблица 2.1