Buscar

Introdução ao SCILAB: características e instalação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 115 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 115 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 115 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

SCILAB 
Introdução: 
 
 O SCILAB (iniciais em inglês para: Scientific Laboratory, sua pronúncia 
é “sailæb”) é um software para ser empregado em ambientes de cálculos 
numéricos. 
 
 É uma poderosa ferramenta para cálculos científicos, sendo usado em 
diversas áreas, tais como:engenharias, petroquímica, meteorologia, 
industria automobilística e outras. 
 
 Pode ser manipulado interativamente (“diretamente em seu console”) ou 
através de programação (execução de arquivos de scripts). 
 
 O SCILAB faz parte de um grupo de softwares que simula um ambiente 
de computação numérica, como o Matlab (Matrix Laboratory), Octave, 
Maple, Simulink, MuPad, etc. Esses softwares são proprietários, 
enquanto o Scilab é “open Source” (uso livre), assim o Scilab é uma 
plataforma em constante atualização e aperfeiçoamento. 
 
 
Histórico: 
 
 
 O desenvolvimento do SCILAB começou em 1989 na França, no Institut 
de Recherche em Informatique et en Automatique, INRIA, através do 
Projeto METALAU (Methods, algorithmes et logiciels pour l'automatique) 
e a Ecole Nationale des Ponts et Chaussees, ENPC. 
 
 
 A partir de 2003, é mantido e desenvolvido atualmente pelo Scilab 
Consortium, um consórcio com aproximadamente 20 membros, 
recebendo contribuições de programadores de todo o mundo através de 
seu site na internet. 
 
Características: 
 
 Possui centenas de funções matemáticas para diversas áreas, tais 
como: Álgebra Linear, Polinômios e Funções Racionais, Integração: 
Equações Diferencias Ordinárias e Equações Algébrico- Diferenciais, 
Estatística, etc. 
 
 Redes Neurais, Grafos e Redes (Metanet), Arquiteturas Paralelas de 
computadores, Lógica Nebulosa (Fuzzy Logic) 
 
 Possibilidade de interação (interfaces) com programas em várias 
linguagens como o C, C++, Fortran, Java, LabView, Tcl/Tk. 
 
 Modelagem e Simulação (Scicos), Automação Industrial, Controle de 
Processos, Controle clássico, robusto e otimização LMI (Linear Matrix 
Inequalities) 
 
 Processamento de Sinais e Imagens 
 
 Possui portabilidade para várias plataformas, tais como: windows, linux, 
etc. 
Instalação do SCILAB: 
 
 Para baixar a última versão do Scilab acesse: www. scilab.org 
 ( nesse curso o site foi acessado em jul/2012) 
 
 Clique em “Download Scilab” para sistema Windows (32bits) ou em 
“Other Systems” para outros sistemas. 
 
 No caso de outros sistemas, aparecerá a tela abaixo. Escolha o sistema 
instalado em seu computador, clicando sobre ele, fazendo o seu 
download. 
 Após escolher o sistema, aparecerá a tela abaixo. Clique em donwload. 
 No local onde foi efetuado o download, 
clique no ícone do Scilab 5.3.3. 
 
 
 
 
 
 
 Depois clique em executar. 
 
 
 
 
 
 
 
 
 Selecione o idioma desejado (no caso 
aqui: Português(Brasil). 
 
 Clique em Avançar e siga os passos conforme o Assistente de Instalação 
requisitar. A sequência de instalação é bastante interativa e não necessita 
de maiores detalhes. 
O Ambiente do SCILAB: 
 
 A figura abaixo mostra a janela principal do ambiente scilab, com o menu 
principal e a barra de ferramentas. 
Menu 
Principal Barra de 
Ferramentas 
 Prompt (Pronto!) do Scilab (seta+cursor): significa 
que o programa está pronto para receber instruções. 
Também chamado de linha de comando. 
 No menu principal (pronúnica “meni”, aportuguesado menu mesmo) temos as 
opções: Arquivo – Editar – Preferências – Controle – Aplicativos - ?(ajuda). 
 
 Na figura abaixo temos os sub-menus de Arquivo. 
 Executar: executa arquivos de scripts e arquivos 
com instruções de comando de um modo geral. 
 
 Abrir um arquivo: carrega arquivos de texto 
criado no ambiente scilab (.sce e .sci) com o 
editor. 
 
 Carregar ambiente: carrega arquivos binários 
(de variáveis) salvos com o comando salvar. 
 
 Salvar ambiente: salva em disco um arquivo 
binário contendo variáveis. 
 Alterar diretório atual: muda o diretório atual, redirecionando o ambiente para 
um novo local de trabalho. 
 
 Exibir diretório atual: exibe o diretório atual de trabalho. 
 
 Configuração de página: permite configurar a impressora para impressão 
 
 Imprimir: imprime documentos. 
 
 Sair: fecha a seção e sai do ambiente do scilab 
Teclas 
 de atalho 
 Na figura abaixo temos os sub-menus de Editar. 
Teclas 
 de atalho 
 Recortar: recorta um texto. 
 
 Copiar: permite copiar para o clipboard (área 
de transferência do Windows) o texto 
selecionado no ambiente. 
 
 Colar: cola o que foi previamente copiado. 
 
 Esvaziar área de transferência: limpa o 
clipboard (área de transferência) 
 
 Selecionar tudo: seleciona todo o texto atual 
do ambiente. 
 
 Na figura abaixo temos os sub-menus de Preferências. 
 Cores: permite alterar as cores utilizadas no 
ambiente do scilab (cor do console (texto) ou 
a cor de fundo). 
 
 Fonte: permite alterar a fonte (tipo, tamanho, 
etc.) 
 
 Mostrar/esconder a barra de ferramentas: 
comuta entre exibir e ocultar a barra de 
ferramentas. 
 
 Limpar histórico: limpa o histórico das 
instruções executadas no ambiente. 
 
 Limpar o console: limpa o console, mas não 
apaga os dados da memória. 
Console: unidade que permite que um operador se comunique com um sistema de computador 
 Na figura abaixo temos os sub-menus de Controle. 
 Retomar: continua a execução de uma 
instrução depois de uma pausa (pause) ter 
sido dada ou um pare (stop). 
 
 Abortar: interrompe a execução e retorna ao 
prompt normal do ambiente. 
 
 Interromper: interrompe a execução e entra 
no modo “pause” ( pode ser executada 
diretamente no prompt do ambiente 
pressionando-se Ctrl+C). 
 Na figura abaixo temos os sub-menus de Aplicativos. 
 SciNotes: carrega o editor de textos do scilab onde 
podem ser criados scripts de programas e funções. 
 
 Xcos: permite criar diagramas de blocos e interfaces 
gráficas. 
 
 Tradutor de Matlab para Scilab: oferece opções de 
conversões do Matlab para o Scilab. 
 
 Gerenciador de módulos – ATOMS: O ATOMS (de 
AutomaTic mOdules Management for Scilab), 
permite que o usuário do Scilab possa baixar, 
instalar e atualizar de forma automática, os módulos 
externos que o mesmo deseje utilizar com o 
programa 
 
 Navegador de variáveis: exibe o formato das 
variáveis no scilab. 
 
 Histórico de comandos: O Scilab grava o histórico 
de comandos executados no prompt, inclusive 
marcando as sessões utilizadas com comentários 
 Na figura abaixo temos os sub-menus de ? (ajuda). 
 Ajuda do Scilab: exibe o diretório-raiz de 
ajuda do scilab, com opção de buscas. 
 
 Demosntrações do Scilab: exibe uma janela 
de demonstrações de comandos do scilab. 
 
 Links da Web: exibe várias opções de links. 
 
 Sobre o Scilab: mostra uma janela com a 
versão da ferramenta, incluindo com 
agradecimentos à relação de pessoas que 
contribuíram para o seu desenvolvimento. 
 
OBS: A ajuda do scilab é um item muito valioso e deve ser bastante 
explorado pelo usuário. 
• Execute o Scilab no seu sistema e procure pelo símbolo (prompt): --> 
• As operações aritméticas devem ser digitados após este símbolo (->) 
que é chamado de prompt do Scilab e em seguida tecla-se [ENTER] 
Exemplo: 
-->5+6/2 
ans = 
8. 
 
 -->4^2 // 4 elevado a potência de 2 
ans = 
16. 
USANDO O SCILAB COMO UMA SIMPLES CALCULADORA 
A variável ans (abreviação da palavra inglesa answer) armazena o valor 
corrente de saída do Scilab. Pode-se usar ans para efetuarcálculos porque 
ela armazena o valor do último cálculo realizado. 
Exemplo: 
 
-->4+5 
ans = 
9. 
 
 
-->ans+ 3 
ans = 
12 
 
USANDO O SCILAB COMO UMA SIMPLES CALCULADORA 
variáveis : nome para uma posição na memória do computador. 
 
Para atribuir ou modificar a informação contida na variável é usado o comando 
de atribuição. No Scilab, usa-se o símbolo = para atribuição. 
 
OBS: O símbolo de atribuição (=) não significa igualdade matemática, uma 
vez que o comando de atribuição i = i+1 é válido, mas não representa 
igualdade matemática. 
 
Exemplo: 
-->a = 2 // Atribui 2 para variável a 
a = 
2. 
 
-->b = 4 // Atribui 4 para variável b 
a = 
4. 
 
-->area = a*b // Atribui o produto de a e b para a variável area 
area = 
8. 
VARIÁVEIS E O COMANDO DE ATRIBUIÇÃO 
OBS.(1): Regras para os nomes de variáveis (identificadores) ; 
 
1. Nomes de variáveis começam com uma letra, seguido de letras, algarismos ou sublinhados. 
2. Caracteres especiais não são permitidos. 
3. Caracteres acentuados não são permitidos; 
4. Nomes de variáveis são sensíveis a maiúsculas e minúsculas. 
Ex.: 
Nomes de variáveis válidos: ALPHA, X, B1, B2, b1, matricula e MEDIA. 
Nomes de variáveis inválidos: 5B, 1b, nota[1], A/B e X@Z. 
 
OBS.(2): A ausência ou presença do ponto e vírgula no final de um comando do Scilab visualiza ou 
suprime, respectivamente, o resultado do cálculo. 
 
-->A = 4+4^2; 
--> 
 
-->A = 4+4^2 
A = 
20. 
 
-->a=2; 
-->b=4; 
-->area=a* b// no resultado (area) o ponto e vírgula foi suprimido para se visualizar o resultado. 
area = 
8. 
VARIÁVEIS E O COMANDO DE ATRIBUIÇÃO 
A+B*C 
(NOTA1+NOTA2)/2 
1/(a^2+b^2) 
 
 PRIORIDADE: ordem de Avaliação entre Operadores Aritméticos 
EXPRESSÕES ARITMÉTICAS 
2+10/5 // 10/5 é avaliada primeiro. 
 
A+B/C+D // B/C é avaliada primeiro. 
 
R*3+Bˆ3/2+1 // Bˆ3 é avaliada primeiro. 
Associatividade é a regra usada quando os operadores têm a mesma prioridade. 
A operação mais a esquerda é avaliada primeiro. 
 
A-B+C+D //A-B é avaliada primeiro, porque está mais a esquerda 
 
ATENÇÃO!! potenciação, operação mais a direita deve ser avaliada primeiro: 
 
A^B^C^D //CˆD é avaliada primeiro, porque está mais a direita 
 
 
ATENÇÃO!! A ordem de prioridade pode ser alterada pelo uso dos parênteses 
 
(A+4)/3 //A+4 é avaliada primeiro devido aos parênteses 
 
(A-B)/(C+D) //A-B é avaliada primeiro. Depois a adição e depois a divisão 
 
R*3+B^(3/2)+1 //3/2 é avaliada primeiro 
 
 
 
 
 
EXPRESSÕES ARITMÉTICAS 
Além dos operadores aritméticos podemos usar funções matemáticas. 
Exemplo: 
 
2+3*cos(x) 
 
X^(2*sin(y)) 
 
2+3*tan(x)+K^2 
 
EXPRESSÕES ARITMÉTICAS 
Funções de Arredondamento 
EXPRESSÕES ARITMÉTICAS 
Exemplos: 
Constantes Especiais do Scilab 
EXPRESSÕES ARITMÉTICAS 
Formato de Visualização dos Números com o comando format 
 
Exemplo: 
-->sqrt(3) 
ans = 
1.73 
 Para aumentar o número de posições para 16, usa-se: 
-->format(16) 
-->sqrt(3) 
ans = 
1.7320508075689 
 
O comando format(’e’) mostra os números em notação científica. Exemplo: 
-->format(’e’) 
-->2*%pi/10 
ans = 
6.283185307E-01 (6.283185307E-01 significa 6.283185307 × 10−1) 
 
Para retornar ao formato inicial usa-se -->format(’v’) que é chamado de “formato de 
variável”. 
EXPRESSÕES ARITMÉTICAS 
Informação composta de caracteres alfanuméricos e/ou caracteres especiais 
(exemplo, #, $, &, %, ?, !, @, <, ~, etc.). 
 
Os strings são envolvidos por aspas duplas ou simples. (é melhor usar as 
aspas duplas que não possui duplo sentido e torna seu programa um 
pouco mais legível” 
 
Exemplos: 
-->a = "abcd" 
a = 
abcd 
 
-->b = ’efgh’ 
b = 
efgh 
 
-->c = "Maria e Jose" 
c = 
Maria e Jose 
STRINGS 
Concatenação:junção de dois ou mais strings 
 
-->n = "Pedro" 
n = 
Pedro 
-->m = "Paulo" 
m = 
Paulo 
-->m + n // Concatena Paulo com Pedro sem 
ans = 
PauloPedro 
 
-->m + " " + n // Concatena Paulo com Pedro inserindo espaços entre eles 
ans = 
Paulo Pedro 
-->m +“ “+”e”+” “+n 
Paulo e Pedro 
 
OBS: armazenar informações que contém as aspas=>repetir as aspas. 
 -->n = "o teorema é "“ a lados iguais opõe-se ângulos iguais “" 
n = 
o teorema é “ a lados iguais opõe-se ângulos iguais“ 
STRINGS 
Funções Principais de Manipulação de strings 
STRINGS 
Exemplos: 
-->m = "Pedro"; 
-->length(m) // Comprimento da string "Pedro" 
ans = 
5. 
-->a = "a camisa " + string(10) // Para concatenar números com strings use a função string() 
a = 
a camisa 10 
-->a = "12" + "34" // Para somar uma string com um número use evstr() 
a = 
1234 
-->evstr(a) + 10 
ans = 
1244. 
NÚMEROS COMPLEXOS 
 
As operações com números complexos são tão fáceis como nos reais. 
 
A unidade imaginária é representado por %i, ou seja, %i = sqrt(-1). 
Exemplo: 
Sejam os números imaginários x e y, como segue: 
x = 3 + 4*%i e y = 1 - %i 
As operações abaixo são feitas normalmente: 
z1 = x - y 
z2 = x * y 
z3 = x / y 
 
Uso de funções: 
real(x) −Parte real de x 
imag(x) −Parte imaginária de x 
abs(x) −Valor absoluto do número complexo 
atan(imag(x),real(x)) −Argumento do número complexo 
conj(x) −Conjugado 
sin(x) −Seno de um número complexo 
STRINGS 
clear apaga todas as variáveis do Espaço de Trabalho 
Exemplo: 
-->a = 2; 
-->b = 3; 
-->c = 4; 
-->clear b // Apaga somente b deixando as outras variáveis intactas 
-->clear // Apaga somente b deixando as outras variáveis intactas. 
 
 
As variáveis são apagadas quando o usuário termina a execução do Scilab. Para usá-las da próxima vez 
que executar o Scilab, você deve salva-las antes com o comando save(“arquivo”). 
Por exemplo, 
-->a = 2; 
-->b = 3; 
-->save("dados.dat"); 
 
O comando load(“arquivo”) é usado para recuperar variáveis que foram salvas no arquivo. Por exemplo: 
-->clear // apaga todas as variáveis 
-->a+b // variáveis a e b não existem 
!--error 4 // porque foram apagadas 
undefined variable : a 
-->load("dados.dat"); // recupera as variáveis a, b e c 
-->a+b // Ok! 
ans = 
5 
OBS.: O comando who mostra todas as variáveis do Espaço de Trabalho 
 
APAGANDO, ARMAZENANDO E RECUPERANDO VARIÁVEIS NO ESPAÇO DE TRABALHO 
CONSEGUINDO AJUDA 
 
help informa sobre comandos e funções do Scilab. 
 
Exemplo: 
help cos (Informa sobre a função que calcula o co-seno); 
help ceil −Informa sobre a função ceil. 
 
apropos procura comandos e funções utilizando uma palavra-chave. 
 
Exemplo: se não sabemos o nome da função que calcula o seno hiperbólico, 
podemos digitar (em inglês) algo como 
 
--> apropos hyperbolic 
 
e o Scilab mostrará todas a funções relacionadas com a palavra-chave 
hyperbolic. 
 
 
help() abre a ajuda do scilab pelo prompt. 
Estruturas Seqüênciais no Scilab 
ARQUIVOS DE SCRIPT 
Comando de Entrada de Dados – input 
 
input que tem duas formas básicas :uma para números e outra 
para strings 
 
A primeira forma, usada para solicitar dados numéricos, tem a 
seguinte forma: 
 <variavel> = input(<string>); 
 
Esta função mostra o texto <string> e em seguida solicita que o 
usuário digite um número. Por fim, o número digitado é 
atribuído a <variavel>. Exemplo: 
 
-->x = input("Digite um número") 
Digite um número-->10 
x = 
 10. 
 
A segunda forma do comandoinput é usada para solicitar dados do tipo 
string ao usuário. Sua forma é: 
 
<variavel> = input(<string>,"s"); 
 
Exemplo: 
 
-->a = input("Digite alguma coisa","s") Digite alguma coisa-->Olá 
a = Olá 
 
Comandos de Saída de Dados 
 
 
A forma mais simples de visualizar dados no Scilab é suprimir o ponto e 
vírgula no final do comando 
 
-->x = 3; 
 
-->y = 4; 
 
-->r = sqrt(x*x+y*y) // Com a omissão do ponto e virgula 
r = // o resultado é exibido 
 
5. 
 
 
LOGO, A SUPRESSÃO DO PONTO E VIRGULA NO SCILAB É VISTO 
COMO UM COMANDO DE SAÍDA DE DADOS. 
 
Comandos de Saída de Dados - A Função disp 
 
A função disp() é outra maneira de exibir dados. Por exemplo, 
 
-->v0 = 2; 
 -->a = 4; 
 -->t = 3; 
 -->v = v0+a*t; 
 -->disp(v) 
14. // disp não mostra o nome da variável 
 
Exemplo com strings 
 -->nome = "maria"; 
 -->disp("Seu nome é " + nome) 
Seu nome é maria 
 
A função disp é freqüentemente usada em conjunto com a função string que converte um 
número em string. Por exemplo, poderíamos ter usado a seguinte sintaxe no final do 
primeiro exemplo: 
 
-->disp("A velocidade final é " + string(v)) 
 
A velocidade final é 14 
 
Comandos de Saída de Dados - A Função printf 
 
A função printf é a forma mais flexível de exibir dados porque produz 
uma saída formatada. Ela é um “clone” da função printf da linguagem C 
 
Por exemplo, 
 
-->printf("Alô mundo\n"); 
Alô mundo 
 
O caracter \n (chamado de new line) avisa ao comando printf para gerar uma 
nova linha. Mais precisamente, \n move o cursor para o começo da linha 
seguinte. Colocando \n após o string Alô faz com que printf gere uma nova 
linha após Alô: 
 -->printf("Alô\nmundo"); Alô 
mundo 
 
A forma geral do comando printf é: printf(<formato>,<lista de dados>); 
 <formato> é uma string descrevendo a forma com que a lista de dados será 
exibida. 
Exemplo: 
 
-->A = 2; 
 
-->printf("A variável A contém o valor %g\n",A); 
 
A variável A contém o valor 2 
 
A símbolo %g (chamado de caractere de formatação) indica como cada 
variável da lista de dados será exibido dentro da string de formatação 
<formato>. No exemplo, %g é substituído pelo valor da variável A no momento 
da impressão. 
No seguinte exemplo, as variáveis A e B substituirão os caracteres de 
formatação %g nas posições correspondentes: 
 
-->A = 8/4; 
 
-->B = A + 3; 
 
-->printf("Os valores calculados foram %g e %g\n",A,B); Os valores calculados 
foram 2 e 5 
 
Observação: 
 
Se a variavel for do tipo string, usa-se o caractere de formatação %s em vez 
de %g. Por exemplo: 
 
-->nome = "Joao"; 
 
-->altura = 1.65; 
 
-->printf("A altura de %s é %g",nome, altura); 
 
A altura de Joao é 1.65 
Criando Arquivos de Scripts 
 
Um arquivo de script é um arquivo que contém um script, isto é, uma 
seqüência de comandos para ser executada pelo computador (programa) 
 
 Os comandos do arquivo de script são executados automaticamente pelo 
Scilab 
 
 
Arquivos de script são arquivos do tipo texto puro (também chamados 
arquivos ASCII) e, por isso, eles podem ser criados em qualquer editor de 
texto. 
 
 
 O Scilab já contém um editor de textos (chamado Scipad) que facilita a 
criação de arquivos de script, sendo o mais recomendável para programar no 
ambiente Scilab 
 
Criando Arquivos de Scripts 
 
Para criar Arquivos de scripts pelo 
Editor do Scilab, selecione a opção 
APPLICATIONS - EDITOR 
Digite seu programa (comandos scilab) 
Salve seu programa 
Para executar um script, Selecione EXECUTE e em seguida a opção LOAD 
INTO SCILAB.. 
 
 
OBS: Se houver erros de digitação do script então poderá ocorrer erros de 
execução. Neste caso, retorne ao Editor, corrija o erro e execute novamente. 
 
 
Uma forma alternativa de executar scripts é através do comando exec. O 
comando exec tem a forma: exec(<script>) 
 
AVISO: este comando funciona somente se o arquivo de script estiver no 
diretório de trabalho do scilab caso contrário ocorrerá um erro como este: 
 
File .............sce does not exist or read access denied 
 
Resolva este problema alterando o diretório de trabalho: selecione 
FILE|CHANGE DIRECTORY e depois escolha o diretório 
Alterando o Diretório de Trabalho: 
 
selecione FILE|CHANGE DIRECTORY e depois escolha o diretório de 
desejado. 
 
 
Alternativamente, o diretório de trabalho pode ser alterado com o comando 
chdir(ou simplesmente cd) : 
-->cd c:\exemplos; // altera o diretório corrente 
 
 
 
Use o comando pwd para visualizar o diretório de trabalho do Scilab: 
 -->pwd 
ans = 
 c:\exemplos 
 
 
 
 
 
 
A estruturas de seleção são úteis para implementar situações que 
requerem a execução de ações alternativas que dependem de certas 
condições. Exemplos: 
 
• Se a nota do aluno for maior que 7 então avise que ele foi "aprovado"; 
caso contrário informe que ele está em recuperação. 
 
• Se a lâmpada está queimada compre uma nova lâmpada; caso 
contrário acenda a lâmpada para ler o livro. 
 
• Compre ou venda ações da bolsa de valores de acordo se índices 
econômicos sobem ou descem, respectivamente. 
 
Portanto, a estrutura de seleção é um mecanismo para selecionar entre 
caminhos alternativos de execução comandos. 
Estruturas de Decisão no SCILAB 
A Seleção Simples IF-END 
 
Caracteriza-se por permitir a execução de uma seqüência de comandos 
quando certas condições, representadas por expressões booleanas, 
forem satisfeitas. A seleção simples tem a seguinte forma: 
 
if <expressão booleana> 
<sequência de comandos> 
end 
 
A seqüência de comandos só será executada se a expressão booleana 
retornar um valor verdadeiro. 
A Seleção Bidirecional IF-ELSE-END 
Caracteriza-se por selecionar entre duas seqüência de comando 
quando certas condições, representadas por expressões booleanas, 
forem satisfeitas. A seleção bidireciona tem a seguinte forma: 
 
if <expressão booleana> 
<primeira seqüência de comandos> 
else 
<segunda seqüência de comandos> 
end 
 
A primeira seqüência de comandos será executada se a expressão 
booleana devolver um valor verdadeiro, caso contrário a segunda 
seqüência de comandos será executada.. 
 
Exercício: 
Elaborar um programa para ler quatro notas, calcular a média e informar 
se o aluno passou de ano (aprovado) ou não (reprovado). A média para 
passar de ano é 6. 
Solução: 
ANINHANDO SELETORES 
 
 
Comandos de seleção podem ser aninhados de diversas formas criando 
ampla variedade de construções. 
 
Exercício: 
 
Elaborar um programa para escrever a situação do aluno. O aluno com 
média maior ou igual a 7,0 será aprovado. O aluno com média entre 5,0 
e 7,0 ficará em recuperação. Com média abaixo de 5,0, o aluno será 
reprovado 
ESTRUTURAS DE REPETIÇÃO : LAÇOS 
 
Computadores são freqüentemente usados para repetir uma mesma operação 
muitas vezes. Para fazer isso, utiliza-se uma estrutura de repetição. Ela faz 
com que um conjunto de comandos seja executado zero, uma ou mais vezes. A 
estrutura de repetição é, também, chamado de laço (do inglês, loop). O 
conjunto de comandos que se repete em um laço é denominado de corpo do 
laço. 
 
Há dois tipos de laço no Scilab: 
1. Laço controlado logicamente; 
2. Laço controlado por contador. 
 
No laço controlado logicamente, os comandos (i.e., o seu corpo)são repetidos 
indefinidamente enquanto uma certa expressão booleana for satisfeita. No 
laço controlado por contador, os comandos são repetidos um número 
predeterminado de vezes. 
 
Denomina-se iteração a repetição de um conjunto de comandos. 
Portanto, cada execução do corpo do laço, juntamente com a condição de 
terminação do laço, é uma iteração. O termo iteração é também usado como 
sinônimo de laço. 
Laço Controlado Logicamente 
 
O laço while é um laço controlado logicamente. Ele repete a execução 
de um conjunto de comandos (o seu corpo), mas verificando antes de 
executar os comandos se é permitido repeti-los ou não. O laço while 
tem a seguinte forma: 
 
while <expressão booleana> 
<conjunto de comandos> 
end 
 
Enquanto a <expressão booleana> for verdadeira o <conjunto de 
comandos> é repetido indefinidamente. No momento em que 
<expressão booleana> for falsa o <conjunto de comandos> não será 
mais repetido. 
 
Vale salientar que se <expressão booleana> for falsa da primeira vez, o <conjunto de 
comandos> jamais será executado. 
 
A elaboração de programas com laços envolve, freqüentemente, o uso de duas variáveis 
com funções especiais: os contadores e os acumuladores 
Laço Controlado por Contador 
O comando FOR é o laço controlado por contador do Scilab. Ele repete 
a execução de um conjunto de comandos (i.e., o seu corpo) um número 
pré-determinado de vezes. Na forma básica, o laço FOR possui o 
nome de uma variável (chamada de variável de controle) e 
especifica seu valor inicial e final e, opcionalmente, o tamanho do 
passo (ou incremento) da variável de controle. 
EXEMPLO: 
O seguinte programa escreve a palavra disciplina 10 vezes: 
 
for i=1:1:10 
printf("disciplina\n"); 
end 
 
Aqui a variável de controle i assume, inicialmente, o valor um e o 
printf("disciplina\n“) é executado. 
 
O tamanho do passo pode ser omitido e quando isto ocorre o passo é 
igual a um: 
 for i=1:10 (daria o mesmo resultado) 
 
Um passo igual a um indica que a variável de controle é 
incrementada 
de um em cada iteração. O laço for, repete a execução de 
printf("disciplina\n“) e a variável de controle i é incrementada para 
o valor 2. Da terceira vez que printf("disciplina\n“) é executado, a 
variável de controle i é incrementada para o valor 3 e assim por 
diante até alcançar o valor 10 que é o valor final. 
Vetores 
• Declaração de vetores: 
X = [ x1 x2 x3 ...] vetor linha 
X = [x1;x2;x3;...] vetor coluna 
• Transposição de vetores: X’ 
 
Vetores 
• A = Valor_inicial:incremento:Valor_final 
 
• Exemplos: 
• A = 1:10; 
• B = 1:2:10; 
• C = 1:0.2:10; 
• D = 10:-1:1; 
• E = 1:%pi:20; 
• F = 0:log(%e):20; 
• G = 20:-2*%pi:-10 
Operações com vetores 
• Dimensão: length(x) 
• Número de linhas e colunas: [nr,nc] = size(x) 
• Elementos iguais a 1: x = ones(N,1) 
• Vetores nulos: x = zeros(N,1) 
• Vetores com valores aleatórios: x =rand(N,1) 
• Exercício: 
1. Crie: 
• Um vetor unitário com 10 elementos 
• Um vetor nulo com 5 elementos 
• Um vetor com 10 elementos aleatórios 
• Verifique suas dimensões 
• Apaga elemento: X(i) = [] 
• Insere elemento i no final: X = [X i] 
• Acessa último elemento: X($) 
• Acessa elementos entre n e m: X(n:m) 
• Agrupa dois vetores: c = [x y]; 
Matrizes 
Uma matriz geral consiste em m*n números dispostos em m 
linhas e n colunas: 
Matrizes 
Exemplo 
No Scilab: 
 
M = [1 2 3; 4 5 6; 7 8 9] 
Matrizes com elementos unitários: A = ones(M,N) 
Matrizes com elementos nulos: B = zeros(M,N) 
Matriz identidade: A = eye(N,N) 
 
• Acesso à linha i: A(i,:) 
• Acesso à coluna j: A(:,j) 
• Insere linha no final: A = [A;linha] 
• Insere coluna no final: A = [A coluna] 
• Acesso à ultima linha: A($,:) 
• Acesso à última coluna: A(:,$) 
 
 
 
Operações com Matrizes 
Operações com Matrizes 
• Acesso a um conjunto de linhas: A(:,[i:j]) 
• Acesso a um conjunto de colunas: A([i:j],:) 
• Matriz com número aleatórios: A = rand(N,M) 
• Soma: C = A + B 
• Multiplicação: C = A*B 
• Multiplicação por um escalar: B = aA 
• Matriz complexa: C = A + B*%i (A e B reais) 
• Matriz transposta: C = A’ 
• Determinante: d = det(A) 
• Diagonal: d = diag(A). 
Polinômios 
• Função poly(a,x, ‘flag’) 
• a: matriz de número reais 
• x: símbolo da variável 
• flag: string ("roots", "coeff"), por default seu valor é "roots". 
• Definindo polinômios: 
• y = poly([1 2 3], ‘x’, ‘coeff’); y = 1 + 2x + 3x2 
• ou: x = poly(0,’x’); y = 1+2*x + 3*x^2; 
 
• roots(z): calcula as raízes de um polinômio 
• [r,q] = pdiv(y,z): efetua a divisão e calcula quociente e 
resto 
• coeff(y): retorna os coeficientes do polinômio. 
 
Matrizes de polinômios 
• Os elementos da matriz podem ser polinômios: 
• Exemplo: 
• s = poly(0, ‘s’); 
• A = [1-2*s+s^3 3*s+4*s^2; s 2*s] 
 
• Se A é uma matriz de polinômios: 
• A = A(‘num’): retorna apenas os numeradores 
• A=A(‘den’): retorna apenas os denominadores 
 
Matrizes simbólicas 
• Uma matriz simbólica pode ser construída com elementos 
do tipo string: 
• M =['a' 'b';'c' 'd'] ; 
• Se atribuirmos valores às variáveis podemos visualizar a 
forma numérica da matriz com a função evstr() 
 
Matrizes: operadores especiais 
• Operador \: divisão à esquerda. 
• Seja Ax=b um sistema de equações lineares escrito na 
forma matricial, sendo A a matriz de coeficientes, x o vetor 
da incógnitas e b o vetor dos termos independetes: 
A resolução deste sistema é x=A-1b, ou seja, basta obter a 
matriz inversa de A e multiplicá-la pelo vetor b. No Scilab isto 
pode ser feito desta forma: 
A=[1 3;3 4];b=[5;2]; 
x=inv(A)*b 
 
Esta solução pode ser obtida com o operador “divisão à 
esquerda” cujo símbolo é \: 
x=A\b 
1x + 3y = 5
3x + 4y = 2
• Operador . (ponto) 
Este operador é usado com outros operadores para realizar 
operações elemento a elemento. 
 
Exemplo: 
A = [1 2 3; 3 4 6; 7 8 9]; 
B = [2 4 6;8 10 12; 14 16 18]; 
-->A./B 
 ans = 
 0.5 0.5 0.5 
 0.375 0.4 0.5 
 0.5 0.5 0.5 
-->A.*B 
 ans = 
 2. 8. 18. 
 24. 40. 72. 
 98. 128. 162. 
Matrizes esparsas 
• Uma matriz é dita esparsa quando possui uma grande 
quantidade de elementos iguais a zero. 
• A matriz esparsa é implementada através de um conjunto 
de listas ligadas que apontam para elementos não zero. De 
forma que os elementos que possuem valor zero não são 
armazenados. 
Em Scilab: 
A = [0 0 1; 2 0 0; 0 3 0] 
-->sparse(A) 
 ans = 
( 3, 3) sparse matrix 
( 1, 3) 1. 
( 2, 1) 2. 
( 3, 2) 3. 
• Exemplo: 
• A = [0 0 1; 2 0 0; 0 3 0] ; 
• A= sparse(A); 
• B = [0 1 0; 2 0 2; 3 0 0]; 
• B = sparse(B); 
• C = A*B; 
• Para obter a matriz C na forma completa: 
• B = full(B); 
• Funções que criam matrizes esparsas: 
• sprand(n,m,fill): Matriz esparsa aleatória com n*m*fill elementos 
não nulos. 
• speye(n,n): Matriz identidade esparsa 
• spzeros(n,m): Matriz esparsa nula de dimensões nXm 
• spones(A): Coloca valor 1 onde Aij é diferente de zero 
Listas 
• Uma lista é um agrupamento de objetos não necessariamente 
do mesmo tipo. 
• Uma lista simples é definida no Scilab pelo comando list, que 
possui esta forma geral: 
L = list(a1,a2,a3… aN) 
onde a1,a2,a3… aN são os elementos da lista 
 
Exemplo: 
L = list(23,1+2*%i,'palavra',eye(2,2)) 
-->L 
 L = 
 L(1) 
 23. 
 L(2) 
 1. + 2.iL(3) 
 palavra 
 L(4) 
 1. 0. 
 0. 1. 
[23, 1+2i, ‘palavra’, 1 0
0 1
]L=
• Podemos criar sublistas, ou seja, listas dentro de listas. 
 
• Exemplo: 
 
L = list(23,1+2*%i,'palavra',eye(2,2)) 
L(4) = list('outra palavra',ones(2,2)) 
 
• Acessando elementos dentro da lista da lista: 
• L(4)(1) 
• L(4)(2) 
 
• Agrupando duas listas: 
• L1 = list(5,%pi, ‘velocidade’, rand(2,2)); 
• L2 = list(1+2*%i,ones(3,3), ‘aceleração’); 
• L = list(L1,L2); 
Funções 
• Variáveis definidas dentro do escopo da função 
(variáveis locais) não permanecem no ambiente após 
a execução da função. 
 
• Uma função pode ser definida de três formas: 
1. no ambiente Scilab; 
2. usando o comando deff ou 
3. digitando o texto no Scipad e clicando no menu 
Execute, opção load into Scilab 
Funções 
• Definição: 
 function [y1,...,yn]= nome_da_funcao(x1,...,xm) 
 instrucao_1 
 instrucao_2 
 ... 
 instrucao_p 
 endfunction 
 onde: 
• x1,...,xm são os argumentos de entrada; 
• y1,...,yn são argumentos de saída e 
• instrucão_1,...,instrucao_p são as instruções executa
das pela função. 
• Exemplo: 
1. Definir uma função que converte um número complexo 
da forma cartesiana para a polar. 
No arquivo: cart_to_polar.sci, digite: 
function [mod,ang] = cart_to_polar(re,im) 
 mod = sqrt(re^2 + im^2); 
 ang = atan(im/re) * 180/%pi; 
endfunction 
 
No arquivo program.sce (arquivo de execução) digite: 
exec(' cart_to_polar.sci'); 
z = 2 + 2*%i; 
[mod,ang] = cart_to_polar(real(z),imag(z)); 
disp(mod); 
disp(ang); 
Gráficos no Scilab 
• Para gerar gráficos bidimensionais: 
• plot2d(x,y,style) 
• Onde x e y são vetores. 
• Exemplo: 
• x = [-2*%pi:0.1:2*%pi]; 
• y = sin(x); 
• plot2d(x,y); 
Syle: tipo de linha do gráfico. Valores inteiros positivos definem linhas 
contínuas, valores negativos definem linhas tracejadas. 
• plot2d(x,y,-1); 
• plot2d(x,y,2); 
 
 
• y pode ser uma matriz, sendo que o número de linhas 
de y deve ser igual ao número de elementos de x 
• Exemplo: 
x = [0:0.1:2*%pi]; 
y = [sin(x)’ cos(x)’]; 
plot2d(x,y); 
 
 
 
• x e y podem ser matrizes de mesma dimensão 
• Exemplo: 
t = [-5:0.1:5]; 
x = [t’ t’]; 
y = [(t^2)’ (t^3)’]; 
plot2d(x,y); 
 
 
 
• Comandos básicos: 
• clf: limpa a tela, evitando que o próximo gráfico se 
sobreponha ao anterior: 
• Exemplo: 
• y = sin(x); 
• plot2d(x,y); 
• z = cos(x); 
• plot2d(x,z); 
• Mas: 
• clf;plot2d(x,y); 
 
• Comandos básicos: 
• xtitle (‘titulo’): apresenta o título do gráfico 
• legend(‘legenda1’, ‘legenda2’,…) 
• Exemplo: 
• t = 0:0.1:10; 
• S = 5 + 10*t + 0.5*2*t.*t; 
• V = 10 + 2*t; 
• plot2d(t,S,-2); 
• plot2d(t,V,-4); 
• xtitle(‘Cinematica’); 
• legend(‘Posição’, ‘Velocidade’); 
• Comandos básicos: 
• subplot: divide um janela de um gráfico em sub-
graficos 
• Exemplo: 
subplot(221) 
plot2d(x,sin(x)) 
subplot(222) 
plot2d(x,cos(x)) 
subplot(223) 
plot2d(x,tan(x)) 
subplot(224) 
plot2d(x,sin(x).*cos(x)) 
• Comandos básicos: 
• logflag: define escala linear ou logarítmica 
• “nn” – linear x linear 
• “nl” – linear x logarítmica 
• “ll” – logarítmica x logarítmica 
Exemplo: 
x =1:100; 
subplot(1,2,1); 
plot2d(x,y, logflag='nn'); 
xtitle(‘Escala linear’); 
subplot(1,2,2); 
plot2d(x,y, logflag='ll'); 
xtitle(‘Escala log-log’); 
• Gráficos tridimensionais 
• meshgrid: cria matrizes ou vetores 3D 
Exemplo: 
-->[x y] = meshgrid(-1:0.5:4,-1:0.5:5) 
 
• Gráficos tridimensionais 
• mesh: gera gráficos em 3D 
• Exemplo: 
[X,Y]=meshgrid(-5:0.1:5,-4:0.1:4); 
Z=X.^2-Y.^2; 
xtitle('z=x2-y ^2'); 
mesh(X,Y,Z); 
• Campo vetorial 
• champ – mostra campos vetoriais 
• Exemplo: 
Velocidade da água em movimento circular 
 
 
[x,y] = meshgrid(1:0.5:10,1:0.5:10); 
vx = y./(x.*x + y.*y); 
vy = -x./(x.*x + y.*y); 
champ(x(1,:),y(:,1),vx,vy); 
• Curvas paramétricas 
• param3d: Gera uma curva paramétrica em 3D 
• Exemplo: 
 
t=0:0.1:5*%pi; 
param3d(sin(t),cos(t),t/10,35,45,"X@Y@Z",[2,3]) 
 
• Matplot: Mostra matrizes em 2D usando cores. 
• Exemplo: 
-->Matplot([1 2 3;4 5 6]) 
-->A = round(rand(5,5)*10) 
 A = 
 
 4. 7. 4. 10. 5. 
 3. 5. 7. 5. 8. 
 1. 3. 9. 5. 8. 
 6. 7. 2. 6. 10. 
 3. 1. 4. 6. 8. 
 
--> Matplot(A) 
 
• Colormap: Define o mapa de cores 
• Exemplo: 
--> xset("colormap",graycolormap(32)) 
--> Matplot(A) 
-->xset("colormap",hotcolormap(32)) 
--> Matplot(A)

Continue navegando