Ler e apresentar dados
O Octave permite interagir com o utilizador através de funções de input (leitura de dados) e output (apresentação de dados).
Índice
Ler dados
A forma mais simples de ler dados do utilizador, é através da instruções input.
octave:8> numero = input ("Escolha um número entre 1 e 100! ") Escolha um número entre 1 e 100! 25 numero = 25
A instrução input apresenta a mensagem e fica a aguardar que seja introduzido algo seguido de Enter.
O valor lido é atribuído à variável numero, como apresentado no exemplo.
Outros valores
Com a instrução input podem-se ler outros valores, como vetores ou matrizes.
octave:15> v = input("Introduza as temperaturas desta semana: ") Introduza as temperaturas desta semana: [23 22 24 26 23 22 21] v = 23 22 24 26 23 22 21
O Octave tenta converter o valor lido para número, vetor ou matriz. Se quiser ler uma string, isto é, se quiser que a string seja atribuída à variável (e não o número que ela representa), acrescente o parâmetro "s". Ou seja,
octave:19> nome = input("Diga o seu nome ", "s") Diga o seu nome Camilo Castelo Branco nome = Camilo Castelo Branco
Exercícios
- Leia dois números e multiplique-os.
- Leia o ano de nascimento e calcule a idade
- Leia o nome de um filme e calcule o comprimento do mesmo.
- Leia um número e um vetor, e multiplique o número pelo vetor.
- Leia um vetor e uma matriz, e multiplique um pelo outro.
Menus
O Octave permite de uma forma muito simples apresentar um menu.
octave:5> sexo = menu("Sexo", "Masculino", "Feminino") Sexo [ 1] Masculino [ 2] Feminino pick a number, any number: 2 sexo= 2
Um menu pode ter quantas opções desejar.
Um simples Sim ou não
octave:2> continuar = yes_or_no("Quer continuar? ") Quer continuar? (yes or no) yes continuar = 1 octave:3> continuar = yes_or_no("Quer continuar? ") Quer continuar? (yes or no) no continuar = 0 octave:4>
Exercícios
- Apresente um menu para escolher entre graus ou radianos.
octave:4> unidade = menu("Indique a unidade para ângulos", "Graus", "Radianos") Indique a unidade para ângulos [ 1] Graus [ 2] Radianos pick a number, any number: 2 unidade = 2
- Apresente um menu para escolher o dia da semana.
octave:1> dia = menu("Indique o dia da semana", "Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado") Indique o dia da semana [ 1] Domingo [ 2] Segunda-feira [ 3] Terça-feira [ 4] Quarta-feira [ 5] Quinta-feira [ 6] Sexta-feira [ 7] Sábado pick a number, any number: 6 dia = 6
Apresentar dados formatados
Das várias formas de apresentar resultados em Octave, a instrução printf é aquela que nos dá mais flexibilidade.
A instrução printf recebe uma template, e os valores a apresentar. Exemplo:
octave:4> x = 18; octave:5> printf("Eu tenho %d anos de idade.", x); Eu tenho 18 anos de idade.octave:6>
No exemplo anterior, a template inclui a indicação %d onde será apresentado o valor (inteiro) da variável x.
Repare que o prompt do Octave octave:6> apareceu logo a seguir à mensagem. Se acrescentar na mensagem o carater especial \n está a acrescentar uma mudança de linha.
octave:6> printf("Eu tenho %d anos de idade.\n", x); Eu tenho 18 anos de idade. octave:7>
Na mesma instrução, podem-se apresentar vários dados. Exemplo:
octave:15> largura = 3; octave:16> comprimento = 4; octave:17> printf("A área de um rectângulo com %d de largura e %d de comprimento é %d.\n", largura, comprimento, largura*comprimento); A área de um rectângulo com 3 de largura e 4 de comprimento é 12.
Além de %d para inteiros, usa-se frequentemente o %f para reais, %s para strings e %% para escrever o símbolo %.
Pode-se também acrescentar outras opções, como o número de casas decimais a apresentar.
octave:12> printf("O Rui tem %d anos e gosta do %.2f\n", x, pi); O Rui tem 18 anos e gosta do 3.14 octave:13>