Gonzales Cruz POO

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 4

Universidad Nacional de Ingeniería

FIM Facultad de Ingeniería Mecánica


Curso: MB545 Programación Orientada a Objetos
Profesor: Ing. Roberto Tello Yuen
Segunda Práctica Calificada – 18/12/2020
Código Apellidos Nombre
20180148 Gonzales cruz Geyson agustin
f

Al finalizar, deberá subir al Aula Virtual FIM-UNI (individualmente) un documento en WORD con el
código fuente del Programa *.cpp (tipo de letra “Consolas” o “Courier New”) y los “pantallazos” con al
menos tres corridas donde se muestre los resultados incluyendo la validación de datos.

Consideraciones:

 El código del programa deberá tener un rótulo con los datos del programa, descripción y datos
(código, apellidos y nombres del autor), fecha.
 Debe incluir comentarios precisos en las funciones/procedimientos, bloques, procesos.
 Nombrar las variables y/o constantes, así como los nombres de las funciones/procedimientos de
forma adecuada que ayuden a su identificación y/o mantenimiento posterior.

El nombre del documento en Word deberá incluir sus apellidos y nombre. Duración del examen: 110
minutos. Tendrá 15 minutos adicionales para subir la solución al Aula Virtual FIM-UNI. Los exámenes
repetidos o muy similares se anularán y tendrán la calificación mínima.

Pregunta 1:

Usando exclusivamente funciones y procedimientos definidas por el usuario, se pide realizar un


programa en Visual C++ (ver 10 o superior) que permita generar aleatoriamente los datos
(números enteros de “N” dígitos) en un vector de máximo 100 elementos. Usar las funciones
rand() y srand(time(NULL)). La cantidad de elementos a procesar del vector se leerá por
teclado.
Empleando un menú de opciones, el usuario indicará si desea generar un segundo vector con
los elementos pares o impares del primero. Así mismo, otra opción del menú permitirá que se
imprima los elementos del primer y segundo vector. El programa terminará cuando el usuario
indique vía una instrucción que ya no desea continuar.
Menú de Opciones:
[1] Ingresar/Modificar la cantidad de elementos a procesar y el número de dígitos enteros de
cada uno de los elementos a generar.
[2] Generar aleatoriamente los elementos del vector.
[3] Ingresar (‘P’=Par/’I’=Impar) para generar un segundo vector con los elementos pares o
impares del primer vector. Usar variable tipo char.
[4] Imprimir la cantidad y los elementos del primer y segundo vector.
[5] Ingresar (‘S’ = Sí) para salir del programa.
/fin/

//========================================================================//
// Segunda practica calificada: PROGRAMACION ORIENTADA A OBJETOS //
//========================================================================//
// Autor: GONZALES CRUZ GEYSON AGUSTIN 20180148F
//
//========================================================================//

#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
int f_elementos(int N_elementos);
int f_cifras(int cifra);
void f_vector(int v[], int elementos, int cifra);
void f_vector_par(int v_inicio[], int v_par[], int elementos);
void f_vector_impar(int v_inicio[], int v_impar[], int elementos);
void f_imprimir_vector1(int v_inicio[], int elementos);
void f_imprimir_vector2(int v_inicio[], int elementos);
//Programa Principal
int main() {
int v[100];
int v_par[100];
int v_impar[100];
int elementos = 0,cifras=0;
char bandera = 'm';
do {
int opcion=0;

char bandera2 = 'P';

cout << "[1]Ingresar/Modificar la cantidad de elementos a procesar y el


numero de digitos enteros de cada uno de los elementos a generar."<<endl;
cout << "[2] Generar aleatoriamente los elementos del vector."<<endl;
cout << "[3]Ingresar (P=Par/I=Impar) para generar un segundo vector con los
elementos pares o impares del primer vector. " << endl;
cout << "[4] Imprimir la cantidad y los elementos del primer y segundo
vector." << endl;
cout << "[5] Ingresar (S = Si) para salir del programa." << endl;
cout << "ingrese la opcion" << endl;
cin >> opcion;

switch (opcion)
{

case 1:
elementos = f_elementos(elementos);
cifras = f_cifras(cifras);
break;
case 2:
f_vector(v, elementos, cifras);
break;
case 3:
cin >> bandera2;
if (bandera2 == 'P') {
f_vector_par(v, v_par, elementos);
}
else if (bandera2 == 'I') {
f_vector_impar(v, v_impar, elementos);

}
break;
case 4:
f_imprimir_vector1(v, elementos);

break;

case 5:
cin >> bandera;
if (bandera == 'S') {
break;
}
}

} while (1000);

return 0;
}

// funcion catidad de elementos a procesar

int f_elementos(int N_elementos)


{
int cantidad = 0;

do {

cout << "\ningrese la cantidad de elementos: ";


cin >> N_elementos;
} while (N_elementos < 0 || N_elementos>100);
return cantidad;

// funcion número de dígitos enteros de cada uno de los elementos a generar


int f_cifras(int N_cifras)
{
int cifra = 0;

do {

cout << "\ningrese la cantidad de cifras de los elementos: ";


cin >> cifra;
} while (cifra < 0 || cifra>100);
return cifra;

// funcion generador de valores aleatorios del vector


void f_vector(int v[], int elementos, int cifra) {
int aux1 = 0;
int aux2 = 0;
aux1 = pow(10, cifra - 1);
aux2 = pow(10, cifra);
srand(time(NULL));
for (int i= 0; i < elementos; i++) {
v[i] = aux1 + rand() % (aux2 - aux1 - 2);
}
}

//funcion generar segundo vector con elementos pares


void f_vector_par(int v_inicio[], int v_par[], int elementos) {
int j = 0;

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


if (v_inicio[i] % 2 == 0) {

v_par[j] = v_inicio[i];
j++;
}
}
}

//funcion generar segundo vector con elementos impares


void f_vector_impar(int v_inicio[], int v_impar[], int elementos) {
int j = 0;
for (int i = 0; i < elementos; i++) {
if (v_inicio[i] % 2 == 0) {

v_impar[j] = v_inicio[i];
j++;
}
}
}

// funcion imprimir la cantidad de elemntos del vector incial


void f_imprimir_vector1(int v_inicio[], int elementos) {
cout << "cantidad de elenmtos del vector inicial: " << elementos<<endl;
for (int i = 0; i < elementos; i++) {
cout << v_inicio[i] << " ";
}
}

//funcion imprimir la cantidad de elementos del segundo vector generado


void f_imprimir_vector2(int v_inicio[], int elementos) {
cout << "cantidad de elenmtos del vector inicial: " << elementos << endl;
for (int i = 0; i < elementos; i++) {
cout << v_inicio[i] << " ";
}
}

También podría gustarte