70
Introdução ao Scilab Yuri Tavares dos Passos Joel Alves de Oliveira

Aula01

Embed Size (px)

Citation preview

Page 1: Aula01

Introdução ao Scilab

Yuri Tavares dos PassosJoel Alves de Oliveira

Page 2: Aula01

Objetivos

● Introdução da ferramenta Scilab para interpretação de algoritmos

● Conceitos básicos da linguagem de programação Scilab

Page 3: Aula01

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.

Page 4: Aula01

Scilab

Page 5: Aula01

Scilab

Page 6: Aula01

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

Page 7: Aula01

Scilab

Page 8: Aula01

Ajuda no Scilab

● Clicando no ícone de ajuda, é possível procurar um termo para consulta sobre seus comandos.

● Apertando F1 também.

Page 9: Aula01

Ajuda no Scilab

Page 10: Aula01

Scilab

● Usado para análise numéricas● Algoritmos complexos podem ser

implementados rapidamente● Pode adicionar programas escritos em

outras linguagens– Fortran, C, C++, Java

Page 11: Aula01

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.

Page 12: Aula01

Scilab

● Ferramentas:– Scicos: modelador e simulador de sistemas

dinâmicos híbridos.

– Processamento de sinais.

– Grafos e Redes.

– Estatística

– entre outros

Page 13: Aula01

Scilab

● Sintaxe da sua linguagem é baseada no Matlab.– Matlab é pago

● Por ser interpretado, sua execução é mais lenta que um programa equivalente compilado.

Page 14: Aula01

Scilab

● Os modos de execução no Scilab que veremos:– Linha de comando

● Tela principal

– Scripts de execução● Usando o SciNotes

Page 15: Aula01

Linha de comando

● Comandos isolados podem ser usados no intepretador de comandos do Scilab

Page 16: Aula01

Linha de comando

● Exemplo 1– 5+5

Page 17: Aula01

Linha de comando

● Exemplo 2– -90 / (4*87)

Page 18: Aula01

Linha de comando

● Exemplo 3– 4^6

Page 19: Aula01

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.

Page 20: Aula01

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.

Page 21: Aula01

Script de execução

Page 22: Aula01

Script de execução

● Para salvar seu arquivo, clique no botão

● Escolha o diretório e salve com a extensão SCE.

Page 23: Aula01

Script de execução

● Para executar um script no Scilab, salve o seu arquivo em algum diretório e aperte no ícone:

Page 24: Aula01

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

Page 25: Aula01

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.

Page 26: Aula01

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

Page 27: Aula01

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

Page 28: Aula01

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.

Page 29: Aula01

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;

Page 30: Aula01

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.

Page 31: Aula01

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

Page 32: Aula01

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

Page 33: Aula01

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

Page 34: Aula01

Tipos de variáveis básicas● Texto

– Podem ser utilizados usando-se aspas (") ou apóstrofo (')

● Exemplos

Frase = "Estamos aprendendo Scilab."

msg = 'Hello, world.'

Page 35: Aula01

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

Page 36: Aula01

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"

Page 37: Aula01

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"

Page 38: Aula01

Operações com strings

● Exemplo 3:– A = 'Olá'

– B = ', humanos.'

– A + B = 'Olá, humanos.'

● Exemplo 4:– Nome = "André"

– Sobrenome = "Santos"

– Nome + ' ' + Sobrenome = "André Santos"

Page 39: Aula01

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”.

Page 40: Aula01

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

Page 41: Aula01

Operações aritméticas

● Exemplos– 2 * pi * raio

– ( n1 + n2 + n3 ) / 3

– 0.9 + 4 ^ 3 + 5 * 8

Page 42: Aula01

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

Page 43: Aula01

Exemplos

● altura > 1.9● idade < 10● faltas == 0● media ~= 6.0● salario >= 800.00● valor <= 100

Page 44: Aula01

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)

Page 45: Aula01

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

Page 46: Aula01

Operações lógicas

● Precedência

( ) → ~ → & → |

● Exemplos– ~( a > b ) & ( c <= d )

– ( a == b ) | ( c ~= d )

Page 47: Aula01

Algumas funções

Page 48: Aula01

Atribuição

● Comando para atribuit valores a variáveis.● Utilza-se =● Exemplos

– A = 2

– B = 'Olá'

– C = sqrt(2)

Page 49: Aula01

Atribuição

Page 50: Aula01

Atribuição

Page 51: Aula01

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")

Page 52: Aula01

Comando de leitura

● Exemplo

Page 53: Aula01

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)')

Page 54: Aula01

Comando de leitura

● Exemplo

Page 55: Aula01

Comando de leitura

● Exemplo

Page 56: Aula01

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.

Page 57: Aula01

Comando de impressão

● Exemplo

Page 58: Aula01

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.

Page 59: Aula01

Comando de impressão

● Exemplo

Page 60: Aula01

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.

Page 61: Aula01

Comando de impressão

● Com um argumento podemos apenas escrever frases.

● Exemplos:– printf("Olá, mundo!")

– printf("Olá, mundo!\n")

– printf("1\n2\n3\n4")

Page 62: Aula01

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.

Page 63: Aula01

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.

Page 64: Aula01

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.

Page 65: Aula01

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

Page 66: Aula01

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.

Page 67: Aula01

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.

Page 68: Aula01

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.

Page 69: Aula01

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.

Page 70: Aula01

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.