zetotec Posted November 2, 2007 at 08:38 PM Report #144759 Posted November 2, 2007 at 08:38 PM OLá a todos, Estou no inicio da aprendizagem do C#. 😄 Preciso de determinar, dentro de um conjunto de digitos inseridos pelo utilizador, quais são letras e quais são numeros, de forma a fazer calculos com os numeros e mostrar no ecrã as letras introduzidas, mas já separadas dos numeros. Desde já agradeço a vossa ajuda. Cmps,
Betovsky Posted November 2, 2007 at 10:50 PM Report #144787 Posted November 2, 2007 at 10:50 PM Podes usar para isso os métodos associados ao Char. http://msdn2.microsoft.com/en-us/library/system.char_members.aspx No teu caso deve-te interessar os métodos isDigit e isLetter. "Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !" Sign on a computer system consultant's desk
zetotec Posted November 3, 2007 at 10:40 AM Author Report #144837 Posted November 3, 2007 at 10:40 AM Obrigado pela dica, vou testar.
zetotec Posted November 5, 2007 at 10:32 PM Author Report #145499 Posted November 5, 2007 at 10:32 PM Olá.. Ainda não consegui... A ideia é fazer um pequeno programa em modo consoloa,onde o utilizador introduza varios digitos e quando carregar no enter, mostrar no ecrã quantos numeros introduziu,quantas letras introduziu, e a soma dos numeros introduzidos. Para isso penso que tenho que percorrer a string e verificar caracter a caracter qual o tipo. Se for numerico,conta e soma senão conta as letras. O meu problema é saber como percorrer a string para verificar os caracteres. 😛 Desde já agradeço a vossa ajuda...
Betovsky Posted November 5, 2007 at 11:22 PM Report #145514 Posted November 5, 2007 at 11:22 PM Mas mete-se todos os números e letras ao mesmo tempo? Como estás a separar os números para somar? Consideras um número cada digito? Ou estás a separar os números por espaços? Se for por espaços podes separar em grupos usando o método Split. Para percorres a String letra a letra podes usar o foreach "Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !" Sign on a computer system consultant's desk
zetotec Posted November 6, 2007 at 09:40 AM Author Report #145568 Posted November 6, 2007 at 09:40 AM mete-se tudo junto ex: 1476743567hjhkjdfhjsdh38423872wfsd (conjunto=Console.Readline()🙂 //leio o exemplo acima escrito O conjunto vai ser a minha variavel do tipo string que vai receber o exemplo. Agora e pegar no exemplo( variavel conjunto) e tratá-lo de forma a mostrar no ecrã quantos numeros introduziu,quantas letras introduziu, e a soma dos numeros introduzidos. Qualquer dica é bem vinda
RVG Posted November 6, 2007 at 10:05 AM Report #145575 Posted November 6, 2007 at 10:05 AM boax... string pr=string.Empty; string string_letras=string.Empty; string string_numeros=string.Empty; int somatorio=0; pr=conjunto; foreach(char s in pr) { if(Char.IsDigit(s)) { string_numeros+=s; somatorio+=Convert.ToInt32(Convert.ToString(s)); } if(Char.IsLetter(s)) { string_letras+=s; } } MessageBox.Show("N. de Letras: "+Convert.ToString(string_letras.Length)); MessageBox.Show("N. de Digitos: "+Convert.ToString(string_numeros.Length)); MessageBox.Show("Somatorio: "+Convert.ToString(somatorio));
zetotec Posted November 6, 2007 at 11:51 AM Author Report #145593 Posted November 6, 2007 at 11:51 AM Olá. Obrigado pelo codigo, fiz ligeiramente diferente, mas o resultado é o pretendido. Fica aqui o que fiz: Console.Write("Introduza conjunto de digitos: "); s = Console.ReadLine(); foreach (char c in s) { if (((int)c > 46) && ((int)c < 58)) { cont1 = cont1 + 1; num=Convert.ToInt32(Convert.ToString(c)); soma = soma + num; } else { cont2 = cont2 + 1; } } Console.WriteLine("total numeros: {0}", cont1); Console.WriteLine("total letras: {0}", cont2); Console.WriteLine("soma: {0}", soma); mais uma vez, muito obrigado cmps,
RVG Posted November 6, 2007 at 12:10 PM Report #145595 Posted November 6, 2007 at 12:10 PM Boax... Preciso de determinar, dentro de um conjunto de digitos inseridos pelo utilizador, quais são letras e quais são numeros Posso tar enganado... mas $ ou % ou [ para mim nao sao letras.... Outra coisa... se introduzires a cadeia 12h4/qw , o que esperas obter ?
zetotec Posted November 6, 2007 at 01:12 PM Author Report #145612 Posted November 6, 2007 at 01:12 PM como de certexa repararaste eu estou a comparar através da tabela ASCII " if (((int)c > 46) && ((int)c < 58))", seguindo esta lógica vou validar para também distinguir maiusculas de minusculas, e outros caraecters que não numeros ou letras. O que coloquei foi apenas uma parte do codigo. A tua observação faz todo o sentido e realmente da foma como fizeste também funciona. Obrigado
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now