Ir para conteúdo
Fórum Script Brasil
  • 0

Matrizes Esparsas


Thiago Lima

Pergunta

Galera preciso fazer um trabalho para faculdade sobre matrizes esparsas e nem sei por onde começar. Segue enunciado do trabalho, se alguém poder me ajudar dando dicas, mostrando como começar ficarei muito grato !

Projeto 01: matrizes esparsas

Nesse projeto o objetivo ´e implementar um conjunto de opera¸c˜oes para a

manipula¸c˜ao de matrizes esparsas [Ziviani, 2004, p´ag: 59-64].

Uma matriz esparsa ´e uma matrizes na qual a maioria das posi¸c˜oes ´e preenchida

por zeros. Para este tipo de matriz, podemos economizar espa¸co de mem´oria

se forem armazenados apenas os termos diferentes de zero. As opera¸c˜oes usuais

sobre estas matrizes (ler matriz, imprimir matriz, apagar matriz, somar duas

matrizes, multiplicar duas matrizes, e inverter uma matriz) tamb´em podem

ser feitas em tempo muito menor se n˜ao forem armazenadas as posi¸c˜oes

que cont´em zeros. Uma modo eficiente de representar estruturas com tamanho

vari´avel e/ou desconhecido ´e atrav´es de aloca¸c˜ao dinˆamica, utilizando listas.

Exemplo:

Abaixo temos um exemplo de arquivo texto que permite construir uma

matriz esparsa.

4 4

1 1 50.0

2 1 10.0

2 3 20.0

4 1 -30.0

4 3 -60.0

4 4 5.0

Tabela 1: Exemplo de Arquivo de Entrada

A primeira linha do arquivo texto informa o n´umero de linhas e colunas da

matriz a ser constru´ıda. Cada uma das linhas cont´em tres informa¸c˜oes: as

coordenadas (linha e coluna) e o conte´udo da respectiva coordenada. Desse

modo, a matriz esparsa correspondente ´e (a Figura 1 representa a matriz esparsa

via lista ligada):

M =

50.0 0 0 0

10.0 0 20.0 0

0 0 0 0

−30.0 0 −60.0 5.0

1.1 Exigˆencias na Implementa¸c˜ao

As estruturas de dados devem ser alocadas dinamicamente com malloc() e

as matrizes s˜ao constru´ıdas por informa¸c˜oes obtidas a partir de arquivos texto

que devem ser lidos pelo programa. Os arquivos de entrada e sa´ıda devem ser

informados na linha de comando. A modulariza¸c˜ao (e o encapsulamento) ´e parte

fundamental na confec¸c˜ao desse projeto. Escreva as rotinas em arquivos separados,

por exemplo, as rotinas de tratamento de arquivo devem estar num arquivo

separado das rotinas que fazem a manipula¸c˜ao das matrizes. Desse modo, ir´a

necessitar de um terceiro arquivo contendo a rotina principal (com o main).

todas as defini¸c˜oes de tipos e prot´otipos de fun¸c˜oes devem constar em header

files (arquivos do tipo .h).

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Faz o trabalho seu vagabundo!

Galera preciso fazer um trabalho para faculdade sobre matrizes esparsas e nem sei por onde começar. Segue enunciado do trabalho, se alguém poder me ajudar dando dicas, mostrando como começar ficarei muito grato !

Projeto 01: matrizes esparsas

Nesse projeto o objetivo ´e implementar um conjunto de opera¸c˜oes para a

manipula¸c˜ao de matrizes esparsas [Ziviani, 2004, p´ag: 59-64].

Uma matriz esparsa ´e uma matrizes na qual a maioria das posi¸c˜oes ´e preenchida

por zeros. Para este tipo de matriz, podemos economizar espa¸co de mem´oria

se forem armazenados apenas os termos diferentes de zero. As opera¸c˜oes usuais

sobre estas matrizes (ler matriz, imprimir matriz, apagar matriz, somar duas

matrizes, multiplicar duas matrizes, e inverter uma matriz) tamb´em podem

ser feitas em tempo muito menor se n˜ao forem armazenadas as posi¸c˜oes

que cont´em zeros. Uma modo eficiente de representar estruturas com tamanho

vari´avel e/ou desconhecido ´e atrav´es de aloca¸c˜ao dinˆamica, utilizando listas.

Exemplo:

Abaixo temos um exemplo de arquivo texto que permite construir uma

matriz esparsa.

4 4

1 1 50.0

2 1 10.0

2 3 20.0

4 1 -30.0

4 3 -60.0

4 4 5.0

Tabela 1: Exemplo de Arquivo de Entrada

A primeira linha do arquivo texto informa o n´umero de linhas e colunas da

matriz a ser constru´ıda. Cada uma das linhas cont´em tres informa¸c˜oes: as

coordenadas (linha e coluna) e o conte´udo da respectiva coordenada. Desse

modo, a matriz esparsa correspondente ´e (a Figura 1 representa a matriz esparsa

via lista ligada):

M =

50.0 0 0 0

10.0 0 20.0 0

0 0 0 0

−30.0 0 −60.0 5.0

1.1 Exigˆencias na Implementa¸c˜ao

As estruturas de dados devem ser alocadas dinamicamente com malloc() e

as matrizes s˜ao constru´ıdas por informa¸c˜oes obtidas a partir de arquivos texto

que devem ser lidos pelo programa. Os arquivos de entrada e sa´ıda devem ser

informados na linha de comando. A modulariza¸c˜ao (e o encapsulamento) ´e parte

fundamental na confec¸c˜ao desse projeto. Escreva as rotinas em arquivos separados,

por exemplo, as rotinas de tratamento de arquivo devem estar num arquivo

separado das rotinas que fazem a manipula¸c˜ao das matrizes. Desse modo, ir´a

necessitar de um terceiro arquivo contendo a rotina principal (com o main).

todas as defini¸c˜oes de tipos e prot´otipos de fun¸c˜oes devem constar em header

files (arquivos do tipo .h).

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...