//============================================================================
// 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;
}