elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Solucionado] Problema en un Ejercicio de C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado] Problema en un Ejercicio de C++  (Leído 5,135 veces)
Mario Olivera

Desconectado Desconectado

Mensajes: 108


Ser loco es pensar diferente.


Ver Perfil
[Solucionado] Problema en un Ejercicio de C++
« en: 30 Julio 2014, 23:23 pm »

Hola gente, estoy haciendo un ejercicio en C++ y me encuentro con un problema, para que sea más entendible voy a dejar lo que dice dicho ejercicio..

Ejercicio:
Citar
(criptografía) Una compañía desea transmitir  datos a través del teléfono, pero le preocupa que sus teléfonos puedan estar intervenidos. Todos los datos se transmiten como enteros de cuatro dígitos. La compañía le ha pedido a usted que escriba un programa que cifre sus datos, de manera que éstos puedan transmitirse con más seguridad. Su programa debe leer un entero de acuatro dígitos introducido por el usuario y cifrarlo de la siguiente manera: reemplace cada dígito con (el resultado de sumar 7 al dígito) modulo 10. Luego intercambie el primer dígito con el tercero, e intercambie el segundo dígito con el cuarto. Después imprima un programa separado que reciba como entrada un entero de cuatro dígitos cifrado, y que lo descifre para formar el número original.

Ok, una vez ya sabido el ejercicio en el cifrador el código que hice fue el siguiente: (dejo lo más importante)

Código
  1. int digito1, digito2, digito3, digito4;
  2. int sobra;
  3.  
  4. digito1= numeroIngresado / 1000;
  5. sobra= numeroIngresado % 1000;
  6. digito2= sobra / 100;
  7. sobra= sobra % 100;
  8. digito3= sobra / 10;
  9. digito4= sobra %10;
  10.  
  11. digito1= ((digito1 + 7) % 10);
  12. digito2= ((digito2 + 7) % 10);
  13. digito3= ((digito3 + 7) % 10);
  14. digito4= ((digito4 +7 ) % 10);
  15.  
  16. cout <<"\nNumero Cifrado: " <<digito3 <<digito4 <<digito1 <<digito2;

Hasta aquí todo esta bién, por ejemplo ingresando el número 9456 me cifra el número y lo imprime: 2361

Bueno, ahora iría el código del programa que descifra y muestra el número original (nuevamente dejo lo más importante):

Código
  1. double digito1,digito2,digito3,digito4;
  2. int resto;
  3.  
  4. digito1= numeroCifrado / 1000;
  5. resto= numeroCifrado % 1000;
  6. digito2= resto / 100;
  7. resto= resto % 100;
  8. digito3= resto / 10;
  9. digito4= resto % 10;
  10.  
  11. digito1+=3;
  12. digito2+=3;
  13. digito3+=3;
  14. digito4+=3;
  15.  
  16. cout <<"Numero Descifrado: " <<digito3 <<digito4 <<digito1 <<digito2 <<endl;

Si ingreso el número cifrado (2361) me devuelve el número original...

Pero si en el cifrador hubiera puesto como número original 2361 el programa lo hubiera cifrado a: 3890

El descifrador me devuelve el número "original" como: 123611

Esto sucede a que al sumarle 3 en el descifrador se hace mayor a 9, yo lo hice así (osea sumandole 3) por la siguiente razón...

9 4 5 6

(9  + 7) % 10= 1.6
(4 + 7) % 10= 1.1
(5  + 7) % 10= 1.2
(6  + 7) % 10= 1.3

Entonces me di cuenta que para del resultado por ejemplo 1.6 había que sumarle 3 al resto osea 6 +3= 9 al igual que 1 +3 = 4, etc

Desde ya muchas gracias por cualquier ayuda :)


« Última modificación: 31 Julio 2014, 00:26 am por 718208 » En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Problema en un Ejercicio de C++
« Respuesta #1 en: 30 Julio 2014, 23:59 pm »

¿por que no aplicaste el modulo 10 al decriptar?


En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
Mario Olivera

Desconectado Desconectado

Mensajes: 108


Ser loco es pensar diferente.


Ver Perfil
Re: Problema en un Ejercicio de C++
« Respuesta #2 en: 31 Julio 2014, 00:15 am »

¿por que no aplicaste el modulo 10 al decriptar?

Por que me di cuenta de la suma de 3... pero al final eso es incorrecto, con respecto al módulo no sabría como operar haciendo módulo o multiplicando....

EDIT: Encontré la solución...

Trabajo con el número 2...

(2+7) % 10= 0.9

llegar al 2 de nuevo:

(0.9 * 10) - 7

Gracias por la ayuda Saludos!  :D
« Última modificación: 31 Julio 2014, 00:26 am por 718208 » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Problema en un Ejercicio de C++
« Respuesta #3 en: 31 Julio 2014, 13:18 pm »

(2+7)%10 NO es igual a 0.9
Es igual a 9.
No confundas división (/) con módulo o resto (%)
« Última modificación: 31 Julio 2014, 14:33 pm por Eternal Idol » En línea

Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Problema en un Ejercicio de C++
« Respuesta #4 en: 31 Julio 2014, 17:06 pm »

Por que me di cuenta de la suma de 3... pero al final eso es incorrecto, con respecto al módulo no sabría como operar haciendo módulo o multiplicando....

El método funcionaria de la siguiente manera:

2 3 6 1 ==> 9  4  5  6
 
6 + 3 = 9 % 10 = 9
1 + 3 = 4 % 10 = 4
2 + 3 = 5 % 10 = 5
3 + 3 = 6 % 10 = 6

Para ello debes trabajar solo con números enteros, no utilices el tipo double ademas dudo que la solución que encontraste te funcione

Saludos
« Última modificación: 31 Julio 2014, 17:10 pm por Blaster » En línea

Mario Olivera

Desconectado Desconectado

Mensajes: 108


Ser loco es pensar diferente.


Ver Perfil
Re: Problema en un Ejercicio de C++
« Respuesta #5 en: 31 Julio 2014, 18:41 pm »

(2+7)%10 NO es igual a 0.9
Es igual a 9.
No confundas división (/) con módulo o resto (%)

Me confundi por usar la calculadora  :laugh:

Cita de: Blaster
El método funcionaria de la siguiente manera:

2 3 6 1 ==> 9  4  5  6
 
6 + 3 = 9 % 10 = 9
1 + 3 = 4 % 10 = 4
2 + 3 = 5 % 10 = 5
3 + 3 = 6 % 10 = 6

Para ello debes trabajar solo con números enteros, no utilices el tipo double ademas dudo que la solución que encontraste te funcione

Gracias por la ayuda Blaster, Saludos!

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[ problema ] ejercicio 100
Ejercicios
_mÙëK§™_ 2 4,986 Último mensaje 1 Diciembre 2007, 01:31 am
por Iñaki Viggers
Problema con un ejercicio
Programación C/C++
gabyricardo92 6 3,340 Último mensaje 10 Julio 2013, 15:52 pm
por eferion
Problema con ejercicio de php
Desarrollo Web
T0p1t0 1 2,526 Último mensaje 19 Julio 2013, 15:39 pm
por T0p1t0
[C] Problema con ejercicio « 1 2 3 »
Programación C/C++
dmacias 25 9,828 Último mensaje 27 Febrero 2014, 15:42 pm
por dmacias
[Solucionado] Problema en un Ejercicio de C++ « 1 2 »
Programación C/C++
Mario Olivera 12 10,089 Último mensaje 19 Julio 2014, 05:14 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines