Ir ao conteúdo
  • Cadastre-se

BifeProgramador

Membro Pleno
  • Posts

    32
  • Cadastrado em

  • Última visita

Tudo que BifeProgramador postou

  1. Já consegui fazer grande parte , só está faltando agora preencher o vetor com imagem 0 e ler as coordenadas i,j e preencher a posição correspondente com 1 . image read_pts(char *name, int *nl, int *nc) { char linha[100]; FILE *f; int i; image img = NULL; f = fopen ("name.txt", "rt"); if (f == NULL) { puts ("Erro na ao criar arquivo"); exit (100); } if (strcmp (linha,"P1")) { return NULL; } fgets (linha,1000,f); while (linha[0]== '#') fgets (linha,1000,f); sscanf (linha, "%d %d", nc , nl); img = malloc (*nl * *nc * sizeof (int)); for (i=0; i < (*nl) * (*nc); i++) { fscanf (f, "%d",img + i); } // Falta fazer // 1. preencher o vetor imagem com zeros // 2. ler as 'n' coordenadas (i, j) e preencher a posição correspondente de img com 1. fclose(f); return img; } Entendo e concordo com você , mas infelizmente sou obrigado a seguir desse jeito se não o professor não aceita kkkk. Acho errado isso mas fazer o que ?
  2. O código já veio assim e eu não posso mudar... O professor passa o código e a gente tem que entender e completar. As únicas partes que podemos modificar é onde tem o "Para fazer" Só posso editar essa parte do código
  3. Eu fui nessa porque é a primeira... O original é esse aqui : #include <stdio.h> #include <stdlib.h> #include <string.h> #if defined(_WIN32) || defined(__WIN64__) || defined(__CYGWIN__) #define VIEW "./i_view32" #elif defined(__linux__) #define VIEW "eog" #endif typedef int *image; image alloc_memo(int nl, int nc) { return (image)malloc(nl * nc * sizeof(int)); } void write_pbm(image img, char *name, int nl, int nc) { FILE *f; // -------------------------------------------- // Para fazer // 1. criar o arquivo texto 'name' // 2. gravar o numero mágico 'P1' no arquivo // 3. gravar uma linha de comentário '#...' // 4. gravar o número de linhas e colunas // 5. gravar os 0's ou 1's da imagem // (no máximo 100 valores por linha) // -------------------------------------------- fclose(f); } image read_pts(char *name, int *nl, int *nc) { FILE *f; image img = NULL; // -------------------------------------------- // Para Fazer // 1. abrir o arquivo texto 'nome' para leitura // 2. ler o número de linhas e colunas // 3. ler o número 'n' de pontos // 4. alocar o vetor 'img' com nl x nc // elementos // 5. preencher o vetor imagem com zeros // 6. ler as 'n' coordenadas (i, j) e preencher // a posição correspondente de img com 1. // -------------------------------------------- fclose(f); return img; } int main(int argc, char *argv[]) { image in; char *p; char nameIn[40]; char nameOut[40]; char command[100]; int nl, nc; if (argc < 2) { printf("Uso: %s <imagem[.pts]>\n\n", argv[0]); return 1; } if (p = strstr(argv[1], ".pts")) *p = 0; strcpy(nameIn, argv[1]); strcat(nameIn, ".pts"); strcpy(nameOut, argv[1]); strcat(nameOut, ".pbm"); // transformação in = read_pts(nameIn, &nl, &nc); write_pbm(in, nameOut, nl, nc); sprintf(command, "%s %s &", VIEW, nameOut); system(command); free(in); return 0; } Estou fazendo isso porque é requisitado usar esse tipo no enunciado Ta bom
  4. O enunciado é esse Ainda estou trabalhando na função write_pbm a qual tenho q gravar os dados porém não estou sabendo como implementar isso void write_pbm(image img, char *name, int nl, int nc) { FILE *f; int P1; f = fopen ("name.txt", "wt"); if (f == NULL) { puts ("Erro ao criar arquivo"); exit (10); } do { scanf ("%d",&P1); fprintf(f, "%d" ,P1); scanf ("%d",&nl); fprintf(f, "%d" ,nl); scanf ("%d",&nc); fprintf(f, "%d" ,nc); } // PARA FAZER // 1. gravar o numero mágico 'P1' no arquivo // 2. gravar uma linha de comentário '#...' // 3. gravar o número de linhas e colunas // 4. gravar os 0's ou 1's da imagem (no máximo 100 valores por linha) fclose(f); }
  5. Estou a 2 dias tentando fazer esse código mas nada sai..., alguém me da uma ajuda por favor eu preciso entregar ele amanhã #include <stdio.h> #include <stdlib.h> #include <string.h> #if defined(_WIN32) || defined(__WIN64__) || defined(__CYGWIN__) #define VIEW "./i_view32" #elif defined(__linux__) #define VIEW "eog" #endif typedef int *image; image alloc_memo(int nl, int nc) { return (image)malloc(nl * nc * sizeof(int)); } void write_pbm(image img, char *name, int nl, int nc) { FILE *f; f = fopen ("name.txt", "wt"); if (f == NULL) { puts ("Erro ao criar arquivo"); exit (10); } // FALTA FAZER // 1. gravar o numero mágico 'P1' no arquivo // 2. gravar uma linha de comentário '#...' // 3. gravar o número de linhas e colunas // 4. gravar os 0's ou 1's da imagem (no máximo 100 valores por linha) fclose(f); } image read_pts(char *name, int *nl, int *nc) { FILE *f; image img = NULL; f = fopen ("name.txt", "r"); // FALTA FAZER // 1. ler o número de linhas e colunas // 2. ler o número 'n' de pontos // 3. alocar o vetor 'img' com nl x nc elementos // 4. preencher o vetor imagem com zeros // 5. ler as 'n' coordenadas (i, j) e preencher a posição correspondente de img com 1. fclose(f); return img; } int main(int argc, char *argv[]) { image in; char *p; char nameIn[40]; char nameOut[40]; char command[100]; int nl, nc; if (argc < 2) { printf("Uso: %s <imagem[.pts]>\n\n", argv[0]); return 1; } if (p = strstr(argv[1], ".pts")) *p = 0; strcpy(nameIn, argv[1]); strcat(nameIn, ".pts"); strcpy(nameOut, argv[1]); strcat(nameOut, ".pbm"); // transformação in = read_pts(nameIn, &nl, &nc); write_pbm(in, nameOut, nl, nc); sprintf(command, "%s %s &", VIEW, nameOut); system(command); free(in); return 0; }
  6. Tenho esse código porém ele está incompleto e não sei como fazer as partes que faltam . Alguém pode me dar uma luz ? #include <stdio.h> #include <stdlib.h> #include <string.h> #if defined(_WIN32) || defined(__WIN64__) || defined(__CYGWIN__) #define VIEW "./i_view32" #elif defined(__linux__) #define VIEW "eog" #endif typedef int *image; image alloc_memo(int nl, int nc) { return (image)malloc(nl * nc * sizeof(int)); } void write_pbm(image img, char *name, int nl, int nc) { FILE *f; // FALTA FAZER // 1. criar o arquivo texto 'name' // 2. gravar o numero mágico 'P1' no arquivo // 3. gravar uma linha de comentário '#...' // 4. gravar o número de linhas e colunas // 5. gravar os 0's ou 1's da imagem (no máximo 100 valores por linha) fclose(f); } image read_pts(char *name, int *nl, int *nc) { FILE *f; image img = NULL; // FALTA FAZER // 1. abrir o arquivo texto 'nome' para leitura // 2. ler o número de linhas e colunas // 3. ler o número 'n' de pontos // 4. alocar o vetor 'img' com nl x nc elementos // 5. preencher o vetor imagem com zeros // 6. ler as 'n' coordenadas (i, j) e preencher a posição correspondente de img com 1. fclose(f); return img; } int main(int argc, char *argv[]) { image in; char *p; char nameIn[40]; char nameOut[40]; char command[100]; int nl, nc; if (argc < 2) { printf("Uso: %s <imagem[.pts]>\n\n", argv[0]); return 1; } if (p = strstr(argv[1], ".pts")) *p = 0; strcpy(nameIn, argv[1]); strcat(nameIn, ".pts"); strcpy(nameOut, argv[1]); strcat(nameOut, ".pbm"); // transformação in = read_pts(nameIn, &nl, &nc); write_pbm(in, nameOut, nl, nc); sprintf(command, "%s %s &", VIEW, nameOut); system(command); free(in); return 0; }

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!