Комментарии в коде
// Это однострочный комментарий
x = 5; // Комментарий после оператора
y = 10; // Еще один пример комментария в конце строки
/* Это многострочный комментарий Он может занимать несколько строк И использоваться для подробных пояснений
scilab
function [output] = myFunction(input)
//help
// ОПИСАНИЕ: Функция выполняет какое-то действие
// ВХОДНЫЕ ПАРАМЕТРЫ:
// input - входной параметр функции
// ВЫХОДНЫЕ ПАРАМЕТРЫ:
// output - результат работы функции
// Тело функции
output = input * 2;
endfunction
// Пример расчета площади круга
// Константы
pi = 3.14159; // Число пи
/*
Функция для расчета площади круга
Принимает радиус в качестве параметра
Возвращает площадь
*/
function area = calculateArea(radius)
// Формула расчета площади
area = pi * radius^2;
endfunction
// Пример использования функции
r = 5; // Радиус круга
S = calculateArea(r); // Расчет площади
Вычисления в Scilab
// Простые вычисления
a = 5 + 3; // 8
b = 10 - 4; // 6
c = 2 * 7; // 14
d = 20 / 4; // 5
e = 2^3; // 8
// Тригонометрические функции
x = sin(%pi/2); // 1
y = cos(0); // 1
// Экспонента и логарифмы
z = exp(1); // e
w = log(10); // натуральный логарифм
// Корень
r = sqrt(16); // 4
// Создание векторов
v1 = [1 2 3 4];
v2 = [5 6 7 8];
// Поэлементные операции
sum_v = v1 + v2; // [6 8 10 12]
prod_v = v1 .* v2; // [5 12 21 32]
// Матрицы
A = [1 2; 3 4];
B = [5 6; 7 8];
// Матричное умножение
C = A * B;
Настройка количества цифр
Можно задать количество значащих цифр при выводе:
format('v', количество_цифр)
или
format('v', 20) // установка 20 значащих цифр
3/5.5 // результат будет показан с 20 знаками
Примеры использования
Работа с радианами
scilab
// Вычисление синуса и косинуса для π/2 (90 градусов)
x = %pi/2;
sin_rad = sin(x) // Результат: 1
cos_rad = cos(x) // Результат: 0
Работа с градусами
scilab
// Вычисление синуса и косинуса для 90 градусов
x = 90;
sin_deg = sind(x) // Результат: 1
cos_deg = cosd(x) // Результат: 0
Важные особенности
Константа %pi используется для представления числа π
При работе с радианами все углы должны быть заданы в радианах
При работе с градусами углы задаются в градусах
Функции работают как с отдельными числами, так и с массивами
Преобразование между градусами и радианами
Для преобразования можно использовать следующие формулы:
scilab
// Градусы в радианы
rad = deg * %pi/180;
// Радианы в градусы
deg = rad * 180/%pi;
Особенности округления
Работает с вещественными и комплексными числами
Для положительных чисел: round(x) = int(x+0.5)
Для отрицательных чисел: round(x) = int(x-0.5)
// Округление положительных чисел
round([1.3 1.5 1.7 2.5 3.7])
// Результат: [1 2 2 3 4]
// Округление отрицательных чисел
round([-1.3 -1.5 -1.7 -2.5 -3.7])
// Результат: [-1 -2 -2 -3 -4]
// Работа с комплексными числами
round([2.2+%i*23, %pi*%i, -%i])
floor(3.7) // Результат: 3
floor(-3.7) // Результат: -4
ceil(3.7) // Результат: 4
ceil(-3.7) // Результат: -3
int(3.7) // Результат: 3
int(-3.7) // Результат: -3
Оператор % (процент)
остаток = a % b;
Функция modulo()
остаток = modulo(a, b);
Функция pmodulo()
остаток = pmodulo(a, b);
// Пример 1: Положительные числа
a = 10;
b = 3;
disp(a % b); // 1
disp(modulo(a, b)); // 1
disp(pmodulo(a, b));// 1
// Пример 2: Отрицательные числа
a = -10;
b = 3;
disp(a % b); // -1
disp(modulo(a, b)); // -1
disp(pmodulo(a, b));// 2
// Пример 3: Работа с массивами
A = [10 15 20];
B = [3 4 5];
disp(A % B); // [1 3 0]
disp(modulo(A, B)); // [1 3 0]
disp(pmodulo(A, B));// [1 3 0]
[g, u] = gcd(A)
где:
A — вектор целых чисел
g — наибольший общий делитель
u — дополнительный вектор коэффициентов
[pp, fact] = lcm(p)
где:
p — вектор целых чисел
pp — наименьшее общее кратное
fact — дополнительный вектор коэффициентовэ
Пример 1: НОД для целых чисел
scilab
// Вычисление НОД для двух чисел
A = [12, 18];
[g, u] = gcd(A)
// Результат: g = 6
// Для нескольких чисел
B = [12, 18, 24];
[g, u] = gcd(B)
// Результат: g = 6
// Вычисление НОК для двух чисел
V = int32([12, 18]);
pp = lcm(V)
// Результат: pp = 36
// Для нескольких чисел
W = int32([12, 18, 24]);
[pp, fact] = lcm(W)
// Результат: pp = 72
Вектор-строка
// Простой способ создания
v1 = 1 2 3 4 5;
// Через двоеточие
v2 = 1:5;
// Через функцию colon
v3 = colon(1, 1, 5);
// Через linspace
v4 = linspace(1, 5, 5);
// Через logspace
v5 = logspace(0, 1, 5);
Вектор-столбец
// Транспонирование вектор-строки
c1 = [1 2 3 4 5]';
// Через точку с запятой
c2 = 1; 2; 3; 4; 5;
// Через квадратные скобки
c3 = [1; 2; 3; 4; 5];
// Преобразование вектор-строки
c4 = v1';
A = [1 2 3; 4 5 6; 7 8 9];
// Прямоугольная матрица
A = [1 2 3; 4 5 6];
// Квадратная матрица
B = [1 2 3; 4 5 6; 7 8 9];
// Матрица из нулей
C = zeros(3, 4);
// Матрица из единиц
D = ones(2, 2);
// Единичная матрица
E = eye(3, 3);
// Случайная матрица
F = rand(2, 3);
// Нормальная случайная матрица
G = randn(3, 3);
A = [1 2; 3 4];
B = [5 6; 7 8];
// Сложение
C = A + B;
// Умножение
D = A * B;
// Транспонирование
E = A';
A = [1 2 3; 4 5 6; 7 8 9];
// Получение элемента
element = A(2,3); // 6
// Получение строки
row = A(1,:); // [1 2 3]
// Получение столбца
column = A(:,2); // [2; 5; 8]
базовый синтаксис
disp(выражение)
вывод чисел и строк
// Вывод числа
disp(42);
// Вывод строки
disp("Привет, мир!");
// Вывод нескольких значений
disp("Число: ", 42);
вывод переменных
x = 3.14;
y = "значение";
disp(x);
disp(y);
вывод матриц и векторов
A = [1 2 3; 4 5 6];
v = [7 8 9];
disp(A);
disp(v);
Комбинированный вывод
a = 10;
b = 20;
disp("Сумма: " + string(a + b));
вывод с пояснениями
x = 3.14;
disp("Значение переменной x:");
disp(x);
пример вывод результатов вычислений
a = 5;
b = 3;
c = a + b;
disp("Результат сложения:");
disp(c);
вывод нескольких значений
x = 1.23;
y = 4.56;
z = x + y;
disp("Значения переменных:");
disp("x = " + string(x));
disp("y = " + string(y));
disp("Сумма = " + string(z));