Vous êtes sur la page 1sur 122

Universidade Federal de Minas Gerais Departamento de Ciˆencia da Computa¸c˜ao do ICEx

Fundamentos de SCILAB

vers˜ao preliminar

Frederico F. Campos, filho

setembro de 2008

Pref´acio

O SCILAB ´e um software para computa¸c˜ao cient´ıfica e visualiza¸c˜ao, gratuito, com c´odigo

fonte aberto e interface para as linguagens FORTRAN e C. Ele permite a solu¸c˜ao de problemas num´ericos em uma fra¸c˜ao do tempo que seria necess´ario para escrever um programa em uma linguagem como FORTRAN, Pascal ou C, devido `as suas centenas de fun¸c˜oes matem´aticas.

O SCILAB ´e desenvolvido pelo INRIA ( Institut National de Recherche en Informatique

´

et en Automatique ) e ENPC ( Ecole Nationale des Ponts et Chauss´ees ) da Fran¸ca. Em www.scilab.org est˜ao dispon´ıveis v´arias informa¸c˜oes, documenta¸c˜ao e instru¸c˜oes de como baixar o programa. As vers˜oes do SCILAB est˜ao dispon´ıveis na forma pr´e-compilada para

diversas plataformas: Linux, Windows, HP-UX e Mac OSX . Como o c´odigo fonte tamb´em est´a dispon´ıvel, ele pode ser compilado para uso em um computador espec´ıfico.

O objetivo deste texto ´e apresentar o SCILAB (vers˜ao 4.1.2) como uma linguagem de pro-

grama¸c˜ao dotada de fun¸c˜oes n˜ao dispon´ıveis nas linguagens convencionais. Por isto, este ma-

terial pode ser utilizado em disciplinas, tais como, Programa¸c˜ao de Computadores, C´alculo

´

Num´erico, An´alise Num´erica, Algebra Linear e quaisquer outras dos cursos de Engenharia e das ´areas de Ciˆencias Exatas. Tamb´em, s˜ao exploradas algumas caracter´ısticas pr´oprias que mostram por que o SCILAB ´e uma poderosa ferramenta de apoio ao aprendizado e utiliza¸c˜ao da Computa¸c˜ao Cient´ıfica.

No Cap´ıtulo 1 ´e descrito o ambiente de programa¸c˜ao do SCILAB mostrando a janela de comandos e como obter informa¸c˜oes de comandos durante a sess˜ao. O Cap´ıtulo 2 apre- senta as estruturas de dados suportadas pelo SCILAB, como constantes, vetores, matrizes, hipermatrizes, polinˆomios e listas. No Cap´ıtulo 3 s˜ao mostradas as express˜oes aritm´eticas, l´ogicas e literais, bem como, o modo de execut´a-las. O Cap´ıtulo 4 apresenta os formatos de exibi¸c˜ao, grava¸c˜ao e leitura de vari´aveis do espa¸co de trabalho, al´em de leitura de grava¸c˜ao de dados em arquivos. No Cap´ıtulo 5, o SCILAB ´e visto como uma linguagem de pro- grama¸c˜ao, sendo mostrado como escrever programas e fun¸c˜oes, estruturas condicionais e de repeti¸c˜ao e depura¸c˜ao de programas. O Cap´ıtulo 6 ´e dedicado `a elabora¸c˜ao de gr´aficos bi e tridimensionais. Finalmente, o Cap´ıtulo 7 apresenta func˜¸oes do SCILAB para resolver problemas de Computa¸c˜ao Cient´ıfica.

Sugest˜oes para aprimorar o presente texto, bem como, para efetuar corre¸c˜oes ser˜ao bem- vindas pelo e-mail : ffcampos@dcc.ufmg.br.

Belo Horizonte, setembro de 2008.

Frederico F. Campos, filho DCC.ICEx.UFMG

Sum´ario

1 Ambiente de programa¸c˜ao

 

1

1.1 Janela de comando

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1

1.1.1 Espa¸co de trabalho

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

3

1.1.2 Mudan¸ca do diret´orio corrente .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

1.1.3 Gerenciamento de arquivos .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

1.2 Comandos de aux´ılio ao usu´ario

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

1.2.1 Comando help

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

5

1.2.2 Comando apropos

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

5

1.2.3 Menu de barras

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

1.3 Exerc´ıcios

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

2 Estruturas de dados

 

9

2.1

Constantes

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

9

2.1.1 Num´ericas

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

9

2.1.2 L´ogicas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

Literais

2.1.3 .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

 

iii

iv

´

SUM ARIO

2.2 Vari´aveis

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

2.2.1 Regras para nomes de vari´aveis

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

2.2.2 Comando de atribui¸c˜ao .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

2.2.3 Vari´aveis especiais

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

11

2.3 Vetores .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

12

2.4 Matrizes

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

15

2.5 Hipermatrizes

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

24

2.6 Polinˆomios

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

25

2.6.1 Constru¸c˜ao

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

25

2.6.2 Avalia¸c˜ao

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

26

2.6.3 Adi¸c˜ao e subtra¸c˜ao

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

26

2.6.4 Multiplica¸c˜ao

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

27

2.6.5 Divis˜ao .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

27

2.6.6 Deriva¸c˜ao

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

28

2.6.7 C´alculo de ra´ızes

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

28

2.7 Vari´aveis l´ogicas

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

29

2.8 Vari´aveis literais

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

30

2.9 Listas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

30

2.10 Exerc´ıcios

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

31

3 Express˜oes

33

3.1

Express˜oes aritm´eticas

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

33

´

SUM ARIO

v

 

3.1.1 Express˜oes vetoriais .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

34

3.1.2 Express˜oes matriciais

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

35

3.2 Express˜oes l´ogicas

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

39

3.3 Express˜oes literais

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

41

 

3.3.1 Convers˜ao de caracteres

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

41

3.3.2 Manipula¸c˜ao de caracteres

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

44

3.4 Execu¸c˜ao de express˜oes

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

49

3.5 Exerc´ıcios

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

50

4

Comandos de entrada e sa´ıda

 

53

4.1 Formato de exibi¸c˜ao

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

53

4.2 Espa¸co de trabalho

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

55

 

4.2.1

Gravar dados

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

56

4.2.2

Recuperar dados

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

56

4.2.3

Entrada de dados

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

57

4.2.4

Janela de mensagem

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

57

Di´ario

4.3 .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

59

4.4 Leitura e grava¸c˜ao de dados

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

59

 

4.4.1 Abertura de arquivo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

60

4.4.2 Fechamento de arquivo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

60

4.4.3 Grava¸c˜ao em arquivo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

61

4.4.4 Leitura em arquivo

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

61

vi

´

SUM ARIO

4.5

Exerc´ıcios

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

63

5 Linguagem de programa¸c˜ao

 

65

5.1

Programa¸c˜ao

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

65

5.1.1 Programa

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

65

5.1.2 Subprograma function

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

67

5.2

Estruturas condicionais

 

.

.

.

.

.

.

.

.

.

.

.

.

.