Ambiente Scilab ► Variáveis, expressões, comando - ICEB-UFOP

Propaganda
Universidade Federal de Ouro Preto - UFOP
Departamento de Computação - DECOM
Programação de Computadores I – BCC701
www.decom.ufop.br/moodle
Ambiente Scilab
Variáveis, expressões,
comando de atribuição
Entrada e Saída básica
1
2
Scilab é um ambiente de programação
voltado para cientistas e engenheiros
UFMG DCC001 2013-1
prompt de comandos
Foi criado em 1990, por pesquisadores do
INRIA, sendo baseado no sistema MatLAB.
navegador de
variáveis
janela de
arquivos
É gratuito: download www.scilab.org
console: janela
de comandos
3
histórico de
comandos
4
1
5
6
Literal
a é uma variável
que passa a existir,
recebe e guarda um
valor
O Scilab “ecoa” o
valor recebido pela
variável
Variáveis
criadas
^ denota
exponenciação
Histórico
* denota
multiplicação
O valor atribuído pode ser uma expressão
aritmética com variáveis já conhecidas
7
8
UFMG DCC001 2013-1
2
São nomes para espaços de memória
gerenciados pelo Scilab
O programador não precisa ter qualquer ideia
sobre como é feito esse gerenciamento
Variáveis têm seus nomes escolhidos pelo
programador segundo algumas regras
◦ O primeiro caractere do nome deve ser uma letra
◦ Os outros podem ser letras ou dígitos, ou qualquer
caractere dentre '_', '#', '!', '$‘ e '?'
◦ O nome de uma variável em Scilab deve ter no máximo
24 caracteres
9
UFMG DCC001 2013-1
10
UFMG DCC001 2013-1
Forma:
Válidos:
◦ a, A, jose, total_de_alunos, funcionarios
Não válidos
◦ 1Aluno (o primeiro caractere é um algarismo)
◦ total de alunos (tem espaços)
◦ José (é acentuado)
O mais importante é escolher nomes com
significado claro para quem lê o programa
11
<variável alvo> = <expressão>
A <variável alvo>, se não existia, passa a existir
Se existia, o valor anterior é perdido
A <expressão> é calculada, e o resultado é
atribuído à <variável alvo>
O comando de atribuição é a construção básica de
transformação de informação, em Scilab e em várias
outras linguagens de programação.
12
UFMG DCC001 2013-1
3
As variáveis de um expressão, do lado
direito de uma atribuição, devem estar
definidas.
O Scilab usa uma variável default, ans,
quando uma expressão é digitada no prompt
e não é atribuída a uma variável.
O segundo fator está ausente na
expressão aritmética.
Não foi definido um valor para a variável lucro !
13
14
-->d = a+x
!--error 4
Undefined variable: x
Funções pré-definidas em Scilab
podem ser usadas uma expressão.
Expressão do lado direito: o valor corrente
de x é adicionado a 8, resultando
8.0000927; esse resultado é atribuído a x.
-->b = 1024
-->b = 2*b
A expressão pode conter b =
a própria variável alvo.
2048.
O valor da expressão do lado direito da
atribuição, 22, é atribuído à variável x; o
antigo valor é substituído na memória.
15
Todas as variáveis em
uma expressão devem
estar definidas, ou o
Scilab reclama
16
UFMG DCC001 2013-1
4
Valor pré-definido como a
melhor aproximação em ponto
flutuante de 64 bits de π
-->a = %pi
a =
3.1415927
“;” suprime o eco
automático
-->b = 2*%pi;
-->c = cos(a) + sqrt(b)
c =
O Scilab oferece um sem-número
1.5066283
de funções pré-definidas como
A linguagem SciLab possui os operadores aritméticos:
aritméticos
Operador Aritmético
Denotação em SciLab
Exemplo
Resultado
Soma
+
7+5
12
Subtração
-
10 – 9
1
Multiplicação
*
22 * 10
220
Divisão
/
50 / 2
25
Menos Unário
-
-26
-26
Exponenciação
(potenciação)
^
8^2
64
cos e sqrt 17(square
root).
UFMG DCC001 2013-1
Expressões podem ser arbitrariamente complicadas
A ordem em que operadores são aplicados não é óbvia:
Qual valor o comando x = 2^3*4 atribui a x,
ou
?
23 × 4 = 8 × 4 = 32
23×4 = 212 = 4096
19
UFMG DCC001 2013-1
18
Precedência
Operação
1a
Potenciação
2a
Multiplicação,
divisão
Adição,
subtração
3a
Parênteses podem alterar prioridades
UFMG DCC001 2013-1
20
5
-->2^3*4
ans =
-->2^(3*4)
ans =
-->2^3^4
ans =
-->2^(3^4)
ans =
-->(2^3)^4
ans =
-->2*3+4
ans =
-->2*(3+4)
ans =
“ans” é o nome de uma
variável que recebe
valores de expressões
sem variável alvo
32.
4096.
Função
Resto da Divisão
Inteira
Raiz Quadrada
Valor Absoluto
Coseno
Tangente
Seno
2.418D+24
2.418D+24
Denotação em
SciLab
Exemplo
Resultado
modulo
modulo(8, 3)
2
sqrt
abs
cos
tan
sin
sqrt(32)
abs(abs(
-8)
cos(30)
tan(7.3456)
tan
(7.3456)
sin(%
(%pi
pi))
sin
(%
pi
5.6568542
8
0.1542514
1.7945721
1.225D1.225D
-16
4096.
Notação Scilab (e Fortran,
e C, e Java, e ...) para
2.418 x 1024
10.
14.
UFMG DCC001 2013-1
Denotação em Scilab
OBS: Nas funções trigonométricas os ângulos devem ser usados em radianos.
21
22
Valor
%pi
O número π.
%inf
Representa infinito ∞.
%i
%e
A base do logaritmo natural.
%t ou %T
Representa o valor booleano verdadeiro.
%f ou %F
Representa o valor booleano falso.
23
24
UFMG DCC001 2013-1
6
1.
3.
Calcule as expressões matemáticas
2.
Calcule as expressões matemáticas
25
26
27
28
Calcule as expressões matemáticas, definindo valores
para a, b, c e d
7
Área do círculo de raio r: A = π r2
Programas são arquivos texto, contendo
somente caracteres sem formatação, com a
terminação .sce
Um arquivo-programa contém comandos Scilab
Um programa é construído usando o editor
SciNotes
Sua execução equivale à digitação na console
dos comandos no arquivo
Faça um programa para calcular a área de um círculo de raio = 5cm.
OBS:
◦ Podemos obter a solução diretamente no prompt do Scilab:
-->A = %pi * 5^2
◦ E se agora quisermos calcular a área de um círculo com 16cm de
raio? Teremos que digitar tudo de novo:
-->A = %pi * 16^2
Para evitar isso, vamos escrever um programa que faz esse cálculo.
29
UFMG DCC001 2013-1
30
Instruções bem definidas para resolver um
problema
UFMG DCC001 2013-1
Editor de
Programas
Em arquivo, para guardar e
continuar/executar depois
Comentários tornam o programa mais claro
para as pessoas, mas são ignorados pelo
computador
31
32
UFMG DCC001 2013-1
8
comentário
comandos de atribuição que
definem os valores de r e de A
33
34
Seja a equação do segundo grau
ax2 + bx + c = 0
novo
arquivo
abrir
salvar
executar
salvar e
executa
r
Sua solução pode ser obtida através dos seguintes
passos:
1.
2.
3.
4.
5.
6.
35
Atribuir um valor para a
Atribuir um valor para b
Atribuir um valor para c
Calcular o valor de delta, onde delta = b2 – 4 * a * c
Calcular o valor de x1, onde
x1 = ( -b + sqrt(delta)
sqrt(delta) ) / (2 * a)
Calcular o valor de x2, onde
x2 = ( -b - sqrt(delta)
sqrt(delta) ) / (2 * a)
36
9
• a x2 + b x + c = 0
• encontrar a solução da equação para a = 2, b = -1 e c = 2;
Sintaxe geral do comando input:
<variávelAlvo> = input( <frase> )
Onde:
<variávelAlvo> é uma variável que
representa uma posição da memória que irá
armazenar o valor digitado.
<frase> é uma string que informa ao usuário
qual o dado que ele deve digitar nesta interação.
A string deve estar entre aspas duplas.
37
38
Suponha que o usuário deseje armazenar o
valor 50,
50, referente à quantidade de alunos em uma
sala de aula, na variável Q.
Isso pode ser realizado pela instrução:
Um valor ser armazenado em uma variável pode
ser exibido na tela do computador, por meio do
comando printf,
printf, o qual tem a seguinte sintaxe
geral:
geral:
printf(<frase>, <lista de expressões>)
Q = input(“Digite a quantidade de alunos”)
Exemplo:
printf(“Número de alunos = %g”, Q)
39
40
10
<frase> é a sentença que se quer imprimir na
tela, e que pode estar entremeada por códigos
de formato como %g.
%g é um código de formato geral para expressões com
valores numéricos.
numéricos.
existem vários outros códigos de formato como %d, %f
ou %s, que vamos explorar em exercícios e em outros
exemplos, futuramente.
futuramente.
<lista de expressões> é uma lista de
expressões separadas por vírgulas, que são
calculadas no momento da execução do
comando.
comando.
As expressões na lista são mapeadas, uma a
uma, nos códigos de formato, na mesma
sequência em que aparecem na <frase>,, e a
sentença que é impressa é obtida pela
substituição do valor de cada expressão na
posição marcada pelo código de formato.
formato.
41
Exemplo:
xemplo:
Suponha:
Suponha: X = 30;
30; Y = 60;
60;
42
Para fazer o cálculo para um círculo de raio
16cm, bastaria mudar o valor de r no programa
e executá-lo novamente.
Entretanto, o que gostaríamos é que o nosso
programa pudesse ler
er o valor do raio do círculo
e exibir o valor calculado para a área do
círculo.
O que é impresso pelo comando a seguir?
printf(“PRIMEIRO:%g SEGUNDO :%g”, X, Y)
Como você escreveria um comando para
imprimir os valores das raízes no seu programa
da Equação de 2º grau?
43
44
UFMG DCC001 2013-1
11
comentário
comando de
leitrura
comando de
escrita
45
Codifique os programas a seguir em Scilab
Scilab.. Utilize
comentários e mensagens textuais para o usuário
1.
2.
O programa deve ler dois valores, calcular a soma
desses valores, armazenandoarmazenando-a em uma variável
e imprimir o resultado.
resultado.
O programa deve ler dois valores, calcular o
resultado da divisão do primeiro pelo segundo e
imprimir o resultado.
resultado.
46
3.
O programa deve imprimir o valor da hipotenusa
de um triangulo retângulo, calculada de acordo
com os valores lidos de seus catetos.
catetos.
4.
O programa deve ler um valor de temperatura em
graus Celsius (°
(°C) e calcular e imprimir a
temperatura correspondente, em graus Farenheit
(°F) e em graus Kelvin (°
(°K).
OBS.:
47
°F = °C × 1.8 + 32
°K = °C + 273.15
48
12
Download