Diferenças entre edições de "Ler e apresentar dados"

De GNU Octave
Ir para: navegação, pesquisa
(Menus)
(Apresentar dados formatados)
 
(Há 2 edições intermédias do mesmo utilizador que não estão a ser apresentadas)
Linha 58: Linha 58:
  
 
Um menu pode ter quantas opções desejar.
 
Um menu pode ter quantas opções desejar.
 +
 +
==== Um simples Sim ou não ====
 +
 +
<syntaxhighlight>
 +
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>
 +
</syntaxhighlight>
 +
 +
=== Exercícios ===
 +
 +
# Apresente um menu para escolher entre graus ou radianos.
 +
 +
<syntaxhighlight>
 +
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
 +
</syntaxhighlight>
 +
 +
# Apresente um menu para escolher o dia da semana.
  
 
<syntaxhighlight>
 
<syntaxhighlight>
Linha 74: Linha 103:
 
dia =  6
 
dia =  6
 
</syntaxhighlight>
 
</syntaxhighlight>
 
=== Exercícios ===
 
 
# Apresente um menu para escolher entre graus ou radianos.
 
# Apresente um menu para escolher o dia da semana.
 
  
 
== Apresentar dados formatados ==
 
== Apresentar dados formatados ==
Linha 101: Linha 125:
 
octave:7>
 
octave:7>
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
  
 
Na mesma instrução, podem-se apresentar vários dados. Exemplo:
 
Na mesma instrução, podem-se apresentar vários dados. Exemplo:
Linha 112: Linha 137:
  
 
Além de <syntaxhighlight enclose="none">%d</syntaxhighlight> para inteiros, usa-se frequentemente o <syntaxhighlight enclose="none">%f</syntaxhighlight> para reais, <syntaxhighlight enclose="none">%s</syntaxhighlight> para strings e <syntaxhighlight enclose="none">%%</syntaxhighlight> para escrever o símbolo <syntaxhighlight enclose="none">%</syntaxhighlight>.
 
Além de <syntaxhighlight enclose="none">%d</syntaxhighlight> para inteiros, usa-se frequentemente o <syntaxhighlight enclose="none">%f</syntaxhighlight> para reais, <syntaxhighlight enclose="none">%s</syntaxhighlight> para strings e <syntaxhighlight enclose="none">%%</syntaxhighlight> para escrever o símbolo <syntaxhighlight enclose="none">%</syntaxhighlight>.
 +
 +
Pode-se também acrescentar outras opções, como o número de casas decimais a apresentar.
 +
 +
<syntaxhighlight>
 +
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>
 +
</syntaxhighlight>

Edição atual desde as 16h16min de 7 de janeiro de 2013

O Octave permite interagir com o utilizador através de funções de input (leitura de dados) e output (apresentação de dados).

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

  1. Leia dois números e multiplique-os.
  2. Leia o ano de nascimento e calcule a idade
  3. Leia o nome de um filme e calcule o comprimento do mesmo.
  4. Leia um número e um vetor, e multiplique o número pelo vetor.
  5. 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

  1. 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
  1. 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>