Crear programas en C++ que resuelvan problemas ESP

Cerrado
fer1988 Mensajes enviados 1 Fecha de inscripción miércoles, 29 de agosto de 2018 Estatus Miembro Última intervención miércoles, 29 de agosto de 2018 - Modificado el 7 sep 2018 a las 12:39
misterdekus Mensajes enviados 473 Fecha de inscripción miércoles, 10 de enero de 2018 Estatus Miembro Última intervención miércoles, 27 de julio de 2022 - 10 sep 2018 a las 23:05
1.- Calcular el factorial de un número x.

2.- Determinar si el último digito de la cedula de identidad es el correcto.

3.- Crear un vector de 100 elementos y ordenarlo utilizando el método de burbuja.


ayuda por favor es algo muy importante para mi y mi carrera.

1 respuesta

misterdekus Mensajes enviados 473 Fecha de inscripción miércoles, 10 de enero de 2018 Estatus Miembro Última intervención miércoles, 27 de julio de 2022 127
7 sep 2018 a las 01:03
hola fer

no te daré TODO el código
pero te ayudaré en lo que pueda...

1.- Calcular el factorial de un número x.

int factorial(int x)
{
 int n=0;
 if(x > 1){
  n=factorial(x-1)*x
 }
 return n;
}


2.- Determinar si el último digito de la cedula de identidad es el correcto.
(la neta, esto no tengo idea de como hacerlo, pero te dejo unos links para que investigues)

https://www.youtube.com/watch?v=feqifCv5Ohk
https://www.youtube.com/watch?v=03RSL10g0U8
https://gist.github.com/vickoman/7800717
https://entredesarrolladores.com/7044/como-verificar-c%C3%A9dula-de-identidad-d%C3%ADgito-verificador

3.- Crear un vector de 100 elementos y ordenarlo utilizando el método de burbuja.

int main() {

   int num, aux;
   int comparaciones = 0;
   int intercambios = 0;
   int* arreglo;
   cout << "Cuantos numeros seran: ";
   cin >> num;
   arreglo = new int[num];
   cout << endl << "***CAPTURA DE NUMEROS***" << endl;

   for(int x = 0; x < num; x++) {
      cout << "Ingresa el numero " << x << " de la serie: ";
      cin >> arreglo[x];
      cout << endl;
   }
   cout << "***MUESTRA DE NUMEROS***" << endl;

   for(int y = 0; y < num; y++) {
      cout << "Numero " << y << ".- " << arreglo[y] << endl;
   }

   for(int z = 1; z < num; ++z) {
      for(int v = 0; v < (num - z); ++v) {
         comparaciones++;
         if(arreglo[v] > arreglo[v+1]){
            aux = arreglo[v];
            arreglo[v] = arreglo[v + 1];
            arreglo[v + 1] = aux;
            intercambios++;
         }
      }
    }

   cout << "***NUMEROS ARREGLADOS***" << endl;

   for(int w = 0; w < num; w++) {
      cout << "Numero " << w << ".- " << arreglo[w] << endl;
   }

   cout << "Numero de comparaciones: " << comparaciones << endl;
   cout << "Numero de intercambios: " << intercambios << endl;
  
   delete[] arreglo;
   return 0;
}


Espero que te sirva

Saludos
0
misterdekus Mensajes enviados 473 Fecha de inscripción miércoles, 10 de enero de 2018 Estatus Miembro Última intervención miércoles, 27 de julio de 2022 127
10 sep 2018 a las 22:38
corrección de la 1 ....

int factorial(int x)
{
 if(x > 1){
   return factorial(x-1)*x;
  }
}
0
misterdekus Mensajes enviados 473 Fecha de inscripción miércoles, 10 de enero de 2018 Estatus Miembro Última intervención miércoles, 27 de julio de 2022 127
10 sep 2018 a las 23:05
aunque si por ejemplo x = 20 , te dará un resultado ... no correcto ... por el tipo de variable

en vez del tipo int, lo cambies a tipo long

long factorial(int x)
{
 if(x > 1){
   return factorial(x-1)*x;
  }
}
0