Ir ao conteúdo
  • Cadastre-se

Mateus Souza Silva de Mari

Membro Júnior
  • Posts

    6
  • Cadastrado em

  • Última visita

Tudo que Mateus Souza Silva de Mari postou

  1. Prezados Senhores, Eu queria fazer o upgrade do meu notebook para melhorar o desempenho dele, coloquei o SSD NVMe 2.0 de 512GB e melhorou muito a velocidade do computador. Além disso, também comprei um pente de memória RAM de 4GB DDR4 que ouvi falar que para o meu tipo de notebook seria ideal até 2.500 MHz, então comprei um de 2400 MHz. O problema é que ao instalar essa memória, parece estar imcompatível, porque o led acende, mas a tela não acende, fora que ao tirar o pente fora, o notebook liga normalmente. De fato este pente que comprei é compatível? Porque se for, o problema ou é no pente ou está no slot de memória Em anexo deixo a foto do pente e o print do CPU-Z do meu computador
  2. @AnsiC Então, o desafio pede que só possa ter letras e números na senha, logo, não pode ser uma senha do tipo @Ass999 porque tem um símbolo, então já que qualquer outro caracter é proibido na senha, na função de caracteres estranhos do primeiro e segundo código eu coloquei que se não for letra maiúscula, se não for letra minúscula e se não for número, então é outro caracter qualquer, logo o espaço está incluído nisso e a validade diminui. adicionado 4 minutos depois @AnsiC Outra coisa que eu percebi na hora que eu tava mandando o post e que acho que o erro tá ali, é que eu percebi que tá escrito que são vários casos de teste até o Fim de Arquivo, ou seja, aquele while (scanf("%d",variável) != EOF). Mas como eu faço isso pra string que a leitura é com loop? Eu não sei como fazer esse while pra string
  3. Eu estou tentando resolver um problema no site URI Judge Online, na qual este desafio consiste em ler uma senha e identificar se ela possuí os critérios exigidos de validação de senha. O enunciado da questão 2253 encontra-se logo abaixo: Rolien e Naej são os desenvolvedores de um grande portal de programação. Para ajudar no novo sistema de cadastro do site, eles requisitaram a sua ajuda. Seu trabalho é fazer um código que valide as senhas que são cadastradas no portal, para isso você deve atentar aos requisitos a seguir: > A senha deve conter, no mínimo, uma letra maiúscula, uma letra minúscula e um número; > A mesma não pode ter nenhum caractere de pontuação, acentuação ou espaço; > Além disso, a senha pode ter de 6 a 32 caracteres. Entrada A entrada contém vários casos de teste e termina com final de arquivo. Cada linha tem uma string S, correspondente a senha que é inserida pelo usuário no momento do cadastro. Saída A saída contém uma linha, que pode ser “Senha valida.”, caso a senha tenha cada item dos requisitos solicitados anteriormente, ou “Senha invalida.”, se um ou mais requisitos não forem atendidos. Eu já fiz dois códigos diferentes para resolver esse problema, mas eu não estou conseguindo resolver ele, sendo que todos os casos de teste que consigo fazer estão dando certo. O primeiro código que eu escrevi estava dando 10% de erro, mas percebi que estava faltando o ponto final na mensagem de "Senha válida" e "Senha inválida". Então eu fiz a inclusão, só que agora só por causa disso está dando 100% de erro, sendo que todos os casos de testes estão retornando com a resposta certa. O PRIMEIRO CÓDIGO SE ENCONTRA LOGO ABAIXO. #include <cstdio> using namespace std; //função para descobrir se é maiuscula int maiscula (char a) { if (a>='A' and a<='Z') { return 0; }else { return 1; } } //função para descobrir se é minuscula int minuscula (char a) { if (a>='a' and a<='z') { return 0; }else { return 1; } } //função para descobrir se é número int number (char a) { if (a>='0' and a<='9') { return 0; } else { return 1; } } //função para determinar se existe um caracter estranho, como espaço ou pontuação. int caracteres (char a) { if (a>='A' and a<'Z') { return 1; }else if (a>='a' and a<='z'){ return 1; }else if (a>='0' and a<='9') { return 1; }else if (a=='\n'){ return 1; }else { return 0; } } // função principal int main () { char senha[32]; int tamanho,validade=0; //leitura da string e termina com quebra de linha, além de registrar o tamanho da string na variável tamanho for (int i=0;;i++) { scanf("%c",&senha[i]); if (senha[i]=='\n') { tamanho=i; break; } } //análise da string de caracter por caracter até encontrar a primeira letra maiúscula, ao achar e se achar, a variável validade aumenta uma unidade for (int i=0;i<=tamanho;i++) { if (maiscula(senha[i])==0){ validade+=1; break; } } //análise da string de caracter por caracter até encontrar a primeira letra minuscula, ao achar e se achar, a variável validade aumenta uma unidade for (int i=0;i<=tamanho;i++) { if (minuscula(senha[i])==0){ validade+=1; break; } } //análise da string de caracter por caracter até encontrar um caracter estranho, ao achar e se achar, a variável validade decaí uma unidade for (int i=0;i<=tamanho;i++) { if (caracteres(senha[i])==0){ validade-=1; break; }else if (i==tamanho) { // se não encontrar em momento nenhum um caracter estranho até a última vez do loop, a validade aumenta uma unidadade validade+=1; } } //análise da string de caracter por caracter até encontrar o primeiro número, ao achar e se achar, a variável validade aumenta uma unidade for (int i=0;i<=tamanho;i++) { if (number(senha[i])==0){ validade+=1; break; } } //Se a senha estiver no intervalo de tamanho de 6 até 32, a validade aumenta uma unidade if (tamanho>=6 and tamanho<=32) { validade+=1; } //caso o somatório da validade resulte em 5, atendeu todos os critérios e pode ser considerada com senha valida, senão será considerada senha invalida if (validade==5){ printf("Senha valida\n"); }else{ printf("Senha invalida\n"); } return 0; } Como eu disse, esse código com a mensagem sem o ponto final está dando 10% de erro, mas quando coloco esse ponto final, fica dando 100% de erro. Só que a própria Uri Judge Online disse que tem que ter o ponto final. Então eu resolvi apagar tudo que eu fiz e refazer o código de outra maneira sem utilizar funções, só que continua dando um erro de 100% no site, mas quando faço os casos de teste tanto no site, quanto outros inventados e até casos de teste no DeBug, está dando os resultados que deveriam ser dados. Vejam o SEGUNDO CÓDIGO. #include <cstdio> using namespace std; int main () { char senha[32]; int validade=0,tamanho; //leitura da string até a quebra de linha for (int i=0;;i++) { scanf("%c",&senha[i]); if(senha[i]=='\n') { tamanho=i; break; } } // se o tamanho dela estiver no intervalo de 6 até 32, validade aumenta if (tamanho>=6 and tamanho<=32) { validade+=1; } // quando achar a primeira maiuscula, validade aumenta for (int i=0;i<=tamanho;i++) { if (senha[i]>='A' and senha[i]<='Z') { validade+=1; break; } } // quando achar a primeira minuscula, validade aumenta for (int i=0;i<=tamanho;i++) { if (senha[i]>='a' and senha[i]<='z') { validade+=1; break; } } //quando achar o primeiro número, validade aumenta for (int i=0;i<=tamanho;i++) { if (senha[i]>='0' and senha[i]<='9') { validade+=1; break; } } //quando achar um caracter normal, nada aumentará, mas quando achar um diferente, validade cai 32 unidades for (int i=0;i<=tamanho;i++) { if (senha[i]>='0' and senha[i]<='9') { }else { if (senha[i]>='a' and senha[i]<='z') { }else { if (senha[i]>='A' and senha[i]<='Z' or senha[i]=='\n') { }else { validade=validade-32; break; } } } } //se o somatório da validade chegar em 4, então senha será valida, senão, senha será invalida if (validade>=4){ printf("Senha valida.\n"); }else { printf("Senha invalida.\n"); } return 0; } E mesmo com esse código diferente e refeito está dando errado, como eu já disse, todos casos de teste estão dando corretamente. O que está acontecendo para esse erro gigantesco está sendo apontado pela URI Online Judge ?
  4. Boa tarde, eu estou fazendo alguns desafios utilizando a linguagem C++, só que um dos desafios está com o enunciado incompreensível, ou pelo menos eu não entendi o que ele está pedindo. Veja o enunciado: ____________________________ Ramsay: "(...) você vence se conseguir adivinhar quem eu sou e por que estou torturando você." Theon deve pensar rápido e adivinhar quem é seu algoz! Entretanto, Ramsay já decidiu o que ele irá fazer depois que Theon der sua resposta. Theon pode dizer que seu algoz é alguma dentre N pessoas. Considere que as pessoas são numeradas de 1 a N. Se Theon responder que seu algoz é a pessoa i, Ramsay irá atingi-lo Ti vezes. Sua tarefa é ajudar Theon a determinar qual deve ser sua resposta de forma a minimizar o número de vezes que ele será atingido. Entrada A primeira linha contém um inteiro N (1 ≤ N ≤ 100). A segunda linha contém N inteiros T1, T2, ..., TN (0 ≤ Ti ≤ 20). Saída Imprima uma linha contendo o número da pessoa que Theon deve dizer ser seu algoz. Se existe mais de uma resposta possível, imprima a menor.
  5. Entendo, mas é exatamente essa questão, dentro desse bloco IF ele sempre vai ser executado, mas mesmo assim a estrutura FOR deste IF não está sendo executada. if (c==c) { for (int x=b;x==c;x++) { if (x%2==1) { soma+=x; printf("%d\n",soma); } } } A cada vez que o programa lê os valores de B e C, ele simplesmente retorna a ler novamente os valores de B e C sem fazer o que o bloco IF está fazendo que é colocar o valor da soma na tela. adicionado 3 minutos depois Eu havia colocado o IF com a condição de que ele apenas seja executado se o C for igual o C exatamente para que ele fosse executado, mas não está acontecendo isso.
  6. Alguém poderia me explicar o motivo pela qual o meu código não está funcionando completamente? Ele está realizando a contabilização da quantidade de vezes que a primeira estrutura FOR vai repetir, adentra e faz a leitura das variáveis B e C, mas quando se trata de ir para a segunda estrutura FOR que é onde irei contar todos os números ímpares entre os números e somar eles, simplesmente não está rodando, fica como se o programa só tivesse a leitura das variáveis B e C. O que está acontecendo para que a segunda estrutura FOR não esteja sendo rodada? #include <cstdio> using namespace std; int main () { int a,b,c,soma,n1; scanf("%d",&a); soma=0; for (int i=1;i<=a;i++) { scanf("%d%d",&b,&c); if (c==c) { for (int x=b;x==c;x++) { if (x%2==1) { soma+=x; printf("%d\n",soma); } } } else if (b==c) { for (int y=b;y==c;y--) { if (y%2==1) { soma+=y; printf("%d\n",soma); } } } } 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!