antiblock
https://arwen2.global/
  • Chatbox

    Did you check out our Discord? https://discord.gg/FFdvMjk9xA
    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
Elveron

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