 |
Hola muchachos no tengo mucho tiempo asi que aqui les dejo, solo en pseudocodigo:
Analisis.
Si N = 34573
a este numero entero yo lo puedo divir entre 10 y que me queda?
34573 / 10 = 3457.... ¡Aja!, entonces dividiendolo entre 10 puedo anular el ultimo digito...
Pero tampoco me sirve anularlo.. si no que necesito recuperarlo.. por lo tanto para recuperar el ultimo digito usare el operador %
la operacion me dara:
34573 % 10 = 3 (El ultimo digito), por lo tanto conociendo esta teoria puedo hacer lo siguiente:
Si N = 34573
digito = N % 10 = 3
si digito es par lo sumo sino no hago nada
Luego:
N = N / 10 = 3457
nuevamente repito la operacion anterior
Si en mi cuaderno divido una y otra vez el numero entre 10 al final el resultado me dara 0 o mejor dicho mi N se volvera 0
Ahora en Pseudocodigo:
- Inicio Leer S = 0 //S almacenara la suma de los digitos mientras (N>0) hacer d = N % 10 // Recupero el ultimo digito si (N % 2 == 0) entonces // el digito es par S = s + d //Sumamos el digito N = N / 10 // Anulamos el ultimo digito fin mientras Mostrar // Mostramos la suma de los digitos pares - Fin
Espero que lo puedan volver a diagrama de flujo.
Ahora en Builder
Colocamos un TEdit(Edit1), TButton(Button1) y un TLabel(Label1)
Ahora en el evento onClic del Boton colocamos:
{ int N, S, d; N = Edit1->Text.ToInt(); S = 0; while (N>0) { d = N % 10; if (N % 2 == 0) S = S + d; // Pero mejor seria: S += d; N = N / 10; // Pero mejor seria: N /= 10; } Label1-Caption="La Suma de los digitos pares es: "+IntToStr ; }
Bueno espero que les sirva, en este momento no tengo el Builder a mano, pero me imagino que corre, o mejor dicho estoy seguro de que corre , cualquier duda o si les sirvio espero que lo dejen en el foro el mensaje, hasta la proxima suerte en todo.. Ah, me olvidaba No se olviden de las clases del dia domingo y que las practicas ya estan publicadas en la pagina, cualquier duda no duden en escribir, si es que tengo un poquito de tiempo como hoy les ayudare con gusto que para eso estoy, hasta el domingo suerte en todo:
Raul
Imagen:
http://es.geocities.com/sejasraulm/img/banner.gif
|
| |
|