Buscar

Introdução SciLab

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

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

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ê viu 3, do total de 122 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

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

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ê viu 6, do total de 122 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

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

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ê viu 9, do total de 122 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

Prévia do material em texto

Introdução ao Scilab 
Profª Gilka Rocha Barbosa 
1 
Introducao ao Scilab 
Apresentar comandos básicos necessários à 
introdução à programação e 
desenvolvimento de programas simples. 
Ambiente 
Elementos básicos 
Números, Vetores e Matrizes 
Variáveis 
Operadores 
Funções elementares 
Carga e gravação 
 
 Introdução ao Scilab 2 2 
Introdução ao Scilab 3 
Linguagens de Programação (LP) 
As linguagens de programação permitem ao 
usuário especificar um programa de uma forma 
semelhante ao algoritmo. 
Um compilador/interpretador da linguagem 
deverá fazer a tradução das instruções de alto 
nível para as de nível máquina (por exemplo, 
manter os endereços de memória onde estão 
guardadas as variáveis). 
C = A + B 
LDA 11A810A0 
LDB 22345A91 
ADD A,B 
STA 1234FE88 
3 
Exemplo 1: Asembly 
Trecho de código em C 
a=5; 
b=10; 
c=a+b; 
 
Código em Assembly (MIPS) 
ADDi $t0,$zero,5 //Adiciona-se ao registrador t0 o valor 5 
ADDi $t1,$zero,10 //Adiciona-se ao registrador t1 o valor 10 
ADD $t2,$t0,$t1 //Soma-se os valores contidos nos 
registradores t0 (5) e t1 (10) e atribui o 
resultado ao registrador t2 
4 
Exemplo 2: Asembly 
 Código em C 
A=5; 
B=10; 
media=(a+b)/2; 
 
 Código Assembly (MIPS) 
ADDi $t0,$zero,5 //Adiciona-se ao registrador t0 o valor 5 
ADDi $t1,$zero,10 //Adiciona-se ao registrador t1 o valor 10 
ADD $t2,$t0,$t1 //Somam-se os valores contidos nos 
registradores t0 (5) e t1 (10) e atribui-se 
o resultado ao registrador t2 
ADDi $t3,$zero,2 //Adiciona-se ao registrador t2 o valor 2 
(divisor) 
DIV $t2,$t3 //Divide-se o valor contido no registrador 
t2(50) pelo valor contido em t3 (2) 
 
5 
Introdução ao Scilab 6 
Linguagens de Programação (LP) 
Existem vários tipos de LP baseadas em diferentes 
paradigmas (estilos) de programação. 
Linguagens imperativas: 
Fortran, Pascal, C, MATLAB, SCILAB 
Controle explícito da execução 
Linguagens Orientadas a Objetos: 
Smalltalk, C++, Java 
Controle implícito na manipulação dos dados 
Linguagens Funcionais: 
LISP, Scheme 
Baseadas na especificação de funções 
Linguagens Lógicas: 
Prolog 
Implementando a Lógica de Predicados 
6 
Introdução ao Scilab 7 
Linguagens de Programação (LP) 
Java 
C 
C♯ 
C++ 
Objective-C 
PHP 
Visual Basic 
Python 
Perl 
JavaScript 
Delphi / Object Pascal 
Ruby 
Lisp 
Transact-SQL 
Pascal 
Visual Basic .NET 
PL/SQL 
Logo 
Ada 
R 
 
7 
Scilab 
 Software livre para cálculo numérico e simu-
lação de sistemas físicos. Usado nas áreas: 
 Física 
 Sistemas complexos 
 Processamento de imagens 
 Controle e processamento de sinais 
 Automação industrial 
 Controle de processos 
 Computação gráfica 
 Matemática 
 Modelagem biológica 
 ... 
8 
Scilab 
 Criado em 1989 por um grupo de pesquisadores da INRIA
 e da ENPC. 
 Disponível como software livre desde 1994 pelo site 
http://www.scilab.org 
 
 Consórcio Scilab desde 2003 mantido por diversas empre-
sas. 
Objetivos do consórcio: 
 organizar cooperação entre os desenvolvedores 
 obter recursos para manutenção da equipe 
 garantir suporte aos usuários 
 
 Sistemas Operacionais: 
Linux 
Windows 
Solaris 
Unix 
9 
Introdução ao Scilab 10 
Scilab 
Ambiente utilizado no desenvolvimento de 
software para resolução de problemas numéricos 
Gratuito, software free 
A última versão está sempre disponível, 
geralmente via Internet 
O software pode ser legalmente utilizado, 
copiado, distribuído, modificado 
Distribuído com código fonte 
Sintaxe semelhante ao Matlab 
Permite interface com rotinas escritas em outras 
linguagens como C 
Suporta o desenvolvimento de conjuntos de 
funções voltadas para aplicações especificas 
(toolboxes). 
 10 
Acilab 
 Ambiente 
interpreta comandos 
oferece um editor para a construção de programas 
(SciPad / Scinotes) 
emite mensagens de erros relativos à aderência à 
sintaxe da linguagem e a problemas na execução de 
um programa � 
 Linguagem 
une riqueza de expressão a detalhes sintáticos 
exige uma postura paciente em seu aprendizado 
envolve uma taxa inicial de memorização 
a fluência vem com a prática 
 
11 
Prompt de comando 
Barra de menus 
Barra de Ferramentas 
Ambiente Scilab 
12 
Scilab 
 Mude a pasta para seus arquivos 
13 
Teste!!!!!!!! 
// Programa para calcular a media de duas notas 
clear 
clc 
nota1 = input ('Digite a primeira nota: '); 
nota2 = input ('Digite a segunda nota: '); 
media = (nota1 + nota2)/ 2; 
if media >= 7 
 resultado = ' aprovado.'; 
else 
 resultado = ' reprovado. '; 
end 
printf ( "\n A média entre %1.2f e %1.2f é %1.2f e o 
aluno está %s \n\n", nota1, nota2, media, resultado) 
Introdução ao Scilab 14 
Salve com o nome 
Media 
14 
Introdução ao Scilab 15 
Teste!!!!!!!!!! 
 
 
 
 
execute 
Media 
15 
Introdução ao Scilab 16 
Utilização básica 
-->help // ou f1 
 
 
16 
Algumas funções elementares 
 abs(x): Retorna o valor absoluto, se x é real, e o módulo se 
x é complexo 
 acos(x), asin(x), atan(x): Retorna o ângulo (em radianos) 
 cos(x), sin(x), tan(x), Retorna cosseno, seno ou tangente 
de x (x deve estar em radianos) 
 ceil(x): Arredonda para o maior inteiro 
 exp(x): Exponencial (e) de um valor x 
 factorial(x): Fatorial (e) de um valor x 
 floor(x): Arredonda para o menor inteiro 
 imag(x): Mostra a parte imaginária de um complexo 
 log(x), log10(x), log2(x): Log natural, base 10 e base 2 
 modulo(x,y): Mostra o resto da divisão de x por y 
 real(x): Mostra a parte real de um complexo 
 round(x): Arredonda x para o inteiro mais próximo 
 17 
Introdução ao Scilab 18 
Utilização básica 
Variáveis especiais – pré-definidas. 
São protegidas e não podem ser apagadas. 
 who: lista as variáveis 
 whos (): lista e dimensiona as variáveis 
 clear: remove todas as variáveis do espaço de trabalho 
 help: informa sobre os comandos e funções 
 Ex.: help, help inv, help help 
 pwd: Mostra o diretório atual. 
 sci: Mostra o diretório onde o Scilab foi instalado. 
 ls: Lista os arquivos do diretório. 
 chdir(“dir”): Muda de diretório. 
 mkdir(“dir”): Cria um diretório. 
 rmdir(“dir”, ‘s’): Remove um diretório. 
 quit ou exit – sai do Scilab 
 18 
Introdução ao Scilab 19 
 Utilização básica 
 
Outras variáveis podem ser criadas 
-- > a=1 
-- > A = 2 
-- > a 
 
Algumas constantes especiais são 
precedidas pelo caractere %: 
%e: constante neperiana 
%i: raiz quadrada de -1 (imaginário) 
%pi: constante pi 
%t: verdadeiro 
%f: falso 
19 
Introdução ao Scilab 20 
Utilização básica 
... continua uma expressão em outra linha 
-->s = 1-1/2+1/3-1/4+1/5-1/6+1/7... 
-->-1/8+1/9-1/10; 
 s = 
 0.6456349 
 
 
 
; ao final de uma expressão, o cálculo é feito 
mas o resultado não é apresentado 
 
-- > A=1 // Atribui o valor 1 a A 
-- > b=2; // Atribui o valor 2 a b 
-- > A + b; // soma de A e b 
 
 
 
20 
Introdução ao Scilab 21 
Utilização básica 
Adição: + 
Subtração: - 
Multiplicação: * 
Divisão à direita: / 
Divisão à esquerda: \ 
Potenciação: ^ ou ** 
Raiz quadrada: sqrt 
Raiz enésima: ^(1/n) 
 
É capaz de executar matemática elementar como 
uma calculadora: 
-- > 4 * 1 + 6 * 0.5 + 5 * 2 
 
21 
Introdução ao Scilab 22 
Utilização básica 
 Expressões podem sercomplicadas. 
 
 Qual é o valor de x e y após os comandos 
 x = 8^1*3 
 y = 2*x*3 
 
 
 
 
 
 * Parênteses podem alterar prioridades 
 22 
Prioridade* Operação Associatividade 
1 Potenciação da direita para a esquerda 
2 
Multiplicação 
Divisão 
da esquerda para a direita 
 
3 
Adição 
Subtração 
da esquerda para a direita 
 
Introdução ao Scilab 23 
Utilização básica 
-->a = 2^3*4 
 a = 
 32. 
 
-->b = 2^(3*4) 
 b = 
 4096. 
 
-->c = 2^3^4 
 c = 
 2.418D+24 
 
-->d = (2^3)^4 
 d = 
 4096 
23 
Notação Scilab (Java, C, ...) 
para 2.418 x 10
24 
Introdução ao Scilab 24 
Variáveis 
Nomes legais de variáveis consistem numa 
combinação qualquer de letras, dígitos e 
sublinha, começando com uma letra. 
Ali22B, Cost, X3_f22 and s2Sc6 
É case-sensitive (diferencia letras maiúscula de 
minúscula) 
Mat1 é diferente de mat1 
Variáveis ilegais 
Ali-22, 5x, 3Cost, &r5, %67 and @xyt56 
Caracteres 
x= ‘a’ ou x= “a” 
Strings 
mg1='Ali'; ou mg2=‘SCILAB DEMOS' 
24 
Introdução ao Scilab 25 
Elementos básicos 
Números, Vetores e Matrizes 
Uma matriz pode ser 
Um escalar (número): matriz com dimensão 1 x 1 
Um vetor linha: matriz 1 x n 
Um vetor coluna: matriz n x1 
Uma matriz bidimensional: matriz n x m 
Uma matriz multidimensional: matriz com dimensão 
n1 x n2 x n3 x ... nm 
 
Último 
valor 
calculado 
Casa 
decimal 
No ambiente do Scilab digite: 
--> 10 
ans = 
 10 
--> 
--> p=%pi 
p = 
 3.1415927 
--> 
25 
Introdução ao Scilab 26 
Números, Vetores e Matrizes 
O Scilab reconhece vários tipos de 
números: 
 
Real: 4.607, - 199.34, 
Complexo: 2 + 3i (i = sqrt(-1)) 
Literal: “nome” 
Lógico: T/F 
 
 
26 
Introdução ao Scilab 27 
Exemplo 
Calcular a equação do segundo grau: ax2 + bx + c. 
As raízes da equação são dadas por: 
a
acbb
xx
2
4
,
2
21


Resolvendo a seguinte equação: 
x2 + 4 x + 13 = 0 
 -- > a = 1, b = 4 , c = 13 
-- > x1 = (-b + sqrt (b^2 – 4 * a * c)) / (2 * a) 
-- > x2 = (-b - sqrt (b^2 – 4 * a * c)) / (2 * a) 
O Scilab apresenta como solução: 
x1 = -2.00 + 3.000i 
x2 = -2.000 – 3.000i 
27 
Introdução ao Scilab 28 
Exemplo 
-->g 
 !--error 4 
undefined variable : g 
 
-->g = 1:5 
 g = 
 1. 2. 3. 4. 5. 
 
-->g*g 
 !--error 10 
inconsistent multiplication 
28 
Programando com o Scilab 
Características do Scilab 
Interpretador de comandos e por isso 
o código gerado não precisa ser 
compilado. 
Facilidade e simplicidade da linguagem 
estruturada. 
Não há necessidade de declaração 
prévia das variáveis. 
 
29 
scripts 
 Scripts são arquivos de texto que contém 
comandos que seriam usados em um 
prompt do Scilab. 
 Por convenção estes arquivos possuem 
extensão .sce ou .sci 
 Programas em Scilab são arquivos ASCII 
(caracteres sem formatação) 
 Um programa é construído usando o editor 
SciNotes / SciPad 
 Os arquivos são executados com o comando 
exec 
 
 
30 
scripts 
31 
Abre o programa editor 
de textos SciNotes 
Abre um programa 
preexistente 
Introdução ao Scilab 32 
Programa da média 
32 
// indica que o restante da linha é um comentário 
Diálogo com o usuário Diálogo com o usuário 
clear – limpa a memória 
C
lc
 –
 l
im
p
a
 
a
 t
e
la
 
Gravando (salvando) o programa 
33 
Gravando (salvando) o programa 
34 
Introdução ao Scilab 35 
Executando o programa 
35 
Executar.
. media 
Introdução ao Scilab 36 
Execução do programa 
36 
Média... 
 Quem está aprovado? 
37 
Introdução ao Scilab 38 
Comandos de controle de fluxo - if 
if condição 
 comandos1; 
else 
 comandos 
end 
 
if condição 
 comandos; 
end 
 
if condição1 
 comandos1; 
else 
 if condição2 
 comandos2; 
 else 
 comandos3; 
 end 
end 
 
38 
Introdução ao Scilab 39 
Operadores Relacionais 
Operador Resultado 
== igual a 
~= , <> diferente de 
> maior do que 
< menor do que 
>= maior ou igual a 
<= menor ou igual a 
= é usado para atribuição e não para comparação 
39 
Introdução ao Scilab 40 
Operadores Lógicos 
Operador Descrição 
 & e 
 | ou 
 ~ não 
40 
A 
F 
F 
V 
V 
B 
F 
V 
F 
V 
A & B 
 F 
 F 
 F 
 V 
A | B 
 F 
 V 
 V 
 V 
~A 
 V 
 V 
 F 
 F 
~B 
 V 
 F 
 V 
 F 
Tabela Verdade dos operadores &, | e ~ 
Operações lógicas 
-->v = %t, f = %f 
 v = 
 T 
 f = 
 F 
 
 -->~v 
 ans = 
 F 
 
41 
-->v | f 
 ans = 
 T 
 
-->v & f 
 ans = 
 F 
 
 -->a = 7; b = 8; x = a > b 
 x = 
 F 
Introdução ao Scilab 42 
Exemplo do comando if 
42 
Introdução ao Scilab 43 
Execução do programa 
43 
Média... 
 E se a nota estiver errada? 
 
 .....15, por exemplo 
44 
Introdução ao Scilab 45 
Comandos de controle de fluxo - while 
Formato: 
 while condição 
 comandos; 
 end 
 
45 
Introdução ao Scilab 46 
Exemplo do comando while 
46 
Introdução ao Scilab 47 
Execução do programa 
47 
// Programa para calcular a media de duas notas 
clear 
clc 
nota1 = input ('Digite a primeira nota: '); 
while nota1 < 0 | nota1 > 10 
 printf ("\n %.2f - nota inválida", nota1) 
 nota1 = input ('Digite a primeira nota: '); 
end 
nota2 = input ('Digite a segunda nota: '); 
while nota2 < 0 | nota2 > 10 
 printf ("\n %.2f - nota inválida", nota2) 
 nota2 = input ('Digite a segunda nota: '); 
end 
media = (nota1 + nota2)/ 2; 
if media >= 7 then 
 result = "Aprovado"; 
else 
 if media < 3 then 
 result = "Reprovado"; 
 else 
 result = "em Final"; 
 end 
end 
printf ("\n Média = %.2f - Aluno %s \n", media, result) 
 
48 
Média... 
 E se houver mis de um aluno? 
 
 
49 
Médias.... 
50 
Médias.... 
51 
Introdução ao Scilab 52 
Execução do programa 
52 
Calculando a média geral... 
53 
// Programa para calcular a media de duas notas 
clear 
clc 
qa = 0; tm = 0; 
cont = input ('Para iniciar, digite 0: '); 
while cont == 0 
 nota1 = input ('Digite a primeira nota: '); 
 while nota1 < 0 | nota1 > 10 
 printf ("\n %.2f - nota inválida", nota1) 
 nota1 = input ('Digite a primeira nota: '); 
 end 
 
Calculando a média geral... 
54 
 nota2 = input ('Digite a segunda nota: '); 
 while nota2 < 0 | nota2 > 10 
 printf ("\n %.2f - nota inválida", nota2) 
 nota2 = input ('Digite a segunda nota: '); 
 end 
 media = (nota1 + nota2)/ 2; 
 qa = qa + 1; 
 tm = tm + media; 
 
Calculando a média geral... 
55 
 if media >= 7 then 
 result = "Aprovado"; 
 else 
 if media < 3 then 
 result = "Reprovado"; 
 else 
 result = "em Final"; 
 end 
 end 
 
Calculando a média geral... 
56 
 printf ("\n Média = %.2f - Aluno %s \n", media, result) 
 cont = input ('Para continuar, Digite 0: '); 
end 
tg = tm/ qa; 
printf ("\n Média Geral = %.2f ", tg) 
Introdução ao Scilab 57 
Execução do programa 
57 
Introdução ao Scilab 58 
Para pensar... 
Quando terminam esses comandos? 
 
1) n = 4; 
while n <= 4 
 printf ("\n x = %g", n); 
 n = n – 1; 
end 
 
2) n = 1; 
while n <= 4 
 printf ("\n x = %g", n); 
end 
 
 
58 
Comandos de controle de fluxo - for 
Formato: 
 
 for var = inicio : fim 
 comandos; 
 end 
 
 
 for var = inicio : passo : fim 
 comandos; 
 end 
 
Introdução ao Scilab 60 
Exemplo do comando for 
for i = 1:4 
 printf ("\n x = %g", n); 
end 
 
 
for i = 4: -1 :1 
 printf ("\n x = %g", n); 
end 
 
60 
Introdução ao Scilab 61 
Exemplo do comando for 
n = input (“Informe um número”); 
f = 1; 
for n = 1 : n 
 f = f * i; 
 printf(“\n %g “, i) 
end 
printf("\n Fatorial de %g = %g “, n, f); 
61 
Introdução ao Scilab 62 
Exemplo do comando for 
n=3; 
m=2; 
printf("\n Matriz A:a(i,j)=i+j\n"); 
for i=1:m 
 for j=1:n 
 a(i,j)=i+j; 
 end 
end 
disp(a) 
62 
Introdução ao Scilab 63 
Funções de entrada - input 
input( ) 
possibilita a interação entre o usuário e o programa 
 
Exemplo: 
Receber um dado numérico 
 nu = input( ‘Digite um numero qualquer: ’ ) 
 
 
 
 
Receber um dado texto 
 tx = input( ‘Digite a resposta: ’,’s’ ) 
variável string comando de 
atribuição 
solicita ao usuário que 
forneça algum dado de 
entrada 
63 
Introdução ao Scilab 64 
Funções de Saída - disp 
disp(variável) ou disp(“texto”) 
exibe na tela o valor da variável ou string colocado entre 
aspas. 
 
Exemplo: 
 
disp(‘Media Geral ’) // exibe a frase Media Geral 
 
i = 4 
disp(i) // exibe o valor armazenado na variável i (4) 
 
nome = "maria"; 
disp ("Seu nome é " + nome) // concatena os strings 
 
v=10 
disp ("A velocidade final é " + string(v)) 
 // converte numero em string e concatena 
64 
Introdução ao Scilab 65 
Funções de Saída - printf 
printf (formato, dado) 
exibe valores e texto e permite a formatação 
 
 
 
 
 
 
 
 
 
 
Exemplo: 
printf ( "\n O valor de pi = %.f \n\n",%pi ) 
 
printf ( “\n O valor de pi = %6.2f \n ",%pi ) 
 
Caractere de 
formatação 
Resultado 
%d , %i ou %g Exibe o valor como inteiro 
%f ou %x.yf Exibe o valor em formato de ponto flutuante 
%s Exibe o valor de um literal 
\n Muda de linha 
65 
Introdução à Computação 66 
Exercícios – faça programas para: 
1. Dado o raio de uma circunferência, calcular sua 
área e seu perímetro 
2. Dado um número real x, calcular e exibir as 
imagens de f(x)=5x4-x3 e de g(x)=5senx-2cosx 
3. Ler dois números inteiros e positivos X e Y e 
efetuar as operações de adição, subtração, 
multiplicação, divisão de X por Y e a raiz 
quadrada do produto de X por Y. 
4. Dada a temperatura de um corpo, em graus 
Fahrenheit, calcular e exibir o valor da referida 
temperatura em graus Celsius e em Kelvin. 
Introdução à Computação 67 
Exercícios 
5. Um aluno comprou três itens em uma 
papelaria. Para cada item são conhecidos: 
nome, preço e percentual de desconto. 
Mostrar o nome do item, o preço do item, o 
preço do item com desconto e o total a pagar 
6. Ler três valores inteiros e distintos (A, B e C) 
e apresentar o maior valor. 
7. Dados dois valores reais, apresentar a 
diferença do maior pelo menor. 
8. Dado um número inteiro positivo, informar se 
o número lido é par ou ímpar. 
Introdução à Computação 68 
Exercícios 
9. Calcular as raízes reais de uma função 
quadrática, dados os valores de a, b e c. 
 
10. Receba 2 números e, se o primeiro número for 
maior que zero e menor que 10, mostre a soma 
destes números; caso contrário, mostre a 
multiplicação deles. 
11. Receba cinco grupos de 2 números e mostre a 
soma destes números; 
12. Receba dois números e mostre o maior deles; 
13. Receba três números e mostre-os em ordem 
crescente. 
 cbxaxxf  2
Introdução à Computação 69 
Exercícios 
14. Escrever um programa que lê dois números 
inteiros: inicial e final, e mostra os números 
inteiros existentes entre o número inicial e o 
final (inclusive). Crítica: o número final deve 
ser maior do que o inicial. 
 
15. Implemente um programa que calcula a soma 
dos números pares entre dois números lidos 
(inclusive). 
 
16. Escrever programa para calcular, para N 
(inteiro) lido, o valor de S, dado por 
12
1
...
2
3
1
21 NN
NNN
S 






Introdução à Computação 70 
Exercícios 
17. Receba um valor N inteiro e positivo, calcule e mostre o 
fatorial de N (N!). 
18. Leia dez conjuntos de dois valores, o primeiro valor 
corresponde ao número do aluno, o segundo valor 
corresponde à sua altura em centímetros. Encontre e 
mostre o número e a altura do aluno mais baixo e do 
aluno mais alto. 
19.Leia cinco pares de valores (a,b), todos inteiros, 
positivos, um de cada vez. Mostre os números inteiros 
pares de a até b (inclusive). 
20.Leia o número de termos e um valor positivo para x, 
calcule e mostre o valor da série: 
...
!6!5!4!3!2!1
765432

xxxxxx
s
Vetores e matrizes 
• As grandezas vetoriais podem ser criadas 
colocando-se seus componentes entre 
colchetes [ ] 
 
• Os componentes de um vetor podem ser 
separados por vírgula, espaço ou por 
ponto-e-vírgula. 
 
71 
Vetores 
 Declaração de vetores: 
 
 X = [ x1 x2 x3 ...] vetor linha 
 
 X = [x1;x2;x3;...] vetor coluna 
 
 
 Transposição de vetores: X ’ 
 
 
72 
Vetores 
 Exercícios: 
1. Verifique a diferença entre: 
a) x = [1 2 3] d) xt = x’ 
b) y = [1,2,3] e) yt = y’ 
c) z = [1;2;3] f) zt = z’ 
 
 
2. Dados os vetores k = [1,2,3,4,5] e w = [2,4,6,8,10], 
calcule: 
 
a) i = k + w d) m = x*y’ 
b) J = k*w e) n = x’*y 
c) Transpostas de i e j f) Verifique se m = n 
 
73 
Introdução ao Scilab 74 
Exemplo de função com vetor 
--> x=0:0.1:10; 
--> plot (x,sin(x)) 
 
 
 
 
 
 
 
--> z=cos(x); 
--> plot (x,z) 
0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
74 
• 
Vetores 
V = Valor_inicial : incremento : Valor_final 
 
 Exemplos: 
 A1 = 1:10 
 B1 = 1:2:10 
 C1 = 1:0.2:10 
 D1 = 10:-1:1 
 E1 = 1:%pi:20 
 F1 = 0:log(%e):20 
 G1 = 20:-2*%pi:-10 
 
75 
• 
Vetores 
V2 = linspace (Valor_inicial, Valor_final, 
 quantidade de elementos): 
 
 Exemplos: 
 A2 = linspace (1 ,10,15) 
 B2 = linspace ( 1,2,10) 
 C2 = linspace ( 1,0.2,10) 
 D2 = linspace ( 10,-1,1) 
 E2 = linspace ( 1,%pi,20) 
 F2 = linspace ( 0,log(%e),20) 
 G2 = linspace ( 20,-2*%pi,10) 
 
76 
Matriz 
 Uma matriz geral consiste em m*n números
 dispostos em m linhas e n colunas: 
 
77 
Matriz 
 
 
 
 
 
 
 
No Scilab: 
 
-->M = [1 2 3; 4 5 6; 7 8 9] 
 M = 
 
 1. 2. 3. 
 4. 5. 6. 
 7. 8. 9. 
 
78 
Operações com vetores 
 Acessa elementos entre n e m: A(n:m) 
 Acessa último elemento: A($) 
 Acesso à coluna j: A(:,j) 
 Acesso à linha i: A(i,:) 
 Acesso à última coluna: A(:,$) 
 Acesso à ultima linha: A($,:) 
 Agrupa dois vetores: c = [x y] 
 Apaga elemento: A(i,j) = [] 
 Determinante: d = det(A) 
 Diagonal: d = diag(A) 
79 
Operações com vetores 
 Dimensão:length(A) 
 Elementos iguais a 1: U = ones(m,n) 
 Encontra um elemento: find(A operador elemento) 
 Insere coluna no final: A = [A coluna] 
 Insere elemento i no final: A = [A i] 
 Insere linha no final: A = [A;linha] 
 Matriz identidade: A = eye(m,m) 
 Matriz transposta: C = A’ 
 Multiplicação dos elementos: prod(x) 
 Multiplicação elemento: C = A.*B 
80 
Operações com vetores 
 Multiplicação por um escalar: B = a*A 
 Número de linhas e colunas: [nr,nc] = size(A) 
 Ordenação dos elementos: gsort(A) 
 Soma dos elementos: sum(A) 
 Soma: C = A + B 
 Valor máximo e posição relativa: [V,P] = max(A) 
81 
Exercícios 
1. Crie: 
a) Um vetor unitário com 10 elementos 
b) Um vetor nulo com 5 elementos 
c) Um vetor com 10 elementos aleatórios 
d) Verifique suas dimensões 
 
2. Dado o vetor X = [1 2 3 4 5]; 
a) Insira o valor 10 no final 
b) Apague o quinto elemento do vetor 
c) Atribua valor zero aos elementos entre 2 e 4 
 
3. Dados os vetores 
 X = [ e sin() log(10)] 
 Y = [10.3 1 1-2 2] 
 
 crie um vetor Z que seja dado pela união de X e Y. 
82 
Introdução ao Scilab 83 
Exercícios 
4. Desenhe a função f(x) = 2e-0,2x para o intervalo 
0≤x≤10. 
 
5. Suponha que u = 1 e v = 3. Avalie as expressões 
 a) 4u b) _2v-2___ c) v3___ d) 4_v 
 3v (u + v)2 v3 – u3 3 
 
6. Digite essas declarações. Que resultado obtém? 
 
--> // criar um array de entrada entre -2*pi e 2*pi 
--> t = -2*%pi : %pi/10 : 2*%pi; 
--> // calcular |sin(t)| 
--> x = abs(sin(t)); 
--> // plot resultado 
--> plot (t,x); 
83 
Exercícios 
7. Dadas as matrizes 
A = [1 2 3;4 5 6] e B = [7;8;9] 
Determine: 
a) A*B 
b) B*A 
c) A*identidade(A) 
d) A*ones(A) 
e) A*ones(A)’ + identidade(A) 
 
8. Dada a matriz A = [2 4 6;8 10 12; 1 2 3] 
a) Atribua valor zero à linha 3; 
b) Multiplique a linha 2 por 10; 
c) Remova a última linha 
d) Insira o vetor B = [1 2 3] na última linha de A 
 
 
84 
Exercícios 
9. Crie uma matriz 5X5 de números aleatórios. 
a) Atribua valor 0 à coluna 2. 
b) Multiplique os elementos de 2 a 4 da coluna 3 
por 10. 
c) Divida os elementos de 1 a 3 da coluna 5 por 5. 
d) Remova a coluna 3. 
e) Remova a linha 2. 
 
 
85 
 
Exercícios 
10. Dadas as matrizes 
1 3 4 6 8 9
2 3 4 9 1 3
3 3 3 6 5 3
8 8 7 9 9 2
9 8 2 3 4 1
1 1 3 8 7 9
A=
2 2 2 3 4 5
9 0 0 1 2 3
0 1 2 3 7 8
1 9 2 3 5 6
8 9 0 1 2 3
4 2 3 4 5 5
B=
Calcule: 
a) C = A + B 
b) C = A*B 
c) C = 10*A + 5*B 
d) C = A + B*%i 
e) C = A’ + rand(B) 
f) Determinante de A 
g) Determinante de B 
h) Diagonal de A 
8
Matrizes simbólicas 
Uma matriz simbólica pode ser construída com elementos do 
tipo string: 
 --> M =['a' 'b';'c' 'd'] ; 
Se atribuídos valores às variáveis pode-se visualizar a forma 
numérica da matriz com a função evstr(): 
 
Exemplo: 
--> a = 1; 
--> b = 4; 
--> c = 3; 
--> d = 5; 
--> evstr(M); 
 
87 
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: 
 
88 
Matrizes: operadores especiais 
Solução do sistema: 
x=A-1b (inversa de A multiplicada pelo vetor b) 
 
 
--> A=[1 3;3 4] 
--> b=[5;2] 
--> x=inv(A)*b 
--> w = A\b 
--> y = A^(-1)*b 
--> bc = A*x 
1x + 3y = 5
3x + 4y = 2
89 
Exercício 
1. Resolva o sistema linear. 
 
 
 
 
 
 Substitua as soluções na equação para 
confirmar a solução. 
90 
2X + 3y + 3z = 2
4x + 3y+ 2z = 1
3x + 7y + 9z = 5
2X 
Introdução ao Scilab 91 
Sistemas lineares 
 x1 + 2x2 + x3 = 5 1 2 0 x1 5 
-x1 +5x2 - 3x3 = 0 -1 5 -3 x2 = 0 
4x1 - 2x2 + x3 =3 4 -2 1 x3 3 
 
 A * X = B 
 
Solução : X = A-1. B 
--> A=[1 2 0;-1 5 -3;4 -2 1] 
--> B=[5; 0; 3] 
--> X=A\B 
--> Y= A*X 
91 
Introdução ao Scilab 92 
Exercício 
Resolver o sistema linear 
-x1 + x2 + 2x3 = 2 
3x1+ x3 = 6 
-x1 + 3x2 + 4x3 = 4 
 
92 
Introdução ao Scilab 93 
Exercício 
Resolver o sistema linear 
-x1 + x2 + 2x3 = 2 
3x1+ x3 = 6 
-x1 + 3x2 + 4x3 = 4 
 
93 
--> A = [-1 1 2; 3 –1 1; -1 3 4] 
A = 
 -1 1 2 
 3 -1 1 
 -1 3 4 
--> b = [2; 6; 4] 
b = 
 2 
 6 
 4 
--> x = A\b 
x = 
 1. 
 -1. 
 2. 
Introdução ao Scilab 94 
Exercício 
Resolva o sistema linear 
 
94 
Matrizes: operadores especiais 
Operador . (usado com outros operadores para 
 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 = 
 2. 8. 18. 
 24. 40. 72. 
 98. 128. 162. 
-->A./B 
 ans = 
 0.5 0.5 0.5 
 0.375 0.4 0.5 
 0.5 0.5 0.5 
95 
Introdução ao Scilab 96 
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". 
 
96 
Introdução ao Scilab 97 
Polinômios 
Dado p1 = 
-- > p1 = poly([1, -6, -72, -27], "x", "coeff") 
 p1 = 
 2 3 
 1 - 6x - 72x - 27x 
 
-- > r = roots(p1) // obtendo as raízes do polinômio 
 r = 
 0.0824886 
 - 0.1743828 
 - 2.5747724 
 
-->p2 = poly (r, "x", "roots") // definindo pelas raízes 
 p2 = 
 2 3 
 - 0.0370370 + 0.2222222x + 2.6666667x + x 
97 
Introdução ao Scilab 98 
Polinômios 
Polinômio definido pelas suas raízes 
-->p = poly([1 2], "s“, “roots”) 
p = 
 2 
2 - 3s + s 
--> 
Com a função roots, comprova-se que as raízes 
de p são, realmente, 1 e 2, 
-->r = roots(p) 
r = 
 1. 
 2. 
98 
Introdução ao Scilab 99 
Polinômios 
Polinômio criado a partir dos seus coeficientes. 
 Ex.: criar o polinômio q = 2s + 1 
 
-->q = poly([1 2], "s", "coeff") 
q = 
1 + 2s 
 
-->r = roots(q) 
r = 
- 0.5 
 
99 
Polinômios – Soma, Subtração, Multiplicação, Divisão 
-->s = p + q // Adição 
s = 
 2 
 3 - s + s 
 
-->sb = p - q // Subtração 
sb = 
 2 
 1 - 5s + s 
 
-->m = p * q // Multiplicação 
m = 
 2 3 
 2 + s - 5s + 2s 
100 
-->d = p / q // Divisão 
d = 
 2 
 2 - 3s + s 
 ----------- 
 1 + 2s 
 
-->[r, c] = pdiv(p,q) // c=quociente, r=resto 
c = 
 - 1.75 + 0.5s 
r = 
 3.75 
Polinômios – Soma, Subtração, Multiplicação, Divisão 
101 
Polinômios 
-->p = poly ([5, -3, 1], “x”, “c”) // definindo o polinômio 
p = 
 2 
 5 - 3x + x 
 
 
-->h = horner(h, 2) // polinômio em x = 2 
h = 
 3. 
102 
Polinômios 
Exemplo 
--> y = poly([1 2 3], ‘x’, ‘c’) 
ou 
--> x = poly(0,’x’) 
--> z = 1+2*x + 3*x^2 
 
Exercício: 
 Dados os polinômios: 
y = 6x3 + 5x2 + 4x + 1 
z =7x4 + 5x3 +3x 
 
 Calcule: 
a) y + z b) y2 + 3z c) z*y/(z3) 
d) y*z e) z/y 
103 
Polinômios 
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. 
 
Exercício: 
Dados os polinômios: 
y = 6 x5 + 10x4+ 8x3 + 10x2 + 3x + 5 
z = 5x5+ 4x4 + 3x3 + 2x 
 Calcule: 
a) suas raízes 
b) os coeficientes 
c) o resto e o quociente das divisões: 
 y/z e z/y 
104 
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] 
 
Exercício: 
 Dadas as matrizes de polinômios: 
 A = [2*x^2 + 3*x x ; 1 x^3+2]; 
 B = [3*x^4 + x^2 x^5 ; 8*x + 1 5]; 
 Calcule: 
A*B 
A/B 
Determinantes de A e B 
 
105 
Matrizes de polinômios 
Se A é uma matriz de polinômios: 
A = A(‘num’): retorna apenas os numeradores 
A = A(‘den’): retorna apenas os denominadores 
 
Exemplo: 
s = poly(0, ‘s’) 
A = [(1+2*s+3*s^3)/(s+2) 3*s+1/(2*s+1); 
 s^4/(s^2+2) 3*s^2+4*s^3] 
N = A(‘num’) 
D = A(‘den’) 
106 
Introdução ao Scilab 107 
Exercícios 
1. Desenvolva uma solução em SCILAB para 
encontrar as raízes da equação 
 y= 2x2 - 3x + 1 
 
2. Apresente o gráfico da equação com 30 
pontos entre 0 e 5 
107 
Introdução ao Scilab 108 
Exercícios 
1. Resolva o sistema linear 
 2x + 2y + 2z = 20 
 2x – 2y + 2z = 8 
 2x – 2y – 2z = 0 
2. Calcule o seno, o coseno, a tangente, a raíz 
quadrada e a raíz cúbica de x/2. 
3. Calcule o logaritmo e a raíz quadrada de -1. 
4. Calcule o valor da função ex em 100 pontos do 
intervalo [-1 . . . 1] e apresente o gráfico da 
função 
108 
Introdução ao Scilab 109 
Exercícios 
5. Calcule o valor da função 
 sin(x+pi/10) . cos(x) entre -pi e pi, 
 considerando um incremento de 0.1 entre os 
pontos e apresente o gráfico da função 
6. Calcule o produto dos polinômios 
 x6 + 10 e x2 - 2x + 3. 
7. Obtenha o polinômio cujas raízes são os 
números 1, 2 e 3. 
8. Calcule os zeros do polinômio 
 p(x) = x6 + 4x2 - 3x + 1. 
109 
Derivadas 
Derivada é o coeficiente angular da reta tangente ao gráfico de 
uma função f(x), no ponto x0 
 
 
 
 
Cálculo da derivada: derivat(p) 
 onde p é o polinômio. 
 
Avaliação da derivada em um ponto: horner(d,x) 
 onde d é a derivada do polinômio p e x é o valor da variável. 
 
Exemplo: 
 Dada a função − 0.5x5 + 3x2 + 2x + 10, determine: 
a) o valor da função para x = 2.5 
b) a derivada de f(x) 
c) o valor da derivada para x = 2.5. 
 
110 
Derivadas - Exemplo 
Dada a função − 0.5x5 + 3x2 + 2x + 10, determine: 
a) o valor da função para x = 2.5 
b) a derivada de f(x) 
c) o valor da derivada para x = 2.5. 
 
-->p = poly ([10 2 3 0 0 -0.5], "x", "coef") 
 p = 
 2 5 
 10 + 2x + 3x - 0.5x 
-->pt = horner (p, 2.5) 
 pt = 
 - 15.078125 
-->d = derivat(p) 
 d = 
 4 
 2 + 6x - 2.5x 
-->ptd = horner (d, 2.5) 
 ptd = 
 - 80.65625 
111 
Introdução ao Scilab 112 
Exercício 
1. Calcule a derivada de 
 x6 + 10 
 ------------- 
 x2 - 2x + 3. 
112 
Integrais 
A integral de uma função f(x) é outra função, 
I(x), tal que a sua derivada, I’(x), é igual à 
função f(x) 
 
 
Integral definida é aquela restrita a um 
determinado intervalo de x, x0 ≤x ≤ x1 
 
 
 
Cálculo da integral: integrate(expr, v, x0 ,x1 ) 
 onde x0 é o limite inferior e x1 é o limite 
superior. 
 113 
Integrais 
Cálculo da integral: integrate(expr, v, x0 ,x1 ) 
 onde x0 é o limite inferior e x1 é o limite 
superior. 
 
Ex.: Dada a função f(x) = sin(x), determine I(x), 
entre 0 e 1, onde : 
 
 
 
--> v = integrate('sin(x)','x',0,1) 
 v = 
 0.4596977 
114 
Listas 
agrupamento de objetos não necessariamente do mesmo tipo. 
 
 L = list(elemento1, elemento2, elemento3, …elementoaN) 
 
Exemplo: 
L = list(23,1+2*%i,'palavra',eye(2,2)) 
-->L 
 L = 
 L(1) 
 23. 
 L(2) 
 1. + 2.i 
 L(3) 
 palavra 
 L(4) 
 1. 0. 
 0. 1. 
[23, 1+2i, ‘palavra’, 1 0
0 1
]L=
115 
Listas 
Pode se criar listas dentro de listas (sublistas). 
 
Exemplo: 
 L = list(23,1+2*%i,'palavra',eye(2,2)) 
L(4) = list('outra palavra',ones(2,2)) 
 
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); 
116 
Gráficos 
Gráficos bidimensionais: 
 
plot2d (x,y,style,xtitle,rect,frameflag,nax,axesflag,logflag,leg) 
 opcionais 
 
Exemplo: 
x = [-2*%pi:0.1:2*%pi]; 
y = sin(x); 
plot2d(x,y); 
plot2d(x,y,-1); 
 
Exercício 
 Detalhe cada elemento opcional do comando plot2d 
117 
Gráficos – Comandos básicos 
clf: limpa a tela, evitando que o próximo gráfico 
se sobreponha ao anterior 
xbasc ou xbasc( ): limpa o ambiente gráfico e 
apaga os gráficos a ele associados 
xtitle (‘titulo’): apresenta o título do gráfico 
legend(‘legenda1’, ‘legenda2’,…) 
 
118 
Gráficos – Comandos básicos 
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’); 
119 
Gráficos 
Gráficos tridimensionais: 
 
 plot3d (x,y, z, theta, alpha, leg, flag, ebox) 
 opcionais 
 
Exemplo: 
Construa o gráfico, considerando as variávies: 
x = −2 : 0.1 : 2 
y = −2 : 0.1 : 2 
z = (x2)’ · y3 
 
Exercício 
 Detalhe cada elemento opcional do comando plot3d 
120 
Gráficos 
Outros gráficos: 
bar (x,width,color,style) ou bar (x,y,width,color,style) 
barh (x,width,color,style) ou barh (x,y,width,color,style) 
pie (x,[sp],[txt]) 
 
Exemplo: 
-->x = [1, 2, 3, 4, 5]; y = [5, 3, 1,-1, 1]; 
-->bar(x); 
-->barh(x,y,'red') 
-->pie(x) 
-->pie(x,[0,1,0,0,1], ['um','dois','tres','quatro','cinco']) 
 
Exercício 
 Detalhe cada elemento opcional dos comandos bar, bar e pie 
121 
Gráficos – 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)) 
122

Outros materiais