viernes, 3 de junio de 2016

Defensa Practica 3 Recuperación Junio 2016

//================================================================================================================================
// 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();
//Modulo adicional
void introducirnumerospares_vector(vectordatos v1);
void examen_practico_junio(const vectordatos v1,const vectordatos w1);


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<=6){

                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;
                case 6:
                               cout<<"Cual de los vectores quiere seleccionar.Introduzca 1 o 2?"<<endl;

                                                               examen_practico_junio(v,w);



                               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=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.Numeros impares de los vectores y suma de ellos:"<<endl;
                cout<<"7.Salir"<<endl;
                cin>>opcion;
                while(opcion<=1&&opcion>=7){
                                                               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;

                }


//Modulo adicional
void introducirnumerospares_vector(vectordatos v1){
                int numerospares;

                for(int i=0;i<N;i++){
                               v1[i]=rand()%31;
                               numerospares=v1[i]*2;

                }
}
void examen_practico_junio(const vectordatos v1,const vectordatos w1){
                int contador=0;
                int sumaimparesv1=0;
                int sumaimparesw1=0;

                                               for(int i=0;i<N;i++){
                                                               if(v1[i]%2!=0){
                                                                              cout<<"Vector 1:"<<endl;
                                                                              cout<<"La posicion:"<<i<<"con numero impar: "<<v1[i]<< endl;
                                                                              sumaimparesv1=sumaimparesv1+v1[i];

                                                               }

                               }
                                               cout<<"La suma de los impares de v1 es:"<<sumaimparesv1<<endl;

                                               for(int i=0;i<N;i++){
                                                               if(w1[i]%2!=0){
                                                                              cout<<"Vector 2:"<<endl;
                                                                              cout<<"La posicion:"<<i<<" con numero impar:"<<w1[i]<< endl;
                                                                              sumaimparesw1=sumaimparesw1+w1[i];

                                                               }

                                               }
                                               cout<<"La suma de los impares v2 es:"<<sumaimparesw1<<endl;


                }






No hay comentarios:

Publicar un comentario