Sei sulla pagina 1di 21

UNIVERSIDADE FEDERAL DE SANTA CATARINA

CENTRO TECNOLÓGICO
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Curso de Mestrado
Nivelamento para Mestrado Acadêmico

SISTEMAS COMPUTACIONAIS

Florianópolis, 21 de Fevereiro de 2000


Sumário

1 Introdução aos Sistemas Computacionais 1

1.1 Sistema Operacional Windows 95/98 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Ponto de partida: recursos locais do computador . . . . . . . . . . . . . . . . . . . . . 1

1.1.2 Ambiente de rede: recursos de outros computadores . . . . . . . . . . . . . . . . . . . 2

1.2 Outros tipos de redes de computadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 Cadastro de usuários e senhas de acesso às redes . . . . . . . . . . . . . . . . . . . . . 3

1.3 Interconexão de redes: a rede Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3.1 Acessando outras redes via servidor HTTP . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3.2 Exemplos de acesso a páginas da Internet . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3.3 Transferindo arquivos de outras redes: o protocolo FTP . . . . . . . . . . . . . . . . . 5

1.4 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Introdução à Programação Computacional 6

2.1 O programa Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.1 Configurando o Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.2 Iniciando o Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.3 O Sistema de Ajuda ao Usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 Ambiente Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.1 O interpretador de comandos do Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3 A Linguagem Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

i
2.3.1 Matrizes e Quadrados Mágicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3.2 Expressões Aritméticas e Algébricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3.3 Arquivos de comandos: os scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3.4 Estruturas de controle: if, while e for . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3.5 Funções em Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3.6 Exemplo: função de transformação de números complexos. . . . . . . . . . . . . . . . 16

2.4 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.5 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

ii
1

Introdução aos Sistemas


Computacionais

objetivos:

• introduzir os mecanismos básicos de operação com computadores: interação com os sistemas operaci-
onais, trabalho com arquivos, uso de utilitários;

• apresentar a organização básica dos sistemas computacionais da UFSC;

• preparar para o uso do programa Matlab no sistema operacional Windows 95/98.

1.1 Sistema Operacional Windows 95/98

Apesar de frequentemente criticado devido à baixa confiabilidade e alto custo computacional, o Microsoft
Windows 95/98 é o sistema operacional mais difundido no mundo, e será a plataforma utilizada nesta
disciplina.

1.1.1 Ponto de partida: recursos locais do computador

Examine os recursos disponı́veis no seu computador, ativando o programa Windows Explorer. Siga os passos
a seguir, começando pelo botão Iniciar no canto inferior esquerdo do vı́deo: Iniciar -> Programas
-> Windows Explorer

Observe o “painel” à esquerda, no Windows Explorer. Ao selecionar Meu Computador, será apresentada a
lista de recursos de sua máquina. Ela deve consistir de 1 disco flexı́vel de 3”1/2, 1 disco rı́gido, e talvez 1
driver de CD-ROM, se disponı́vel.

1
Neste curso, estaremos usando basicamente arquivos disponı́veis na unidade de disco rı́gido (C:). Para
examinar suas propriedades, execute os seguintes passos:

a. clique no ı́cone da unidade C com o botão da direita do mouse.

b. Selecione Propriedades no menu que aparece.

Com isto, pode-se ver a capacidade total do disco, e o percentual livre para utilização futura.

Agora, vamos localizar o programa Matlab, o qual será usado nas aulas do curso. Para tanto, siga a seqüência:

Iniciar -¿ Localizar -¿ Arquivos ou Pastas

digitando ”Matlab”na caixa de diálogos.

Esta função de localização é um recurso muito útil provido pelo sistema operacional, e a ela voltaremos
eventualmente.

1.1.2 Ambiente de rede: recursos de outros computadores

O maior avanço recente da informática tem se dado na área de troca de informações entre computadores,
ou seja, na interconexão destes em redes de computadores. Antes de passarmos à mais famosa das redes, a
Internet, vamos examinar os recursos disponibilizados pela rede local desta sala. Para isso, execute:

• Dentro do Explorer, selecione o ı́cone Ambiente de Rede.

Estes computadores estão conectados através de uma rede local, sendo possı́vel compartilhar arquivos entre
eles de forma “transparente”.

Uso de recursos através de atalhos

Para se obter um rápido acesso a certos recursos disponı́veis na rede (e também no próprio computador),
pode-se criar atalhos. Por exemplo, vamos criar um atalho para facilitar o acesso ao driver de CD disponı́vel
no micro m01, executando os passos a seguir

a. No Explorer, localize o ı́cone do driver de CD.

b. Arraste o ı́cone para a tela de fundo, clicando e mantendo pressão sobre o botão esquerdo do mouse.

Uma vez que o ı́cone está disponı́vel na tela de fundo do seu computador, basta clicar duas vezes sobre ele
para ter acesso à unidade de CD-ROM do computador.

2
1.2 Outros tipos de redes de computadores

Sistemas operacionais distintos disponibilizam recursos de rede de forma diferenciada. Por exemplo, pode-se
montar uma rede local com Window 95/98 sem hierarquia, isto é, na qual todos os computadores estão no
mesmo nı́vel, executando o mesmo sistema operacional.

Já as redes Unix e Windows NT trabalham frequentemente com uma arquitetura na qual um ou poucos
computadores são diferenciados dos demais. A estes dá-se o nome de servidores de rede ou servidores de
arquivos. Sendo máquinas mais potentes, os servidores concentram tarefas tais como disponibilização de
arquivos, execução de programas, etc.

Quando programas são executados num servidor, diz-se que o computador da rede que requisitou a execução
é um cliente do serviço. Por isso, redes com esta configuração são chamadas redes tipo cliente-servidor.

Um bom sistema operacional deve, do ponto de vista do usuário, tornar transparente (invisı́vel) os detalhes
de arquitetura da rede. Para tanto, normalmente se requer o serviço de pessoal dedicado à administração
da rede (os administradores de sistemas) para que configurações apropriadas sejam colocadas em prática,
facilitando o trabalho dos usuários. As redes do EEL-UFSC contam com administradores locais, que estarão
auxiliando os usuários ao longo do mestrado. Procure informar-se sobre a polı́tica de acesso aos recursos
computacionais de seu laboratório para saber quando você poderá usá-los.

LABPLAN 331 9933 @gpse.ufsc.br


LABSPOT 331 9593 @labspot.ufsc.br
GPEB 331 9594 @gpeb.ufsc.br
GRUCAD 331 9649 @grucad.ufsc.br
INEP 331 9204 @inep.ufsc.br
LCMI 331 9202 @lcmi.ufsc.br
LINSE 331 9504 @linse.ufsc.br

1.2.1 Cadastro de usuários e senhas de acesso às redes

Em ambientes com recursos compartilhados, existem muitas informações que se quer proteger. Numa em-
presa, p.ex., os arquivos com as propostas enviadas num processo de licitação não devem estar disponı́veis a
qualquer usuário, sob pena de vazamento de informações com prejuı́zos à lisura do processo. Para conseguir
um certo grau de proteção das informações, restringe-se o acesso às redes locais apenas àquelas pessoas
cadastradas como usuários da rede em questão.

Os usuários são cadastrados com nomes e senhas diferenciados. A cada um é atribuı́da uma cota de espaço
em disco para guarda de seus arquivos pessoais. Estas áreas de disco podem ou não ser disponibilizadas para
outros, a critério de cada usuário.

Para aumentar a segurança deste procedimento, recomenda-se a escolha de senhas de acesso difı́ceis de serem
descobertas. Senhas nesta categoria contém misturas de letras maiúsculas e minúsculas, e números/sı́mbolos
(p. ex., sl$1Fpu, un#PGr12, etc). Senhas pobres são formadas com palavras comuns, datas de aniversário,
endereço residencial do usuário, nome de familiares, entre outras.

3
1.3 Interconexão de redes: a rede Internet

Com o advento de sistemas de comunicação de dados de grande capacidade, foi possı́vel disseminar as
interconexões entre computadores. A introdução de um protocolo padrão em meados dos anos 80, o TCP/IP,
permitiu que redes antes isoladas pudessem, a um custo relativemente baixo, ser conectadas a outras redes,
formando uma malha que hoje abrange virtualmente todo o globo.

Os recursos desta rede, principalmente e-mail, FTP, e Telnet, já eram utilizados largamente nos meios
militares, acadêmicos e por algumas indústrias de base tecnológica. Mas o crescimento dramático no uso
da Internet deu-se a partir da primeira metade dos anos 90, com a disseminação de uma linguagem comum
a todos os documentos (a linguagem HTML — Hypertext Markup Language), e do respectivo protocolo de
troca de informações (o protocolo HTTP — Hypertext Transfer Protocol). Estes foram criados no CERN
(Centro Europeu de Pesquisas Nucleares) de Genebra, sob iniciativa de Timothy Bernes-Lee. A revolução
que se seguiu é um fenômeno de importância histórica, pois houve a criação de um novo meio de comunicação
(isto é, um novo mı́dia), que trouxe um impulso econômico importante, principalmente nos Estados Unidos.

1.3.1 Acessando outras redes via servidor HTTP

Para se ter acesso a conteúdos (arquivos) de um computador conectado à Internet, deve-se contar com um
programa especial, ou cliente HTTP, capaz de solicitar serviços a um servidor utilizando este protocolo. Os
browsers hoje disponı́veis gratuitamente fazem esta tarefa (Netscape, Internet Explorer, Lynx).

O acesso via Internet a outras redes não é irrestrito. Isto é, usuários quaisquer podem consultar apenas
os arquivos disponibilizados pelo servidor HTTP. O administrador da rede local define a abrangência deste
acesso, e normalmente cuida para que apenas documentos não sensitivos estejam disponibilizados a todos.

Entretanto, em certos casos como nas transações bancárias e comércio eletrônico, estas restrições bloqueiam
a utilidade em si da conexão. Então, pode-se facultar o acesso via senhas para usuários cadastrados, num
processo semelhante às redes locais. Os problemas de segurança envolvidos nesta operação não são triviais,
mas a discussão destes está além do escopo deste curso.

1.3.2 Exemplos de acesso a páginas da Internet

Inicie um browser disponı́vel no seu computador:

Iniciar -> Programas -> Netscape Communicator -> Netscape Navigator

Explore os endereços a seguir, fazendo ”bookmarks”para armazená-los, pois podem vir a ser úteis no futuro:

• http://www.eel.ufsc.br

• http://www.warwick.ac.uk/˜csuez

• http://www.mathworks.com

• http://www.lcmi.ufsc.br/˜werner/nivelamento

4
1.3.3 Transferindo arquivos de outras redes: o protocolo FTP

Além do protocolo HTTP, outra forma de buscar arquivos em redes remotas é através de clientes/servidores
FTP (File Transfer Protocol). Historicamente bem mais antigo, o FTP surgiu com o sistema operacional
Unix no inı́cio dos anos 70, e ainda é bastante utilizado pois o servidor é de fácil instalação e manutenção.
Além disso, os clientes/servidores HTTP também estão aptos a trocar informações via FTP.

Como exemplo, vamos buscar um arquivo do diretório de FTP do Depto. de Automação e Sistemas —
CTC — UFSC. O arquivo chama-se olderNews.txt, e está disponı́vel no diretório pub/diversos/werner
de ftp://ftp.lcmi.ufsc.br.

1.4 Resumo
• Para visualizar os arquivos e recursos disponı́veis no computador local e via rede:

Iniciar -> Programas -> Windows Explorer

• Para localizar arquivos ou pastas no computador:

Iniciar -> Localizar -> Arquivos ou Pastas

• Para criar atalhos para recursos, programas ou arquivos:


Arrastar o ı́cone do item de interesse para a tela de fundo do ambiente de trabalho.

• Senhas para acesso a redes locais: usar misturas de letras minúsculas e maiúsculas, números e sı́mbolos.

• Para acessar páginas da Internet:

Iniciar -> Programas -> Netscape Communicator -> Netscape Navigator

• Informações sobre a rede de computadores de UFSC:


www.ufsc.br/npd

5
2

Introdução à Programação
Computacional

Objetivos:

• definir o uso e o alcance da programação em ambiente de linguagem interpretada;

• apresentar as peculiaridades da execução do Scilab em ambiente Windows 95/98;

• propiciar o domı́nio do modo interativo (via linha de comandos);

• iniciar o estudo do uso de arquivos de comandos para execução de tarefas.

2.1 O programa Scilab

O Scilab é um software cientı́fico para computação numérica fornecendo um poderoso ambiente computa-
cional aberto para aplicações cientı́ficas e em engenharia. Desenvolvido desde 1990 pelos pesquisadores do
INRIA (Institut National de Recherche en Informatique et en Automatique) e do ENPC (École Nationale
des Ponts et Chaussées), é agora mantido e desenvolvido pelo Consorcio Scilab desde sua criação em Maio de
2003 . Distribuı́do gratuitamente e em código aberto via Internet desde 1994, o Scilab é atualmente usado
em diversos ambientes industriais e educacionais pelo mundo.

Links:

INRIA - http://www.inria.fr/

ENPC - http://www.enpc.fr/

Scilab Home Page - http://scilabsoft.inria.fr/

Apostila do Scilab, Listagem de Programas - http://www.das.ufsc.br/ werner/nivelamento/

6
2.1.1 Configurando o Scilab

Como com todos os programas que rodam sobre Windows 95/98, pode-se definir para o Scilab um diretório
inicial, o qual será o diretório default quando o programa for executado. Para tanto, siga o procedimento
abaixo:

criação de um diretório para cada equipe. No programa Windows Explorer, vá até o disco rı́gido (C:),
e entre no diretório users. Uma vez dentro deste diretório, vá até o menu Arquivo, e siga a seqüencia:

Arquivo -> Novo -> Pasta

Quando aparecer o ı́cone Nova Pasta, substitua este nome pelo nome da sua equipe. Este diretório será
usado nas aulas subseqüentes para armazenamento dos seus programas, portanto memorize o caminho
até ele;

definição do diretório da equipe como diretório de inı́cio do Scilab. A partir do menu “Iniciar”,
execute a opção Localizar → arquivos ou pastas, e localize o nome “Scilab”). Procure pelo ı́cone
Scilab, tipo “Atalho”, e clique sobre ele com o botão direito do mouse. Selecione Propriedades no
menu.
Quando surgir a janela de propriedades, selecione Atalho, e então procure pelo campo “Iniciar em”.
Digite ali o nome do diretório de sua equipe (“C:\users\<suaEquipe>1”).

2.1.2 Iniciando o Scilab

Para executar o programa Scilab, basta clicar duas vezes sobre o ı́cone na tela de fundo do seu computador.
Assim que a janela de comandos estiver habilitada, digite

--> getcwd()

e o nome do diretório corrente será mostrado. Este deverá coincidir com o da sua equipe, caso os passos
acima tenham sido completados com êxito.

Para mudar de diretório o seguinte comando deve ser usado

--> chdir(’caminho_do_diretorio’)

2.1.3 O Sistema de Ajuda ao Usuário

A ajuda ao usuário pode ser obtida de duas formas:

• na linha de comandos, através do comando help.

7
--> help

• na linha de comandos, através do comando help. Por exemplo, digite:

--> help getcwd

2.2 Ambiente Scilab

Do ponto de vista conceitual, o Scilab é um interpretador de comandos. Na área de computação, distingue-se


as linguagens interpretadas das linguagens compiladas, as quais necessitam de um pré-processamento (ou
compilação) antes que seus comandos possam ser executados. Uma vez compilados, os programas podem
ser executados sobre o sistema operacional, diretamente. Exemplos de linguagens compiladas são C, C++,
Pascal e FORTRAN. As linguagens interpretadas mais comuns são LISP, Smalltalk e BASIC

A diferença básica entre os dois tipos de linguagens é a necessidade das linguagens interpretadas contarem
com um suporte para execução, como é o caso do ambiente Scilab. Entretanto, nada impede que ambientes
interpretadores tenham uma função de compilação, gerando programas executáveis que podem ser ativados
diretamente sobre o sistema operacional, sem necessidade do ambiente. Incidentalmente, o Scilab possui tal
funcionalidade, mas seu uso não será visto neste curso.

2.2.1 O interpretador de comandos do Scilab

• exemplo de comandos:

--> %pi
--> sin( %pi )
--> sin( 60 *%pi/180 )

• manipulação de vetores e matrizes:

--> [0: 10]


--> [0: 2: 10]’
--> [0: 2: 10; 10: 2: 20]
--> [0: 1: 10; 0: 2: 20]

• editor da linha de comandos:


– use as setas ↑ e ↓ para recuperar comandos já usados;
– use as setas → e ← para editar caracteres na linha atual.
• visualização de gráficos:

--> plot (sin ( [0: 0.2: 2*%pi] ));

8
2.3 A Linguagem Scilab

Os comandos a seguir ilustram os elementos básicos da linguagem Scilab: operadores, variáveis, e estruturas
de controle if e while.

Sempre que necessário, anote o item de ajuda do Scilab que se relaciona com o comando em questão.

2.3.1 Matrizes e Quadrados Mágicos

• Definindo uma matriz:

--> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

• Operações sobre matrizes:

--> sum(A,’c’) // Soma das colunas de A

• Obtendo a soma das linhas de A:

--> At = A’ // At contém a transposta de A


--> sum(At,’c’) // Resultado: vetor com a soma das colunas de At.

• O mesmo, de forma mais elegante:

--> sum(A’,’c’)’ // Resultado: vetor com a soma das linhas de A.

• Soma da diagonal principal de A:

--> sum(diag(A)) // diag: funç~


ao pré-definida do ambiente.

Índices matriciais: elementos aij

• Indexação de elementos:

--> i = 1; j = 2;
--> A(i,j)
--> A(i,i)
--> A(j,i)
--> A(j,j)

• Índice único:

--> A(1), A(2) // Matriz referenciada como vetor coluna.


--> // Obter os elementos A(1,2) e A(3,3).

• Soma dos elementos da primeira linha de A:

--> A(1,4) + A(2,4) + A(3,4) + A(4,4)

9
• Referência a elementos não existentes na matriz:

--> A(1,5)

• Acrescentando elementos na matriz:

--> X = A;
--> X(4,5) = 17

O Operador “:”

• Funcionamento básico:

--> 1:10

• Sequência de passo variável:

--> 100:-2:90
--> 100:-2:89
--> 0:pi/6:%pi // pi = 3,141592...

• Uso em subescritos:

--> j = 2;
--> A(1:4, j)
--> A( : , j+1)

• Soma dos elementos da primeira linha de A:

--> sum( A(1,:) )

• Por que a soma das linhas ou colunas de uma matriz mágica de 4 × 4 deve resultar em 34?

--> sum(1:16)/4 // 4 grupos de números de 1 a 16, com


--> // mesma soma só pode ser sum(A)/4.

2.3.2 Expressões Aritméticas e Algébricas

Variáveis

• Definição de variáveis:

--> num_alunos = 10 // Cria matriz 1x1, ‘‘num_alunos’’

• Variáveis já criadas:

10
--> who // Mostra lista com nome das variáveis
--> whos // Mostra tamanho e tipo das variáveis

• Atribuição de valor a variáveis:

--> a = sin( [0: 0.2: 2*%pi] );

• Variável ans:

--> sin(3*%pi/2) // variável ans: help ans

• Tipo de variáveis: conceito “fraco” em Scilab:

--> a = 1.0 // mesmo ’a’ de exemplo acima

Números

• Tipos de números:

--> 3, -99, 0.001, 1e-03


--> 3*%i, 4 + 3*%i

Operadores

• Operadores disponı́veis:

--> help +
--> help symbols
--> 1 + 2*3^2, 1*2 + 3^2 // help symbols
--> 3 > 9 // help symbols
--> 3 < 9
--> 5.01 == 5.02

• Matrizes: dimensões e operações básicas:

--> A = [1 2; 3 4]
--> size(A)
--> [m n] = size(A)
--> A’
--> A - A’
--> A*A, A^2, A.^2
--> inv(A), A^(-1)

11
Funções pré-definidas

• Exemplos:

--> h2 = 3^2 + 4^2


--> h = sqrt(h2) //Funç~
ao raiz quadrada
--> help sqrt

2.3.3 Arquivos de comandos: os scripts

Seqüencias longas de comandos podem ser editadas em arquivo. Arquivos contendo comandos do Scilab são
chamados de scripts (roteiros), e podem ser executados sempre que preciso. O Scilab não tem um editor de
scripts, no entanto pode-se editar o script em qualquer editor de textos (bloco de notas, wordpad, emacs)
salvando com a extensão .sci.

A edição de comandos é particularmente útil quando se deseja executar comandos condicionais e laços de
repetição, como veremos a seguir.

2.3.4 Estruturas de controle: if, while e for

O comando if-else

Este comando serve para desviar o fluxo de execução de um programa, de acordo com testes executados
sobre variáveis. Por exemplo, edite o código a seguir, salvando-o em um arquivo com a extensão “.m”:

// Este script utiliza o comando if-else

n1=input(’Informe um número:’ );
n2=input(’Informe o outro número:’ );

if ( n2~=0 )
n = n1/n2;
disp(’O resultado da divis~ ao é:’);
disp(n);
else
disp (’N~ao é possivel dividir por 0!’);
end

Execute o programa (digitando exec(’nome_do_arquivo.sci’);), e verifique o funcionamento.

Pode-se usar vários nı́veis de testes if-else, como indicado no exemplo a seguir:

12
// Programa exemplo de if - else

n = input(’Digite um número -> ’);


if (n < 0)
disp(’O número é negativo’);
else
if (n == 0)
disp(’O número é zero’);
else
disp (’O número é positivo’);
end
end

O comando while

O trecho de código a seguir mostra os números pares e ı́mpares de 1 a 9. Edite e salve em um arquivo, e
então execute o programa. Observe o funcionamento dos comandos if e while.

// Programa parimpar.sci

a = 1;
while ( a < 10 ),
if modulo(a,2) == 0 ),
disp(’O número é par’);
else
disp(’O número é ı́mpar’);
end
disp(a);
a = a + 1;
end;

O comando for

Este comando executa repetições de forma similar ao comando while, mas a sintaxe é abreviada para permitir
o uso mais ágil do incremento/decremento das variáveis de controle de laços. O programa anterior, com o
uso do for, fica:

// Programa parimpar.sci, v.2

for a = 1:9,
if modulo(a,2) == 0 ),

13
disp(’O número é par’);
else
disp(’O número é ı́mpar’);
end
disp(a);
end;

Note que os comandos explı́citos de inicialização “a = 1” e de incremento “a = a + 1” não são mais


necessários.

Um exemplo mais elaborado é mostrado a seguir:

// Exemplo de uso de for


// Este programa extrai uma das linhas de uma matriz

A = [ 1 2 3 4 5; 5 4 3 2 1; 6 7 8 9 0; 0 9 8 7 6]
v1 = [];
[n,m] = size(A);

x = input(’Informe a linha desejada: ’);

if ( (x <= n) & ( x > 0 ) )


for j=1:n,
if ( j == x )
for i=1:m,
v1(i)=A(j,i);
end
end
end
disp(’A linha desejada é:’);
disp(v1)
else
disp(’N~ao existe esta linha’);
end

Por último, tem-se o exemplo de um programa que combina os usos de “while” e “for” (observe que a função
do while não é mais de controle do número de repetições, mas sim de teste de entrada de dados):

// Exemplo de uso de while


// Este programa extrai uma das linhas de uma matriz

A=[ 1 2 3 4 5; 5 4 3 2 1; 6 7 8 9 0; 0 9 8 7 6]
v1=[];
[n,m]=size(A);

14
x = input(’Informe a linha desejada: ’);

while ((x>n)|(x<=0))
disp(’N~
ao existe esta linha’);
x = input(’Informe a linha desejada: ’);
end

for j = 1:n,
if ( j == x ),
v1=A(j,:);
end
end
disp(’A linha desejada é:’);
disp(v1)

2.3.5 Funções em Scilab

As funções são a base sobre a qual o ambiente Scilab tem sido continuamente expandido. Todos os comandos
do Scilab são implementados como funções, com exceção dos operadores (+, -, ^, &, =, por exemplo). Pode-
se ter acesso ao código de muitas delas, e algumas são internas. A função sin (x), p.ex., é interna e seu
código não está acessı́vel.

Funções são criadas pelo usuário em arquivos com extensão .sci, da mesma forma que scripts. A sintaxe da
primeira linha do arquivo deve ser:

function [x1, ..., xn] = nomeDaFunç~


ao (p1, ...,pn)

onde:

[x1, ..., xn]: lista de variáveis que retornam valores;

p1, ..., pn: lista de parâmetros passados para a função.

Além disso, pode-se adicionar linhas de comentários para documentar as capacidades da função que se está
definindo.

Para a execução de uma função os seguintes comandos podem ser usados

exec(’nome_do_arquivo.sci’);

ou

getf(’nome_do_arquivo.sci’);

15
=c

y
r
θ
x <c

Figura 2.1: Representação do número complexo c = x + jy = (r, θ) no plano complexo.

após digita-se o comando referente a sintaxe da função

[parametros,de,saida]=nome_da_funcao(parametros,de,entrada);

2.3.6 Exemplo: função de transformação de números complexos.

A figura 2.1 mostra a representação de um número complexo no plano, com suas componentes real (x) e
imaginária (y). Duas formas algébricas são adotadas para a escrita de quantidades complexas:

coordenadas retangulares: correspondem à projeção do vetor complexo nos eixos (<c, =c), isto é, às
coordenadas (x, y). Também chamada de forma retangular;

coordenadas polares: correspondem à representação do número pela sua magnitude r e pelo ângulo θ
formado com a horizontal. Também chamada de forma polar.

Uma função de transformação da forma retangular para forma polar pode ser implementada como segue:

function [r, teta] = polar(re, im)

// POLAR Complex number conversion.


// [r, teta] = POLAR(re, im) returns the polar
// representation of the complex
// number re + i*im, where ’i’ is the imaginary unit.

if ( argn(2) ~= 2 )
warning(’Please provide two parameters’);
r=[];
else
r = sqrt( re^2 + im^2 );
teta = atan ( im, re ) * 180/%pi; // Teta is in degrees.
end
endfunction

16
2.4 Exercı́cios
a. Faça um script para o cálculo das raı́zes de uma equação do segundo grau ax2 + bx + c = 0. Faça
saı́das de dados diferentes caso as raı́zes sejam reais ou complexas conjugadas (neste último caso, o
determinante ∆ = b2 − 4ac é menor do que 0.

b. Utilize o comando input no script acima para implementar uma entrada de dados do usuário (help
input). Este deve poder fornecer os coeficientes da equação, e também responder se deseja ou não
efetuar novo cálculo.

c. Melhore o relatório de saı́da do programa “parimpar.sci”, criando strings com a mensagem do tipo ’O
número 3 é ı́mpar’. Use a função sprintf, com o conversor %d para converter números inteiros para
strings.

d. Faça algoritmos que calculem:

• a transposta de uma matriz n × m;


• o traço de uma matriz n × n;
• a soma e o produto de duas matrizes;
• o produto de uma matriz n × m por um escalar.

e. Crie o arquivo “polar.sci” com a função definida acima, e execute para testar os resultados. Também,
teste os comentários com o comando help polar.

f. Implemente uma função para conversão de números complexos da forma polar para a forma retangular.

2.5 Resumo
• Iniciando o programa Scilab em Windows:

-> Iniciar -> Programas -> Scilab -> Scilab

• Manipulando vetores:

--> [0: 10]


--> [0: 10; 0: 2: 20]’

• Visualizando gráficos:

--> plot (sin ( [0: 0.2: 2*%pi] ));

• Operadores:

> help symbols;

17
• Variáveis:

--> a = [0: 0.2: 2*pi];


--> a = 1.25;

• Estruturas de controle if, while e for:

--> help if
--> help while
--> help for

18

Potrebbero piacerti anche