//!///////////////////////////////////////////////////////////////////////MAIN///////////////////////////////////////////////////////////////////// void main() { TipoGrafo *g = (TipoGrafo*)malloc(sizeof(TipoGrafo) * 10); carregaArquivo(g); imprimeGrafo(g); printf("\n"); int *resp = dijkstra(g, 1); for(int i = 1; i <= nVertices; i++) { printf("D(v1 -> v%d) = %d\n", i, resp[i]); } /* //! testes heap iniciarMinHeap(6); for (int i = 0; i <=5; i++) { push(1); } push (DBL_MAX); push (8); push (-6); push (3); push (1); printf ("heap after pusshing DBL_MAX 8 -6 3 1 -5\n"); printHeap (); pop (); printf ("heap array after pop \n"); printHeap (); push (2); printf ("heap array after pushing 2\n"); printHeap ();*/ }
/*********************************MAIN************************************/ int main(int argc, char **argv) { criarArvore(&arvore);/*passa o endereco pra que a funcao crie*/ FILE *arquivo, *arquivoremove, *arquivoentrada, *desenho_arvore, *fim; DIR *dir; struct dirent *lsdir; dir= opendir(argv[1]);/*Url passada dos arquivos dos alunos.dat*/ char caminho[300], caminhosaida[300], caminhoremove[300]; /* Primeiro parâmetro: o de leitura */ /***********************CARREGANDO ARQUIVOS DA PASTA****************************************/ while ( ( lsdir = readdir(dir) ) != NULL )//atraves do readdir o lsdir tem struct com nomes como parametros.. { if (strcmp(lsdir->d_name, ".") != 0 && strcmp(lsdir->d_name, "..")) { /*O lsdir traz pontos indesejaveis, entao para que nao use-o - uma condicao*/ /*De um por um, com o lsdir->d_name*/ strcpy(caminho,argv[1]);//salvando em uma variavel strcat(caminho, "/"); strcat(caminho,lsdir->d_name);/*Concatenando*/ //printf("%s\n",caminho); arquivo = fopen(caminho, "r"); carregaArquivo(&arvore, arquivo); } } closedir(dir); /**************IMPRESSAO EM DESENHO INICIAL.RES*****************/ strcpy(caminhosaida, argv[3]); strcat(caminhosaida,"/carga-inicial.res"); desenho_arvore = fopen(caminhosaida, "w"); mostrar(arvore.topo, 0, desenho_arvore); fclose(desenho_arvore); /*********************REMOVER**********************/ strcpy(caminhoremove, argv[3]);//terceiro argumento..saída strcat(caminhoremove, "/"); strcat(caminhoremove, "excluir.res"); arquivoremove = fopen(caminhoremove, "w"); /**********concatenando strings para a entrada ************/ strcpy(caminho, argv[2]); strcat(caminho, "/"); strcat(caminho, "excluir.in"); arquivo = fopen(caminho, "r"); remover(arvore, arquivo, arquivoremove);//removendo todos do excluir.in o argv2 é o parametro de remocao /*****************DESENHO APOS EXCLUSAO.RES (matriculas impressa em formato de arvore********************/ strcpy(caminhosaida, argv[3]); strcat(caminhosaida, "/apos-exclusao.res"); desenho_arvore = fopen(caminhosaida, "w"); mostrar(arvore.topo, 0, desenho_arvore); fclose(desenho_arvore); /**************IMPRESSAO APOS EXCLUSAO***********/ strcpy(caminhosaida, argv[3]); strcat(caminhosaida,"/final.res"); fim = fopen(caminhosaida,"w"); salvar(arvore.topo, fim); /**************************************************/ return 0; }
int main(int argc, char** argv) { // verifica se um parametro foi passado, senao exibe a forma de uso if (!argv[1]){ mostraUso(); return 0; } // Procedimento que carrega os dados do arquivo em uma matriz int **matriz; int linhas, colunas; printf("Abrindo arquivo...\n"); matriz = (int **)carregaArquivo(argv[1], &linhas, &colunas); if (!matriz){ printf("ERRO: nao foi possivel abrir o arquivo %s\n", argv[1]); return 0; } // entrando no loop do menu int opcao; do{ // limpa a tela se o clear estiver disponível system("clear"); printf("Selecione uma opcao ou 0 para encerrar\n" \ "[1] - Salvar\n" \ "[2] - Limiarizar\n" \ "[3] - Inverter\n" \ "[4] - Media 3x3\n" \ "[5] - Mediana 3x3\n" \ "[6] - Numero de brancos\n" \ "======> "); scanf("%d", &opcao); switch(opcao){ case 0: break; case 1: printf("\nNome do novo arquivo (enter para sobrescrever): "); char caminho[20]; // workaround do buffer sujo getchar(); fgets(caminho, sizeof(caminho), stdin); if (caminho) salvaArquivo(caminho, matriz, linhas, colunas); else salvaArquivo(argv[1], matriz, linhas, colunas); teclaEnter(); break; case 2: limiarizar(matriz, linhas, colunas); mostraMatriz(matriz, linhas, colunas); break; case 3: inverter(matriz, linhas, colunas); mostraMatriz(matriz, linhas, colunas); break; case 4: if (media3x3(matriz, linhas, colunas)) mostraMatriz(matriz, linhas, colunas); break; case 5: if (mediana3x3(matriz, linhas, colunas)) mostraMatriz(matriz, linhas, colunas); break; case 6: printf("\nNumero de brancos: %d\n", nroBrancos(matriz, linhas, colunas)); // espera input do teclado teclaEnter(); break; default: printf("Opcao nao reconhecida"); teclaEnter(); break; } }while(opcao != 0); // liberacao de memoria desalocaMatriz(matriz, linhas); return 0; }