You are on page 1of 4

ALGORITMOS Y ESTRUCTURAS DE DATOS

LABORATORIO N 01
MTODOS PARA ELEMENTOS DE UN VECTOR LINEAL
OPERACIONES A IMPLEMENTAR
a) Creacin y carga de datos del vector dinmico.
b) Clculo del nmero de elementos con 2 o 3 dgitos Menores a 3; de un vector
dinmico.
c) Clculo de la suma de elementos cuya suma de dgitos es IMPAR de un vector
dinmico.
PROGRAMA CON MTODOS
// OperarVectores-1D.cpp: define el punto de entrada de la aplicacin de consola.
//
#include "stdafx.h"
#include "iostream" // Librera para operaciones de entrada/salida por teclado
#include "conio.h"
// Librera para sensibilizar el teclado
using namespace std;
class OperaVectores
{
public:
int *vec;
// definicin de la variable puntero para el vector
int t;
// objeto para definir el tamao del vector
public:
int tamanho();
// Mtodo para establecefr el tamao del vector
int menu();
// Mtodo para mostrar el men de opciones
void CargarDatos(int[], int);
// Mtodo para Ingresar los datos al
vector
bool VerDigitoMenor3(int); // Mtodo para ver si hay 2 o 3 dgitos
menores a 3 en un elemento
int CuentaElementosDigitoMenor3(int[], int); // Contar el n
elementos con 2 o 3 dgitos <3 del vector
void MuestraElementos(int[], int); // Mtodo para imprimir el vector
int SumaDigitos(int); // Mtodo para calcular la suma de digitos de
un numero
bool VerImpar(int); // Mtodo para verificar si un nmero tiene
dgitos ISO
int SumarElementosconSumaImpar(int[], int);// Mtodo para la suma de
elementos Primos
};
int OperaVectores::tamanho()
{
int n;
cout<<"Ingresa el tamanho del vector .."; cin>>n;
if(n>0)
return(n);
else
return(tamanho());
}

MG. LUIS BOY CHAVIL

Pgina 1

ALGORITMOS Y ESTRUCTURAS DE DATOS


bool OperaVectores::VerDigitoMenor3(int n)
{
int CuentaDigMenor3=0;
while(n>0)
{
if(n%10<3)
CuentaDigMenor3++;
n/=10;
}
if (CuentaDigMenor3==2||CuentaDigMenor3==3)
return(true);
else
return(false);
}
void OperaVectores::CargarDatos(int v[], int z)
{
for(int k=0; k<z; k++)
{
cout<<"Ingresar dato .."<<k<<" : "; cin>>v[k];
}
}
void OperaVectores::MuestraElementos(int v[], int z)
{
cout<<"Elementos del vector"<<endl;
for(int k=0; k<z; k++)
{
cout<<v[k]<<" - ";
}
}
int OperaVectores::CuentaElementosDigitoMenor3(int z[], int tope)
{
int cuenta=0;
for(int k=0; k<tope; k++)
cuenta+=((VerDigitoMenor3(z[k]))?1:0);
return(cuenta);
}
int OperaVectores::SumaDigitos(int n)
{
int SumaDigitos=0;
while(n>0)
{
SumaDigitos+=n%10;
n/=10;
}
return(SumaDigitos);
}
bool OperaVectores::VerImpar(int n)
{
if(n%2!=0)
return(true);
else

MG. LUIS BOY CHAVIL

Pgina 2

ALGORITMOS Y ESTRUCTURAS DE DATOS


return(false);
}
int OperaVectores::SumarElementosconSumaImpar(int z[], int tope)
{
int suma=0;
for(int k=0; k<tope; k++)
suma+=((VerImpar(SumaDigitos(z[k])))? z[k]: 0);
return(suma);
}
int OperaVectores::menu()
{
int opcion;
int ingreso=0;
while (ingreso==0)
{
system("cls");
cout<<"1. Ingresa datos al vector"<<endl;
cout<<"2. Numero de elementos con 2 o 3 digitos menores a 3 en el
vector"<<endl;
cout<<"3. Sumar elementos cuya Suma de digitos es IMPAR, en el
vector"<<endl;
cout<<"0. Ingresa una opcion"<<endl;
cin>>opcion;
if(opcion<0||opcion>3)
ingreso=0;
else
ingreso=1;
}
return(opcion);
}
int _tmain(int argc, _TCHAR* argv[])
{
OperaVectores OP;
bool salir=false;
OP.t=OP.tamanho();
while(!salir)
{
int opcion=OP.menu();
switch(opcion)
{
case 1:
{
OP.vec=new int[OP.t];
OP.CargarDatos(OP.vec, OP.t);
break;
}
case 2:
{
OP.MuestraElementos(OP.vec, OP.t);
cout<<"Cuenta de elementos con 2 o 3 digitos Menores a 3:
"<<OP.CuentaElementosDigitoMenor3(OP.vec, OP.t)<<endl;
char zz=getch();
break;
}
case 3:
{
OP.MuestraElementos(OP.vec, OP.t);
cout<<"Suma de elementos cuya suma de digitos es IMPAR:
"<<OP.SumarElementosconSumaImpar(OP.vec, OP.t)<<endl;
char zz=getch();
break;
}

MG. LUIS BOY CHAVIL

Pgina 3

ALGORITMOS Y ESTRUCTURAS DE DATOS


default:
{
}

salir=true;
break;

}
return 0;
}

MG. LUIS BOY CHAVIL

Pgina 4

You might also like