Introdução ao Scilab

Documentos relacionados
Introdução ao Scilab 3.0 Parte 3

Introdução ao Scilab

1 Da aula teórica ao Java

Introdução ao Scilab

Prática 10 - Funções

Comandos de entrada. Laura Goulart. 16 de Fevereiro de 2016 UESB. Laura Goulart (UESB) Comandos de entrada 16 de Fevereiro de / 11

Um algoritmo deve conter passos não ambíguos, executáveis e que sejam terminados quando seguidos.

Capítulo 10 Estruturas de controle de fluxo. Introdução ao MATLAB p.1/21

Algoritmos e Programação

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Seleção Múltipla Laços (while, do-while, for) AULA 05

Informática para Ciências e Engenharias 2014/15. Teórica 7

INTRODUÇÃO AO CÁLCULO NUMÉRICO LABORATÓRIO AULA 02 EQUAÇÕES NÃO LINEARES

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

INTRODUÇÃO AO AMBIENTE DE PROGRAMAÇÃO MATLAB

INTRODUÇÃO AO SCILAB

Aula 7. Noções Básicas de Octave

Informática para Ciências e Engenharias 2013/14. Teórica 7

ENGENHARIA DE PRODUÇÃO ICC 1 TÉCNICAS DE PROGRAMAÇÃO

BC-0005 Bases Computacionais da Ciência Aula 07 Lógica de Programação: Estruturas de repetição

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica. lmax Rodrigues. lcaroline Pereira. lnayara Medeiros

Introdução à Programação Aula 07. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

AULA TEÓRICA 03 COMANDO CONDICIONAL

Valdex Santos. 09 de junho de 2011

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015

DESENVOLVIMENTO DE SOFTWARE

Módulo 3 Controle de Fluxo

Introdução ao Scilab 3.0 Parte 2

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

Linguagem C estruturas de repetição

JavaScript (ou JScript)

Conceitos Fundamentais de MatLab/Octave. Prof. Responsáveis Wagner Santos C. de Jesus

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Laboratório de Programação I

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Introdução sobre Scilab

Material Didático Proposto

Programação Estruturada Comandos Condicionais (Decisão) Operadores Relacionais

MATLAB Avançado. Melissa Weber Mendonça

Aula Teórica 03. Comandos Condicionais (Decisão)

COMANDOS DE SELEÇÃO. > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a == Igual a ~= Diferente de

Linguagem Haskell. Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação. Tiago Carneiro 19 Agosto 2013

Linguagens de Programação

Cap. 3 Entrada e Saída e Controle de Fluxo

Breve Introdução à Programação em Scilab 6.0

Laços de repetição for, while, do-while

LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

Comandos em C (cont.)

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)

4. Constantes. Constantes pré-definidas

Aula 7 Oficina de Programação Estruturas de Repetição no C. Profa. Elaine Faria UFU

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA. ECT1203 Linguagem de Programação Turma Prof.

Capítulo 8. Estruturas de Controle no Nível de Sentença

Programação Estruturada Prof. Rodrigo Hausen Condicionais e Laços

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Programação I Estruturas de Repetição

Descobrindo Lua. Sérgio Queiroz de Medeiros. Campus Party LabLua. Sérgio Queiroz de Medeiros Descobrindo Lua 1

Introdução ao FORTRAN 90. Aula 4

LINGUAGEM C: COMANDOS DE REPETIÇÃO

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica

Introdução à Engenharia ENG1000

Unidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri

IntroduçãoaoSciLab. Prof. MosefranFIRMINO

INSTRUÇÕES DE REPETIÇÃO

INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++

Estruturas de Controle

Variáveis primitivas e Controle de fluxo

Programação de Computadores II

Programação de Computadores I. Linguagem C Estruturas de Repetição

Programação científica C++

Comandos de desvio de fluxo. Expressões lógicas.

INFORMÁTICA PARA ENGENHARIA

Breve Introdução à Programação em Scilab 6.x

Unidade 2: Algoritmos e programação

Unidade 3: Linguagem de programação

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

A Linguagem Python: Uma visão geral. Prof. Alberto Costa Neto Programação em Python

Aula 06 Lógica de Programação: Estruturas condicionais

Linguagem C Estruturas de Repetição

Controle de consistência utilizando Cálculo em BASIC

Tópicos Cap. 3 Entrada e Saída e Controle de Fluxo Livro printf e scanf if e? while for switch break continue Entrada e Saída Entrada e Saída

Introdução ao MATLAB. Parte II. Afonso Paiva ICMC-USP

Comandos de desvio de fluxo. Expressões lógicas.

Linguagens de Programação. Fluxo de Controle. Carlos Bazilio

Linguagem de Programação C

Introdução à Engenharia ENG1000

ET7DE - Instrumentação Virtual. Prof. Winderson Introdução ao LabVIEW

ESTRUTURAS DE REPETIÇÃO - PARTE 1

Cerne. Conhecimento para o Desenvolvimento (21) (11) MSN:

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

Introdução ao MATLAB. Parte 2

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

ESTRUTURAS DE CONTROLE

Transcrição:

Universidade do Estado do Rio de Janeiro Faculdade de Engenharia Laboratório de Engenharia Elétrica Introdução ao Scilab (Aula 3) Elaine de Mattos Silva Orientador: Prof. José Paulo Vilela Soares da Cunha Abril de 2007 Apoio: Programa de Estágio Interno Complementar do CETREINA/SR 1/UERJ

Contatos E mail: elaine@lee.eng.uerj.br Página do curso: http://www.lee.eng.uerj.br/~elaine/scilab.html Apostila Introdução ao Scilab versão 3.0: Prof. Paulo Sérgio da Motta Pires (UFRN) http://www.dca.ufrn.br/~pmotta

Conteúdo Geral Aula 1 O que é o Scilab Principais Características do ambiente Scilab Operações Básicas Aula 2 Polinômios, Vetores e Matrizes Aula 3 Listas Programação com Scilab Aula 4 Gráficos em Scilab Introdução ao Scicos

Aula 3 Aula 3 1 Listas Programação com Scilab 2 Características da linguagem Scilab 3 Comandos para Iterações 3.1 O laço for 3.2 O laço while 4 Comandos Condicionais 4.1 If then else 4.2 Select case

Aula 3 (cont.) Aula 3 (cont.) 5 Scripts 6 Funções 6.1 Variáveis globais x locais 7 Exercícios

1 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: list(a 1,a 2,...,a n ) onde a 1, a 2,..., a n são os elementos da lista

1 Listas (cont.) Para exemplificar criou se uma lista composta do número 23, o caracter q e uma matriz identidade 2x2. L= 23, q,[ 1 0 0 1] >L=list(23, 'q',eye(2,2)) L = L(1) //elemento 1= 23 23. L(2) //elemento 2= q q L(3) //elemento 3=matriz identidade 2x2 1. 0. 0. 1.

1 Listas (cont.) Criando sublistas: Podemos criar sublistas, ou seja, listas dentro de listas. Para exemplificar transformamos o segundo elemento da lista L em uma lista de dois elementos. Repare que o primeiro elemento continua sendo o caracter q mas o segundo elemento passa a ser uma string abc. L= 23, q,[ 1 0 0 1] L= 23, q, abc,[ 1 0 0 1]

1 Listas (cont.) >L(2)=list('q','abc') //faz L(2) = (q, abc) L = L(1) 23. L(2) L(2)(1) q L(2)(2) abc L(3) 1. 0. 0. 1.

1 Listas (cont.) Acesso a elementos de uma lista: Ex.1: acessando o primeiro elemento: >L(1) ans = 23. Ex.2: acessando o segundo elemento da sub lista dentro de L(2): >L(2)(2) ans = abc

Programação com Scilab Introdução ao Scilab (aula 3) UERJ/FEN/LEE

2 Características da Linguagem Scilab O Scilab é um 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.

3 Comandos para Iteração Existem duas estruturas de controle iterativo no Scilab: o laço for e o comando while.

3 Comandos para Iteração 3.1 O laço for Forma geral: for variavel = vetor_linha ou lista instrucao_1 instrucao_2 instrucao_3 end O comportamento das iterações é baseado no vetor linha ou na lista. Se o vetor tem 3 elementos, existirão 3 iterações.

3 Comandos para Iteração (cont.) 3.1 O laço for Ex.1(usando variável tipo vetor): m=1:3; for k=m a=k+1 end >m=1:3; >for k=m >a=k+1 >end a = 2. a = 3. a = 4.

3 Comandos para Iteração (cont.) 3.1 O laço for Ex.2 (usando variável tipo vetor): y=0; m=3:5; for k=m, y=y+k,end >y=0; >for k=3:5,y=y+k,end y = 3. y = 7. y = 12.

3 Comandos para Iteração (cont.) 3.1 O laço for Ex.3 (usando variável tipo lista): L=list(2, [2 4;6 8], 'exemplo'); for k=l,disp(k), end >L=list(2,[2 4;6 8], 'exemplo'); >for k=l,disp(k),end // 2. 2. 4. 6. 8. exemplo

3 Comandos para Iteração (cont.) 3.2 O laço while Forma geral: while condicao instrucao_1 instrucao_2...... instrucao_n end O laço while repete uma seqüência de instruções enquanto uma condição for satisfeita. Útil quando não se sabe o número de iterações.

3 Comandos para Iteração (cont.) 3.2 O laço while Operadores permitidos: == ou = (igual a) < (menor que) > (maior que) <= (menor ou igual) >= (maior ou igual) <> ou ~= (diferente)

3 Comandos para Iteração (cont.) 3.2 O laço while Ex.1: x=1; while x<14 end x = 2*x >x=1; >while x<14 //enquanto x for menor que 14 >x=2*x //instrucao : faca x = 2x >end x = 2. //x=1*2=2 x = 4. //x=2*2=4 x = 8. //x=4*2=8 x = 16. //x=8*2=16. Como x>14 o loop termina.

4 Comandos Condicionais Comandos condicionais são usados para executar seqüências de instruções a partir da avaliação de condições booleanas.

4 Comandos Condicionais 4.1 if then else Forma simples: if condicao_1 then sequencia_1 else sequencia_2 end Avalia a condicao_1 se ela for verdadeira (T, true) executa a sequencia_1, caso contrário executa a sequencia_2.

4 Comandos Condicionais (cont.) 4.1 if then else Forma geral: if condicao_1 then sequencia_1 elseif condicao_2 sequencia_2 else sequencia_3 end Se a condicao_1 for verdadeira executa a sequencia_1. Se a condicao_1 for falsa avalia a condicao_2 e assim por diante. Se todas as condições são falsas executa a sequencia_3.

4 Comandos Condicionais (cont.) 4.1 if then else Ex.1(forma simples): >x= 1; >if x<0 then //se x for menor que 0 >y= x; //faca y= x >else //caso contrario >y=x; //faca x=x >end >disp(y) //mostra valor de y 1.

4 Comandos Condicionais (cont.) 4.1 if then else Ex.2(forma geral): >x=10; >if x<0 then >y=x; >elseif x==1 >y=2*x; >elseif x==2 >y=3*x; >elseif x==3 >y=4*x; >else >y=5*x; >end >disp(y) 50.

4 Comandos Condicionais (cont.) 4.2 select case Forma geral: select variavel_de_teste case expressao_1 sequencia_1 case expressao_n sequencia_n else sequencia_n+1 end O valor da variavel_de_teste é comparado às expressões. Se os valores são iguais, a seqüência correspondente é executada.

4 Comandos Condicionais (cont.) 4.2 select case Ex.: >M=['a' 'b']; //define matriz simbolica >select M(1,2) //seleciona elemento (1,2) de M >case 'a' //se o elemento (1,2)=a >disp('letra a encontrada') //escreve 'letra a...' >case 'b' //se o elemento (1,2)=b >disp ('letra b encontrada') //escreve 'letra b...' >end

5 Scripts Os scripts são arquivos de texto puro que contém comandos que seriam usados em um prompt do Scilab. Por convenção estes arquivos possuem extensão.sce Os arquivos são criados no editor de texto do Scilab, o Scipad(ou em qualquer outro editor de texto). Os arquivos são executados no Scilab: com o comando exec, ou com o menu File> File Operations selecionando o arquivo e clicando no botão exec

5 Scripts (cont.) Ex.1 script que calcula as raízes quadradas dos números inteiros de 10 a 10. Obs.: Este script deve ser digitado em um editor de textos e salvo com a extensão.sce //script que calcula raizes dos numeros inteiros //de 10 a 10 n=0; for x= 10:10 n=n+1; y(n)=sqrt(x); end y

5 Scripts (cont.) Para executar este script use o comando exec nome_do_script.sce no prompt do Scilab: >exec raizes.sce //chamando o script raizes.sce >//script que calcula as raízes quadradas dos números inteiros de 10 a 10. >n=0; >for x= 10:10 >n=n+1; >y(n)=sqrt(x); >end >y y = 3.1622777i 3.i 2.8284271i 2.6457513i...

5 Scripts (cont.) Caso o comando exec seja executado com ' ; ' (ponto e vírgula) no fim apenas os resultados são apresentados: >exec raizes.sce; y = 3.1622777i 3.i 2.8284271i 2.6457513i 2.4494897i 2.236068i 2.i 1.7320508i 1.4142136i i 0 1....

6 Funções É possível definir novas funções no Scilab; O que distingue uma função de um script é que a função possui um ambiente local, separado do global, mas que se comunica através de argumentos de entrada e saída; Variáveis definidas no escopo da função (variáveis locais) não permanecem no ambiente após a execução da função;

6 Funções Definição : Uma função pode ser definida de três formas: no ambiente Scilab; usando o comando deff ou digitando o texto no Scipad e clicando no menu Execute, opção load into Scilab

6 Funções Definição no ambiente: 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 executadas pela função.

6 Funções (cont.) Ex.(definição no ambiente): >function[y1]=funcao1(x1,x2) >y1=x1+x2 >endfunction >[a]=funcao1(1,2) //chamando a funcao a = 3. >//o valor da função retorna na variavel 'a'

6 Funções (cont.) Definição usando o comando deff: deff('[y1,...,yn]=nome_da_funcao(x1,...,xm)','instrucao_1,...,instrucao_p') onde: x1,...,xm são os argumentos de entrada; y1,...,yn são argumentos de saída e instrucão1,...,instrucao_p são as instruções executadas pela função.

6 Funções (cont.) Ex.(definição usando o comando deff): >deff('[y1]=funcao2(x1,x2)', 'y1=x1+x2') >[a]=funcao2(1,2) //chamando a funcao a = 3.

6 Funções (cont.) 6.1 variáveis globais x variáveis locais Variáveis globais são válidas no ambiente Scilab; Variáveis locais são válidas apenas no escopo de uma função. Ex. variáveis globais: >x3=5; >function[y1]=f(x1,x2) >y1=x1+x2+x3 >endfunction >[r1]=f(1,3) //entrada=(1,3), saída=[r1] r1 = 9.

6 Funções (cont.) 6.1 variáveis globais x variáveis locais Ex. variáveis locais: >function[y1]=f(x1,x2) >y1=x1+x2 >endfunction >[r1]=f(1,3) //entrada=(1,3), saída=[r1] r1 = 4. >y1 //y1 nao existe fora da funcao! error 4 undefined variable : y1

Exercícios Introdução ao Scilab (aula 3) UERJ/FEN/LEE

7 Exercícios 7.1 Exercícios com scripts Calcular 2 usando o método de Newton Raphson. A raiz de uma função, f(x) pode ser obtida através da expressão: x i 1 =x i f x i f ' x i

7 Exercícios 7.1 Scripts 2 A função que permite calcular é: f x =x 2 2 usando a fórmula de Newton Raphson: x i 1 =x i x2 2 2 x

7 Exercícios 7.1 Scripts É necessária uma aproximação inicial. Podemos dizer o resultado será próximo de 1, então fazemos x 0 =1. Façamos i variar de 1 a 10, completando 10 iterações. Consideremos um erro de 10 5.

7 Exercícios 7.1 Scripts Script para calcular a raiz de 2 através do método de Newton Raphson* N = 10; x0 = 1.0; erro = 10^( 5); //número máximo de iterações //aproximação inicial xn = x0; //valor inicial da raiz for n = 1:N xn1 = xn (xn * xn 2)/(2 * xn); if abs((xn1 xn) / xn1) < erro then printf( ' Valor da raiz = %10.7f ', xn1 ) return end end xn = xn1; * este script foi retirado da apostila Introdução ao Scilab ver referências no fim destes slides

7 Exercícios 7.1 Exercícios com scripts (cont). Digite este script no editor do Scilab e execute o no ambiente Scilab clicando em Execute > Load into Scilab' ; O resultado esperado é: > Valor da raiz = 1.4142136

7 Exercícios 7.2 Exercícios com funções Calcular o fatorial de um número usando uma função recursiva: Para calcular o fatorial definiremos a função fat(x). Dizemos que ela é recursiva porque chama a si mesma. Para definir a função usamos o editor do Scilab: function y = fat(x) if x <= 1 then y = 1; else y = x*fat(x 1); end endfunction

Introdução ao Scilab (aula 1) 3) UERJ/FEN/LEE Referências Pires, P.S.M. (2004). Introdução ao Scilab, Rio Grande do Norte. Noble, B. e Daniel, J.W. (1986). Álgebra Linear Aplicada, Prentice Hall do Brasil, Rio de Janeiro.