Diferenças entre edições de "Programas"
(→Exercícios) |
(→Exemplo) |
||
Linha 7: | Linha 7: | ||
==== Exemplo ==== | ==== Exemplo ==== | ||
− | A primeira script que vamos escrever sistematiza o cálculo da área de um retângulo. Obviamente é um cálculo muito simples, mas a ideia é começar com script muito | + | A primeira script que vamos escrever sistematiza o cálculo da área de um retângulo. Obviamente é um cálculo muito simples, mas a ideia é começar com uma script muito pequena. |
<syntaxhighlight> | <syntaxhighlight> |
Revisão das 17h38min de 4 de novembro de 2012
Para resolver problemas mais ou menos complexos, em vez de se escreverem os comandos no prompt do Octave, podemos escrever os mesmos numa script. Chama-se script a esta sequência de comandos guardados. Estão prontos a serem executados a qualquer momento e podem-se enviar para outros colegas, para executarem a mesma script. Os comandos são guardados num documento com a extensão .m. Tudo o que se escreve no prompt, pode-se escrever numa script.
Portanto, sempre que haja necessidade de repetir diversas vezes as mesmas operações, torna-se mais interessante juntar essas operações numa script.
Uma script é invocada pelo seu nome, sem a extensão .m. Ao ser invocada, todas as instruções são processadas, como se tivessem sido lançadas no prompt do Octave.
Índice
Exemplo
A primeira script que vamos escrever sistematiza o cálculo da área de um retângulo. Obviamente é um cálculo muito simples, mas a ideia é começar com uma script muito pequena.
# minha primeira script em octave # para executar a script, basta fazer no prompt do octave: # arearetangulo # largura = input("Largura?\n"); comprimento = input("Comprimento?\n"); area = largura * comprimento; fprintf("A área é: %g\n", area);
Em primeiro lugar, é preciso escrever as instruções apresentadas num editor de texto qualquer. Qualquer editor serve, desde que guarde o documento em formato de texto. TEM QUE FICAR GUARDADO COM O NOME arearetangulo.m e obrigatoriamente na pasta onde está a executar o Octave.
Depois de guardada a script na pasta atual do Octave (reveja a forma de saber e mudar a pasta atual) inicia-se a mesma utilizando o nome (sem a extensão). Exemplo:
octave:2> arearetangulo Largura? 90 Comprimento? 120 A área é: 10800
Edição de scripts (em Windows)
Para editar as scripts, use um editor simples como o Notepad em Windows. Confirme que as script estão a ser gravadas com a extensão .m. Confirme sempre, dentro do Octave que as scripts existem, fazendo:
dir *.m
Se quiser investir um pouco de tempo, explore a GUI existente em Windows. Em vez de arrancar o Octave com o atalho Octave 3.6.2, escolha no menu iniciar, dentro de Todos os Programas, e depois dentro de GNU Octave (3.6.2) a programa Octave 3.6.2 (Graphical User-Interface).
É uma interface ainda pouco robusta, mas que inclui um editor. Esse editor é sensível à sintaxe do Octave. Na imagem seguinte, mostra-se esta GUI, com o editor de scripts aberto.
Edição de scripts (em Linux)
No Linux, use o QtOctave.
Exercícios
- Escreva uma script para calcular a velocidade de um veículo, dada a distância percorrida em Km e o tempo em minutos.
- Escreva uma script que calcula a idade de uma pessoa, sabendo o ano de nascimento
- Dado o valor em Fahreneit, calcule a correspondente temperatura em Celcius, escrevendo uma script para o efeito.
Âmbito das variáveis
Na seguinte script, utiliza-se uma variável idade que tem o mesmo nome que a script. Neste caso, temos uma sobreposição que é vivamente desaconselhada. No caso concreto, depois de correr a script, a mesma não poderá ser novamente executada, porque idade passa a ser uma referência para a variável e não para a script.
# idade.m # script octave # calcular a idade de uma pessoa # # ESTA SCRIPT TEM UM ERRO. # Esta script usa uma variável global 'idade' que é igual ao nome da script 'idade.m'. # Não se deve usar variáveis em scripts iguais aos nomes das scripts. # # Desta forma, só se consegue chamar a script uma vez # Depois disso, 'idade' passa a ser uma referência para a variável e não para a script. ano = input("Ano de nascimento?\n"); idade = 2012 - ano; printf("Você tem %d anos de idade\n", idade);