Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

viciado

[Resolvido] Algoritmo

Recommended Posts

Eu tenho um algoritmo de implementação do tipo matriz, como posso fazer em C

 

 

TAD matriz def
      rep = reg(  val:vet[1...max] de valor;    "vetor para os elementos"
                  eb: int;                      "endereço(cursor) inicial"
                  t: int;                       "tamanho dos elementos"
                  d: int;                       "número de dimensões"
                  L1,L2: int)                   "limites de linhas e colunas"
      op = proc cria_bidim(M: matriz; L1, L2: int);
           proc atribuição(M: matriz; i, j: int; v: valor);
           func consulta(M: matriz; i, j: int) retorna valor;
           func lim_dim(M: matriz, k: int) retorna int;
fim matriz;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho um algoritmo de implementação do tipo matriz, como posso fazer em C

 

 

TAD matriz def
      rep = reg(  val:vet[1...max] de valor;    "vetor para os elementos"
                  eb: int;                      "endereço(cursor) inicial"
                  t: int;                       "tamanho dos elementos"
                  d: int;                       "número de dimensões"
                  L1,L2: int)                   "limites de linhas e colunas"
      op = proc cria_bidim(M: matriz; L1, L2: int);
           proc atribuição(M: matriz; i, j: int; v: valor);
           func consulta(M: matriz; i, j: int) retorna valor;
           func lim_dim(M: matriz, k: int) retorna int;
fim matriz;

Cara... Não entendi nada do seu código e nem o que você quer fazer!!

 

Explica melhor aí pra gente poder te ajudar!

:D

 

Isso ai tá em alguma linguagem em especial? Nunca vi nada assiM! uahuahua

Compartilhar este post


Link para o post
Compartilhar em outros sites

em C do jeito q está ai eu naum saberia fazer,

agora em C++ é outra história, pq ai envolve classe e tal!

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

em C do jeito q está ai eu naum saberia fazer,

agora em C++ é outra história, pq ai envolve classe e tal!

 

[]s

 

Isso ai tá em alguma linguagem em especial? Nunca vi nada assiM! uahuahua

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consequi o algoritmo completo.

 

É sobre função de mapeamento de matriz. A função de mapeamento bidimensional é: fm(i,j) = Eb + t*[(i-1)*n +j-1]

 

Algoritmo, cria um tipo de dado matriz com as função especificadas, sabendo que proc (procedimento) a passagem de parametro é feita por referência.

 

Aqui vai o algoritmo completo:

 

TAD matriz def
      rep = reg(  val:vet[1...max] de valor;    "vetor para os elementos"
                  eb: int;                      "endereço(cursor) inicial"
                  t: int;                       "tamanho dos elementos"
                  d: int;                       "número de dimensões"
                  L1,L2: int)                   "limites de linhas e colunas"
      op = proc cria_bidim(M: matriz; L1, L2: int);
           proc atribuição(M: matriz; i, j: int; v: valor);
           func consulta(M: matriz; i, j: int) retorna valor;
           func lim_dim(M: matriz, k: int) retorna int;
fim matriz;
TAD matriz implem;
      func fm(i, j: int) retorna int;
      "Função de mapeamento bidimensional"
      início
         retorne M.eb +M.t*[(i-1)*M.L2 + j-1]
      fim;
      func lim_dim(M: matriz; k: int) retorna int;
            "Fornece o limite de uma dimensão da matriz M"
            inicio
               se k = 1
                  então retorne M.L1
               senão se k = 2
                  então retorne M.L2
               senão erro("Dimensão Invalida!")
            fim;
      proc cria_bidim(M: matriz; L1, L2: int);
           "Estabelece o conteúdo do descritor bidimensional"
           início
              M.eb := 1;
              M.t := 1;
              M.d := 2;
              M.L1 := L1;
              M.L2 := L2;
           fim;
      proc atribuição(M: matriz; i, j: int; v: valor);
           "Associa o valor v aos índices i, j em M"
           início
             se i <= M.L1 & j <= M.L2
                então M.val[ fm(i,j) ] := v;
                senão erro("Índices inválidos!");
           fim;
      func consulta(M: matriz; i,j: int) retorna valor;
           "Fornece o valor associado aos índices i, j em M"
           início
             se 0 < i <= M.L1 & 0 < j <= M.L2
                então retorne M.val[ fm(i,j) ]
                senão erro("Índices inválidos!");
           fim;
fim matriz.     

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.