Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CENTRO TECNOLÓGICO
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
Curso de Mestrado
Nivelamento para Mestrado Acadêmico
SISTEMAS COMPUTACIONAIS
1.4 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
i
2.3.1 Matrizes e Quadrados Mágicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
ii
1
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;
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.
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:
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:
Esta função de localização é um recurso muito útil provido pelo sistema operacional, e a ela voltaremos
eventualmente.
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:
Estes computadores estão conectados através de uma rede local, sendo possı́vel compartilhar arquivos entre
eles de forma “transparente”.
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
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.
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.
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.
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:
• Senhas para acesso a redes locais: usar misturas de letras minúsculas e maiúsculas, números e sı́mbolos.
5
2
Introdução à Programação
Computacional
Objetivos:
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/
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:
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”).
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.
--> chdir(’caminho_do_diretorio’)
7
--> help
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.
• exemplo de comandos:
--> %pi
--> sin( %pi )
--> sin( 60 *%pi/180 )
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.
• Indexação de elementos:
--> i = 1; j = 2;
--> A(i,j)
--> A(i,i)
--> A(j,i)
--> A(j,j)
• Índice único:
9
• Referência a elementos não existentes na matriz:
--> A(1,5)
--> X = A;
--> X(4,5) = 17
O Operador “:”
• Funcionamento básico:
--> 1:10
--> 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)
• Por que a soma das linhas ou colunas de uma matriz mágica de 4 × 4 deve resultar em 34?
Variáveis
• Definição de variáveis:
10
--> who // Mostra lista com nome das variáveis
--> whos // Mostra tamanho e tipo das variáveis
• Variável ans:
Números
• Tipos de números:
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
--> 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:
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.
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”:
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
Pode-se usar vários nı́veis de testes if-else, como indicado no exemplo a seguir:
12
// Programa exemplo de if - else
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:
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;
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);
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):
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)
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:
onde:
Além disso, pode-se adicionar linhas de comentários para documentar as capacidades da função que se está
definindo.
exec(’nome_do_arquivo.sci’);
ou
getf(’nome_do_arquivo.sci’);
15
=c
y
r
θ
x <c
[parametros,de,saida]=nome_da_funcao(parametros,de,entrada);
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:
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.
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:
• Manipulando vetores:
• Visualizando gráficos:
• Operadores:
17
• Variáveis:
--> help if
--> help while
--> help for
18