Upload
yuri-passos
View
179
Download
1
Embed Size (px)
Citation preview
Introdução ao Scilab
Yuri Tavares dos PassosJoel Alves de Oliveira
Objetivos
● Introdução da ferramenta Scilab para interpretação de algoritmos
● Conceitos básicos da linguagem de programação Scilab
Scilab
● O Scilab é um software científico para computação numérica e prototipação– Semelhante ao Matlab
– Gratuito
● Disponível em http://www.scilab.org/– Linux, Window e Mac.
Scilab
Scilab
Scilab
● Além de exibição de gráficos e comandos também pode ser usado para escrita de algoritmos.
● Para abrir o editor de algoritmos, clique no ícone do SciNotes
Scilab
Ajuda no Scilab
● Clicando no ícone de ajuda, é possível procurar um termo para consulta sobre seus comandos.
● Apertando F1 também.
Ajuda no Scilab
Scilab
● Usado para análise numéricas● Algoritmos complexos podem ser
implementados rapidamente● Pode adicionar programas escritos em
outras linguagens– Fortran, C, C++, Java
Scilab
● Existem ferramentas embutidas no Scilab para:– gráficos 2D e 3D, animação.
– Álgebra linear, matrizes esparsas
– Polinômios e funções racionais
– Interpolação, aproximação
– Simulação: resolvedor de sistemas de equações diferenciais explícitos e implícitos.
Scilab
● Ferramentas:– Scicos: modelador e simulador de sistemas
dinâmicos híbridos.
– Processamento de sinais.
– Grafos e Redes.
– Estatística
– entre outros
Scilab
● Sintaxe da sua linguagem é baseada no Matlab.– Matlab é pago
● Por ser interpretado, sua execução é mais lenta que um programa equivalente compilado.
Scilab
● Os modos de execução no Scilab que veremos:– Linha de comando
● Tela principal
– Scripts de execução● Usando o SciNotes
Linha de comando
● Comandos isolados podem ser usados no intepretador de comandos do Scilab
Linha de comando
● Exemplo 1– 5+5
Linha de comando
● Exemplo 2– -90 / (4*87)
Linha de comando
● Exemplo 3– 4^6
Linha de comando
● Se for colocado um ponto-e-vírgula (;) após um comando, não é escrito o resultado após sua execução.– Vejamos os exemplos anteriores.
Script de execução
● O script de execução é um arquivo que possui sequências de comandos que serão executadas sequencialmente pela linha de comando do Scilab.
● É possível usar comandos de seleçao e de repetição dentro destes scripts para escrever algoritmos estruturados.– Objetivo desta segunda unidade.
Script de execução
Script de execução
● Para salvar seu arquivo, clique no botão
● Escolha o diretório e salve com a extensão SCE.
Script de execução
● Para executar um script no Scilab, salve o seu arquivo em algum diretório e aperte no ícone:
Script de execução
● Também pode executar pela linha de comando com o comando exec.
exec(<arquivo>,<modo>)
● onde
<arquivo> é a localização do arquivo de script entre aspas (") ou apóstrofos (').
<modo> é um número inteiro, que indica o modo de execução
Script de execução
● Modos:– -1: Não exibe os valores das variáveis enquanto executa
– 0: valor padrão, utilizando as configurações padrão– 1: exibe a execução entre cada comando
– 2 : prompt --> é impresso
– 3 : ecos + prompts
– 4 : pára antes de cada prompt. A execução retorna após cada ENTER.
– 7 : paradas + prompts + ecos : útil para demos.
Script de execução
● Exemplo 1– Assuma uso no Linux e que seu script se
chama aula01_1.sce e está no diretório /home/yuri/Desktop/aulas/ufs/ICC/aula/codigos/
● exec('/home/yuri/Desktop/aulas/ufs/ICC/aula/codigos/aula01_1.sce', -1)
– Com o modo igual a -1, nada será impresso enquanto executa
Script de execução
● Exemplo 2– Assuma que esteja usando o Windows, o
arquivo se chama teste.sce e se localiza no diretório C:\Users\Yuri\Desktop\
● exec('C:\Users\Yuri\Desktop\teste.sce', 7)
– Com o modo igual a 7, a cad comando você deverá apertar ENTER
Variáveis
● Variáveis podem ser criadas sem declaração prévia.
● Através da atribuição de valores, o Scilab descobre o tipo da variável.
Variáveis
● Os nomes de variáveis (também conhecidos por identificadores) devem seguir as seguintes regras:– Nomes de variáveis começam com uma letra
seguido de letras, algarismos ou sublinhados.
– Caracteres especiais não são permitidos.● #, $, &, %, ?, !, @, <, ~, etc;
– Caracteres acentuados não são permitidos;
Variáveis
● Regras para formação de identificadores (continuação):– Nomes de variáveis são sensíveis a maiúsculas
e minúsculas.● Por exemplo, a variável Alpha é diferente das
variáveis ALPHA, alpha e AlPhA.
Variáveis
● De acordo com estas regras, quais destas são válidas?
Alpha B1 A/B nota[1] B2 b1
ALPHA A1 B23 matricula notas 5B
MEDIA 1b X@Z cor_do_objeto X bg
Variáveis
● De acordo com estas regras, quais destas são válidas?
Alpha B1 A/B nota[1] B2 b1
ALPHA A1 B23 matricula notas 5B
MEDIA 1b X@Z cor_do_objeto X bg
Tipos de variáveis básicas● Números
– Podem ser valores numéricos, sejam inteiros, reais ou complexos.
– Números complexos podem ser utilizados usando-se %i para parte imaginária.
● Exemplos
A = 2
B = 3.14
C = 3 + 5*%i
Tipos de variáveis básicas● Texto
– Podem ser utilizados usando-se aspas (") ou apóstrofo (')
● Exemplos
Frase = "Estamos aprendendo Scilab."
msg = 'Hello, world.'
Tipos de variáveis básicas● Lógicos
– Valores verdadeiros são representados por %t ou %T e falsos por %f ou %F.
● Exemplo
achou = %t
presente = %T
esta_confuso = %f
eh_feriado = %F
Tipos de variáveis
● Uma variável muda seu tipo ao ser-lhe atribuída um valor de tipo diferente.
● Exemplo:
A = 4
A = "ola"
Operações com strings
● O operador '+' pode ser usado para concatenar duas strings.
● Exemplo 1:– 'Rio' + ' de ' + 'Janeiro' = "Rio de Janeiro"
● Exemplo 2:– "Jo" + "ão " + " Silva" = "João Silva"
Operações com strings
● Exemplo 3:– A = 'Olá'
– B = ', humanos.'
– A + B = 'Olá, humanos.'
● Exemplo 4:– Nome = "André"
– Sobrenome = "Santos"
– Nome + ' ' + Sobrenome = "André Santos"
Operações com strings
● É possível converter números para texto usando o comando string
● Sintaxe:– string(<expressão>)
● Exemplos– S = string(9)
– Suponha a = 14. S = string(a) retorna “14”.
Operações aritméticas
● Os operadores aritméticos em Scilab são:
● A precedência é a mesma da usada nos algoritmos, podendo ser alterada através do uso de parênteses
Operação Símbolo Descrição
Adição + Realiza a soma entre dois operandos
Subtração - Realiza a subtração entre dois operandos
Multiplicação * Realiza a mutiplicação entre dois operandos
Divisão / Realiza a divisão entre dois operandos
Potenciação ^ Retorna o resultado de uma base elevada ao seu expoente
Operações aritméticas
● Exemplos– 2 * pi * raio
– ( n1 + n2 + n3 ) / 3
– 0.9 + 4 ^ 3 + 5 * 8
Operações relacionais
● São utilizados para construção de expressões cuja avaliação retorna %t ou %f. Relação Operador Exemplo Descrição
Igual == a == b Verifica se a é igual a b
Diferente ~= a ~= b Verifica se a é diferente de b
Maior > a > b Verifica se a é maior que b
Menor < a < b Verifica se a é menor que b
Maior ou Igual >= a >= b Verifica se a é maior ou igual a b
Menor ou Igual <= a <= b Verifica se a é menor ou igual a b
Exemplos
● altura > 1.9● idade < 10● faltas == 0● media ~= 6.0● salario >= 800.00● valor <= 100
Operações lógicas
● Operações capazes de conectar duas operações relacionais ou lógicas e retornar um valor lógico.Operação Resultado
& Será verdadeiro (%T), quando todos os operandos forem verdadeiro, caso contrário será falso (%F)
| Será verdadeiro (%T), quando todos os operandos forem verdadeiro, caso contrário será falso (%F)
~ Inverte o valor da expressão lógica (verdadeiro passa a ser falso e falso passa a ser verdadeiro)
Operações lógicas
● Tabelas-verdades
p q p & q
V V V
V F F
F V F
F F F
p q p | q
V V V
V F V
F V V
F F F
p ~p
V F
F V
Operações lógicas
● Precedência
( ) → ~ → & → |
● Exemplos– ~( a > b ) & ( c <= d )
– ( a == b ) | ( c ~= d )
Algumas funções
Atribuição
● Comando para atribuit valores a variáveis.● Utilza-se =● Exemplos
– A = 2
– B = 'Olá'
– C = sqrt(2)
Atribuição
Atribuição
Comando de leitura
● Usa-se o comando input● Sintaxe para números
– <Variável> = input(<Texto para exibição>)
● Sintaxe para texto– <Variável> = input(<Texto para exibição>,"s")
Comando de leitura
● Exemplo
Comando de leitura
● Usa-se também o comando read para ler valores para variáveis.
● Sintaxe para números:– <Variável> = read(%io(1),1,1)
● Sintaxe para texto– <Variável> = read(%io(1),1,1,'(a)')
Comando de leitura
● Exemplo
Comando de leitura
● Exemplo
Comando de impressão
● Para impressão na tela de informações pode-se utilizar o comando disp.
● Sintaxe:– disp(<variável>)
– disp(<variável 1>, <variável 2>, …, <variável n>)
● OBS: ao utilizar várias variáveis, a ordem de impressão será invertida.
Comando de impressão
● Exemplo
Comando de impressão
● Também pode ser feito com o comando write.
● Sintaxe:– write(%io(2),<Variável>)
● OBS: O comando write aceita somente uma variável.
Comando de impressão
● Exemplo
Comando de impressão
● Outro comando para impressão é o printf.● O printf vem da linguagem C e seu uso é
idêntico. ● O comando printf() possui 1 ou mais
argumentos.– O primeiro argumento é um texto.
– Os demais argumentos são opcionais e representam expressões.
Comando de impressão
● Com um argumento podemos apenas escrever frases.
● Exemplos:– printf("Olá, mundo!")
– printf("Olá, mundo!\n")
– printf("1\n2\n3\n4")
Comando de impressão
● Para escrevermos os valores das variáveis com printf, deve-se utilizar os argumentos opcionais, de tal forma que cada argumento corresponde a aparição da variável na frase que será escrita.
● Além disso, é necessário especificar a posição na frase em que a variável irá aparecer e o tipo de variável.
Comando de impressão
● Existem várias especificações de tipos que podem ser impressos pelo printf. Apenas os mais usuais serão mostrados a seguir.
Comando de impressão
● %i ou %d: números inteiros decimais.● %x, %X: números inteiros hexadecimais
com letras minúsculas e letras maíusculas, respectivamente.
● %f: números reais.● %e, %E: representa em notação científica
com e ou E, respectivamente.
Comando de escrita (impressão)● %g: Usa a menor versão entre %f e %e.● %G: Usa a menor versão entre %f e %E.● %s: frases literais armazenadas em
variáveis para texto
Comando de impressão
● Exemplos– printf("O valor é %f.", %pi)
● O valor é 3.1415
– printf("O valor é %e.", 186000000000000)● O valor é 1.860000e+14.
– printf("O valor é %E.", 186000000000000)● O valor é 1.860000E+14.
Comando de impressão
● Exemplos– printf("Dois valores são %g e %g.",
%pi,93000000.0);● Dois valores são 3.14159 e 9.3e+07.
– printf("Dois valores são %G e %G.",%pi,93000000.0);
● Dois valores são 3.14159 e 9.3E+07.
Exercícios
● Elaborar um programa que receba a idade de uma pessoa em número de anos, calcule e escreva essa idade em meses, dias, horas e minutos.
● Elaborar um programa para calcular a diferença de preços de um determinado produto, comparando os preços de compra atual e anterior. O programa deve obter os preços atual e anterior e exibir a diferença algébrica e de percentual dos preços.
Exercícios
● Escrever um programa para efetuar o cálculo da quantidade de litros de combustível gastos em uma viagem, sabendo-se que o veículo faz 9 km/litro. O usuário informará a velocidade média e o tempo despendido na viagem. (Obter o tempo em horas e minutos, em separado). O programa deve apresentar a distância percorrida e a quantidade de litros gastos.
● Dados os comprimentos dos catetos de um triângulo retângulo, preparar um programa para determinar e imprimir o comprimento da hipotenusa.
Exercícios
● Elaborar um programa para calcular a área de um círculo, obtendo como entrada a medida do raio(r). A fórmula da área é π*r2.
● Em certa disciplina, a nota média do aluno é calculada com base em três provas. A primeira prova tem peso 3, a segunda tem peso 3 e a terceira tem peso 4. Fazer um programa para calcular e apresentar a nota média, tendo como dados de entrada o nome do aluno e as notas referentes as três provas e como saída o nome e a média calculada.