//================================================================================================================================
// Name        : P3ricardomd1.cpp
// Author      : Ricardo Meza Díaz
// Version     :
// Copyright   : Your copyright notice
// Description : 2
Diciembre.2015.Programa de trabajo con dos vectores.Uso del
while,prototipos,modulos,variables aleatorias...
//================================================================================================================================
#include <iostream>
using namespace std;
#define N 10
//Definicion tipo de dato
vector vectordatos
typedef int  vectordatos[N];
//Prototipo modulos
void introducirnumerosaleatorio(vectordatos v1 );
void mostrartodoslosnumerosdelvector(const vectordatos v1);
int mostrarcuantosvaloresdistintosdecero(vectordatos v1);
int mostrarcuantasvecesserepiteunnumero(vectordatos v1,int
numerorepetido);
bool mostrarsidosarrayssoniguales(const vectordatos v1,const vectordatos w1);
int menu();
int main() {
     cout<<"Buenas,"<<endl;
     srand(time(NULL));
     vectordatos v,w;
     int
ohpcion,seleccion,nhumerorepetido,chontador;
     //Switch para
escoger opciones en el menu
     //Llamada al
modulo menu
     ohpcion=menu();
     while(ohpcion>=1
&&ohpcion<=5){
     switch(ohpcion){
     case 1: cout<<"Cual de
los vectores quiere seleccionar.Introduzca 1 o 2?"<<endl;
     cin>>seleccion;
     if(seleccion==1){
         introducirnumerosaleatorio(v);
     }
     else{
         introducirnumerosaleatorio(w);
     }
     break;
     case 2:cout<<"Cual de
los vectores quiere seleccionar.Introduzca 1 o 2?"<<endl;
     cin>>seleccion;
     if(seleccion==1){
         mostrartodoslosnumerosdelvector(v);
     }
     else{
         mostrartodoslosnumerosdelvector(w);
     }
     break;
     case 3:cout<<"Cual de
los vectores quiere seleccionar.Introduzca 1 o 2?"<<endl;
     cin>>seleccion;
     if(seleccion==1){
         chontador=mostrarcuantosvaloresdistintosdecero(v);
         cout<<"Hay"<<" "<<chontador<<" "<<"numeros
distintos de cero "<<endl;
     }
     else{
         chontador=mostrarcuantosvaloresdistintosdecero(w);
         cout<<"Hay"<<" "<<chontador<<" "<<" numeros
distintos de cero"<<endl;
     }
     break;
     case 4:cout<<"Cual de
los vectores quiere seleccionar.Introduzca 1 o 2?"<<endl;
     cin>>seleccion;
     if(seleccion==1){
         cout<<"Introduce
un numero entero positivo"<<endl;
         cin>>nhumerorepetido;
          chontador=mostrarcuantasvecesserepiteunnumero(v,nhumerorepetido);
         cout<<"El
numero"<<" "<<nhumerorepetido<<"se
repite"<<" "<<chontador<<" "<<"veces"<<endl;
     }
     else{
         cout<<"Introduce
un numero entero positivo"<<endl;
         cin>>nhumerorepetido;
          chontador=mostrarcuantasvecesserepiteunnumero(w,nhumerorepetido);
         cout<<"El
numero"<<" "<<nhumerorepetido<<"se
repite"<<" "<<chontador<<" "<<"veces"<<endl;
     }
     break;
     case 5:
     if(mostrarsidosarrayssoniguales(v,w)==true){
         cout<<"Los dos
array son iguales"<<endl;
     }
     else{
         cout<<"Los dos
arrays son diferentes"<<endl;
     }
     break;
     }
     ohpcion=menu();
     }
     cout<<"Usted ha
salido del programa"<<endl;
     system("PAUSE");
     return 0;
}
//Modulo 1
void introducirnumerosaleatorio(vectordatos v1){
     for(int
i=0;i<N;i++){
         v1[i]=rand()%31;
         cout<<"El
numero aleatorio:"<<i<<"es:"<<v1[i]<<endl;
     }
     cout<<"Los
numero aleatorios han sido introducidos correctamente"<<endl;
}
//Modulo 2
void mostrartodoslosnumerosdelvector(const vectordatos v1){
     for(int
i=0;i<N;i++){
              cout<<"El
numero"<<i<<"es:"<<v1[i]<<endl;
         }
}
//Modulo 3
int mostrarcuantasvecesserepiteunnumero(vectordatos v1,int
numerorepetido){
     int contador=0;
         for(int
i=0;i<N;i++){
              if(v1[i]==numerorepetido){
                   contador=contador+1;
              }
         }
         return contador;
     }
//Modulo 4
int mostrarcuantosvaloresdistintosdecero(vectordatos v1){
     int contador=0;
              for(int
i=0;i<N;i++){
                   if(v1[i]!=0){
                        contador=contador+1;
                   }
              }
              return contador;
         }
//Modulo 5
bool mostrarsidosarrayssoniguales(const vectordatos v1,const vectordatos w1){
     bool iguales;
     iguales=true;
     int i=0;
     while(iguales==true&&i<N){
         if(v1[i]!=w1[i]){
              iguales=false;
         }
         i++;
     }
     return iguales;
}
//Modulo 6
int menu(){
     int opcion;
     cout<<"Introduce
un opcion:"<<endl;
     cout<<"1.Introducir
en el array datos aleatorios entre 0 y 30"<<endl;
     cout<<"2.Mostrar
todos los elementos del array seleccionado"<<endl;
     cout<<"3.Mostrar
cuantos valores hay distintos de cero en el array seleccionado"<<endl;
     cout<<"4.Mostrar
cuantas veces se repite un valor en el array seleccionado"<<endl;
     cout<<"5.Mostrar
si los dos arrays son iguales"<<endl,
     cout<<"6.Salir"<<endl;
     cin>>opcion;
     while(opcion<=1&&opcion>=6){
                   cout<<"Error.Ha
introducido un numero diferente a los que le mostramos"<<endl;
                   cout<<"Introduzca
un numero del 1 al 6:"<<endl;
                   cin>>opcion;
              }
         return opcion;
     }
