Você está na página 1de 6

Pontifcia Universidade Catlica de Minas Gerais

Campus Belo Horizonte Ncleo Universitrio Contagem


Curso: Engenharia Mecnica - Manh
Disciplina: Laboratrio de Informtica
Professores: Lcio Mauro Pereira, Maury Meirelles Gouva Jnior,
Nesley Daher

Aula 02
Modo programvel

Como visto na aula anterior, o SciLab permite duas formas distintas de interao:

a) Modo interativo: os comandos so executados no mesmo momento em que a instruo
digitada.
b) Modo programvel: as instrues so armazenadas em um arquivo. Elas so executadas
apenas quando requerida a execuo do arquivo (programa).

Na aula anterior, foram exemplificadas algumas operaes que podem ser realizadas no modo
interativo. Nele, o SciLab funciona como uma poderosa calculadora.

A partir desta aula, ser visto o modo programvel. Nele, um algoritmo codificado conforme a
sintaxe do SciLab. A elaborao de algoritmos objeto de estudo da disciplina Informtica I. Em
Laboratrio de Informtica I considera-se que o aluno tenha desenvolvido as competncias e
habilidades para a construo de algoritmos, focando-se em sua codificao pelo SciLab.


Implementando o primeiro algoritmo

Considere o problema de somar dois valores quaisquer. O algoritmo abaixo corresponde a uma
possvel soluo para o problema:

Algoritmo
Declare A, B, SOMA;
Leia (A, B);
SOMA ! A + B;
Escreva ( SOMA );
Fim.

Nele, as palavras Algoritmo e Fim delimitam o algoritmo, marcando seu incio e trmino.
O comando Declare requisita a declarao das trs variveis que devero ser manipuladas. Note que
aps sua declarao nenhum valor ainda est nelas armazenado.
O comando Leia requer que os valores de A e B sejam capturados do mundo externo. Um exemplo
de captura de dados a sua digitao pelo usurio do programa atravs do teclado. Outras exemplos
de leitura poderia ser a captura de um dado enviado por um sensor ou a recuperao de um dado
armazenado em um arquivo.
O operador ! um operador de atribuio. A instruo
SOMA ! A + B;
solicita a recuperao dos valores de A e B (lidos), sua soma ( + ) e que o resultado da operao
(adio) seja armazenado na varivel SOMA.
O comando Escreva solicita o envio do valor representado em SOMA para o mundo externo, por
exemplo, para a tela do monitor de vdeo.

O algoritmo acima pode vir a ser implementado em diversas linguagens de programao, como C,
C++, C#, Java, Pascal, Fortran, etc. Como dito, esta disciplina tem como objetivo codific-lo em
SciLab. Isto ir permitir tirar proveito desta extraordinria ferramenta para solucionar problemas
cientficos tratados em diversas outras disciplinas do Curso.


Digitando um programa
Um programa em SciLab pode ser escrito em qualquer editor de texto no padro TXT (ASCII), por
exemplo, no bloco de notas do Windows. Entretanto, o ambiente do SciLab prov um editor
prprio, a fim de facilitar a construo de programa sem precisar sair do ambiente SciLab.

Para iniciar um novo programa, seleciono, no menu, a opo
Aplicativos
Editor

Na janela oferecida para a digitao do programa, ser codificado o algoritmo acima. Note que,
esquerda, informado o nmero da linha de cdigo.

Uma boa maneira de criar um programa incluir nele um conjunto de informaes teis ao seu
leitor. Informaes que no devero ser tratadas como instruo, mas que tm o objetivo de
document-lo, facilitando sua compreenso por outras pessoas. Essas informaes so denominadas
COMENTRIOS.

Comentrios em SciLab (assim como em C) so indicadas atravs do sinal //
Todo o contedo de uma linha aps o sinal // desconsiderado pela ferramenta.


Percepo do programa a partir do Algoritmo

A delimitao do programa no precisa constar de um delimitador. O incio e o trmino do arquivo,
por si s, indica, de forma implcita, seu incio e trmino. Solues menores e especficas, como
funes, so delimitadas e sero vistas um pouco mais adiante.

Algoritmo
instrues;
Fim.


Declarao de variveis
Tal como visto na aula anterior, o SciLab no requer a declarao prvia de variveis. Elas so
declaradas sob demanda, medida que so requeridas pelo cdigo. Logo, a instruo Declare do
algoritmo no precisa ser codificada.

Algoritmo
Declare A, B, SOMA;
Fim.


Desta forma, a leitura dos dois valores a serem somados poder ser codificada diretamente, sem
requerer que a varivel que assumir o valor lido seja declarada previamente.


Leitura de dados atravs do teclado
Considerando que a leitura dos dados ser realizada pelo teclado, torna-se necessrio que uma
mensagem seja enviada tela do monitor de vdeo antes da leitura, a fim de orientar ao usurio do
programa qual a ao esperada. No SciLab, uma nica instruo utilizada para descrever a
mensagem e especificar a varivel que receber o valor lido.

A funo input interrompe a execuo do programa para que o usurio possa digitar o valor pelo
teclado. A leitura finalizada quando o usurio pressiona <ENTER>. Ao final da leitura, a funo
input retorna o valor lido. Na sintaxe abaixo, o valor retornado pela funo input armazenado
uma varivel. Note que a mensagem a ser exibida na tela antes da leitura poder ser especificada
como um parmetro para a funo input:

<varivel> = input( mensagem )

Observe que a mensagem a ser exibida na tela dever estar especificada entre aspas. As aspas tm a
funo de delimitar a mensagem, marcando seu incio e trmino. Entretanto, uma varivel contendo
a mensagem tambm poder ser utilizada, neste caso, sem as aspas.

O trecho do algoritmo abaixo

Algoritmo
Declare A, B, SOMA;
Leia (A, B);
Fim.

poder, ento, ser codificado da seguinte maneira:

A = input('Digite o primeiro valor')
B = input('Digite o segundo valor')


Operao aritmtica
O SciLab prov um conjunto de operadores aritmticos que podem ser utilizados para construir
equaes aritmticas. So eles:

+ Adio
- Subtrao
* Multiplicao
/ Diviso
^ Exponenciao

A ordem de prioridade dos operadores a mesma da matemtica. Quando for necessrio alterar essa
ordem, devem ser utilizados parnteses.

Alm dos operadores aritmticos, o SciLab prov um conjunto de funes aritmticas, tais como:

Para calcular o resto da diviso inteira
modulo( <dividendo>, <divisor> )

Para calcular o valor absoluto de um nmero
abs( <valor> )

Para calcular o coseno:
cos( <valor> )

Para calcular o seno:
sen( <valor> )

Para calcular a tangente:
tan( <valor> )

Para calcular a cotangente:
cotg( <valor> )

Para calcular a raiz quadrada:
sqrt( <valor> )

Para calcular logaritmo neperiano:
log( <valor> )


SciLab utiliza o sinal

=

para representar o operador de atribuio.


Desta forma, o seguinte trecho do algoritmo:

Algoritmo
Declare A, B, SOMA;
Leia (A, B);
SOMA ! A + B;
Escreva ( SOMA );
Fim.

poder ser codificado da seguinte maneira:

A = input('Digite o primeiro valor')
B = input('Digite o segundo valor')
SOMA = A + B


Escrita de valores na tela do monitor de vdeo
O SciLab prov diversas funes para escrever valores na tela. A mais comumente utilizada a
funo

disp( <varivel> )

Alm de exibir o valor armazenado em uma varivel, uma string tambm pode ser enviada como
parmtro para disp:

disp( string )

bem como disp pode concatenar duas strings atravs do operador + :

disp( string 1 + string 2 )

Apesar de disp exibir valores de variveis numricas, importante ressaltar que, uma vez que uma
string for fornecida, todos os parmetros devero ser do tipo string. Entretanto, um valor numrico
pode ser facilmente convertido para string com o uso da funo string. Portanto, muito comum o
uso desta funo para poder combinar, em uma nica instruo, uma mensagem e uma varivel
numrica. Observe os exemplos abaixo:

IDADE = 20; // atribui o valor 20 varivel IDADE

disp( Idade=) // exibe a mensagem Idade=
disp( IDADE ) // exibe o valor da varivel numrica IDADE

disp( Idade= + string(IDADE) ) // exibe a mensagem Idade= seguida do valor
// da varivel IDADE. Note que foi necessrio
// converter a varivel numrica em string.

Desta forma, o algoritmo

Algoritmo
Declare A, B, SOMA;
Leia (A, B);
SOMA ! A + B;
Escreva ( SOMA );
Fim.

poder ser codificado da seguinte maneira:

A = input('Digite o primeiro valor')
B = input('Digite o segundo valor')
SOMA = A + B
disp(A soma = + string(SOMA) )



Execuo de um programa

Antes de executar o programa acima, necessrio salv-lo. Para isto, selecione no menu a opo

Arquivo
Save


Para executar o programa, selecione no menu a opo
Execute
Execute File Into Scilab

Lembre-se de acessar o ambiente do Scilab para acompanhar a execuo do programa.
Questes:

1. O algoritmo abaixo converte graus Farenheit em graus Celsius.

Algoritmo
Declare FARENHEIT, CELSIUS;
Leia ( FARENHEIT );
CELSIUS ! 5 / 9 * (FARENHEIT 32);
Escreva ( CELSIUS );
Fim.

Codifique-o em Scilab.



2. Construa um programa que leia um valor e calcule:
O dobro do nmero
O quadrado do nmero
A raiz quadrada do nmero
A metade do nmero
O resto de sua diviso por 2


3. Sabendo que a funo int( ) recupera a parte inteira de um nmero real, acrescente ao
programa anterior o clculo da diviso inteira do nmero lido por 2.


4. Construa um programa que calcule o permetro de um retngulo qualquer.


5. Construa um programa que calcule a rea de um crculo.


6. Construa um programa que permita implementar o clculo da frmula abaixo, sendo
a, b, c valores lidos:

d = a b
(2c a)
2



7. Construa um programa que permita calcular o valor da hipotenusa em um tringulo,
lembrando que:
O quadrado da hipotenusa igual soma dos quadrados dos dois catetos.


8. Construa um programa que permita calcular a distncia entre dois pontos (x1, y1) e
(x2, y2) no plano cartesiano. Os valores dos pontos devero ser lidos. A distncia entre
dois pontos obtida por:

d
2
= (x1 x2)
2
+ (y1 y2)
2

Você também pode gostar