Ir ao conteúdo
  • Cadastre-se

ArthurRodr

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Tudo que ArthurRodr postou

  1. Abaixo está o enunciado da atividade 2. Desenvolver um programa em linguagem C que leia esse dataset (CSV) e ordene-o com base na primeira coluna. A ordenação escolhida deverá seguir o 5º dígito do seu RA Se o 5º dígito do seu RA for: 0 ou 9: ordenar usando o BubbleSort 1 ou 8: ordenar usando o SelectionSort 2 ou 7: ordenar usando o InsertionSort 3 ou 6: ordenar usando o ShellSort 4 ou 5: ordenar usando o MergeSort Como o quinto digito meu é 8, então eu devo organizar utilizando o Selection Sort, teria como você me mostrar como faria esse código com o meu arquivo csv(em anexo)? ParticipantesSTRport.csv
  2. o meu exercício é através do Selection Sort, não, foi meu professor que me passou e disse que a partir daquele ponto eu deveria fazer a atribuição pelo process_field.
  3. Eu entendi o que foi postado nos outros tópicos mas não sei executar, devo fazer a ordenação enquanto leio o arquivo para ele ser impresso já ordenado, mas como vou fazer? o outro código faz a ordenação usando o insertion sort na hora de imprimir, no meu caso o código devo fazer a ordenação usando o selection sort e o número de colunas e linhas do meu arquivo é diferente.
  4. Minha dúvida nesse exercício é que não sei como vou fazer esse código, meu conhecimento em c é muito baixo os únicos programas que escrevi foram de leitura e impressão de dados (dentro do próprio programa), aprendemos o que era selection sort e os outros métodos de ordenação (só o conceito), mas não aprendemos a fazer isso em um arquivo csv.
  5. Bom dia é isso mesmo O que acontece é que ambos recebemos um exercício de algo que não foi explicado para nós em momento algum, com o código que já fiz seria a mesma ideia desse outro tópico?
  6. Boa noite, gostaria de agradecer a resposta Então... entendi que basicamente está tudo errado na hora de passar esses dados do arquivo csv para a struct, então fiz como solicitado, removi a variável global da struct e retornei alguns passos até quando o código fazia apenas a leitura, impressão dos dados a partir da segunda linha e a organização do layout, então gostaria de saber como prosseguir com as atribuições à struct para que eu possa fazer o Selection Sort com os dados da primeira coluna. Código #include <stdio.h> #include <string.h> struct colunas { int ispb; char nome_reduzido[50]; int numero_codigo[3]; char partic_compe[3]; char acesso_princ[4]; char nome_exten[50]; int inicio_op[8]; }; void process_field(int coluna, char *value) { if (coluna == 0) { printf("ISPB:\t"); } if (coluna == 1) { printf("Nome Reduzido:\t"); } if (coluna == 2) { printf("Numero Codigo:\t"); } if (coluna == 3) { printf("Participa da compe:\t"); } if (coluna == 4) { printf("Acesso principal:\t"); } if (coluna == 5) { printf("Nome extenso:\t"); } if (coluna == 6) { printf("Inicio da operacao:\t"); } printf("%s\n", value); } void selectionSort(int *vet, int tam){ int menor, aux; for(int i = 0; i<tam-1; i++){ menor=i; for(int j = i+1 ; j<tam; j++){ if(vet[menor]>vet[j]){ menor=j; } if(i!=menor){ aux = vet[i]; vet[i]=vet[menor]; vet[menor]=aux; } } } }//Ainda não coloquei o Selection Sort int main() { char buffer[1024]; char chave[1024]; int linha = 0; int coluna = 0; int aspas = 0; int posicao_chave = 0; FILE *arq; arq = fopen("ParticipantesSTRport.csv", "r"); while (fgets(buffer, 1024, arq)) { linha++; if (linha == 1) { continue; } coluna = 0; int i = 0; do { chave[posicao_chave++] = buffer[i]; if (!aspas && (buffer[i] == ',' || buffer[i] == '\n')) { chave[posicao_chave - 1] = 0; posicao_chave = 0; process_field(coluna++, chave); } if (buffer[i] == '"' && buffer[i + 1] != '"') { posicao_chave--; aspas = !aspas; } if (buffer[i] == '"' && buffer[i + 1] == '"') i++; } while (buffer[++i]); printf("\n"); } fclose(arq); return 0; } O código modificado e o .csv estão em anexo. Desktop.zip
  7. E aí galera beleza? Recebi um exercício a pouco tempo que pede para organizar a primeira coluna de um arquivo .csv usando o Selection Sort, mas para fazer essa organização eu preciso atribuir os dados das colunas à struct na hora de imprimi-las, porém o problema está na hora da atribuição, quando eu tento fazê-la tenho a seguinte saída: 24 24 [Error] invalid conversion from 'char*' to 'int' [-fpermissive] O que devo fazer para resolver esse problema? Meu código é este abaixo: #include <stdio.h> #include <string.h> typedef struct Colunas{ int ispb; char nome_reduzido[50]; int numero_codigo[3]; char partic_compe[3]; char acesso_princ[4]; char nome_exten[50]; int inicio_op[8]; }colunas; colunas dados[250];//Número de linhas do arquivo void process_field(int coluna, char *value, int i) { FILE *arq; for(i=0; i<249; i++){ if (coluna == 0) { dados.ispb = value; printf("ISPB:\t"); } if (coluna == 1) { printf("Nome Reduzido:\t"); } if (coluna == 2) { printf("Numero Codigo:\t"); } if (coluna == 3) { printf("Participa da compe:\t"); } if (coluna == 4) { printf("Acesso principal:\t"); } if (coluna == 5) { printf("Nome extenso:\t"); } if (coluna == 6) { printf("Inicio da operacao:\t"); } printf("%s\n", value); } fclose(arq); } void selectionSort(int *vet, int tam){ int menor, aux; for(int i = 0; i<tam-1; i++){ menor=i; for(int j = i+1 ; j<tam; j++){ if(vet[menor]>vet[j]){ menor=j; } if(i!=menor){ aux = vet; vet=vet[menor]; vet[menor]=aux; } } } } //Ainda não coloquei o Selection Sort int main() { char buffer[1024]; char chave[1024]; int linha = 0; int coluna = 0; int aspas = 0; int posicao_chave = 0; FILE *arq; arq = fopen("ParticipantesSTRport.csv", "r"); while (fgets(buffer, 1024, arq)) { linha++; if (linha == 1) { continue; } coluna = 0; int i = 0; do { chave[posicao_chave++] = buffer; if (!aspas && (buffer == ',' || buffer == '\n')) { chave[posicao_chave - 1] = 0; posicao_chave = 0; process_field(coluna++, chave, i); } if (buffer == '"' && buffer[i + 1] != '"') { posicao_chave--; aspas = !aspas; } if (buffer == '"' && buffer[i + 1] == '"') i++; } while (buffer[++i]); printf("\n"); } fclose(arq); return 0; } O código e o arquivo csv estão em anexo. Desktop.rar

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!