Está en la página 1de 2

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTAD DE INGENIERIA INDUSTRIAL


ALGORITMOS Y ESTRUCTURA DE DATOS
SEGUNDO LABORATORIO CALIFICADO 2019 – 1 (2 – 4 pm) Tiempo 1:50min
INDICACIONES:
 En la unidad D, E o F de su Computadora crear una carpeta cuyo Nombre debe tener el siguiente
formato: LAB_2_XXXX. Donde XXXX representa su código de alumno UNMSM. Es allí donde debe
desarrollar todo su trabajo.
 10 minutos antes de finalizar deberá eliminar los archivos ejecutables de su carpeta, luego
comprimirla ( *ZIP, *.RAR) y finalmente subir la carpeta comprimida al campus virtual.
RECOMENDACIONES
 Analizar el problema y luego aplicar el principio “Divide y vencerás” a fin implementar una solución
adecuada.
 Nombrar correctamente las variables, constantes, funciones y demás objetos del programa.
 Escriba comentarios a fin de que quede claro que es lo que propone hacer.

PREGUNTA 1: (6 Puntos)
El estudio de las series consiste en evaluar la suma de un número finito de n términos sucesivos.
Una serie alternada es una serie donde los términos cambian de signo de acuerdo a lo siguiente: 1-
1/2 +1/3-1/4+1/5-1/6+....... Se pide implementar el programa y la función recursiva llamada
SerieAlternada que permita evaluar la suma de los n primeros terminos. Como dato se brinda el
programa principal y una corrida del programa.

#include<iostream>
using namespace std;
//Defincion de la funcion recursiva

//Funcion principal
int main()
{ int n;
float Suma;
cout<<"\nIngrese numero de terminos a evaluar:";
cin>>n;
Suma = SerieAlternada(n);
cout<<"La suma es = "<<Suma<<endl;
}

PREGUNTA 2: (7 puntos) Resuelva esta pregunta utilizando punteros y/o punteros a


cadena. Escriba un programa que defina la función interseccion( ). Se presenta una corrida del
programa.

char * interseccion( char *p , char *q );


int main()
{
char a[100], b[100] ;
char *z;;
cout<<endl<<"Ingrese conjunto A: ";
gets(a);
cout<<endl<<"Ingrese conjunto B: ";
gets(b);
z = interseccion( a,b );
if ( z[0] == '\0')
cout << endl << "No hay interseccion" << endl << endl;
else
cout << endl << "La interseccion es: " << z << endl << endl;
return 0;
}
Los elementos de los conjuntos son letras minúsculas ordenadas ascendentemente.
PREGUNTA 3: (7 puntos)
Desarrolle el proyecto en CodeBlocks® que implemente compilación separada y pruebe
el correcto funcionamiento de la clase.

Se tiene la siguiente clase para representar intervalos cerrados (los límites inferior y
superior se consideran parte del intervalo):

class intervalo
{
private:
float A; // limite inferior
float B; // limite superior
public:
intervalo();
intervalo(float x , float y);
~intervalo( );
void leer();
void mostrar();
bool EsVacio(); // devuelve true si el intervalo es vacio
bool Pertenece( float k ); /* devuelve true si k pertenece al
intervalo */
friend intervalo Interseccion( intervalo M, intervalo N ); /*
devuelve el intervalo que resulta de intersectar M y N */
friend intervalo MasAmplio( intervalo M, intervalo N ); /* devuelve
el intervalo mas amplio de los dos */
};

Nota: Para representar un intervalo vacío se usará la siguiente convención: el atributo A


tomará el valor 1 y el atributo B tomará el valor -1 ( es decir que el límite inferior será mayor
que el superior, aunque parezca contradictorio ).

Mg. EDGAR RUIZ LIZAMA – 2019 – 1


05 junio de 2019

También podría gustarte