Jump to content

Search the Community

Showing results for tags 'c'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 180 results

  1. olá estou precisando de uma ajuda com esses exercícios, pois não estou conseguindo fazer... "VisuAlg" 1) O MDC (máximo divisor comum) de 2 números inteiros A e B pode ser calculado pelo seguinte procedimento: Enquanto B for diferente de zero R recebe o valor do resto da divisão de A por B A recebe o valor de B B recebe o valor de R Fim Enquanto Escreva um algoritmo capaz de calcular e mostrar o MDC de 2 números inteiros digitados pelo operador. _______________________________________________________________________________________________________________ 2) Construa uma algoritmo capaz de calcular o valor de S, sabendo-se que S é claculado por: s=(1/ 1)+(3/ 2)+(5/ 3)+(7/ 4)+(9/ 5)+(11/ 6)+⋯+(99/50) __________________________________________________________________________________________________________________ 3) Construa um algoritmo capaz de receber as coordenadas x e y de dois pontos em um plano cartesiano e calcule a mostre a distância entre eles.
  2. Olá galera, bom dia ! Estou desenvolvendo um trabalho para faculdade onde armazeno e exibo os resultados de ordenação de diversos algoritmos, sendo numero de comparações, trocas e tempo. Tenho tudo pronto e escrito, ou seja, o escopo do trabalho esta Ok, falta implementar o resto dos algoritmos. Consegui quase tudo com a ajuda de colegas de outro fórum, porém estou com um erro que não consigo soluciona-lo, se alguém puder me dar uma ideia do que esta acontecendo fico grato. 1- Aqui eu tenho minha lista global de registros que ira armazenar os resultados de ordenação: typedef struct{ int numcomp; int numtrocas = 0; }ESTATISTICAS; 2- Como exemplo o algoritmo bubble sort recebendo os valores por referencia: void bubbleSort(int vet[], int num, ESTATISTICAS* estatisticas){ int i, continua, aux, fim = num; do{ continua = 0; for(i = 0; i < fim -1; i++ ){ estatisticas->numcomp++; if(vet > vet[i+1]){ aux = vet; vet = vet[i+1]; vet[i+1] = aux; estatisticas->numtrocas++; continua = 1; } } fim--; }while(continua != 0); } 3- e aqui a declaração da lista e a chamada da função de ordenação com a exibição dos valores armazenados: int *ptr; ptr = geraVetor(vetor1); //imprimeVetor(ptr, vetor1); ESTATISTICAS* estatisticas = (ESTATISTICAS*) malloc(sizeof(ESTATISTICAS)); clock_t start, end; start = clock(); bubbleSort(ptr,vetor1, estatisticas); end = clock(); printf("\n\nTROCAS: %d", estatisticas->numcomp); printf("\n\nTROCAS: %d", estatisticas->numtrocas); 4- O erro consiste em: quando compilo meu programa tudo esta ok, porém o valor retornado pela variável numcomp esta muito além do numero de comparações, se parecendo mais com um endereço de memoria. algo do tipo: 348219. Já a variável numtrocas o valor é retornado normalmente apos os incrementos ++; Aguardo ajuda, de já agradeço.
  3. joaoufms

    Salvar lista em arquivo

    Boa Noite,estou com um programa de cadastro de caminhoes,cidades e cargas.Estou tendo problema em salvar a lista em um arquivo.Quando eu seleciono a opção de salvar o programa fecha. OBS:A função de salvar é a ultima. #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h> typedef struct caminhoes{ int id; char motorista[200]; char marca[200]; char la[200]; char lisd[200]; float kml; struct caminhoes *prox; }lcam; typedef struct cargas{ int id; char produto[200]; char origem[200]; char destino[200]; float vfrete; struct cargas *prox; }lcar; typedef struct cidades{ int id; char nome[200]; char vizinhos[200]; char distancia[200]; float você; struct cidades *prox; }lcid; void cad_cam(lcam **cabeca); void cad_car(lcar **carcabeca); void cad_cid(lcid **cidcabeca); void imp_cam(lcam *cabeca); void imp_car(lcar *carcabeca); void imp_cid(lcid *cidcabeca); void salvacam(lcam **cabeca); int main() { setlocale(LC_ALL, "Portuguese"); lcam *cabeca = NULL; lcam *noatual; lcar *carcabeca = NULL; lcar *carnoatual; lcid *cidcabeca = NULL; lcid *cidnoatual; int op; printf("0 - Fechar \n"); printf("1 - Cadastrar Caminhão \n"); printf("2 - Cadastrar Carga \n"); printf("3 - Cadastrar Cidade \n"); printf("4 - Imprimir Caminhão\n" ); printf("5 - Imprimir Cargas\n"); printf("6 - Imprimir Cidades\n"); printf("7 - Salvar Caminhao em Arquivo \n"); printf("8 - Excluir Cargas \n"); printf("9 - Excluir Cidades \n"); printf("10 - Relatórios \n"); printf("Digite uma opcao: \n"); scanf("%d", &op); while(op!=0){ switch(op){ case 0:{ op=0; break; } break; case 1: cad_cam(&cabeca); break; case 2: cad_car(&carcabeca); break; case 3: cad_cid(&cidcabeca); break; case 4: imp_cam(cabeca); break; case 5: imp_car(carcabeca); break; case 6:imp_cid(cidcabeca); break; case 7:salvacam(&cabeca); break; case 8: break; case 9: break; case 10: break; } printf("0 - Fechar \n"); printf("1 - Cadastrar Caminhão \n"); printf("2 - Cadastrar Carga \n"); printf("3 - Cadastrar Cidade \n"); printf("4 - Imprimir Caminhão\n" ); printf("5 - Imprimir Cargas\n"); printf("6 - Imprimir Cidades\n"); printf("7 - Salvar Caminhao em Arquivo \n"); printf("8 - Excluir Cargas \n"); printf("9 - Excluir Cidades \n"); printf("10 - Relatórios \n"); printf("Digite uma opcao: \n"); scanf("%d", &op); } } void cad_cam (lcam **cabeca) { setlocale(LC_ALL, "Portuguese"); lcam *noatual, *novono; int id; char mot[200]; char mar[200]; char loca[200]; char lisd[200]; float kml; printf("ID:\n"); scanf("%d", &id); setbuf(stdin, NULL); printf("Motorista:\n"); scanf("%[^\n]s", &mot); setbuf(stdin, NULL); printf("Marca:\n"); scanf("%[^\n]s", &mar); setbuf(stdin, NULL); printf("Local Atual:\n"); scanf("%[^\n]s", &loca); setbuf(stdin, NULL); printf("Lista de Destinos:\n"); scanf("%[^\n]s", &lisd); setbuf(stdin, NULL); printf("KM/L:\n"); scanf("%f", &kml); setbuf(stdin, NULL); if (*cabeca == NULL) { *cabeca = malloc(sizeof(lcam)); (*cabeca)->id = id; strcpy((*cabeca)->motorista, mot); strcpy((*cabeca)->marca, mar); strcpy((*cabeca)->la, loca); strcpy((*cabeca)->lisd, lisd); (*cabeca)->kml = kml; (*cabeca)->prox = NULL; } else{ noatual = *cabeca; while(noatual->prox != NULL) noatual = noatual->prox; novono = malloc(sizeof(lcam)); novono->id = id; strcpy(novono->motorista, mot); strcpy(novono->marca,mar); strcpy(novono->la,loca); strcpy(novono->lisd,lisd); novono->kml = kml; novono->prox = NULL; noatual->prox = novono; } } void cad_car (lcar **carcabeca) { setlocale(LC_ALL, "Portuguese"); lcar *carnoatual, *carnovono; int id; char prod[200]; char ori[200]; char dest[200]; float vf; printf("ID:\n"); scanf("%d", &id); setbuf(stdin, NULL); printf("Produto:\n"); scanf("%[^\n]s", &prod); setbuf(stdin, NULL); printf("Origem:\n"); scanf("%[^\n]s", &ori); setbuf(stdin, NULL); printf("Destino:\n"); scanf("%[^\n]s", &dest); setbuf(stdin, NULL); printf("Valor do Frete:\nR$"); scanf("%f", &vf); setbuf(stdin, NULL); if (*carcabeca == NULL) { *carcabeca = malloc(sizeof(lcar)); (*carcabeca)->id = id; strcpy((*carcabeca)->produto, prod); strcpy((*carcabeca)->origem, ori); strcpy((*carcabeca)->destino, dest); (*carcabeca)->vfrete = vf; (*carcabeca)->prox = NULL; } else{ carnoatual = *carcabeca; while(carnoatual->prox != NULL) carnoatual = carnoatual->prox; carnovono = malloc(sizeof(lcar)); carnovono->id = id; strcpy(carnovono->produto, prod); strcpy(carnovono->origem,ori); strcpy(carnovono->destino,dest); carnovono->vfrete = vf; carnovono->prox = NULL; carnoatual->prox = carnovono; } } void cad_cid (lcid **cidcabeca) { setlocale(LC_ALL, "Portuguese"); lcid *cidnoatual, *cidnovono; int id; char nome[200]; char viz[200]; char dist[200]; float vac; printf("ID:\n"); scanf("%d", &id); setbuf(stdin, NULL); printf("Nome da Cidade:\n"); scanf("%[^\n]s", &nome); setbuf(stdin, NULL); printf("Digite o Valor do Combistível:\nR$"); scanf("%f", &vac); setbuf(stdin, NULL); if (*cidcabeca == NULL) { *cidcabeca = malloc(sizeof(lcid)); (*cidcabeca)->id = id; strcpy((*cidcabeca)->nome, nome); (*cidcabeca)->você = vac; (*cidcabeca)->prox = NULL; } else{ cidnoatual = *cidcabeca; while(cidnoatual->prox != NULL) cidnoatual = cidnoatual->prox; cidnovono = malloc(sizeof(lcid)); cidnovono->id = id; strcpy(cidnovono->nome, nome); cidnovono->você = vac; cidnovono->prox = NULL; cidnoatual->prox = cidnovono; } } void imp_cam(lcam *noatual) { setlocale(LC_ALL, "Portuguese"); while( noatual != NULL) { printf("\nID:%d\n", noatual->id); printf("Motorista:%s\n", noatual->motorista); printf("Marca:%s\n", noatual->marca); printf("Local Atual:%s\n", noatual->la); printf("Lista de Destinos:%s\n", noatual->lisd); printf("KM/L:%.2f\n", noatual->kml); noatual = noatual->prox; } } void imp_car(lcar *carnoatual) { setlocale(LC_ALL, "Portuguese"); while( carnoatual != NULL) { printf("\nID:%d\n", carnoatual->id); printf("Produto:%s\n", carnoatual->produto); printf("Origem:%s\n", carnoatual->origem); printf("Destino:%s\n", carnoatual->destino); printf("Valor do Frete:R$%.2f\n", carnoatual->vfrete); carnoatual = carnoatual->prox; } } void imp_cid(lcid *cidnoatual) { setlocale(LC_ALL, "Portuguese"); while( cidnoatual != NULL) { printf("\nID:%d\n", cidnoatual->id); printf("Nome da Cidade:%s\n", cidnoatual->nome); printf("Valor do Combustível:%.2f\n", cidnoatual->você); cidnoatual = cidnoatual->prox; } } void salvacam(lcam **cabeca){ lcam *noatual; FILE *arquivo; arquivo = fopen("Caminhões.txt", "w"); if(arquivo == NULL){ printf("Erro na Abertura do Arquivo"); } else{ if(noatual == NULL){ fprintf(arquivo,"Lista Vazia!\n"); } else{ while(noatual != NULL){ fprintf(arquivo,"ID:%d\n", noatual->id); fprintf(arquivo,"Motorista:%s\n", noatual->motorista); fprintf(arquivo,"Marca:%s\n", noatual->marca); fprintf(arquivo,"Local Atual:%s\n", noatual->la); fprintf(arquivo,"Lista de Destinos:%s\n", noatual->lisd); fprintf(arquivo,"KM/L:%f\n", noatual->kml); noatual = noatual->prox; } } } fclose(arquivo); printf("Salvo com Sucesso!"); }
  4. Implementar o algoritmo da ordenação por seleção e incorporar no código um contador que retorne quantas comparações foram feitas e um contador que retorne quantas atribuições foram feitas. O programa principal deve criar uma sequência aleatória de 1000 posições e então ordenar a sequência. Deve-se imprimir a sequência original, a sequência ordenada e os contadores de comparações e atribuições. Para o upload, deve ser enviado um único arquivo .c não compactado... Arquivos com extensão .zip .rar e etc serão desconsiderados. Não consigo fazer a inserção #include <stdio.h> #include <stdlib.h> #define SIZE 1000 typedef int TipoIndice; typedef struct item { TipoIndice chave; int dado; } TipoItem; void insercao(TipoItem *A, TipoIndice n) { TipoIndice i,j,Min; TipoItem x; for (i=0; i <= n-1; i++) { Min=i; for (j=i+1; j<n; j++) if (A[j].chave < A[Min].chave) Min = j; x = A[Min]; A[Min] = A; A = x; } } void imprime(TipoItem *A, TipoIndice n) { int i; for (i = 0; i < n; i++) printf("%d(%d) ", A.chave, A.dado); } void preenche(TipoItem *A, TipoIndice n) { int i; srand ( time(NULL) ); for (i = 0; i < n; i++) { A.chave = rand()%SIZE; A.dado = i; } } int main() { TipoItem *vetor = malloc(sizeof(TipoItem)*SIZE); preenche(vetor,SIZE); insercao(vetor,SIZE); imprime(vetor,SIZE); system("pause"); return 0; }
  5. j0rg3jun10r

    [CÓDIGO] Torre de Hanoi com 5 Discos

    SOU INICIANTE NA LINGUAGEM C E DESENVOLVI ESSE PROGRAMA SIMPLES - TORRE DE HANÓI COM 5 DISCOS OBS: O CÓDIGO ESTÁ DISPONÍVEL PARA TODOS QUE QUISEREM MELHORÁ-LO #include <stdio.h> #include <stdlib.h> #include <math.h> // POW(); CALCULAR O VALOR DE MOVIMENTOS EXATOS DA TORRE DE HANOI; #define POSICOES 5 int torre1[5]= {1,2,3,4,5}, torre2[5]={0,0,0,0,0}, torre3[5] ={0,0,0,0,0}; // ARRAYS; int cont=0; // VARIAVEL PARA CONTAR O NUMERO DE JOGADAS; void mostrarTorres(); // PROTOTIPO DA FUNÇÃO PARA MOSTRA O ESTADO ATUAL DA TORRE; int valorTorre(int torre[5]); // PROTOTIPO DA FUNÇÃO PARA PEGAR O MENOR VALOR; int destinoTorre(int torre[5]); // PROTOTIPO DA FUNÇÃO PARA PEGAR O MENOR VALOR; void moverDiscos(int orig, int dest); // PROTOTIPO DA FUNÇÃO PARA MOVER DISCOS; void mostrarMenu(); // PROTOTIPO DA FUNÇÃO PARA MOSTRAR O MENU; int verificarFinal(); // PROTOTIPO DA FUNÇÃO QUE VERIFICA SE O JOGADOR FOI CAMPEÃO; void regras(); // PROTOTIPO DA FUNÇÃO QUE MOSTRA AS REGRAS DO JOGO; int main(void){ int op=1; while(op!=0){ printf(" - TORRE DE HANOI \n 2 - JOGAR\n 1 - REGRAS\n 0 - SAIR\n - DIGITE: "); scanf("%d", &op); switch(op){ case 2: mostrarTorres(); mostrarMenu(); break; case 1: regras(); break; default: if(op != 0){ printf(" - OPÇÃO INVALIDA INFORME NOVAMENTE\n - "); system("PAUSE"); system("CLS"); }else{ system("CLS"); printf("\n\n\t\t\t ENCERRADO COM SUCESSO.\n"); } break; } } return 0; } int valorTorre(int torre[]){ // FUNÇÃO PARA ULTIMO VALOR DO ARRAY int i, a=0; for(i=POSICOES-1; i>=0; i--){ if(torre[i] != 0){ a = i; } if(torre[4] == 0){ a = 0; } } return(a); } int destinoTorre(int torre[]){ // FUNÇÃO PARA RETORNA PROXIMO VALOR DE DESTINO int i, a=0; for(i=0; i<POSICOES; i++){ if(torre[i] == 0){ a = i; } } return(a); } void moverDiscos(int orig, int dest){ // FUNÇÃO PARA MOVER OS DISCOS int aux1, aux2, aux3; // REGRAS (O DISCO DE ORIGEM NÃO PODE SER MAIOR QUE O DESTINO) E (VALOR DO DISCO DE DESTINO TEM QUE SER DIFERENTE DE 0); // ORIGEM 1 - TORRE 1 if(orig == 1){ // DESTINO 2 - TORRE 2 if(dest == 2){ aux1 = torre1[valorTorre(torre1)]; aux2 = torre2[destinoTorre(torre2)+1] ; aux3 = torre2[valorTorre(torre2)]; if(aux3 < aux1 && aux3 != 0){ printf("Disco da origem [%d] é maior que o disco de destino [%d]\n", aux1, aux3); system("PAUSE"); }else{ if(aux1 == 0){ printf("Sem discos na torre de origem.\n"); system("PAUSE"); }else{ torre1[valorTorre(torre1)] = 0; torre2[destinoTorre(torre2)] = aux1; cont++; } } // DESTINO 3 - TORRE 3 }else{ aux1 = torre1[valorTorre(torre1)]; aux2 = torre3[destinoTorre(torre3)+1] ; aux3 = torre3[valorTorre(torre3)]; if(aux3 < aux1 && aux3 != 0){ printf("Disco da origem [%d] é maior que o disco de destino [%d]\n", aux1, aux3); system("PAUSE"); }else{ if(aux1 == 0){ printf("Sem discos na torre de origem.\n"); system("PAUSE"); }else{ torre1[valorTorre(torre1)] = 0; torre3[destinoTorre(torre3)] = aux1; cont++; } } } } // ORIGEM 2 - TORRE 2 if(orig == 2){ // DESTINO 1 - TORRE 1 if(dest == 1){ aux1 = torre2[valorTorre(torre2)]; aux2 = torre1[destinoTorre(torre1)+1] ; aux3 = torre1[valorTorre(torre1)]; if(aux3 < aux1 && aux3 != 0){ printf("Disco da origem [%d] é maior que o disco de destino [%d]\n", aux1, aux3); system("PAUSE"); }else{ if(aux1 == 0){ printf("Sem discos na torre de origem.\n"); system("PAUSE"); }else{ torre2[valorTorre(torre2)] = 0; torre1[destinoTorre(torre1)] = aux1; cont++; } } // DESTINO 3 - TORRE 3 }else{ aux1 = torre2[valorTorre(torre2)]; aux2 = torre3[destinoTorre(torre3)+1] ; aux3 = torre3[valorTorre(torre3)]; if(aux3 < aux1 && aux3 != 0){ printf("Disco da origem [%d] é maior que o disco de destino [%d]\n", aux1, aux3); system("PAUSE"); }else{ if(aux1 == 0){ printf("Sem discos na torre de origem.\n"); system("PAUSE"); }else{ torre2[valorTorre(torre2)] = 0; torre3[destinoTorre(torre3)] = aux1; cont++; } } } } // ORIGEM 3 - TORRE 3 if(orig == 3){ // DESTINO 1 - TORRE 1 if(dest == 1){ aux1 = torre3[valorTorre(torre3)]; aux2 = torre1[destinoTorre(torre1)+1] ; aux3 = torre1[valorTorre(torre1)]; if(aux3 < aux1 && aux3 != 0){ printf("Disco da origem [%d] é maior que o disco de destino [%d]\n", aux1, aux3); system("PAUSE"); }else{ if(aux1 == 0){ printf("Sem discos na torre de origem.\n"); system("PAUSE"); }else{ torre3[valorTorre(torre3)] = 0; torre1[destinoTorre(torre1)] = aux1; cont++; } } // DESTINO 2 - TORRE 2 }else{ aux1 = torre3[valorTorre(torre3)]; aux2 = torre2[destinoTorre(torre2)+1] ; aux3 = torre2[valorTorre(torre2)]; if(aux3 < aux1 && aux3 != 0){ printf("Disco da origem [%d] é maior que o disco de destino [%d]\n", aux1, aux3); system("PAUSE"); }else{ if(aux1 == 0){ printf("Sem discos na torre de origem.\n"); system("PAUSE"); }else{ torre3[valorTorre(torre3)] = 0; torre2[destinoTorre(torre2)] = aux1; cont++; } } } } mostrarTorres(); } void mostrarMenu(){ int orig, dest, test=0, aux; do{ // VERIFICA SE GANHOU! if(verificarFinal() == 1){ aux = pow(2, POSICOES)-1; if(cont == aux){ printf("\nParabéns, você ganhou e sua pontuação foi excelente %d de %d.\n", cont, aux); }else if(cont > aux && cont <aux+5){ printf("\nParabéns, você ganhou mas sua pontuação foi abaixo da média %d de%d.\n", cont, aux); }else{ printf("\nParabéns, você ganhou mas sua pontuação foi ruim: %d de %d.\n", cont, aux); } system("PAUSE"); system("CLS"); printf("\n\n\t\t\t ENCERRADO COM SUCESSO.\n"); exit(0); // FINALIZA O PROGRAMA; } printf("Informe Torre Origem (1 a 3): "); scanf("%d", &orig); do{ if(orig < 1 || orig > 3){ printf(" - Torre de Origem não corresponde, informe corretamente.\nInforme Torre Origem (1 a 3): "); scanf("%d", &orig); } }while(orig < 1 || orig > 3); mostrarTorres(); printf("Informe Torre Destino (1 a 3): \t"); scanf("%d", &dest); do{ if(dest < 1 || dest > 3){ printf(" - Torre de Destino não corresponde, informe corretamente.\nInforme Torre Destino (1 a 3): "); scanf("%d", &dest); } if(dest == orig){ printf(" - O destino não pode ser igual a torre de origem.\nInforme Torre Destino (1 a 3): "); scanf("%d", &dest); } }while(dest < 1 || dest > 3 || dest == orig); moverDiscos(orig, dest); }while(test != 1); } void mostrarTorres(){ system("CLS"); printf("\t TORRE DE HANOI \n"); for(int i=0;i<POSICOES;i++){ printf(" \t |%d| |%d| |%d| \n", torre1[i], torre2[i], torre3[i]); //printf(" \t%d|%d| %d|%d| %d|%d| \n", i, torre1[i], i, torre2[i], i, torre3[i]);// PARA TESTES } printf("\t Nº de jogadas: "); if(cont < 10){ printf("0%d\n", cont); }else{ printf("%d\n", cont); } } int verificarFinal(){ int opt=0; if(torre3[0] == 1){ opt = 1; } return(opt); } void regras(){ system("CLS"); printf(" - Torre de Hanói:\n"); printf(" O objectivo deste jogo consiste em deslocar todos os discos da haste\n"); printf(" Onde se encontram para uma haste diferente, \n Respeitando as seguintes regras:\n\n"); printf(" 1 - deslocar um disco de cada vez, o qual deverá\n ser o do topo de uma das três hastes.\n\n"); printf(" 2 - cada disco nunca poderá ser colocado sobre\n outro de diâmetro mais pequeno.\n\n "); system("pause"); system("CLS"); }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.