Ir ao conteúdo
  • Cadastre-se

johnkaos

Membros Juniores
  • Total de itens

    16
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Dessas 3.
  2. viu como ficou a compilação que te mandei?
  3. eu pretendo deixar os dois csv assim,no caso como o professor pediu.. adicionado 1 minuto depois @arfneto aqui,ele compilou normal,porém na hora de criar o csv,ele cria um totalmente diferente do fprintf adicionado 5 minutos depois Eu rodei agora e ele deu esses resultados; Diferente do exemplo que citei acima primeiroresult.csv resultadofinal.csv
  4. @arfneto eu achei o enunciado um poco confuso,faltou objetividade...então só fui seguindo o que ele pede... até na hora de usar fprintf nos csv.
  5. @arfneto #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <ctype.h> struct auxiliar{ char aux1[25]; char aux3[15]; int aux2; char paises[30]; char paisaux[30]; float gdp_perc; float satisfacao; }; struct gdpperc{ int qntd; char pais[30]; float gdp; float satisfacao_vidareal; float satisfcao_vidacalc; float erro; }; void leArquivoum(struct auxiliar *auxs); void leArquivodois(struct auxiliar *auxs); void criacaodeumcsv(struct auxiliar *auxs); void leArquivocsv(struct gdpperc *pib); void criarcsvfinal(struct gdpperc *pib); int main (int argc , char *argv) { int qntda; int qntd; qntda = 189; struct auxiliar *auxs = malloc (qntda * sizeof(struct auxiliar)); printf("informe a quantidade de paises que deseja usar: \n"); scanf("%d",&qntd); struct gdpperc *pib = malloc (qntd * sizeof(struct gdpperc)); pib->qntd = qntd; criacaodeumcsv(auxs); criarcsvfinal(pib); free(auxs); system("PAUSE"); return 0; } void leArquivoum(struct auxiliar *auxs){ int i; FILE *arquivoum; arquivoum = fopen("C:\\Users\\John\\Desktop\\trabalho\\gdp.csv","r"); for (i=0; i< 189; i++) { fscanf(arquivoum, "%[^;]", &auxs[i].paises); for(int j=0; j < 4; j++){ fscanf(arquivoum, "%[^;]", &auxs[i].aux1); } fscanf(arquivoum, "%f[^;]", &auxs[i].gdp_perc); } fclose(arquivoum); } void leArquivodois(struct auxiliar *auxs){ int k; FILE *arquivo2; arquivo2 = fopen("C:\\Users\\John\\Desktop\\trabalho\\qualidade.csv","r"); for(k = 0; k < 41; k++) { for(int q=0;q<=1;q++) { fscanf(arquivo2, "%[^;]",&auxs[k].aux3); } fscanf(arquivo2, "%[^;]",&auxs[k].paisaux); for(int l=0; l<21; l++){ fscanf(arquivo2, "%d[^;]",auxs[k].aux2); } for(int i=0; i < 189; i++ ){ while (strcmp (auxs[k].paisaux,auxs[i].paises) == 0); { fscanf(arquivo2, "%f[^;]", &auxs[i].satisfacao); } } } fclose(arquivo2); } void criacaodeumcsv(struct auxiliar *auxs){ int indice; indice = 189; FILE *arquivof; arquivof = fopen("C:\\Users\\John\\Desktop\\trabalho\\primeiroresult.csv","w"); fprintf(arquivof,"%d\n", &indice); for(int i=0; i < 189; i++){ fprintf(arquivof, "%s,%f,%f\n", &auxs[i].paises,auxs[i].gdp_perc,auxs[i].satisfacao); } } void leArquivocsv(struct gdpperc *pib)/* função para a abertura do arquivo csv. */{ int i; FILE *arquivofinal; arquivofinal = fopen("C:\\Users\\John\\Desktop\\trabalho\\primeiroresult.csv","r"); for (i=0; i < pib[i].qntd ; i++) { fscanf(arquivofinal, "%d[^,\n]", &pib[i].qntd); fscanf(arquivofinal, "%[^,]", &pib[i].pais); fscanf(arquivofinal, "%f[^,]", &pib[i].gdp); fscanf(arquivofinal, "%f[^,\n]", &pib[i].satisfacao_vidareal); } } void criarcsvfinal(struct gdpperc *pib){ float teta0 = 2.5; float teta1 = 1; float n = 0.1; float eam; int i; FILE *arquivofinale; for (i=0; i < pib->qntd; i++ ) { arquivofinale = fopen("C:\\Users\\John\\Desktop\\trabalho\\resultadofinal.csv","w"); if (pib[i].satisfacao_vidareal != 0 ){ for (int s = 0;s < 100;s++){ pib[i].satisfcao_vidacalc = teta1 + teta0 * pib[i].gdp; pib[i].erro = pib[i].satisfcao_vidacalc - pib[i].satisfacao_vidareal; teta0 = teta0 + n * pib[i].erro * pib[i].gdp; teta1 = teta1 + n * pib[i].erro * pib[i].gdp; } } eam = pib[i].satisfcao_vidacalc - pib[i].satisfacao_vidareal / pib[i].qntd; } for (i=0; i < pib->qntd; i++ ){ fprintf(arquivofinale,"%s, %f, %f, %f, %f \n",&pib[i].pais,pib[i].gdp,pib[i].satisfcao_vidacalc,pib[i].satisfacao_vidareal,pib[i].erro); } fprintf(arquivofinale, "Erro absoluto Médio: %f", &eam); fclose(arquivofinale); } Sabe me dizer se tem algo errado na leitura do csv?
  6. estou tentando ajeitar o fprintf,já que o arquivo formado do jeito que tava ficou praticamente um lixo.
  7. os valores de theta vão mudando cada vez. Eu retirei o free e coloquei só quando não ia usar mais a struct. Aqui é a struct principal,que vai alocar e ler o tanto de paises que o usuario pedir... Sobre o porque não tá gerando o arquivo csv,acha que pode ser por que não chamo as funções na main?
  8. @arfneto faltei especificar um pouco,foi mal... sobre a primeira struct que aloquei com 189: É a struct auxiliar,apenas pra formar salvar os dados dos dois csv citados em uma,a segunda é que é a principal... e como já sei o número de países,aloquei logo na auxiliar kk... sobre o calculo que preciso: existem países que não tem a satisfacao_vidareal,então eles não irão entrar no calculo...minha dificuldade é como encaixar eles,depois do calculo já feito. sobre repetir 50 a 100 vezes,é repetir o procedimento do calculo... com fiz ai,um for de 0 a 99,rodando o calculo de cada país. adicionado 4 minutos depois Sobre de onde vem os arquivos,eles são aqueles dois arquivos do começo deste tópico que estavam todos errados e eu criei os dois novos... eles estão junto com o enunciado da questão.
  9. @arfneto Pode me ajudar com um problema de código?? #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <ctype.h> struct auxiliar{ char aux1[25]; char aux3[15]; int aux2; char paises[30]; char paisaux[30]; float gdp_perc; float satisfacao; }; struct gdpperc{ int qntd; char pais[30]; float gdp; float satisfacao_vidareal; float satisfcao_vidacalc; float erro; }; void leArquivoum(struct auxiliar *auxs); void leArquivodois(struct auxiliar *auxs); void criacaodeumcsv(struct auxiliar *auxs); void leArquivocsv(struct gdpperc *pib); int main (int argc , char *argv) { int qntda; int qntd; qntda = 189; struct auxiliar *auxs = malloc (qntda * sizeof(struct auxiliar)); free(auxs); printf("informe a quantidade de paises que deseja usar: \n"); scanf("%d",&qntd); struct gdpperc *pib = malloc (qntd * sizeof(struct gdpperc)); pib->qntd = qntd; system("PAUSE"); return 0; } void leArquivoum(struct auxiliar *auxs){ int i; FILE *arquivoum; arquivoum = fopen("C:\\Users\\John\\Desktop\\trabalho\\gdp.csv","r"); fscanf(arquivoum, "%[\n]"); for (i=0; i< 189; i++) { fscanf(arquivoum, "%[^;]", &auxs[i].paises); for(int j=0; j < 4; j++){ fscanf(arquivoum, "%[^;]", &auxs[i].aux1); } fscanf(arquivoum, "%f[^;]", &auxs[i].gdp_perc); } fclose(arquivoum); } void leArquivodois(struct auxiliar *auxs){ int k; FILE *arquivo2; arquivo2 = fopen("C:\\Users\\John\\Desktop\\trabalho\\qualidade.csv","r"); fscanf(arquivo2, "[\n]"); for(k = 0; k < 41; k++) { for(int q=0;q<=1;q++) { fscanf(arquivo2, "%[^;]",&auxs[k].aux3); } fscanf(arquivo2, "%[^;]",&auxs[k].paisaux); for(int l=0; l<21; l++){ fscanf(arquivo2, "%d[^;]",auxs[k].aux2); } for(int i=0; i < 189; i++ ){ while (strcmp (auxs[k].paisaux,auxs[i].paises) == 0); { fscanf(arquivo2, "%f[^;]", &auxs[i].satisfacao); } while (strcmp (auxs[k].paisaux,auxs[i].paises) != 0); { auxs[i].satisfacao = 0; } } } fclose(arquivo2); } void criacaodeumcsv(struct auxiliar *auxs){ int indice; indice = 189; FILE *arquivof; arquivof = fopen("C:\\Users\\John\\Desktop\\trabalho\\primeiroresult.csv","w"); fprintf(arquivof,"%d \n", &indice); for(int i=0; i < 189; i++){ fprintf(arquivof, "%s", &auxs[i].paises,auxs[i]); fprintf(arquivof, "%f", &auxs[i].gdp_perc); fprintf(arquivof, "%f \n ", &auxs[i].satisfacao); } fclose(arquivof); } void leArquivocsv(struct gdpperc *pib)/* função para a abertura do arquivo csv. */{ float teta0 = 2.5; float teta1 = 1; float n = 0.1; float eam; int i; FILE *arquivofinal; arquivofinal = fopen("C:\\Users\\John\\Desktop\\trabalho\\primeiroresult.csv","r"); for (i=0; i < pib[i].qntd ; i++) { fscanf(arquivofinal, "%d[^,\n]", &pib[i].qntd); fscanf(arquivofinal, "%[^,]", &pib[i].pais); fscanf(arquivofinal, "%f[^,]", &pib[i].gdp); fscanf(arquivofinal, "%f[^\n]", &pib[i].satisfacao_vidareal); } for (i=0; i < pib -> qntd; i++ ) { arquivofinal = fopen("C:\\Users\\John\\Desktop\\trabalho\\resultadofinal.csv","w"); if (pib[i].satisfacao_vidareal != 0 ){ for (int s = 0;s < 100;s++){ pib[i].satisfcao_vidacalc = teta1 + teta0 * pib[i].gdp; pib[i].erro = pib[i].satisfcao_vidacalc - pib[i].satisfacao_vidareal; teta0 = teta0 + n * pib[i].erro * pib[i].gdp; teta1 = teta1 + n * pib[i].erro * pib[i].gdp; } } eam = pib[i].satisfcao_vidacalc - pib[i].satisfacao_vidareal / pib[i].qntd; fprintf(arquivofinal, "%s,", &pib[i].pais); fprintf(arquivofinal, "%f,", &pib[i].gdp); fprintf(arquivofinal, "%f,", &pib[i].satisfcao_vidacalc); fprintf(arquivofinal, "%f \n", &pib[i].satisfacao_vidareal); } fprintf(arquivofinal, "%Erro absoluto Médio: %f", &eam); fclose(arquivofinal); } O código compila normalmente,porém não forma os dois arquivos csv... e a outra duvida: eu separei os países que tem ou não life_satisfaction,porém não faço ideia de como estimar o valor dos outros gdp.csv qualidade.csv
  10. @arfneto Usei o excel,a publicação foi editada... Removida,e editei o arquivo,depois de importado pelo excel. qualidade.csv
  11. @arfneto o que achou dos arquivos CSV? Eu dei uma editada nos arquivos,pib1 e gdp são diferentes,um com 6 e outro com 7 campos,qual acha que ficará melhor? sobre sobre o Header e os dois campos para country,estão de acordo com o site,importei pelo Excel, pib1.csv gdp.csv qualidade.csv
  12. @arfneto Eu entendi sim,já tinha tentando ler o conteúdo dos arquivos,tentando abrir em um arquivo de teste,porém não funcionava. Vou tentar organizar os dois pelo excel,como citado,caso não funcione,vou criar um novo arquivo csv,importando os dados do site original. Obrigado adicionado 4 minutos depois Sobre o por que vou tentar ajeitar os arquivos,é que o exercício pede que processe os dois arquivos CSV citados e forme um único,acho que se fizer um novo arquivo csv orignal da fonte,o exercício pode ficar como errado...
  13. @arfneto O objetivo: https://prnt.sc/qr0xc5 E aqui o que fiz até agora,o que não consigo entender é essa parte de manipular o CSV,e ai,salvar só a parte necessária. #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <ctype.h> /*vetor de struct*/ typedef struct{ int qntd; char pais[30]; float gdp; float satisfaçao_vida; }lgoritmo_qualidade_de_vida algoritmo_qualidade_de_vida pib[193]; void leArquivocsv(algoritmo_qualidade_de_vida *pib) /*struct alocada.*/ int main(int argc , char *argv) { qtd_pais = 193; pib = struct algoritmo_qualidade_de_vida * malloc (qtd_pais * sizeof(struct algoritmo_qualidade_de_vida)); system("PAUSE"); return 0; } void leArquivocsv(algoritmo_qualidade_de_vida *pib) /* função para a abertura do arquivo csv. */ { int i; FILE *arquivo; arquivo = fopen("\\.csv","r"); for (i=0; i<108 ; i++) { fscanf(arquivo, "%d[^,\n]", &pib[i].qntd); fscanf(arquivo, "%[^,\n]", &pib[i].pais); fscanf(arquivo, "%f[^,\n]", &pib[i].gdp); fscanf(arquivo, "%f[^,\n]", &pib[i].satisfaçao_vida); } }
  14. @arfneto Peguei ambos do Git: https://github.com/ageron/handson-ml/tree/master/datasets/lifesat Porém,de acordou com o que me disse,seria bem melhor criar um arquivo Original,com as fontes citadas: http:// http://stats.oecd.org/index.aspx?DataSetCode=BLI http://goo.gl/j1MSKe
  15. @arfneto Então o pre-tratamento teria que ser feito no excel,por exemplo? organizando e depois partindo pra outra parte? Se organizar pelo excel dá certo? ou é preciso organizar pelo compilador?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

ebook grátis "Aprenda a ler resistores e capacitores", de Gabriel Torres

GRÁTIS! BAIXE AGORA MESMO!