Ir ao conteúdo
  • Cadastre-se

catherineprokhorov

Membro Júnior
  • Posts

    11
  • Cadastrado em

  • Última visita

Tudo que catherineprokhorov postou

  1. @arfneto o que eu quero é fazer isso A leitura do ficheiro deverá ser realizada até detectar o fim do ficheiro. Caso não seja possível abrir o ficheiro, o programa deverá imprimir a mensagem Error opening file e deverá voltar a esperar novo comando do utilizador. Para cada bomba, deverá existir o estado, uma coordenada X e uma Y. Caso isso não se verifique, significa que o ficheiro está mal formatado. Nesse caso o programa deverá mostrar a mensagem File is corrupted e deverá voltar a esperar novo comando do utilizador. O caracter que separa o estado, a coordenada X e a coordenada Y poderá ser um espaço ou um tab, e todo o texto que apareça após a coodenada Y da bomba deverá ser simplesmente ignorado. A mesma mensagem deverá ser mostrada caso alguma coordenada presente no ficheiro não seja válida (fora dos limites). Se isso acontecer, a leitura do ficheiro deverá terminar e o programa deverá voltar a esperar novo comando do utilizador. Caso seja detectado algum erro no ficheiro, o mapa deverá ser limpo, eliminando todas as bombas que tiverem sido lidas até ao momento. ** Não é necessário guardar uma cópia do mapa existente. Se ocorrer um erro na leitura do ficheiro, o mapa deverá ficar limpo (sem bombas), independentemente de existirem bombas no mapa antes da leitura do ficheiro. '.' significa bomba armada '*' bomba desarmada a variavel texto é uma das opções do programa
  2. @arfneto eu ja fiz isso, eu vou mostrar o meu código o que eu quero é fazer um campo minado e ler essas coordenadas pelo ficheiro criado ja esta feito ele imprime um tabuleiro com as coordenadas passadas ao ficheiro mas só que ele só escreve as coordenadas se elas forem de 0 a 9 se for de >10 não conta. e a outra coisa que não estou a conseguir verificar é caso se dentro do ficheiro tiver algo escrito eu quero detetar isso e escrever uma mensagem de erro no ecra #include <stdio.h> int main () { if(strcmp(texto, "read") == 0){ scanf("%s", nome_do_ficheiro); arq1 = fopen (nome_do_ficheiro, "r"); if(arq1 == NULL) { printf("Error opening file\n"); } while(!feof(arq1)) { strcpy(str, "\0"); fgets(str, TAMANHO, arq1); if(!feof(arq1)) { if(str[0] == '.' || str[0] == '*' ) { count1linhas = 2; count2colunas=0; while(str[count1linhas] != ' ') { temp[count1linhas-2] = str[count1linhas]; count1linhas++; } linha = atoi(temp); count1linhas++; while(str[count1linhas] != '\n') { tempcoluna[count2colunas] = str[count1linhas]; count1linhas++; count2colunas++; } coluna = atoi(tempcoluna); if(str[0] == '*') { campominado[linha][coluna] = '*'; }else if(str[0] == '.') { campominado[linha][coluna] = '.'; } } count++; } } fclose(arq1); } meu ficheiro de input 25 25 . 0 1 . 0 2 * 0 3 * 5 9 * 6 4 * 6 5 eojah (aqui eu quero poder mostrar uma mensagem de erro) . 1 4 . 2 3 . 2 6 . 2 9 . 3 4 . 7 6 . 8 3 . 18 6 . 12 2 . 22 10
  3. oii, gostaria que alguem ajudasse-me ,eu quero ler numeros grandes em ficheiros mas no codigo que eu tenho só me considera uma casa decimal, por exemplo tenho um ficheiro que lê um tabuleiro desta forma: 25 25 ->coordenada do vetor do tabuleiro . 0 1 (o '.' representa a bomba e os numeros as coordenas x e y) mas quando tenho essas coordenadas não me lê esses números porque não os considera . 12 0 . 10 11 . 0 13 e outra coisa que eu quero fazer é se no ficheiro se tiver uma palavra escrita alem de coordenadas eu quero que dê uma mensagem de erro assim: 25 25 . 0 1 . 12 0 . 10 11 . 0 13 ola ->tem que dar mensagem de erro se tiver algum do genero
  4. @Midoripoderia me explicar como implemento no meu codigo?? porque aquilo deve permitir escrever qualquer frase e fazer o deslocamento que o utilizador quiser
  5. @kginsim é mexer com vetores o que eu estou tentando fazer é uma coisa parecida com isto, mas não me dá o output que eu quero. estou tentando fazer isso: r 2 ola tudo bem? output: r2 m?ola tudo be mas o codigo que eu fiz não faz isso, mas sim isso: r 2 ola tudo bem? output: r 2 ola tudo bem?ola tudo bem? mas n quero isso. #include <stdio.h> #include <string.h> #define LETRAS 166 int main () { char caracter; int nCarater; char texto[LETRAS]; char texto_copiado[LETRAS]; char direita; printf(" Insira um carater (r,h,q), depois um numero, depois o texto:\n"); scanf("%c %d %[^\n]s", &caracter, &nCarater, texto); if(nCarater>0) { texto_copiado[LETRAS] = texto[LETRAS] >> nCarater; strcpy(texto_copiado, texto); printf("%c %d %s %s", caracter, nCarater, texto_copiado,texto); }else if(nCarater<0) { texto_copiado[LETRAS] = texto[LETRAS] << nCarater; strcpy(texto_copiado, texto); printf("%c %d %s %s.", caracter, nCarater, texto_copiado,texto); } return 0; } @Midori sim é isso mesmo que eu quero fazer, poderia dar uma olhada no meu codigo??
  6. @RobertoGB oi de momento não estou conseguindo achar uma jeito de fazer poderia dar uma ajudinha??
  7. ola, será que poderiam explicar-me como eu faço para adicionar umas letras no incio de uma frase. ex Programar é arte. (>>4) fica: rte.Programar é a algo como isto
  8. @devair1010 zodiac Pretende-se fazer um programa que com base na data de nascimento e data actual determina a idade e o signo do zodiaco. Além disso, o programa deverá também determinar se a pessoa está apta para trabalhar (idade >= 16) ou se é elegível para a reforma (idade >= 66 anos e 5 meses) Descrição do problema O programa recebe um caracter e 6 inteiros. O caracter serve para escolher qual o output a apresentar: 'a' - idadade 'z' - signo do zodiaco 'r' - informação sobre se está apto para trabalhar ou elegível para a reforma 't' - toda a informação Os 6 inteiros correspondem a dia, mês e ano de nascimento e dia, mês e ano atual Exemplo: a 05 08 2015 01 01 2020 Opção 'a' O programa deverá devolver a idade do utilizador Exemplo: a 11 1 1970 2 6 2020 50 anos o exercício pede para fazer um ZODIACO, eu depois posso partilhar o código inteiro, mas só me falta validar o mes de fevereiro, ver quando ele tem 28 e quando terá 29 dias. por exemplo se ele tiver 28 dias em 2020 e o utilizador colocou 29 dias aquilo tem que apresentar a mensagem: data atual invalida, e caso seja verdade teria que aparecer no output: a 15 09 2000 20 03 2020 20 anos e o que aparece é : a 15 09 2000 20 03 2020 e neste exercício não é permitido ciclos infelizmente
  9. @devair1010 uso o VS code, mas em outras validaçoes que eu faço ele apresenta as respetivas coisas que são pedidas, porque me parece que a condição para ver se ano é bissexto ou não está incompleta
  10. olá, eu tenho esse código, e o objetivo é verificar o mês de fevereiro, mas infelizmente quando a data ta certa ele não faz a condição que eu quero e simplesmente o programa termina. Ou seja, ele tinha que ver o if do carater e imprimir a idade, a data 29 02 2020 o programa aceita esta data só que termina imediatamente o programa. podem ajudar-me , por favor. #include <stdio.h> int main (void) { char carater ; int dia_do_nascimento, mes_do_nascimento, ano_do_nascimento; int dia, mes, ano, calcula_idade; int dia1,ano1,mes1; int junto, idade; scanf("%c %d %d %d %d %d %d", &carater, &dia_do_nascimento, &mes_do_nascimento, &ano_do_nascimento, &dia, &mes, &ano); if(dia >31){ if(mes == 1 || mes ==3 || mes ==5 || mes ==7 || mes ==8 || mes ==10 || mes == 12){ printf("Data actual invalida \n"); } }else if(dia>30){ if (mes == 4 || mes == 6 || mes == 9 || mes == 11){ printf("Data actual invalida \n"); } }else if(mes == 2 && dia >28){ if(!(ano%4 == 0 && ano %100 != 0) || ano % 400 == 0){ printf("Data actual invalida \n"); } }else if(mes == 2 && dia >29){ if(!(ano%4 == 0 && ano %100 != 0) || ano % 400 == 0){ printf("Data actual invalida \n"); } }else{ if(dia_do_nascimento>31){ if(mes_do_nascimento == 1 || mes_do_nascimento ==3 || mes_do_nascimento ==5 || mes_do_nascimento ==7 || mes_do_nascimento ==8 || mes_do_nascimento ==10 || mes_do_nascimento == 12){ printf("Data de nascimento invalida \n"); } }else if(dia_do_nascimento>30){ if (mes_do_nascimento == 4 || mes_do_nascimento == 6 || mes_do_nascimento == 9 || mes_do_nascimento == 11){ printf("Data de nascimento invalida \n"); } }else{ if((dia_do_nascimento<1 || dia_do_nascimento>31) || (dia<1 || dia >31)){ printf("Data de nascimento invalida \n"); }else{ if((mes_do_nascimento <1 || mes_do_nascimento >12) || (ano_do_nascimento<=1900 || ano_do_nascimento>2020) || (mes<mes_do_nascimento && ano == ano_do_nascimento)){ printf("Data de nascimento invalida \n"); }else{ if((mes<1 || mes>12) || (ano <=1900 || ano > 2020)){ printf("Data actual invalida \n"); }else{ if((ano < ano_do_nascimento) || (dia<dia_do_nascimento && ano_do_nascimento == ano)){ printf("Data actual inferior a data de nascimento"); }else{ if (carater == 'a'){ calcula_idade = 365*ano + 30*mes + dia- 365*ano_do_nascimento - 30*mes_do_nascimento - dia_do_nascimento; ano1 = calcula_idade/365; calcula_idade = calcula_idade%365; mes1 = calcula_idade/30; calcula_idade = calcula_idade%30; dia1 = calcula_idade; printf("%d anos", ano1); } } } } } se alguem poder ajudar, é importante

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!