Sei sulla pagina 1di 12

ALGORITMOS Y ESTRUCTURAS DE DATOS

ASPECTOS TERICOS PARA IMPLEMENTAR FUNCIONES VS MTODOS


FUNCIONES
Las funciones estn constituidas por varias sentencias, las cuales se utilizan con el
propsito de contribuir al desarrollo de una aplicacin especfica.
Si las funciones se agrupan en libreras (bibliotecas) se tiene como ventaja que otros
programas podran utilizarlas para diferentes aplicaciones.
Sintaxis de una funcin:
<Tipo> Nombre_Funcin (Lista de parmetros formales)
{
<<Cuerpo de la funcin>>
Return expresin;
}
Donde:
<Tipo>
Nombre_Funcin

Es el tipo de valor que devolver la funcin


Identificador o nombre de la funcin

Lista de parm formales Lista de declaracin de los parmetros de la funcin separados


por coma.
Expresin

Es el valor que devuelve la funcin.

Ejemplo:

MG. LUIS BOY CHAVIL

Pgina 1

ALGORITMOS Y ESTRUCTURAS DE DATOS

IMPLEMENTACIN DE MEN DE OPCIONES EN VISUAL C++ BAJO D.O.S.


Crear un programa en Visual C++ para desarrollar las siguientes operaciones:
a) Crear un vector de enteros, dinmico cuyo tamao se defina a tiempo de
ejecucin
b) Ingresar los datos enteros mayores a 0.
c) Implementar un men, con las siguientes opciones:
- Ingreso de datos al vector
- Suma de elementos del vector
- Menor elemento del vector
- Ingresar la opcin
PASOS PARA ESCRIBIR EL PROGRAMA:
Al ingresar a Visual Studio, veremos la siguiente ventana:

Haga click en Crear Proyecto, y veremos la siguiente pantalla:

MG. LUIS BOY CHAVIL

Pgina 2

ALGORITMOS Y ESTRUCTURAS DE DATOS

Ahora, escriba el nombre del proyecto (por ejemplo, escriba: OperarVectores); luego elija
Aceptar.
Por ltimo, en la siguiente pantalla, elija Finalizar; entonces se mostrar un esquema
general para el proyecto; as:

MG. LUIS BOY CHAVIL

Pgina 3

ALGORITMOS Y ESTRUCTURAS DE DATOS

SOLUCIN CON FUNCIONES:


// Operarvectores.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
int tamanho();
// Funcin para establecefr el tamao del vector
int menu(int);
// Muestra el men de opciones
void CargarDatos(int[], int);
// Procedimiento para Ingresar los datos al vector
void MuestraElementos(int[], int); // Procedimiento para imprimir el vector
int SumarElementos(int[], int); // Funcin para el clculo de la suma de elementos
int MenorElemento(int[], int);
// Funcin para obtener el menor elemento del vector
int *vec;
// definicin de la variable puntero para el vector
using namespace std;
// Funcin para ingresar un nmero entero positivo dado como tamao del vector

int tamanho()
{
int n;
cout<<"Ingresa el tamanho del vector .."; cin>>n;
if(n>0)
return(n);
else
return(tamanho());
}
// Procedimiento para ingresar datos enteros en un vector

void CargarDatos(int v[], int z)


{
for(int k=0; k<z; k++)
{
cout<<"Ingresar dato .."<<k<<"
}
}

"; cin>>v[k];

// Procedimiento para mostrar los elementos de un vector

void MuestraElementos(int v[], int z)


{
for(int k=0; k<z; k++)
{
cout<<v[k]<<" - ";
}
}

// Funcin para recorrer los elementos del vector y calcular la suma de sus elementos

int SumarElementos(int z[], int tope)


{
int s=0;
for(int k=0; k<tope; k++)
s=s+z[k];
return(s);
}

MG. LUIS BOY CHAVIL

Pgina 4

ALGORITMOS Y ESTRUCTURAS DE DATOS


// Funcin para calcular el valor del menor elemento de un vector

int MenorElemento(int z[], int tope)


{
int Menor=32767;
for(int k=0; k<tope; k++)
Menor=((Menor<z[k])? Menor: z[k]);
return(Menor);
}
// Funcin para operativizar un Men de Opciones

int menu()
{
int op;
int ingreso=0;
while (ingreso==0)
{
system("cls");
cout<<"1. Ingresa datos al vector"<<endl;
cout<<"2. Suma de elementos del vector"<<endl;
cout<<"3. Menor elemento del vector"<<endl;
cout<<"0. Ingresa una opcion"<<endl;
cin>>op;
if(op<0||op>3)
ingreso=0;
else
ingreso=1;
}
return(op);
}
// Procedimiento Principal del Programa

int _tmain(int argc, _TCHAR* argv[])


{
bool salir=false;
int t=tamanho();
while(!salir)
// Mientras no salir; es decir: salir==false
{
int opcion=menu();
switch(opcion)
{
case 1:
{
vec=new int[t]; // Crea una instancia nueva de t enteros para vec
CargarDatos(vec, t);
break;
// Saltar el resto de instrucciones y pasa a while
}
case 2:
{
MuestraElementos(vec, t);
cout<<"Suma de elementos .."<<SumarElementos(vec, t)<<endl;
char zz=getch();
// Ver la pantalla hasta pulsar una tecla
break;
}
case 3:
{
MuestraElementos(vec, t);
cout<<"El menor elemento es:"<<MenorElemento(vec, t)<<endl;

MG. LUIS BOY CHAVIL

Pgina 5

ALGORITMOS Y ESTRUCTURAS DE DATOS

}
default:
{

char zz=getch();
break;

salir=true;
break;
}

}
return 0;
}

CLASES Y MTODOS
Una clase es un tipo de dato que contiene operaciones (funciones y procedimientos) y
datos.
Un objeto, es una coleccin de elementos de datos junto con las operaciones asociadas
para operar sobre esos datos.
Las clases constan de Mtodos (operaciones) y Atributos (datos) que resumen
caractersticas comunes de un conjunto de objetos.
Sintaxis:
class nombre_clase
{
public:
// miembros pblicos
protected:
// miembros protegidos
private:
// miembros privados
};

SOLUCIN CON MTODOS:

// Operarvectores.cpp: define el punto de entrada de la aplicacin de consola.


//

MG. LUIS BOY CHAVIL

Pgina 6

ALGORITMOS Y ESTRUCTURAS DE DATOS

#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;
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
void MuestraElementos(int[], int); // Mtodo para imprimir el vector
int SumarElementos(int[], int);// Mtodo para el clculo de la suma de elementos
int MenorElemento(int[], int); // Mtodo para el menor elemento del vector
};
int OperaVectores::tamanho()
{
int n;
cout<<"Ingresa el tamanho del vector .."; cin>>n;
if(n>0)
return(n);
else
return(tamanho());
}
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)
{
for(int k=0; k<z; k++)
{
cout<<v[k]<<" - ";
}
}
int OperaVectores::SumarElementos(int z[], int tope)
{
int suma=0;
for(int k=0; k<tope; k++)
suma+=z[k];
return(suma);
}
int OperaVectores::MenorElemento(int z[], int tope)
{
int Menor=32767;
for(int k=0; k<tope; k++)

MG. LUIS BOY CHAVIL

Pgina 7

ALGORITMOS Y ESTRUCTURAS DE DATOS

Menor=((Menor<z[k])? Menor: z[k]);


return(Menor);

int OperaVectores::menu()
{
int opcion;
int ingreso=0;
while (ingreso==0)
{
system("cls");
cout<<"1. Ingresa datos al vector"<<endl;
cout<<"2. Suma de elementos del vector"<<endl;
cout<<"3. Menor elemento del 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<<"Suma de elementos:"<<OP.SumarElementos(OP.vec, OP.t)<<endl;

}
case 3:
{

char zz=getch();
break;

OP.MuestraElementos(OP.vec, OP.t);
cout<<"El menor elemento es:"<<OP.MenorElemento(OP.vec, OP.t)<<endl;

char zz=getch();
break;
}
default:
{
}

salir=true;
break;

}
return 0;
}

MG. LUIS BOY CHAVIL

Pgina 8

ALGORITMOS Y ESTRUCTURAS DE DATOS

OTRO PROGRAMA CON MTODOS


Implemente un programa para desarrollar las siguientes operaciones:
Suma de elementos Primos del vector
Se desea calcular la suma de aquellos elementos del vector entero, que se han
identificado como nmeros primos.
Cuenta elementos de digitos iguales
Se desea contar el nmero de elementos del vector entero cuyo nmero est formado
por el mismo dgito.
SOLUCIN
// programaEjercicio1.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 Primo(int);
// Mtodo para verificar si un nmero es Primo
void MuestraElementos(int[], int); // Mtodo para imprimir el vector
int SumarElementosPrimos(int[], int);// Mtodo para la suma de elementos Primos
bool ElementoISO(int); // Mtodo para verificar si un nmero tiene dgitos ISO
int NroElementosISO(int[], int); // Contar el n elementos ISO del vector
};
int OperaVectores::tamanho()
{
int n;
cout<<"Ingresa el tamanho del vector .."; cin>>n;
if(n>0)
return(n);
else
return(tamanho());
}
bool OperaVectores::Primo(int n)
{
int k=2;
bool Salir=false;
while(!Salir && k<n/2)

MG. LUIS BOY CHAVIL

Pgina 9

ALGORITMOS Y ESTRUCTURAS DE DATOS


{
if(n%k==0)
Salir=true;
else
k++;

}
if (Salir==false)
return(true);
else
return(false);

MG. LUIS BOY CHAVIL

Pgina 10

ALGORITMOS Y ESTRUCTURAS DE DATOS


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::SumarElementosPrimos(int z[], int tope)
{
int suma=0;
for(int k=0; k<tope; k++)
suma+=((Primo(z[k]))?z[k]:0);
return(suma);
}
bool OperaVectores::ElementoISO(int n)
{
int d=n%10;
bool Salir=false;
while(n>0&&!Salir)
{
if(n%10==d)
n/=10;
else
Salir=true;
}
if(Salir=true)
return(false);
else
return(true);
}
int OperaVectores::NroElementosISO(int z[], int tope)
{
int cuenta=0;
for(int k=0; k<tope; k++)
cuenta+=((ElementoISO(z[k]))? 1: 0);
return(cuenta);
}
int OperaVectores::menu()
{
int opcion;
int ingreso=0;
while (ingreso==0)
{
system("cls");
cout<<"1. Ingresa datos al vector"<<endl;
cout<<"2. Suma de elementos Primos del vector"<<endl;

MG. LUIS BOY CHAVIL

Pgina 11

ALGORITMOS Y ESTRUCTURAS DE DATOS


cout<<"3. Cuenta elementos de digitos iguales"<<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<<"Suma de elementos
Primos:"<<OP.SumarElementosPrimos(OP.vec, OP.t)<<endl;
char zz=getch();
break;
}
case 3:
{
OP.MuestraElementos(OP.vec, OP.t);
cout<<"El nmero de elementos con dgitos ISO,
es:"<<OP.NroElementosISO(OP.vec, OP.t)<<endl;
char zz=getch();
break;
}
default:
{
salir=true;
break;
}
}
}
return 0;
}

MG. LUIS BOY CHAVIL

Pgina 12

Potrebbero piacerti anche