Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


scilab ufmg, Notas de estudo de Engenharia Civil

apostila programa scilab

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 04/09/2010

evalder-almeida-10
evalder-almeida-10 🇧🇷

5

(1)

1 documento

1 / 99

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Programando com Scilab
Versão 0.2
E. G. M. de Lacerda
Departamento de Engenharia de Computação e Automação (DCA)
UFRN
19 de agosto de 2005
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63

Pré-visualização parcial do texto

Baixe scilab ufmg e outras Notas de estudo em PDF para Engenharia Civil, somente na Docsity!

Programando com Scilab

Versão 0.

E. G. M. de Lacerda

Departamento de Engenharia de Computação e Automação (DCA)

UFRN

[email protected]

19 de agosto de 2005

Resumo

Este curso apresenta a linguagem de programação do Scilab da mesma forma que um curso tradicional de introdução a programação. O Scilab é um ambiente de programa- ção dedicado a resolução de problemas científicos e de engenharia. Ele está disponível^1 para vários sistemas operacionais tais como o MS-Windows, Linux, UNIX e Macintosh. O material deste curso pode ser usado em qualquer um desses sistemas. Procure seu professor ou seu centro de computação local para informações sobre como o Scilab está instalado localmente.

(^1) Página do Scilab: http://www.scilab.org

  • 1 Preliminares
    • 1.1 Usando o Scilab como uma Simples Calculadora
    • 1.2 Variáveis e o Comando de Atribuição
      • 1.2.1 Regras para Formação de Nomes de Variáveis
      • 1.2.2 O Ponto e Vírgula
    • 1.3 Expressões Aritméticas
      • 1.3.1 Funções Matemáticas Comuns
      • 1.3.2 Funções de Arredondamento
      • 1.3.3 Ordem de Avaliação entre Operadores Aritméticos
    • 1.4 Strings
    • 1.5 Números Complexos
    • 1.6 O Espaço de Trabalho
      • 1.6.1 O Comando Clear
      • 1.6.2 Os Comandos Save e Load
    • 1.7 Formato de Visualização dos Números
    • 1.8 Constantes Especiais do Scilab
    • 1.9 A Variável ans
    • 1.10 Ajuda
    • 1.11 Exercícios
  • 2 Arquivos de Scripts
    • 2.1 Comando de Entrada de Dados
    • 2.2 Comandos de Saída de Dados
    • 2.3 Arquivos de Scripts
    • 2.4 Criando Arquivos de Script
    • 2.5 Executando Arquivos de Scripts
    • 2.6 Exemplos
    • 2.7 Linhas de Comentários
    • 2.8 Alterando o Diretório de Trabalho
  • 3 Estruturas de Seleção
    • 3.1 Estruturas de Controle
    • 3.2 Expressões Booleanas
    • 3.3 Variáveis Booleanas
    • 3.4 Tipos de Dados Primitivos
    • 3.5 Ordem de Avaliação entre os Operadores
    • 3.6 A Seleção Simples IF-END
    • 3.7 A Seleção Bidirecional IF-ELSE-END
    • 3.8 Aninhando Seletores
  • 4 Estruturas de Repetição
    • 4.1 Laços
    • 4.2 Laço Controlado Logicamente
    • 4.3 Laço Controlado por Contador
    • 4.4 Laços Aninhados
  • 5 Matrizes
    • 5.1 Vetores
      • 5.1.1 Acessando Elementos do Vetor
    • 5.2 Matrizes Bidimensionais
    • 5.3 Vetores de String
    • 5.4 Estudo de Caso
    • 5.5 Exemplos com Matrizes
      • 5.5.1 Ordenação de Vetores
      • 5.5.2 Gerando Números Aleatórios
      • 5.5.3 Uma Aplicação de Matrizes
  • 6 Manipulação Matricial
    • 6.1 Construção de Matrizes
    • 6.2 Secionamento de Matrizes
      • 6.2.1 Indexação Linear
    • 6.3 O Operador $
    • 6.4 Atribuição
    • 6.5 Dimensão de Matrizes
    • 6.6 Operações Escalar-Matriz
    • 6.7 Operações Matriz-Matriz
    • 6.8 Solução de Sistemas de Equações Lineares
    • 6.9 Transposta de Matrizes Complexas
    • 6.10 Zeros e Ones
  • 7 Funções
    • 7.1 Introdução
    • 7.2 Parâmetros de Entrada e Saída
    • 7.3 Funções Definidas pelo Usuário
    • 7.4 A Idéia Básica das Funções
    • 7.5 Escopo de Variáveis
      • 7.5.1 Variáveis Locais
      • 7.5.2 Variáveis Globais
    • 7.6 Os Programas do Scilab
    • 7.7 Passagem de Parâmetros
    • 7.8 Exemplos
    • 7.9 O Comando return
    • 7.10 Estudo de Caso: Um Programa de Estatística
      • 7.10.1 O Comando de Múltipla Escolha SELECT-CASE

Capítulo 1

Preliminares

N

ESTE capítulo serão apresentados o ambiente de trabalho do Scilab e conceitos bá- sicos de programação como variáveis, tipos de dados e expressões aritméticas.

1.1 Usando o Scilab como uma Simples Calculadora

O Scilab pode fazer operações aritméticas simples com números reais e complexos. Os operadores aritméticos são:

Adição + Subtração - Multiplicação * Divisão / Potenciação ˆ Execute o Scilab no seu sistema e procure pelo símbolo:

-->

As operações aritméticas devem ser digitados após este símbolo -> que é chamado de prompt do Scilab e em seguida tecla-se [ENTER]. Exemplo:

-->2+3 [ENTER] ans =

Outros exemplos:

-->5+6/ ans =

-->4^2 // 4 elevado a potência de 2 ans =

1.3 Expressões Aritméticas / UFRN-DCA - 26 de Abril de 2004 3

1.2.2 O Ponto e Vírgula

A ausência ou presença do ponto e vírgula no final de um comando do Scilab visualiza ou suprime, respectivamente, o resultado do cálculo. Por exemplo, o resultado do seguinte comando, digitado com ponto e vírgula, é suprimido:

-->A = 4+4^2;

-->

Se este comando é digitado sem ponto e vírgula, o resultado é visualizado:

-->A = 4+4^ A =

Mais exemplos:

-->a=2;

-->b=4;

-->area=a*b // aqui o ponto e vírgula foi area = // suprimido porque precisamos // visualizar o resultado.

1.3 Expressões Aritméticas

Os operadores aritméticos combinam números e variáveis para formar expressões aritmé- ticas. Exemplos:

A+B*C (NOTA1+NOTA2)/ 1/(a^2+b^2)

Além dos operadores aritméticos podemos usar funções matemáticas. Exemplos:

2+3cos(x) X^(2sin(y)) 2+3*tan(x)+K^

1.3.1 Funções Matemáticas Comuns

As principais funções matemáticas do Scilab são mostradas na Tabela 1.1. O número π e a base do logaritmo natural e = 2, 718281828 ... são representadas pelas variáveis especiais %pi e %e, respectivamente. Exemplos:

-->cos(2*%pi) // coseno de 2 vezes PI ans =

1.3 Expressões Aritméticas / UFRN-DCA - 26 de Abril de 2004 4

-->%e^2 // 2,718281828 ao quadrado ans =

-->abs(-5) // valor absoluto ans =

-->modulo(8,3) // Resto da divisão entre 8 e 3 ans =

-->modulo(6,3) ans =

-->sign(-4) ans =

-->sign(5) ans =

1.3.2 Funções de Arredondamento

As principais funções de arredondamento do Scilab são mostradas na Tabela 1.2. Exem- plos:

-->a = 34.885;

-->fix(a) // trunca a parte fracionária ans =

-->round(a) // arredonda para o inteiro mais próximo ans =

-->ceil(3.1) // arredonda para mais. ans =

Outros exemplos são mostrados na Tabela 1.3.

1.4 Strings / UFRN-DCA - 26 de Abril de 2004 6

Tabela 1.2: Funções de Arredondamento

ceil(x) Arredondamento na direção de mais infinito. fix(x) Arredondamento na direção de zero (isto é, devolve a parte inteira de um número). floor(x) Arredondamento na direção de menos infinito. int(x) Mesmo que fix. round(x) Arredondamento para o inteiro mais próximo.

Tabela 1.3: Exemplos de Funções de Arredondamento

x ceil(x) floor(x) fix(x) round(x) 1.75 2 1 1 2 1.5 2 1 1 2 1.25 2 1 1 1 -1.25 -1 -2 -1 - -1.5 -1 -2 -1 - -1.75 -1 -2 -1 -

O mesmo vale para multiplicação e divisão:

AB/CD ←−A*B é avaliada primeiro, porque está mais a esquerda. No entanto, para potenciação, a regra da associatividade diz que a operação mais a direita deve ser avaliada primeiro:

A^B^C^D ←−CˆD é avaliada primeiro, porque está mais a direita. A ordem de prioridade pode ser alterada pelo uso do parênteses:

(A+4)/3 ←−A+4 é avaliada primeiro devido aos pa- rênteses. (A-B)/(C+D) ←−A-B é avaliada primeiro. Depois a adi- ção. Por último, a divisão. R*3+B^(3/2)+1 ←−3/2 é avaliada primeiro.

1.4 Strings

Strings são usados para toda e qualquer informação composta de caracteres alfanuméri- cos e/ou caracteres especiais (exemplo, #, $, &, %, ?, !, @, <, ~, etc). Os strings são envolvidos por aspas duplas ou simples. Exemplos:^1.

(^1) Devemos usar aspas duplas ou simples? A aspa simples é também usado como operador de transposta hermitiana (mas isto não acarreta problemas de programação). Por isso é melhor usar as aspas duplas que não possui tal duplo sentido e torna seu programa um pouco mais legível.

1.4 Strings / UFRN-DCA - 26 de Abril de 2004 7

-->a = "abcd" a =

abcd

-->b = ’efgh’ b =

efgh

-->c = "Maria e Jose" c =

Maria e Jose

Um das atividades mais comuns em programação é a concatenação de strings. Con- catenação é a junção de dois ou mais strings. Isto pode ser feito com o operador +.

-->a + b // Concatena abcd com efgh ans =

abcdefgh

-->n = "Pedro" n =

Pedro

-->m = "Paulo" m =

Paulo

-->m + n // Concatena Paulo com Pedro sem ans = // espaço entre eles.

PauloPedro

-->m + " e " + n // Concatena Paulo com Pedro ans = // inserindo espaços entre eles.

Paulo e Pedro

Muitas vezes precisamos armazenar informações que contém as aspas. Isto pode ser feito repetindo as aspas. Exemplos:

-->n = "O oráculo disse ""conheça-te a ti mesmo"" para Socrátes." n =

O oráculo disse "conheça-te a ti mesmo" para Socrátes.

Algumas funções para manipulação de strings são mostradas da Tabela 1.4. Exem- plos:

1.6 O Espaço de Trabalho / UFRN-DCA - 26 de Abril de 2004 9

x = 3 + 4*%i y = 1 - %i z1 = x - y z2 = x * y z3 = x / y real(z1) ←−Parte real de z imag(z1) ←−Parte imaginária de z abs(x) ←−Valor absoluto do número complexo atan(imag(x),real(x)) ←−Argumento do número complexo conj(z2) ←−Conjugado sin(x) ←−Seno de um número complexo

1.6 O Espaço de Trabalho

Quando um comando de atribuição como este:

-->x = 3

é digitado no Scilab, a variável x é armazenada em uma área da memória do Scilab denominada de Espaço de Trabalho (do inglês, Workplace ). O Espaço de Trabalho é uma parte da memória do computador que armazena as variáveis criadas pelo prompt e pelos arquivos de Script (mostrados adiante).

1.6.1 O Comando Clear

O comando clear apaga todas a variáveis do Espaço de Trabalho criadas pelo usuário. Exemplo:

-->clear // Apaga todas a variáveis

O comando clear seguido de nome de uma variável apaga somente a variável:

-->a = 2;

-->b = 3;

-->c = 4;

-->clear b; // Apaga somente b deixando as // outras variáveis intactas.

O comando who mostra todas as variáveis do Espaço de Trabalho.

1.6.2 Os Comandos Save e Load

As variáveis são apagadas quando o usuário termina a execução do Scilab. Para usá-las da próxima vez que executar o Scilab, você deve salva-las com o comando save(arquivo). Por exemplo,

1.7 Formato de Visualização dos Números / UFRN-DCA - 26 de Abril de 2004 10

-->a = 2;

-->b = 3;

-->c = 4;

-->save("dados.dat");

As variáveis foram salvas no arquivo dados.dat. O comando load(arquivo) é usado para recuperar variáveis que foram salvas no arquivo. Por exemplo,

-->clear // apaga todas as variáveis

-->a+b // variáveis a e b não existem !--error 4 // porque foram apagadas undefined variable : a

-->load("dados.dat"); // recupera as variáveis a, b e c

-->a+b // Ok! ans =

1.7 Formato de Visualização dos Números

O comando format modifica a quantidade de dígitos com que os números são mostrados no Scilab. Por exemplo, o comando

--> format(5)

fará com que todas os números sejam visualizados em 5 posições (incluindo o ponto decimal e um espaço para o sinal). Por exemplo,

-->sqrt(3) ans =

Para aumentar o números de posições para 16, usa-se

-->format(16)

-->sqrt(3) ans =

A raiz de 3 foi mostrada ocupando 16 posições (sendo uma posição para o ponto, um espaço reservado para o sinal, uma posição para a parte inteira e 13 posições para a parte fracionária). O comando format(’e’) mostra os números em notação científica. Por exemplo,

1.10 Ajuda / UFRN-DCA - 26 de Abril de 2004 12

-->cos(ans)+ ans =

1.10 Ajuda

O comando help informa sobre comandos e funções do Scilab. Por exemplo:

help cos ←−Informa sobre a função que calcula o co-seno help ceil ←−Informa sobre a função ceil O comando apropos procura comandos e funções utilizando uma palavra-chave. Por exemplo, se não sabemos o nome da função que calcula o seno hiperbólico, podemos digitar algo como

--> apropos hyperbolic

e o Scilab mostrará todas a funções relacionadas com a palavra-chave hyperbolic.

1.11 Exercícios

  1. O que são variáveis?
  2. Quais os tipos primitivos de informação manipuladas pelo Scilab?
  3. Assinale os identificadores (nomes de variáveis) válidos: a) (X) b) XMU2 c) AH! d) NOTA e) 5NOTA f) “NOTA1” g) A[4] h) A&B i) A+B j) I00001 l) NOTA/2 m) PEDROEPAULO
  4. Escreva as declarações aritméticas para o cálculo das seguintes fórmulas:

a) c = (h + 0. 5 d) ln

( 2 h p

)

b) z = 2ex^ sin^ xπ c) m = 2

( y^2 + p p − 1 + p^2

)

d) s =

√ sina+b^ x a + b e) g = L(0. 5 πr^2 − r^2 arcsin(h/r) − h(r^2 − h^2 )^1 /^2

  1. Considere as variáveis A=11, B=5, C=-4 e D=2. Calcule as expressões abaixo.

a) 3modulo(A,3)-C b) 2^(2abs(C))/ c) (A/B-fix(A/B)+sign(C)+2.8)^(15/B) d) sqrt(cos(A)^2+sin(A)^2) + sin(D*%pi/4)

1.11 Exercícios / UFRN-DCA - 26 de Abril de 2004 13

e) (A+C)/A * round(sign(C)+D/4)-fix(D/1.5)

  1. Qual é a primeira operação a ser executada em cada um dos comandos abaixo. a) R + S - W d) X + Y + C * D b) W1 + W2 / C ^ 2 e) A + D + B ^ 2 + E * 3 c) NOTA + MEDIA/N f) A * B / C * D
  2. O que é o Espaço de Trabalho?

2.2 Comandos de Saída de Dados / UFRN-DCA - 26 de Abril de 2004 15

2.2 Comandos de Saída de Dados

Comandos de saída de dados fornece ao usuário um meio de visualizar dados e o resultado de algum processamento. A forma mais simples de visualizar dados no Scilab é suprimir o ponto e vírgula no final do comando como mostrado na Seção 1.2.2.

-->x = 3;

-->y = 4;

-->r = sqrt(xx+yy) // Com a omissão do ponto e virgula r = // o resultado é exibido

A Função disp

A função disp() é outra maneira de exibir dados. Por exemplo,

-->v0 = 2;

-->a = 4;

-->t = 3;

-->v = v0+a*t;

-->disp(v) // disp não mostra o nome // da variável

Este exemplo concatena dois strings e exibe o resultado:

-->nome = "maria";

-->disp("Seu nome é " + nome)

Seu nome é maria

A função disp é freqüentemente usada em conjunto com a função string que converte um número em string. Por exemplo,

-->disp("A velocidade final é " + string(v))

A velocidade final é 14

Use a função format para formatar a saída de dados numéricos.

A Função printf

A função printf é a forma mais flexível de exibir dados porque produz uma saída printf é um clone do comando de mesmo nome da linguagem de programação C.

formatada. Por exemplo,

2.2 Comandos de Saída de Dados / UFRN-DCA - 26 de Abril de 2004 16

-->printf("Alô mundo\n"); Alô mundo

O caracter \n (chamado de new line ) avisa ao comando printf para gerar uma nova linha. Mais precisamente, \n move o cursor para o começo da linha seguinte. Por exem- plo, colocando \n após o string Alô faz com que printf gere uma nova linha após Alô:

-->printf("Alô\nmundo"); Alô mundo

A forma geral do comando printf é:

printf( , );

é uma string descrevendo a forma com que a lista de dados será exibida. Exemplo:

-->A = 2;

-->printf("A variável A contém o valor %g\n",A);

A variável A contém o valor 2

A símbolo %g (chamado de caractere de formatação) indica como cada variável da lista de dados será exibido dentro da string de formatação . Neste último exem- plo, %g é substituido pelo valor da variável A no momento da impressão. No seguinte exemplo, as variáveis A e B substituirão os caracteres de formatação %g nas posições correspondentes:

-->A = 8/4;

-->B = A + 3;

-->printf("Os valores calculados foram %g e %g\n",A,B); Os valores calculados foram 2 e 5

Mais exemplos:

-->printf("A = %g B = %g",A,B); A = 2 B = 5 -->printf("A = %g\nB = %g\n",A,B); A = 2 B = 5

-->F = "Os valores calculados foram %g e %g";

-->printf(F,A,B); Os valores calculados foram 2 e 5

Se a variavel for do tipo string, usa-se o caractere de formatação %s em vez de %g. Por exemplo: