Está en la página 1de 6

EJERCICIOS DE ALGORÍTMICA

PROBLEMA 1.- En un Arreglo de objetos se tiene la relación de los alumnos


matriculados en la asignatura de Algorítmica II, En otro Arreglo de objetos se
tiene la relación de los alumnos matriculados en la asignatura de Laboratorio II.
Escribir módulos para:

1.- Mostrar la relación de alumnos que estén matriculados en ambas asignaturas.

public static void mostarMatriculados1(cRelacionAlumnos algoritmicaII,


cRelacionAlumnos programacionII)
{
int numero1 = algoritmicaII.NroObjetos + programacionII.NroObjetos;
if (algoritmicaII.NroObjetos > 0)
{
Console.WriteLine("matriculados en algoritmicaII ");

for (int i = 0; i < algoritmicaII.NroObjetos; i++)


Console.WriteLine((i + 1) + " "algoritmicaII[i]);
}
else { Console.WriteLine("La Lista No Tine Matriculados"); }

if (programacionII.NroObjetos > 0)
{
Console.WriteLine("matriculados en programacionII ");
for (int i = 0; i < programacionII.NroObjetos; i++)
Console.WriteLine((i + 1) + " "programacionII[i]);
}
else { Console.WriteLine("La Lista No Tine Matriculados"); }
}

2.- Generar un arreglo con la relación de los alumnos que estén matriculados en
Algorítmica II y no estén en Laboratorio II.
public static void alumnos_matriculados(cRelacionAlumnos algoritmicaII,
cRelacionAlumnos LaboratorioII)
{
int cantidad = algoritmicaII.NroObjetos + LaboratorioII.NroObjetos;
string[] matriculados = new string[cantidad];

int numero1 = algoritmicaII.NroObjetos + programacionII.NroObjetos;


if (cantidad > 0)
{

for (int i = 0; i < cantidad; i++) {

if (algoritmicaII.NroObjetos != i)
{
matriculados[i] = algoritmicaII[i];
Console.WriteLine("Alumnos Matriculados" + matriculados[i]);
}
else
{
matriculados[i] = LaboratorioII[i];
Console.WriteLine("Alumnos No matriculados "+LaboratorioII[i]);
}

} else { Console.WriteLine("No hay matriculados "); }


}
PROBLEMA 2.- Se tiene implementado la clase CDeportista con los siguientes
atributos: aIdDeportista, aNombres, aFechaNacimiento, aGenero, aDisciplina. También
se tiene dos Arreglo de objetos, en el primero se tiene almacenados objetos de la
clase CDeportista correspondientes a la selección de Ingeniería Informática y de
Sistemas; en el segundo, a los correspondientes a la selección de la UNSAAC.
Escribir módulos a nivel de usuario para determinar:
1.- En cuál de las selecciones hay más deportistas del sexo femenino.
public static void MasDeportistas(cArregloObjetos Informatica,cArregloObjetos
UNSAAC,string Genero)
{
int NroDeportistasInformatica = 0;
for (int K = 0; K < Informatica.NroObjetos; K++)
{
cDeportista LAux = Informatica.GetObjeto(K) as cDeportista;
NroDeportistasInformatica += LAux.Genero == Genero ? 1 : 0;
}
int NroDeportistasUNSAAC = 0;
for (int K = 0; K < UNSAAC.NroObjetos; K++)
{
cDeportista LAux = UNSAAC.GetObjeto(K) as cDeportista;
NroDeportistasUNSAAC += LAux.Genero == Genero ? 1 : 0;
}
Console.WriteLine(NroDeportistasUNSAAC >
NroDeportistasInformatica ? "UNSAAC" : "Informatica");
}

El monto total requerido para que los integrantes sólo de la disciplina de Fútbol
de ambas selecciones viajen a la ciudad de Lima para competir en las olimpiadas
universitarias, considerando que para cada integrante se requiere S/. X. (que
incluye: Pasajes, alojamiento y viáticos).

//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Total de deportistas
public static int NroDeportistas(cArregloObjetos AO,string Diciplina)
{
int Nro = 0;
for(int k = 0; k < AO.NroObjetos; k++)
{
if ((AO.GetObjeto(k) as cDeportista).Diciplina.Equals(Diciplina)){
Nro ++;
}
}
return Nro;
}
//Monto total requerido para todos los deportistas de una diciplina de 2 Escuelas
public static float MontoTotal(cArregloObjetos Informatica, cArregloObjetos UNSAAC,
string Diciplina, int CostoUno)
{
return (NroDeportistas(Informatica, Diciplina) + NroDeportistas(UNSAAC,
Diciplina))*CostoUno;
}
PROBLEMA 3.- Se tiene implementado la clase CInvestigador con los siguientes
atributos: aIdInvestigador, aNombres, aGenero, aLineaInvestigacion, aCondicion.
También se tiene en dos Arreglo de objetos a los equipos de estudiantes
investigadores de las Escuelas profesionales de Ciencias de la Computación e
Ingeniería de Software. Escribir módulos para:
1.- Determinar en cuál de los equipos hay más investigadores del sexo femenino.
public static void MasInvestigadores(cArregloObjetos Ciencias, cArregloObjetos
Software, string Genero)
{
int NroInvestigadoresCiencia = 0;
for (int K = 0; K < Ciencias.NroObjetos; K++)
{
cInvestigador LAux = Ciencias.GetObjeto(K) as cInvestigador;
NroInvestigadoresCiencia += LAux.Genero == Genero ? 1 : 0;
}
int NroInvestigadoresSoftware = 0;
for (int K = 0; K < Software.NroObjetos; K++)
{
cInvestigador LAux = Software.GetObjeto(K) as cInvestigador;
NroInvestigadoresSoftware += LAux.Genero == Genero ? 1 : 0;
}
Console.WriteLine(NroInvestigadoresCiencia >
NroInvestigadoresSoftware ? "Ciencias del Computacion" : "Ingenieria de Software");
}
2.- Generar un Arreglo de objetos con los investigadores de condición igual a
“Responsable” de ambas Escuelas profesionales.

public static cArregloObjetos GenerarArregloInvestihgadorCondicion(cArregloObjetos


Ciencias, cArregloObjetos Software, string Condicion)
{
cArregloObjetos AAux = new cArregloObjetos();

for (int K = 0; K < Software.NroObjetos; K++)


{
cInvestigador LAux = Software.GetObjeto(K) as cInvestigador;
if (LAux.Condicion.Equals(Condicion))
AAux.Agregar(LAux);
}
for (int K = 0; K < Ciencias.NroObjetos; K++)
{
cInvestigador LAux = Ciencias.GetObjeto(K) as cInvestigador;
if (LAux.Condicion.Equals(Condicion))
AAux.Agregar(LAux);
}
return AAux;
}
PROBLEMA 4.- Se tiene implementado la clase CDeportista con los siguientes
atributos: aIdDeportista, aNombres, aFechaNacimiento, aGenero. También se tiene
tres arreglos, en el primero se tiene almacenados objetos de la clase CDeportista
correspondientes a la disciplina de Fútbol, en el segundo a los correspondientes a
la disciplina de Voley-ball y en el último a los de la disciplina de Basket-ball.
Escribir módulos a nivel de usuario para determinar:
1.- En cuántas disciplinas participa un deportista dado.
2.- En qué disciplina participan más mujeres.
3.- Cuántos deportistas que practican Fútbol también practican Basquetbol.

public static void MasMujeres(cArregloObjetos AFut,cArregloObjetos AVoley,


cArregloObjetos ABasq, string Genero)
{
n=0;
m=0;
p=0;

for (int K = 0; K < AFut.NroObjetos; K++)


{
if ((AFut.getObjeto(k) as Comp)).genero.equals(Genero)
n++;
}

for (int K = 0; K < AVoley.NroObjetos; K++)


{
if ((AVoley.getObjeto(k) as Soft)).genero.equals(Genero)
m++;
}
for (int K = 0; K < ABasq.NroObjetos; K++)
{
if ((ABasq.getObjeto(k) as Soft)).genero.equals(Genero)
p++;
}

//asumiendo que se tiene implementado el modulo mayor de tres números que


devolverá el mayor
Mayor3numeros(n,m,p);

PROBLEMA 5.- En la universidad se tienen diferentes centros de investigación, cada


uno de ellos tiene un Codigo, Nombre, Docente Responsable, Docentes integrantes,
Estudiantes integrantes y la relación de trabajos de investigación realizados. En
este contexto, en un Arreglo de objetos se tiene objetos de la clase
CCentroInvestigacion con los atributos: Codigo, Nombre, Responsable, Docentes,
Estudiantes, Trabajos.
El atributo Docentes es un Arreglo de objetos que contiene objetos de la clase
CDocente, el atributo Estudiantes también es un Arreglo de objetos que contiene
objetos de la clase CAlumno, finalmente, el atributo Trabajos también es un Arreglo
de objetos que contiene objetos de la clase CTrabajoInvestigacion. La clase
CTrabajoInvestigacion tiene los siguientes atributos: IdTrabajo, Titulo, Area,
Presupuesto.
Escribir módulos a nivel de usuario para:
1.- Determinar el centro de investigación que más trabajos ha realizado.
public int nrotrabajo(cArregloobj a)
{
m = a[o].trabajos.length;
for(int k=0; k<a.nroobjetos;k++)
{
if(m<a[k+1].trabajos.length)
m=a[k+1]trabajos.length;

}
return m;
}

Generar una lista con los trabajos de investigación cuyo presupuesto sea mayor a
S/. 10000
public void mayorpresupuesto(carreglos z)
{
carreglo Aux = new carreglo () ;
for(int k=0;k<z.nroObjetos; k++)
{
ccentroinvestigacion x = z.getobjeto(k). as ccentroinvestigacion;
if (x.trabajos.presupuesto >= 1000)
Aux.agregar(x);
}
}
Determinar la relación de centros de investigación que tengan más estudiantes que
docentes.
public cArreglosobjec agrear( cArreglos z)
{
carreglo Aux = new carreglo();
for(int k = 0; k < z.Nroobjetos; k++)
{
ccentroinvestigacion x = z.getobjeto(k). as ccentroinvestigacion;
if (x.estudiantes.lenth > k.docentes.length)
Aux.agregar(x);
}
}
Determinar la relación de centros de investigación que tengan algún trabajo de
investigación del área de “Tecnologías de la información”.
public static void agregararrelos(cArreloObj a ,string tic, cArreloObj reult)
{
for(int k=0; k<a.nroobjetos;k++)
{
for(int i=0;i<A.trabajo.length;i++)
{
Ccentrotrabajo x = a.getobjet(k) as ccentrotrabajo;

}
}
}

PROBLEMA 6.- En un Arreglo de objetos se tiene objetos de la clase CLibro. La clase


CLibro tiene los siguientes atributos: Codigo, Titulo, Autor, Editorial,
Especialidad y Anio. Escribir módulos para:

Determinar el número de libros que corresponden a un determinado año.


public static carreglosobj agreagar(carreglosobj a, int anio)
{
carreglo aux = new carreglo();
for(int k=0;k<nroobjetos;k++)
{
clibro x = a.getobjeto(k) as clibro;
if (a.anio.Equals(anio))
aux.agregar(x);
}
}
Determinar el número de libros escritos por un determinado autor.
public static carreglosobj aniadir(carreglosobj a, string autor)
{
carreglosobj aux = new carreglosobj();
for(int k=0;k<a.nroobjeto;k++)
{
clibro x=a.getobjeto(k) as clibro;
if (a.autor.Equals(autor))
aux.agregar(x);
}
}

Determinar el número de editoriales de las que se tienen libros.


public static obje agregar(carregloobj a, string editorial)
{
carreglosobj aux = new carreglosobj();
for (int i=0;i<a.nroobjetos;i++)
{
clibro x = a.getobjeto(k) as clibro;
if (x.editorial.Equals(editorial))
aux.agregar(x);
}
}

También podría gustarte