45. C++ || Funciones ejercicios




66. Hacer una Función en C++ en la que el usuario pueda ingresar un número y a continuación, tenga la oportunidad de buscar un dígito especifico de derecha a izquierda, por ejemplo, si el usuario ingresa el número 12843 y luego desea saber cuál es el dígito que se encuentra en la tercera posición de derecha a izquierda, bastará con introducir en el programa el número 3 y el resultado en este ejemplo será: 8.

#include <iostream>
using namespace std;

int buscarDigito(int numero, int digito);

int main(){
    int numero, digitoParaBuscar;
    cout<<"Ingrese un numero: "; cin>>numero;
    cout<<"Que digito quiere buscar? "; cin>>digitoParaBuscar;
    if(digitoParaBuscar > 0){
        cout<<"El valor del digito es: "<<buscarDigito(numero,digitoParaBuscar)<<endl;
    }else{
        cout<<"Digito erroneo"<<endl;
    }
    return 0;
}
int buscarDigito(int numero, int digito){
    int resto = numero;
    for(int i = 1; (resto > 0) && (i < digito); i++){ resto /= 10; }
    return resto % 10;
}

67. Hacer una función en C++ acepte como entrada desde teclado un número entero mayor que cero y dé como salida el resultado de sumar dos a dos los dígitos que aparecen en posiciones simétricas respecto al dígito central dentro del número dado como entrada. Por ejemplo:

Para el número : 2354869
La salida es: 2 + 9 = 11, 3 + 6 = 9, 5 + 8 = 13, 4

Para el número : 6582
La salida es : 6 + 2 = 8, 5 + 8 = 13

#include <iostream>
using namespace std;

void escribirSumaDeDigitos(int numero);
int buscarDigito(int numero, int digito);
int verificarCantidadDeDigitos(int numero);

int main(){
    int numero, digitoParaBuscar;
    cout<<"Ingrese un numero: "; cin>>numero;
    escribirSumaDeDigitos(numero);
    return 0;
}

void escribirSumaDeDigitos(int numero){
    int numeroDeDigitos = verificarCantidadDeDigitos(numero);
    for(int i = 0; i < numeroDeDigitos / 2; i++){
        int digitoInicial = buscarDigito(numero, i);
        int digitoFinal = buscarDigito(numero,(numeroDeDigitos - i - 1));
        cout<<digitoInicial<<" + "<<digitoFinal<<" = "<<(digitoInicial + digitoFinal)<<endl;
    }
    if(numeroDeDigitos % 2 != 0){   cout<<buscarDigito(numero,(numeroDeDigitos / 2));   }
    return;
}

int buscarDigito(int numero, int digito){
    int resto = numero;
    for(int i = 0; (resto > 0) && (i < digito); i++){ resto /= 10; }
    return resto % 10;
}

int verificarCantidadDeDigitos(int numero){
    int resto = numero;
    int i = 1;
    while(resto > 9){   resto /= 10; ++i;   }
    return i;
}

68. Hacer una función en C++ que calcule el mayor de dos números enteros, reales y caracteres haciendo uso de una plantilla de función.

#include <iostream>
using namespace std;

template <class T>
T mayorDeDosNumeros(T a, T b);

int main(){
    int num1, num2;
    cout<<"Ingresa dos enteros: "; cin>>num1>>num2;
    cout<<"El mayor es: "<<mayorDeDosNumeros(num1,num2)<<endl;
    float fnum1, fnum2;
    cout<<"Ingresa dos reales: "; cin>>fnum1>>fnum2;
    cout<<"El mayor es: "<<mayorDeDosNumeros(fnum1,fnum2)<<endl;
    char cnum1, cnum2;
    cout<<"Ingresa dos caracteres: "; cin>>cnum1>>cnum2;
    cout<<"El mayor es: "<<mayorDeDosNumeros(cnum1,cnum2)<<endl;
    return 0;
}

template <class T>
T mayorDeDosNumeros(T a, T b){
    if(a > b){  return a;  }
    return b;
}

69. Hacer una función en C++ que permita al usuario introducir un año y poder determinar si es bisiesto o no.

#include <iostream>
using namespace std;

inline bool verificarAnioBisiesto(int anio);

int main(){
   int anio;
   cout<<"Introduce a"<<(char)164<<"o: "; //164 ascii de ñ
   cin >> anio;
   if(verificarAnioBisiesto(anio))
      cout << "Bisiesto" << endl;
   else
      cout << "No es bisiesto" << endl;

}

inline bool verificarAnioBisiesto(int anio){
    if(anio % 4 == 0 && anio % 100 != 0 || anio % 400 == 0){ return true; }
    else{ return false; }
}

70. Hacer una función en C++ donde el usuario pueda introducir un número, de ser positivo, la función devolverá el valor de 1, si es negativo,
la función devolverá el valor de -1, de ser 0, entonces la función devolverá el mismo valor.

#include <iostream>
using namespace std;

inline int verificarNumero(int numero);

int main(){
   int num1;
   cout<<"Introduce un numero: ";
   cin>>num1;
   cout<<"El numero toma un valor de: "<<verificarNumero(num1)<<endl;

}

inline int verificarNumero(int numero){
         if(numero < 0){ return -1; }
    else if(numero > 0){ return 1; }
    return 0;
}

No hay comentarios