Inclui centenas de funes matemticas Linguagem de computao de alto nvel permitindo acesso a estruturas de dados avanadas e funes grficas 2-D e 3-D
Console
Linguagem interpretada
Linguagem Compilada
C Fotran Pascal Basic etc.
Linguagem Interpretada
Scilab Octave Matlab Maple LabVIEW etc.
Facilidade de implementao Vrias funes pr-definidas
Mais rpidos
Declaraes de variveis
No h a necessidade de declarar variveis Quando Scilab encontra um novo nome de uma varivel, ele automaticamente cria a varivel e aloca o tamanho apropriado para o seu armazenamento na memria. Se a varivel j existir, o Scilab muda o seu contedo e se necessrio, aloca novo espao para o seu armazenamento na memria. Scilab diferencia caixa alta e baixa (case sensitive): A a. O nome da varivel em Scilab dado por uma letra seguida de um nmero de letras, dgitos ou sublinhado (a123_joao = 1) Para se ter acesso ao valor contido em uma varivel basta fornecer o seu nome.
+ * / ^ ou **
Operaes Relacionais
SINAL == ou = < > <= >= <> ou ~= OPERADOR igual a menor do que maior do que menor ou igual a maior ou igual a diferente EXEMPLO 1 == 2 1<2 1>2
1~= 2
Operaes Lgicas
SINAL OPERADOR EXEMPLO
& | ~
e ou no
2>1 | 1>2
T | F =T
~(2>1 | 1>2)
~( T | F ) ~( T ) = F
Alguns comandos
Abrindo e fechando dirio: diary("diario_de_hoje.txt") diary(0) // fecha o dirio Variveis alocadas na memria who whos who_user Limpando variveis clear Limpando tela clc Comentrio // este um comentrio Ajuda help Salvando e carregando variveis save(nome_do_arquivo.dat,variveis) load(nome_do_arquivo.dat,'variveis) a+a; // ;no imprime o resultado na tela
Escrevendo em mais de uma linha -->a = 12*34 + ... -->3 Escrevendo mais de um comando em uma linha --> a = 12; b=34 ; c = 3; d = a*b+c
Voltando ao Console
Pasta atual
Algumas constantes
%pi 3,1415927 %i raiz de -1 %e 2,7182818, base dos logaritmos naturais %eps preciso da mquina (menor nmero tal que 1+%eps > 1) %nan no um nmero (not a number) %inf infinito (1/%inf) %t e %f constantes lgicas %s polinmio [s = poly(0,s)]
Algumas Funes
abs - valor absoluto imag - parte imaginria log - logaritmo natural log10 - logaritmo em base 10 modulo - calcula o resto de uma diviso rand - gerador de nmeros aleatrios real - parte real sqrt - raiz quadrada exp funo exponencial Funes trigonomtricas: sin(); asin(); cos(); acos(); tan(); atan(); cotg()
Vetores e Matrizes
O Scilab desenvolvido para o trabalho com Vetores e Matrizes. a = [1 2 3]; b = [1; 2 ; 3]; c = [1 2 3]; // apstrofo gera a transposta! c == a b == a A = [1 2 3; 4 5 6; 7 8 9] // matriz 3 x 3
Soma estrutural Subtrao estrutural Multiplicao estrutural Multiplicao matricial Diviso direita estrutural Diviso esquerda estrutural Diviso matricial direita Diviso matricial esquerda Expoente estrutural
Multiplicao elemento a elemento de A e B. As duas matrizes precisam ter a mesma forma, ou uma delas ser um escalar.
Multiplicao das matrizes A e B. O nmero de colunas em A precisa ser igual ao nmero de linhas em B.
Diviso elemento a elemento de A e B: a(i,j)/b(i,j). As duas matrizes precisam ter a mesma forma, ou uma delas ser um escalar.
Diviso elemento a elemento deA e B: b(i,j)/a(i,j) . As duas matrizes precisam ter a mesma forma, ou uma delas ser um escalar. Diviso matricial definida por A * inv(B), onde inv(B) a inversa da matriz B. Diviso matricial definida por inv(A)*B, onde inv(A) a inversa da matriz A. Expoente elemento a elemento de A e B: a(i,j)^b(i,j). As duas matrizes precisam ter a mesma forma, ou uma delas ser um escalar
Grficos 2-D
x = linspace(0,4*%pi,100); // cria vetor linearmente espaado y = sin(x); plot(x,y) scf(1); // alterna ou cria figura atual plot(x,sin(x)); scf(2); plot(x,[sin(x) ; sin(2*x)]); a=gca(); // manipulao de eixos atuais a.y_location ="right"; a.x_location = "middle"; xdel(1) ; // fecha a janela 1 xdel(2) ; // fecha a janela 2 -->help plot GlobalProperty (opes de plot)
Listas : list
A lista uma coleo de objetos no necessariamente do mesmo tipo: Ex. M = list(1, cavalo, [1 2; 3 4], [%t %t]) N = list(); //cria lista vazia z = M(3); // extrai o primeiro elemento da lista L = M(3)(1,2) ;// extrai elemento do elemento da lista [x,w] = M([1 3]) // extrao de elementos da lista [x,y,z,w] = M(:) // extrai todos os elementos da lista M(2) = camelo; // altera ou insere elemento na lista M(2) = null() ; // apaga elemento da lista
Listas : tlist
tlist tem o primeiro elemento caracterstico que deve ser um vetor coluna de strings. Ex. M = tlist([minha lista; nome; altura; peso ], marcelo, 1.76 , pesado) M(1); M.nome M.altura M.peso
Algoritmos
O computador capaz de coletar informaes, processlas e fornecer um resultado com extrema rapidez e eficincia, mas no passam de mquinas de processamento. Para que o computador realize tarefas de nosso interesse e fornea resultados necessrio criarmos programas (softwares) que direcionam a maneira como ser feito o processamento na mquina. A descrio, de forma lgica, dos passos a serem executados no cumprimento de determinada tarefa chamada de algoritmo. O algoritmo uma receita que indica as tarefa a serem processadas pelo computador.
No necessrio no Scilab. Variveis so criadas ao tempo de interpretao Devem ser carregadas para que estejam disponveis ao serem chamadas. Procedimentos de clculo. Chamada a funes (prprias do Scilab ou definidas pelo usurio). Estruturas de repetio e condicionais.
MF = (P1+P2+P3)*0,2 + T*0,4
MF<6?
Aprovado
Reprovado
Fim
MF = (P1+P2+P3)*0,2 + T*0,4
MF<6?
Aprovado
Reprovado
Fim
Estruturas Condicionais: if
if (Condio) then Executa se Condio = T [else] [opcional] [Executa se Condio = F] end
if (Condio) then if (Condio) then XXX else XXXX end else if (Condio) then XXXX else XXXX end end
Aninhamento
Estruturas Condicionais: if
if (Condio1) then Executa se Condio1 = T elseif (Condio2) then Executa se Condio2 = T e (Condio 1 = F) elseif (Condio3) then Executa se Condio3 = T e (Condies 1 e 2 = F) else Executa se Condies 1, 2 e 3 = F end
Pode haver variaes possveis na construo de estruturas. Busque no help diferentes formas de utilizar a mesma estrutura.
Funes
Procedimento que ser utilizado com frequncia
Argumentos de sada
Nome da funo
Argumentos de entrada
[x,y]=myfct(3,2)
myscript.sce
clc clear // arquivo deve estar na pasta atual !!!! exec(myfct.sci) [x,y]=myfct(3,2)