antiblock
Rodnia | Alpha & Omega
  • Chatbox

    You don't have permission to chat.
    Load More
Sign in to follow this  
-Synk2K-

Iniciado em c# (A estudar)

10 posts in this topic

Já percebi o que estava mal, vou continuar a postar aqui dúvidas que possam surgir.

 

Desde já obrigado a quem ajudar.

Edited by -Synk2K- (see edit history)

Share this post


Link to post
Share on other sites
antiblock
Rodnia | Alpha & Omega

Parece que me esqueci de por um if antes da mensagem de numero invalido que estupidez, enfim... 

Edited by -Synk2K- (see edit history)

Share this post


Link to post
Share on other sites

Por favor, quem puder ajude-me: 

Exercicio :

Cria um projecto em C# e Console Application que permita ao utilizador introduzir um código devendo este ter apenas 5 tentativas para introduzir o código „109587‟. Se este introduzir o código dentro do número de tentativas permitido deverá aparecer a mensagem “Software Registado” antes da aplicação encerrar, caso contrário aparecerá a mensagem “Numero de tentativas excedido”.

 

Codigo que eu fiz:

 

http://imgur.com/a/WFPMR

 

Ja fiz de tudo nao encontro o porque de ao introduzir o valor correto ele entrar no ciclo While

Ja mudei também para while( cod != codutil .... ); mas continua o mesmo problema.

Share this post


Link to post
Share on other sites

Em programação (pelo menos as línguas em que trabalho) não podes verificar a igualdade de strings com um == ou um !=, para isso tens uma função própria chamada .Equals(String).

 

Ou seja, dentro desse while deverias ter !codeutil.Equals(cod) e não !(codeutil == cod).

Share this post


Link to post
Share on other sites

Boas.

Com o ciclo for torna-se mais fácil.

Aqui tens, testei e funcionou tudo corretamente ^^

 

Pastebin: http://pastebin.com/0NWU3w9x

 

Código:


int codigoUser;
            int codigo=109587;

            Console.WriteLine("Introduza o código:");
            codigoUser = Convert.ToInt32(Console.ReadLine());
            for (int i = 0; i < 5; i++)
            {
                if (codigoUser != codigo)
                {
                    Console.WriteLine("Tenta de Novo:");
                    codigoUser = Convert.ToInt32(Console.ReadLine());
                }
            }
            if (codigoUser == codigo)
            {
                Console.WriteLine("Acertaste:");
                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("Tentativas Excedidas");
                Console.ReadLine();
            }
            Console.ReadKey();

Share this post


Link to post
Share on other sites

Obrigado aos 2.

 

Corvo, por enquanto o meu professor nao me falou em nada disso, por isso duvido que pelo menos em c# isto não funcione. Mais logo vou exprimentar no entanto para confirmar.

Edited by -Synk2K- (see edit history)

Share this post


Link to post
Share on other sites

Retiro o que disse do .Equals(), estás a utilizar Integers portanto deveria funcionar.

O problema deve estar mesmo no código, tenta com:

 

int cod = 109587;
int codutil;
int tentativas = 0;

Console.WriteLine('Introduza o código:');
codutil = Console.Read();

while (tentativas < 5) {
	if (cod == codutil) { 
		Console.WriteLine("Software Registado");
		break; 
	} else {
		tentativas += 1;
		
		Console.WriteLine("Código errado, introduza novamente:");
		codutil = Console.Read();
	}
}

Console.WriteLine("Número de tentativas excedido");

 

Share this post


Link to post
Share on other sites

Supostamente o utilizador tem 5 tentativas para acertar o código ou pode usar o código 5x e depois disso já não pode mais? se for o 1º caso, o código do Corvo deve funcionar bem, não vejo nada de mal, se for o 2º caso avisa que eu vejo se faço isso

Share this post


Link to post
Share on other sites

No código do andre tens de meter <4 e não <5, pois a variável é iniciada a 0, de resto funciona perfeitamente.

 

 

Share this post


Link to post
Share on other sites

O código do senhor Corvo está perfeito, dá para entender tudo.

Só uma coisa, foi dito em cima que não é possível comparar string com outra string utilizando == ou != ou /=, só queria dizer que em Haskell é possível. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this