Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 1 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 UFMG DCC001 2013-1 2 2 } Scilab é um ambiente de programação voltado para cientistas e engenheiros } Foi criado em 1990, por pesquisadores do INRIA, sendo baseado no sistema MatLAB. } É gratuito: download www.scilab.org 3 4 console: janela de comandos histórico de comandos navegador de variáveis janela de arquivos prompt de comandos 3 UFMG DCC001 2013-1 5 a é uma variável que passa a existir, recebe e guarda um valor Variáveis criadas Histórico O Scilab “ecoa” o valor recebido pela variável UFMG DCC001 2013-1 6 O valor atribuído pode ser uma expressão aritmética com variáveis já conhecidas ^ denota exponenciação * denota multiplicação Literal 4 UFMG DCC001 2013-1 7 } 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 } Nomes de variáveis usados em um programa são livremente escolhidos pelo programador, mas devem satisfazer as seguintes regras: ◦ O primeiro caractere do nome deve ser uma letra ◦ Os outros podem ser letras ou dígitos, ou qualquer dos caracteres '_', '#', '!', '$‘ e '?' ◦ O nome de uma variável em Scilab deve ter no máximo 24 caracteres UFMG DCC001 2013-1 8 5 } Válidos: ◦ a, A, raio, 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 UFMG DCC001 2013-1 9 UFMG DCC001 2013-1 10 } Forma: <variável> = <expressão> } A <variável>, se não existia, passa a existir } Se existia, o valor anterior é perdido } A <expressão> é calculada, e o resultado é atribuído à <variável> } 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. 6 11 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. 12 As variáveis de um expressão, do lado direito de uma atribuição, devem estar definidas. Não foi definido um valor para a variável lucro ! 7 13 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. 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. -->d = a+x !--error 4 Undefined variable: x -->b = 1024 -->b = 2*b b = 2048. UFMG DCC001 2013-1 14 Todas as variáveis em uma expressão devem estar definidas, ou o Scilab reclama A expressão pode conter a própria variável que é referenciada do lado esquerdo da atribuição. 8 -->a = %pi a = 3.1415927 -->b = 2*%pi; -->c = cos(a) + sqrt(b) c = 1.5066283 UFMG DCC001 2013-1 15 “;” suprime o eco automático Valor pré-definido como a melhor aproximação em ponto flutuante de 64 bits de π O Scilab oferece um grande número de funções pré-definidas, como cos e sqrt (square root). Ø A linguagem SciLab possui os operadores aritméticos: 16 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 9 } Expressões podem ser arbitrariamente complicadas } A ordem em que operadores são aplicados não é óbvia: Qual é valor que o comando x = 2^3*4 atribui a x, 32 ou 4096 ? UFMG DCC001 2013-1 17 3248423 =×=× 409622 1243 ==× UFMG DCC001 2013-1 18 Precedência Operação 1a Potenciação 2a Multiplicação, divisão 3a Adição, subtração } Parênteses podem alterar prioridades 10 UFMG DCC001 2013-1 19 -->2^3*4 ans = 32. -->2^(3*4) ans = 4096. -->2^3^4 ans = 2.418D+24 -->2^(3^4) ans = 2.418D+24 -->(2^3)^4 ans = 4096. -->2*3+4 ans = 10. -->2*(3+4) ans = 14. Notação Scilab (e Fortran, e C, e Java, e ...) para 2.418 x 1024 Ø OBS: Nas funções trigonométricas sin, cos, tan, o argumento é um ângulo em radianos. Para usar ângulos em graus, utilize as funções asin, acos e atan. 20 Função Denotação em SciLab Exemplo Resultado Resto da Divisão Inteira modulo modulo(8, 3) 2 Raiz Quadrada sqrt sqrt(32) 5.6568542 Valor Absoluto abs abs(-8) 8 Coseno cos cos(%pi/6) 0.1542514 Tangente tan tan(7.3456) 1.7945721 Seno sin sin(%pi) 1.225D-16 11 21 Denotação em Scilab 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. UFMG DCC001 2013-1 22 12 1. Calcule as expressões matemáticas 23 2. Calcule as expressões matemáticas 24 13 3. Calcule as expressões matemáticas, definindo valores para a, b, c e d 25 26 14 UFMG DCC001 2013-1 27 } Área do círculo de raio r: A = π r2 } 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. } 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 é escrito usando o editor SciNotes } Sua execução ocorre do mesmo modo que se os comandos do programa fossem digitados na console. UFMG DCC001 2013-1 28 15 } Instruções bem definidas para resolver um problema } Em arquivo, para guardar e continuar/ executar depois } Comentários tornam o programa mais claro para as pessoas, mas são ignorados pelo computador 29 UFMG DCC001 2013-1 30 Editor de Programas 16 31 32 comentário comandos de atribuição que definem os valores de r e de A 17 33 abrir salvar e executa r novo arquivo executar salvar UFMG DCC001 2013-1 34 } 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 o valor do raio do círculo e exibir o valor calculado para a área do círculo. 18 35 comentário comando de leitrura comando de escrita 36 Sintaxe geral do comando input: <variável> = input( <mensagem> ) Onde: <variável> é uma variável que representa uma posição da memória, na qual será armazenado o valor digitado pelo usuário. <mensagem> é uma string que informa ao usuário qual o dado que ele deve digitar. Uma string é uma sequencia de caracteres, entre aspas duplas.ou aspas simples. 19 37 Suponha que o usuáriodeseje armazenar o valor 50, referente à quantidade de alunos em uma sala de aula, na variável Q. Isso pode ser realizado pela instrução: Q = input(“Digite a quantidade de alunos”) 38 O comando printf pode ser usado para exibir valores na tela do computador. Esse comando tem a seguinte sintaxe geral: printf(<frase>, <lista de expressões>) Exemplo: printf(“Número de alunos = %g”, Q) 20 39 <frase> é a sentença que se quer imprimir na tela, e que pode conter códigos de formatação de valores, tais como %g. Ø %g é um código de formato geral para expressões com valores numéricos. Ø existem vários outros códigos de formato como %d, %f ou %s, que vamos abordar em exercícios e em outros exemplos, futuramente. 40 <lista de expressões> é uma lista de expressões separadas por vírgulas, que são calculadas no momento da execução do 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. 21 41 Exemplo: Suponha: X = 30; Y = 60; O que é impresso pelos comandos a seguir? printf(“PRIMEIRO:%g SEGUNDO:%g”, X, Y) printf(“DOBRO:%g QUADRADO:%g”,2*X,Y^2) printf(“SOMA:%g PRODUTO:%g”, X+Y, X*Y) 42 22 Ø Codifique os programas a seguir em Scilab. Utilize comentários e mensagens textuais para o usuário 1. O programa deve ler dois valores, calcular a soma desses valores, armazenando-a em uma variável e imprimir o resultado. 2. O programa deve ler dois valores, calcular o resultado da divisão do primeiro pelo segundo e imprimir o resultado. 43 3. O programa deve imprimir o valor da hipotenusa de um triangulo retângulo, calculada de acordo com os valores lidos de seus catetos. 5. 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.: °F = °C × 1.8 + 32 °K = °C + 273.15 44
Compartilhar