domingo, 20 de noviembre de 2016

Ejercicios multiplos

//============================================================================
// Name        : Practicamodulos.cpp
// Author      :
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
using namespace std;

//cabeceras

bool multiplo_2 (int n);
bool multiplo_3 (int n);
bool multiplo_5 (int n);
int comprueba (bool mult2,bool mult3, bool mult5);
void mensaje (int num);
int eleccion();
char verifica_resp();
int cump_positivo(int num);
void intercambio (int & n1,int & n2);

//programa principal
int main() {
    int ale,max,min,veces,opcionuser,oc,acierto,total;
    bool m2,m3,m5;
    char res;
    acierto=0;
    total=0;
    srand (time (NULL));
    res=verifica_resp();
    while (res=='s' || res=='S'){


        cout<<"Introduzca el minimo :"<<endl;
        cin>>min;
        cout<<"Introduzca el maximo :"<<endl;
        cin>>max;
        cout<<"Introduzca la cantidad de numeros que desee :"<<endl;
        cin>>veces;

        for(int i=0;i<veces;i++){

            ale= rand()%((max-min)+ 1) + min;
            cout<<"El numero a adivinar es "<<ale<<endl;
            opcionuser=eleccion();
            m2=multiplo_2(ale);
            m3=multiplo_3(ale);
            m5=multiplo_5(ale);
            oc=comprueba(m2,m3,m5);

            if(opcionuser==oc){
                cout<<"Bien hecho!"<<endl;
                acierto++;
            }
            else{
                cout<<"Has fallado"<<endl;
            }
            total++;
        }

        if (total==acierto){
            cout<<"Muy bien hecho! Has respondido bien a todas!"<<endl;
        }
        if (acierto==0){
            cout<<"No has respondido ninguna bien, tienes que estudiar mucho mas"<<endl;
        }
        if (acierto>0 && acierto<(total/2)){
            cout<<"Deberias de esforzarte mas..."<<endl;
        }

        if (acierto<total && acierto>(total/2)){
            cout<<"Bien hecho!"<<endl; }

        if(acierto==(total/2)){
            cout<<"Aprovado por los pelos..."<<endl;
        }

        res=verifica_resp();

    }




    return 0;
}

//modulos
bool multiplo_2 (int n){
    bool mult2=false;
    if (n%2==0){
        mult2=true;
    }
    return mult2;
}

bool multiplo_3 (int n){
    bool mult3=false;
    if (n%3==0){
        mult3=true;
    }
    return mult3;
}


bool multiplo_5 (int n){
    bool mult5=false;
    if (n%5==0){
        mult5=true;
    }
    return mult5;
}

int comprueba (bool mult2,bool mult3, bool mult5){
    int n;
    if (mult2==true && mult3==false && mult5==false){
        n=1;
    }

    if (mult3==true && mult2==false && mult5==false){
        n=2;
    }

    if (mult5==true && mult3==false && mult2==false){
        n=3;
    }

    if (mult2==true && mult3==true && mult5==false){
        n=4;
    }

    if (mult2==true && mult3==false && mult5==true){
        n=5;
    }

    if (mult2==false && mult3==true && mult5==true    ){
        n=6;
    }

    if (mult2==true && mult3==true && mult5==true){
        n=7;
    }

    if (mult2==false && mult3==false && mult5==false){
            n=8;
        }

    return n;
}

void mensaje(int num){
    if (num==1){
        cout<<"Es multiplo de 2"<<endl;
    }
    if (num==2){
        cout<<"Es multiplo de 3"<<endl;
    }
    if (num==3){
        cout<<"Es multiplo de 5"<<endl;
    }
    if (num==4){
        cout<<"Es multiplo de 2 y de 3"<<endl;
    }
    if (num==5){
        cout<<"Es multiplo de 2 y de 5"<<endl;
    }
    if (num==6){
        cout<<"Es multiplo de 3 y de 5"<<endl;
    }
    if (num==7){
        cout<<"Es multiplo de 2 , 3 y de 5"<<endl;
    }
    if (num==8){
        cout<<"No es multiplo de 2, 3 o 5"<<endl;
    }

}

int eleccion(){
    int elec;
    cout<<"Elige una opcion: "<<endl;
    cout<<"1. Dos "<<endl;
    cout<<"2. Tres "<<endl;
    cout<<"3. Cinco "<<endl;
    cout<<"4. Dos y tres "<<endl;
    cout<<"5. Dos y cinco "<<endl;
    cout<<"6. Tres y cinco "<<endl;
    cout<<"7. Dos, tres y cinco "<<endl;
    cout<<"8. No es multiplo de dos, tres o cinco "<<endl;
    cin>>elec;
    while(elec <1 && elec>8){
        cout<<"Introduzca de nuevo, opción erronea"<<endl;
        cin>>elec;
    }
    return elec;
}

char verifica_resp(){
    char resp;
    cout<<"Desea ejecutar el programa?(S/s N/n) "<<endl;
    cin>>resp;
    return resp;
}

int cump_positivo(int num){
    if (num>0){
        return num;
    }
    else{
        while(num<0){
            cout<<"Numero negativo, introduzca de nuevo "<<endl;
            cin>>num;
        }
    }
    return num;
}

void intercambio (int & n1,int & n2){
    int aux;
    aux=n1;
    n1=n2;
    n2=aux;

}

No hay comentarios:

Publicar un comentario