Ir ao conteúdo
  • Cadastre-se

Ariel Souto

Membros Juniores
  • Total de itens

    12
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. @Flávio Pedroza Muito obrigado pela ajuda.
  2. @Flávio Pedroza Obrigado pela dica, Flávio. Vou tentar fazer agora como você disse. Mas antes, eu gostaria de você desse uma olhada no que eu fiz enquanto estava aguardando alguma resposta: Eu fiz a opção 3 mesmo. Eu não gostei muito dela porque achei que ficou repetindo muito nos parâmetros. //MÉTODOS DA TROCA DE SENHA -------------------------------------------------------------------- public void BloquearTrocaDeSenha() { if (_tentativasTrocaDeSenha == 0) { _permissaoDeTrocaDeSenha = false; } else { _permissaoDeTrocaDeSenha = true; } } public void PermitirTrocaDeSenha(int code, int senhaAtual, int senhaNova) { BloquearTrocaDeSenha(); if (_permissaoDeTrocaDeSenha == true) { ConfirmarPinCode(code, senhaAtual, senhaNova); } else { Console.WriteLine("A troca de senha, por motivos de segurança, está temporariamente bloqueada. Entre em contato com o gerente."); } } public void ConfirmarPinCode(int code, int senhaAtual, int senhaNova) { //gerando um PinCode aleatório. //Random numAleatorio = new Random(); //int pinCode = numAleatorio.Next(1, 3); int pinCode = 1; //deixei esse por enquanto para testar. if (pinCode == code) { VerificarSenhaAtual(senhaAtual, senhaNova); } else { Console.WriteLine("ERRO: PinCode Inválido."); _tentativasTrocaDeSenha--; } } public void VerificarSenhaAtual(int senhaAtual, int senhaNova) { if (senhaAtual == _senha) { VerificarTamanhoDaSenhaNova(senhaNova); } else { Console.WriteLine("ERRO: sua senha atual está errada. Operação finalizada."); _tentativasTrocaDeSenha--; } } public void VerificarTamanhoDaSenhaNova(int senhaNova) { if (senhaNova.ToString().Length > 5) { _senha = senhaNova; } else { Console.WriteLine("ERRO: infelizmente não foi possível trocar a senha. Ela deve ter no mínimo 6 dígitos."); } } Você achar que do jeito que eu fiz acima está correto/usual para o mercado de trabalho? (Claro que vou fazer do jeito que você sugeriu, que com certeza será o mais ideal, mas gostaria de saber se esses métodos com ifs chamando outros métodos e repetindo vários parâmetros de método em método está correto ou se teria uma forma melhor de fazer essa parte).
  3. Bom dia/tarde/noite. Sou iniciante em programação, iniciando meus estudos de lógica de programação 06/06/2019. No momento estou aprendendo C# e gostaria de tirar uma dúvida com vocês, que com certeza são mais experientes do que eu. Estou realizando um exercício para melhor fixação e aprendizagem. Nesse exercício criei uma classe Conta. Já implementei as propriedades e alguns métodos. No momento estou querendo realizar um método de AlterarSenha() e dentro dele tem várias etapas. Segundo a ideologia Clean Code, devemos reduzir o nosso código ao máximo e para isso utilizamos os métodos. Dentro desse método que quero chamar, vão existir as seguinte etapas: 1) Verificar se a propriedade bool _permissaoDeTrocaDeSenha está como true. (criei essa propriedade, pois se eu tentar trocar a senha e errar 3 tentativas ela se tornará false e bloqueará a troca de senha) 2) Vou criar um código aleatório com o método Random() para gerar um PinCode. Aqui preciso verificar se o PinCode que o cliente recebeu e digitou bate com o PinCode gerado. 3) Vou solicitar que o cliente digite a senha atual e verificar se a senha digitada bate com a atual. 4) Vou conferir se a nova senha tem mais de 5 caracteres. Enfim, bolei assim: public void AlterarSenha(int pinCode, int senhaAtual, int senhaNova) { //1) se _permissaoTrocaDeSenha = true. //2) se pinCode = PinCode. //3) se senhaAtual = _senha. //4) se senhaNova.length > 5. //entra na troca: alterar _senha para senhaNova. //senão: "ERRO: infelizmente não foi possível trocar a senha. Ela deve ter no mínimo 6 dígitos." //senão "ERRO: sua senha atual está errada. Operação finalizada." //senão "PinCode Inválido!" //senão "A troca de senha, por motivos de segurança, está temporariamente bloqueada. Entre em contato com o gerente." } Bom, agora vem a minha pergunta: Eu ACHO que devo criar um método separado para cada etapa dessas (seguindo a ideologia Clean Code e POO, buscando no futuro talvez uma reutilização de código, por exemplo). Aí eu fiquei me questionando: 1) Devo criar esses métodos um dentro do outro, tipo uma cascata? 2) Ou devo criar todos esses métodos dentro do método principal AlterarSenha()? 3) Ou devo criar todos esses métodos de forma individual dentro da Classe Conta? (Se essa for a resposta correta, serão MUITOS métodos dentro da Classe Conta, pois além desses que citei acima, a Classe Conta já tem outros métodos que eu criei como: Sacar(), Depositar(), etc... E nesse caso como eu organizaria esse tanto de métodos para que fique fácil encontrá-los no código? Seria por ordem alfabética?) Sou grato a todos que puderem me ajudar.
  4. Muito obrigado, galera! Vocês são fera!!! Vou juntar a grana e esperar a Black Friday para ver se consigo comprar mais barato ainda HAHAHAHA. Abraços.
  5. @Christian C. Torres A Kabum já me enviaria o PC montado? Além disso preciso comprar a licença do Windows. Nela, será que já vem o pacote office?
  6. Eu gostaria de agradecer a todos vocês que se prestaram a me responder e ajudar. Eu realmente sou leigo nesse assunto e vocês me ajudaram a ter uma noção de quanto, mais ou menos, devo juntar para fazer essa aquisição. Eu calculei que com R$2500 à vista consigo comprar o PC na especificação que me passaram + monitor + teclado + SDD extra para o meu notebook. MUITO OBRIGADO! Apenas mais uma dúvida: O Christian e o Grievous me passaram duas especificações diferentes. Gostaria de saber se ambas são sem placa de vídeo ou se alguma dessas especificações tem placa de vídeo. E se elas não tiverem, eu não preciso de placa de vídeo para rodar nem o Dota 2 e nem o The Sims 4? Grato.
  7. Bom dia a todos. Primeiramente eu gostaria de explicar o título do tópico. Sei que um Pc Gamer jamais seria simples, mas escolhi essa palavra porque as necessidades que eu quero ao comprar um Pc Gamer pra mim é muito diferente do que a maioria das pessoas querem. Eu jogo apenas Dota 2 e The Sims 4 e não me importo com um SUPER gráfico. Pra mim, o jogo pode rodar no gráfico mais baixo que não faz diferença. O que importa pra mim é o desempenho do jogo ser muito bom. Atualmente tenho um notebook i5 3ª geração com 6GB de memória e GForce GT 740M. Ele me atende bem, mas já está velho e ficando bem lento! Quando jogo Dota 2 e The Sims 4 os lags são por conta de internet via wi-fi e raramente por conta do notebook. Então o que eu tenho atende as minhas necessidades para jogar, mas como eu disse, ele está velho e lento e eu tenho que formatar ele a cada 6 meses ou 1 ano. Gostaria de saber a opinião de vocês, se apenas um SSD já resolveria minha necessidade, sem precisar comprar um novo Pc. Ou se é melhor procurar um novo Pc mesmo com algumas especificações melhores: i5 8ª geração, 8GB de memória e uma GForce melhor. O que vocês me sugerem? Além disso, minha esposa gosta de jogar comigo e preciso comprar um outro notebook ou Pc que atendam os mesmo requisitos para jogarmos juntos. Será que compro um Pc Gamer ou Notebook? Estou achando os preço extremamente salgados quando procuro por notebook gamer ou pc gamer! Está tudo na faixa de R$3000+ e isso vai muito além das minha finanças e das minhas necessidades. Será que montar um pc escolhendo peça por peça sairia mais em conta? Traduzindo: preciso ou revitalizar meu notebook com um SSD ou comprar um outro notebook ou pc gamer, e comprar mais um notebook ou pc gamer de igual qualidade para as mesmas necessidades. Com o conhecimento de vocês, poderiam me ajudar? Eu não quero gastar muito. Apenas o necessário para atender às minhas necessidades como citei acima. Não preciso de gabinete bonito, teclado bonito, nada disso. Apenas a funcionalidade bonita e o preço mais belo ainda hahahaha! Obrigado galera!
  8. Pessoal, MUITO OBRIGADO! Sou muito grato a vocês! É o único fórum de dúvidas da internet que respondem. Eu realmente não tinha entendido como deveria ser feita a entrada do input, por mais que tivesse entendido o código. As vezes procuramos um grande erro e no fim era algo tão simples. Como eu faço para fechar o tópico? Minha dúvida já foi solucionada.
  9. @MassakiMsk Espera! Eu devo digitar nesse exemplo que você me deu: Letras (enter) 3 (enter) 4.5 (enter)? Ou eu devo digitar TUDO e só depois apertar o enter? Porque eu estou tentando fazer da primeira forma. E aí quando eu digito Letras e aperto o enter dá esse erro.
  10. @Flávio Pedroza Pois é, eu também não vejo erros no código mas fica dando esse erro (System.IndexOutOfRangeException: 'Index was outside the bounds of the array.') e eu não sei mais o que fazer. Existe alguma outra forma de escrever na mesma linha?
  11. Bom dia a todos. Eu comecei a aprender C# ontem e para testar meus conhecimentos iniciais estou fazendo alguns testes do URI JUDGE. Eu não consegui resolver dois problemas iniciais (1010 e 1012) porque a entrada de dados não deve ser feita em linhas separadas e sim na mesma linha com um espaço entre elas. Eu pesquisei bastante como fazer isso e encontrei em vários locais, mas quando eu implemento retorna um erro: System.IndexOutOfRangeException: 'Index was outside the bounds of the array.' A FORMA COMO ENCONTREI PARA SE IMPLEMENTAR A ENTRADA DE DADOS NA MESMA LINHA: usando string[] e split(' '). using System; namespace EscreverNaMesmaLinha { class Program { static void Main(string[] args) { string x; int y; double z; string[] vet = Console.ReadLine().Split(' '); x = vet[0]; y = int.Parse(vet[1]); z = double.Parse(vet[2]); Console.WriteLine(x); Console.WriteLine(y); Console.WriteLine(z); } } } Infelizmente essa forma acima não está funcionando. Talvez esteja desatualizada, não sei. Vocês poderiam me ajudar? Segue o link dos dois problemas propostos no site do URI JUDGE. Problema 1010: https://www.urionlinejudge.com.br/judge/pt/problems/view/1010 Problema 1012: https://www.urionlinejudge.com.br/judge/pt/problems/view/1012 Obrigado a todos que se disporem em me ajudar e me desculpem por qualquer erro.
  12. Senhores, conto com a ajuda de vocês. (ESSE É MEU PRIMEIRO POST. POR FAVOR, DESCONSIDEREM QUALQUER ERRO) BREVE INTRODUÇÃO: Eu comecei a aprender programação há 10 dias (06/06/2019) e estou aprendendo por enquanto por um PDF de Lógica de Programação e vídeos no YouTube. Aprendi ontem (15/06/2019) em um vídeo sobre o CLEAN CODE (dividir o código em várias funções para facilitar a leitura do código por futuros programadores que derem manutenção nele, como também facilitar a correção de bugs). Eu ainda não sei fazer função direito (ainda não entendi tão bem), mas eu aprendi como fazer procedimento (similar à função, porém sem retorno) e eu fiz hoje um JOGO DA VELHA todo com base nessa ideia de CLEAN CODE e procedimentos. Gostaria que vocês olhassem o meu algoritmo (por mais que ainda seja em PORTUGOL) para eu saber se estou aprendendo e programando corretamente. Obs.: o JOGO DA VELHA funciona perfeitamente. (Então não quero que procurem erros, pois está funcionando bem, mas quero que vejam se esse estilo de programação, dividindo em procedimentos e chamando os procedimentos no algoritmo principal, é o jeito certo de programar). 1) Se esse for o jeito certo, continuarei aprendendo e programando assim. 2) Se esse não for o jeito certo, por favor, poderiam me orientar qual a melhor maneira de programar com base no CLEAN CODE? SEGUE ABAIXO TODO O ALGORITMO E OS PROCEDIMENTOS Algoritmo "JOGO DA VELHA COM PROCEDIMENTOS" //aqui se inicia o algoritmo Var //aqui são as variáveis globais nomeJogador, simboloJogador : VETOR [1..2] DE CARACTERE tabela : VETOR [1..3,1..3] DE CARACTERE contador, linha, coluna : INTEIRO PROCEDIMENTO jogadores() //nomeando os jogadores. VAR INICIO ESCREVAL () ESCREVAL ("- JOGADORES") ESCREVA () PARA contador DE (1) ATE (2) FACA ESCREVA ("Digite o nome do(a)", contador,"º jogador(a): ") LEIA (nomeJogador[contador]) FIMPARA FIMPROCEDIMENTO PROCEDIMENTO simbolos() //os símbolos dos jogadores. VAR INICIO simboloJogador[1] := "X" simboloJogador[2] := "O" ESCREVAL () PARA contador DE (1) ATE (2) FACA ESCREVAL ("O(A) jogador(a) ", nomeJogador[contador]," tem por símbolo: ", simboloJogador[contador],".") FIMPARA ESCREVAL () FIMPROCEDIMENTO PROCEDIMENTO tabuleiroEmBranco() //o tabuleiro. VAR contadorLinha, contadorColuna : INTEIRO INICIO PARA contadorLinha DE (1) ATE (3) FAÇA PARA contadorColuna DE (1) ATE (3) FAÇA tabela[contadorLinha,contadorColuna] := "_" SE (contadorlinha = 3) ENTAO tabela[contadorLinha,contadorColuna] := " " FIMSE FIMPARA FIMPARA tabuleiroAtualizado() FIMPROCEDIMENTO PROCEDIMENTO tabuleiroAtualizado() //atualização do tabuleiro conforme os jogadores fizerem as jogadas. VAR INICIO ESCREVAL () ESCREVAL (" 1 2 3 ") ESCREVAL ("1 _",tabela[1,1],"_|_",tabela[1,2],"_|_",tabela[1,3],"_") ESCREVAL ("2 _",tabela[2,1],"_|_",tabela[2,2],"_|_",tabela[2,3],"_") ESCREVAL ("3 ",tabela[3,1]," | ",tabela[3,2]," | ",tabela[3,3]," ") FIMPROCEDIMENTO PROCEDIMENTO rodadas() //as rodadas com as jogadas dos dois jogadores. VAR jogadas : INTEIRO INICIO REPITA jogadas := jogadas + 1 PARA contador DE (1) ATE (2) FACA ESCREVAL () ESCREVA ("Jogador ", nomeJogador[contador],", em qual LINHA fará sua jogada? ") LEIA (linha) erroLinha() ESCREVA ("Jogador ", nomeJogador[contador],", em qual COLUNA fará sua jogada? ") LEIA (coluna) erroColuna() erroTabelaPreenchida() tabela[linha,coluna] := simboloJogador[contador] tabuleiroAtualizado() vencedor() SE (jogadas = 5) E (contador = 1) ENTAO ESCREVAL () ESCREVAL ("DEU VELHA! HA HA HA HA!") interrompa FIMSE FIMPARA ATE (jogadas = 5) FIMPROCEDIMENTO PROCEDIMENTO erroLinha() //identifica erro se a linha for diferente de 1, 2 ou 3. VAR INICIO SE ((linha <> 1) E (linha <> 2) E (linha <> 3)) ENTAO ESCREVAL () ESCREVAL ("ERRO: linha inválida.") ESCREVA ("Jogador ", nomeJogador[contador],", em qual LINHA fará sua jogada? ") LEIA (linha) FIMSE FIMPROCEDIMENTO PROCEDIMENTO erroColuna() //identifica erro se a coluna for diferente de 1, 2 ou 3. VAR INICIO SE ((coluna <> 1) E (coluna <> 2) E (coluna <> 3)) ENTAO ESCREVAL () ESCREVAL ("ERRO: coluna inválida.") ESCREVA ("Jogador ", nomeJogador[contador],", em qual COLUNA fará sua jogada? ") LEIA (coluna) FIMSE FIMPROCEDIMENTO PROCEDIMENTO erroTabelaPreenchida() //identifica erro se o campo da tabela já estiver preenchido. VAR INICIO SE ((tabela[linha,coluna] = "X") OU (tabela[linha,coluna] = "O")) ENTAO ESCREVAL () ESCREVAL ("ERRO: essa linha e coluna já estão preenchidas.") ESCREVA ("Jogador ", nomeJogador[contador],", em qual LINHA fará sua jogada? ") LEIA (linha) ESCREVA ("Jogador ", nomeJogador[contador],", em qual COLUNA fará sua jogada? ") LEIA (coluna) FIMSE FIMPROCEDIMENTO PROCEDIMENTO vencedor() //classificando um vencedor VAR msgVencedor : CARACTERE INICIO msgVencedor := ("TEMOS UM(A) VENCEDOR(A): o(a) Jogador(a) " + (nomeJogador[contador]) +"!") //vencedor em linhas SE (tabela[1,1] = simboloJogador[contador]) E (tabela[1,2] = simboloJogador[contador]) E (tabela[1,3] = simboloJogador[contador]) ENTAO ESCREVAL () ESCREVAL (msgVencedor) fimalgoritmo FIMSE SE (tabela[2,1] = simboloJogador[contador]) E (tabela[2,2] = simboloJogador[contador]) E (tabela[2,3] = simboloJogador[contador]) ENTAO ESCREVAL () ESCREVAL (msgVencedor) fimalgoritmo FIMSE SE (tabela[3,1] = simboloJogador[contador]) E (tabela[3,2] = simboloJogador[contador]) E (tabela[3,3] = simboloJogador[contador]) ENTAO ESCREVAL () ESCREVAL (msgVencedor) fimalgoritmo FIMSE //vencedor em colunas SE (tabela[1,1] = simboloJogador[contador]) E (tabela[2,1] = simboloJogador[contador]) E (tabela[3,1] = simboloJogador[contador]) ENTAO ESCREVAL () ESCREVAL (msgVencedor) fimalgoritmo FIMSE SE (tabela[1,2] = simboloJogador[contador]) E (tabela[2,2] = simboloJogador[contador]) E (tabela[3,2] = simboloJogador[contador]) ENTAO ESCREVAL () ESCREVAL (msgVencedor) fimalgoritmo FIMSE SE (tabela[1,3] = simboloJogador[contador]) E (tabela[2,3] = simboloJogador[contador]) E (tabela[3,3] = simboloJogador[contador]) ENTAO ESCREVAL () ESCREVAL (msgVencedor) fimalgoritmo FIMSE //vencedor em diagonal SE (tabela[1,1] = simboloJogador[contador]) E (tabela[2,2] = simboloJogador[contador]) E (tabela[3,3] = simboloJogador[contador]) ENTAO ESCREVAL () ESCREVAL (msgVencedor) fimalgoritmo FIMSE SE (tabela[1,3] = simboloJogador[contador]) E (tabela[2,2] = simboloJogador[contador]) E (tabela[3,1] = simboloJogador[contador]) ENTAO ESCREVAL () ESCREVAL (msgVencedor) fimalgoritmo FIMSE FIMPROCEDIMENTO Inicio //aqui é o algoritmo principal chamando apenas os procedimentos. ESCREVAL ("JOGO DA VELHA - TOP1000") jogadores() simbolos() ESCREVAL (nomeJogador[1]," x ", nomeJogador[2]," - QUE COMECEM OS JOGOS!") tabuleiroEmBranco() rodadas() Fimalgoritmo //aqui termina o algoritmo Agradeço a todos vocês que puderem me orientar se estou programando corretamente ou se é melhor programar tudo junto dentro do algoritmo principal sem esses procedimentos. Att, Ariel Souto

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

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!