Advertisement
plantbae

# capicua

Feb 16th, 2015
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.47 KB | None | 0 0
  1. //Ana María Dallos Valenzuela. 1201612
  2. /*
  3. 1) Elaborar un programa que permita leer dos números de tipo real en la función principal; que en una función los intercambie via parametros por referencia y
  4. los imprima en la función principal
  5. 2) Elaborar un programa que permita leer un número entero e indique si es capicúa; es capicúa si se lee igual de izquierda a derecha que en sentido contrario.
  6. */
  7. #include <iostream>
  8.  
  9. using namespace std;
  10. int numero;
  11. void cambio_de_numeros(double*, double*, double*);
  12. double primer_num, segundo_num, auxiliar;
  13. int invertir_numero(int *, int *, int *);
  14.  
  15.  
  16. int main()
  17. {
  18.     int opc_menu;
  19.     do
  20.     {
  21.     cout <<"***Menú***\n Escoja una de las siguientes opciones:"<<endl;
  22.     cout << "1. Intercambio de números vía parámetros por referencia\n2. Evaluar el número ingresado para determinar si es capicúa o no.\n0.Finalizar ejecución"<<endl;
  23.     cin>> opc_menu;
  24.         switch (opc_menu)
  25.         {
  26.                case 1:
  27.                     cout << "Programa que lee dos números y los imprime en el orden contrario de ingreso."<<endl;
  28.                     cout <<"Digite el primer número: "<<endl;
  29.                     cin >> primer_num;
  30.                     cout <<"Por favor ingrese el segundo numero:"<<endl;
  31.                     cin >> segundo_num;
  32.                     //invocación a variable
  33.                     cambio_de_numeros(&primer_num, &segundo_num, &auxiliar);
  34.                     break;
  35.                    
  36.                 case 2:
  37.                      int numero_ingresado, intercambiador=0, valor_inicial_guardar;
  38.                      cout<<"Programa que evalúa el número ingresado para determinar si es capicúa o no.\nUn número capicúa es aquel que se lee igual al derecho y al revés."<<endl;
  39.                      cout<<"Por favor digite el número que quiere comprobar"<<endl;
  40.                      cin >> numero_ingresado;
  41.                      //Variable de respaldo que contiene el numero que fue ingresado por el usuario, no se modifica durante la ejecución
  42.                      valor_inicial_guardar= numero_ingresado;
  43.                      //invocación función que invierte el número y a la vez hace la comparación con el inicial para arrojar resultado
  44.                      invertir_numero(&numero_ingresado, &intercambiador, &valor_inicial_guardar);
  45.                      //int determinar_condicion(&valor_inicial_guardar, &numero);
  46.                      break;
  47.         }
  48.     }
  49.     while(opc_menu!=0);
  50.    
  51.     system ("pause");
  52.     return 0;
  53.          
  54. }
  55.  
  56.  
  57. //Opción 1
  58. void cambio_de_numeros(double *ptrprimer_num, double *ptrsegundo_num, double *ptrauxiliar)
  59. {
  60.      *ptrauxiliar=*ptrprimer_num;
  61.      *ptrprimer_num=*ptrsegundo_num;
  62.      *ptrsegundo_num=*ptrauxiliar;
  63.      cout <<"Primer numero: "<<primer_num<<"\n";
  64.      cout <<"Segundo numero: "<<segundo_num<<"\n";
  65.      system("pause");
  66.      
  67. }
  68.  
  69.  
  70. //Opción 2
  71. int invertir_numero(int *ptrinicial, int *ptrfinal, int *guardado)
  72. {
  73.     int ingresado= *ptrinicial;
  74.     while(*ptrinicial>0)
  75.     {
  76.      //algoritmo que llena a *ptrfinal con el número al revés
  77.      *ptrfinal=*ptrfinal*10 + *ptrinicial%10;
  78.      *ptrinicial = *ptrinicial/10;
  79.     }
  80.     cout<<"Al revés se lee " << *ptrfinal <<endl;
  81.    
  82.     int suma= (*ptrfinal+*guardado)/2;
  83.  
  84.     if(suma == *ptrfinal)
  85.     {
  86.     cout << "El número "<< *guardado <<" es capicúa."<<endl;
  87.     }
  88.     else
  89.     {
  90.     cout<<"El número "<< *guardado <<" no capicúa."<<endl;
  91.     }
  92.     system ("pause");
  93.     return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement