Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''implementacao''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Encontrado 3 registros

  1. Boa tarde pessoal, sou novo aqui e estou com dúvidas sobre a implementação de lista encadeada com matrizes esparsas. O que já fiz até agora: main.c #include <stdio.h> #include <stdlib.h> #include "matriz.h" void main(void){ TMatriz *A, *B, *C; LeMatriz(&A, "A.txt"); ImprimeMatriz(&A); LeMatriz(&B, "B.txt"); ImprimeMatriz(&B); C = SomaMatriz(A,B); ImprimeMatriz(&C); ApagaMatriz(B); ApagaMatriz(C); LeMatriz(&B,"B.txt"); ImprimeMatriz(&A); ImprimeMatriz(&B); C = SomaMatriz(A,B); ImprimeMatriz(&C); C = MultiplicaMatriz(A,B); ImprimeMatriz(C); C = MultiplicaMatriz(B,B); ImprimeMatriz(A); ImprimeMatriz(B); ImprimeMatriz(C); ApagaMatriz(A); ApagaMatriz(B); ApagaMatriz(C); } matriz.c #include <stdio.h> #include <stdlib.h> #define TAM_BUFFER 255 #include "matriz.h" TMatriz *criaMatriz(int m, int n){ TMatriz *A; A = (TMatriz*)malloc(sizeof(TMatriz)); if(!A || m<=0 || n<=0){ return 0; } A ->inicio = NULL; A ->fimLinha = NULL; A ->fimColuna = NULL; A ->m = m; A ->n = n; iniciaCabecas(A); return A; } int iniciaCabecas(TMatriz *A){ int i=0; T_Celula *cabeca; cabeca = (T_Celula*)malloc(sizeof(T_Celula)); if(!cabeca){ return 0; } cabeca->coluna = -1; cabeca->linha = -1; A->inicio = cabeca; A->fimLinha = cabeca; A->fimColuna = cabeca; for(i = 1; i <= A->n; i++){ cabecaColuna(A); } for(i = 1; i <= A->m; i++){ cabecaLinha(A); } return 1; } int cabecaColuna(TMatriz *A){ T_Celula *cabeca; cabeca = (T_Celula*)malloc(sizeof(T_Celula)); if(!cabeca){ return 0; } cabeca->coluna = -1; cabeca->linha = 0; A->fimColuna->direita = cabeca; A->fimColuna = cabeca; cabeca->direita = A->inicio; cabeca->abaixo = cabeca; return 1; } int cabecaLinha(TMatriz *A){ T_Celula *cabeca; cabeca = (T_Celula*)malloc(sizeof(T_Celula)); if(!cabeca){ return 0; } cabeca->coluna = 0; cabeca->linha = -1; A->fimLinha->abaixo = cabeca; A->fimLinha = cabeca; cabeca->abaixo = A->inicio; cabeca->direita = cabeca; return 1; } void ImprimeMatriz(TMatriz* A){ int i, j; T_Celula *pCelula; if(!A || !A->m || !A->n){ return 0; } pCelula = A->inicio->abaixo; printf("\n"); for(i = 1; i <= A->m; i++){ for(j = 1; j <= A->n; j++){ if(pCelula->direita->linha == i && pCelula->direita->coluna == j){ printf(" \t%0.2f ", pCelula->valor); } else{ printf(" \t%0.2f ", 0.0F); } } printf("\n"); pCelula = pCelula->direita->abaixo; } return 1; } void LeMatriz(TMatriz* A, char fn[]){ FILE* f; int m, n; f = fopen(fn, "r"); fscanf(f, "%d,%d ", &m, &n); A = criaMatriz(m, n); int i, j; double valor; while(fscanf(f, "%d, %d, %lf", &i, &j, &valor)!= EOF){ insere(A, i, j, valor); } fclose(f); } void ApagaMatriz(TMatriz* A){ int i = 1; int j = 1; T_Celula *pCelula, *aux; if(!A || !A->m || !A->n){ return 0; } pCelula = A->inicio->abaixo; pCelula = pCelula->direita; for(i = 1; i <= A->m; i++){ for(j = 1; j<= A->n; j++){ if(pCelula->linha == i && pCelula->coluna == j){ aux = pCelula; pCelula = pCelula->direita; free(aux); } } pCelula = pCelula->abaixo->direita; } pCelula = A->inicio->direita; for(i = 0; i < A->n; i++){ aux = pCelula; pCelula = pCelula->direita; free(aux); } pCelula = A->inicio->abaixo; for(i = 0; i < A->m; i++){ aux = pCelula; pCelula = pCelula->abaixo; free(aux); } pCelula = A->inicio; free(pCelula); A->fimColuna = A->fimLinha = A->inicio = NULL; A->m = A->n = 0; A = NULL; return 1; } TMatriz *SomaMatriz(TMatriz* A, TMatriz* B){ int i, j; float soma; TMatriz *C; T_Celula *pCelulaA, *pCelulaB; if(A->m != B->m || A->n != B->n){ printf("\nMatrizes de ordem diferente.\nSo e possivel somar matrizes com o mesmo numero de linhas e colunas\n"); return NULL; } if(!A || !B || !A->m || !A->n){ return NULL; } C = criaMatriz(A->m, B->n); pCelulaA = A->inicio->abaixo; pCelulaB = B->inicio->abaixo; for(i = 1; i<= A->m; i++){ for(i = 1; j<= B->n; i++){ if(j == pCelulaA->direita->coluna && j == pCelulaB->direita->coluna){ soma = pCelulaA->direita->valor + pCelulaB->direita->valor; if(soma){ insere(C, i, j, soma); } pCelulaA = pCelulaA->direita; pCelulaB = pCelulaB->direita; } else if(j == pCelulaA->direita->coluna){ insere(C, i, j, pCelulaA->direita->valor); pCelulaA = pCelulaA->direita; } else if( j == pCelulaB->direita->coluna){ insere(C, i, j, pCelulaB->direita->valor); pCelulaB = pCelulaB->direita; } } pCelulaA = pCelulaA->direita->abaixo; pCelulaB = pCelulaB->direita->abaixo; } return C; } TMatriz *MultiplicaMatriz(TMatriz* A, TMatriz* B){ int i=0, j=0, k=0; float total; TMatriz *C; if(A->n != B->m){ printf("\nMultiplicacao não efetuada, numero de colunas de A e diferente do numero de linhas de B\n"); return NULL; } if(!A || !B || !A->m || !A->n || !B->n){ return NULL; } C = criaMatriz(A->m, B->n); for(i = 1; i<= A->m; i++){ for(j = 1; j<= B->n; j++){ total = 0; for(k = 1; k<= A->n; k++){ total += obterEI(A, i, k) *obterEI(B, k, j); } if(total){ insere(C, i, j, total); } } } return C; } int insere(TMatriz *A, int linha, int coluna, double valor){ int i; if (!A || A->m <= 0 || A->n <= 0 || !valor){ return 0; } if (linha>A->m || coluna>A->n || !valor || linha < 1 || coluna < 1){ return 0; } T_Celula *pCelula; T_Celula *pCelulaColuna; T_Celula *pCelulaLinha; pCelula = (T_Celula*)malloc(sizeof(T_Celula)); if(!pCelula){ //memoria cheia return 0; } for(i = 0; i<linha-1; i++){ pCelulaLinha = pCelulaLinha->abaixo; } i = 0; while(i<coluna && pCelulaLinha->direita->linha != -1){ if(pCelulaColuna->direita->coluna > pCelula->coluna){ pCelula->direita = pCelulaLinha->direita; } else{ pCelulaLinha = pCelulaLinha->direita; } i++; } if(pCelulaLinha->direita->linha == -1){ pCelula->direita = pCelulaLinha->direita; pCelulaLinha->direita = pCelula; } for(i = 0; i< coluna-1; i++){ pCelulaColuna = pCelulaColuna->direita; } i = 0; while(i<linha && pCelulaColuna->abaixo->coluna != -1){ if(pCelulaColuna->abaixo->linha > pCelula->linha){ pCelula->abaixo = pCelulaColuna->abaixo; pCelulaColuna->abaixo = pCelula; } else{ pCelulaColuna = pCelulaColuna->abaixo; } i++; } if(pCelulaColuna->abaixo->coluna == -1){ pCelula->abaixo = pCelulaColuna->abaixo; pCelulaColuna->abaixo = pCelula; } return 1; } float obterEI(TMatriz *A, int linha, int coluna){ T_Celula *pCelula; int i = 0; pCelula = A->inicio->direita; for(i = 0; i< coluna-1; i++) { pCelula = pCelula->direita; } do{ pCelula = pCelula->abaixo; if(pCelula->linha == linha){ return pCelula->valor; } }while(pCelula->coluna != -1); return 0; } matriz.h #include <stdio.h> #include <stdlib.h> typedef struct TCelula{ struct TCelula *direita, *abaixo; int linha, coluna; float valor; }T_Celula; typedef struct{ int m, n; T_Celula *inicio, *fimLinha, *fimColuna; }T_matrizEsparsa; typedef T_matrizEsparsa TMatriz; //funções TMatriz *criaMatriz(int m, int n); //cria uma matriz esparsa vazia int iniciaCabecas (TMatriz *A); //inicia as cabeças int cabecaLinha (TMatriz *A); //insere uma cabeça linha int cabecaColuna (TMatriz *A); //insere uma cabeça coluna void ImprimeMatriz(TMatriz *A); //imorime a matriz A void LeMatriz(TMatriz *A, char fn[]);//lê a matriz void ApagaMatriz(TMatriz *A); //apaga uma matriz TMatriz *SomaMatriz(TMatriz *A, TMatriz *B); //soma duas matrizes A e B, gerando um nova matriz C TMatriz *MultiplicaMatriz(TMatriz *A, TMatriz *B); //multiplica uma matriz por uma outra, gerando uma nova matriz X int insere(TMatriz *A, int linha, int coluna, double valor); float obterEI(TMatriz *A, int linha, int coluna); //obter o elemento pelo seu índice Meu programa não está rodando, gostaria de saber o que há de errado e como consertar. Desde já agradeço a ajuda e desculpe qualquer erro na postagem.
  2. Boa noite pessoal, gostaria de saber como resolver esse problema Implementar uma pilha com duas filas. Implementar uma fila com duas pilhas. se alguém souber, da uma ajuda! obrigado
  3. magicericxd

    AJUDA EM C

    GALERA PRECISO IMPLEMENTAR O MALDITO DO QUICKSORT E INSERTSORT,TENTEI COLOCAR ALGUNS MÉTODOS MAS NÃO CONSEGUI... FIZ ISSO ATÉ AGORA. #include<stdio.h>#include<stdlib.h>#include<conio.h>#define t 8 int main () { int v[t],x = 0,y = 0,aux = 0,min =0,op,p=0,r=0; for( x = 0; x < t; x++ ) { printf("Entre com um inteiro para vetor[%d]: ",x); scanf("%d",&aux); v[x] = aux; } printf("Escolha uma opcao: "); printf("\n\nBubble Sort : 1\n"); printf("\n\nSelect Sort : 2\n"); printf("\n\nQuick Sort : 3\n"); printf("\n\nInsert Sort : 4\n"); scanf("%d",&op); switch(op){ case 1://BubbleSort for( x = 0; x < t; x++ ) { for( y = x + 1; y < t; y++ ) { if ( v[x] > v[y] ) { aux = v[x]; v[x] = v[y]; v[y] = aux; } }} printf("\n Elementos ordenados:"); for( x = 0; x < 8; x++ ){ printf("\n %d",v[x]); // exibe o vetor ordenado} break;case 2: //SelectSort for (x = 0; x < t; x++) { min = x;for (y = (x+1); y < t; y++) { if(v[y] < v[min]) min = y; } if (x != min) { aux = v[x]; v[x] = v[min]; v[min] = aux; } } printf("\n Elementos ordenados:"); for( x = 0; x < 8; x++ ){ printf("\n %d",v[x]); // exibe o vetor ordenado}break;case 3: break;case 4: break; } }
×
×
  • Criar Novo...