Actividad 1 Estructura de datos
Enviado por dafnebella • 28 de Junio de 2021 • Práctica o problema • 2.895 Palabras (12 Páginas) • 98 Visitas
[pic 1]
Actividad de Aprendizaje 01:
Tipos de Dato primitivos y Tipos de Dato Estructurados
Alumno
Crespo Romo Dafne Jaqueline
Profesor
Alfredo Gutiérrez Hernández
Estructura de datos I
Sección D12
Considero que en esta primera actividad aprendí muchísimo, pues yo nunca había utilizado los “Integer Limits” para los rangos de cada uno de los tipos de dato, lo mismo para las matrices y funciones, puesto que en semestres pasados no alcanzamos a ver estos temas.
Para los números aleatorios negativos fue un poco complicado, pero al final encontré que si ponemos como límite 2001 entre 100 para tener 2 decimales, -100 para tener también negativos funciona perfecto.
Sin embargo, lo más difícil fue hacerlo en POO, tuve que basarme de muchísimas fuentes en internet para poder lograr lo que llevo de este trabajo, viendo vídeos para aprender un poco más sobre cada uno de los términos que se utilizan en POO.
Como conclusión solo me queda añadir que hay muchas cosas que necesito volver a repasar y muchas más aún que no conozco y necesito aprender y practicar.
Para empezar, hice todo el programa normal en un solo .cpp que es de la manera en que yo se hacerlo.
Primero hice que en el main mandé al header Menu.h para visualizar el menú en pantalla.
Comencé creando mi menú con las 3 opciones “a, b y c” utilizando un “do – while” para que el menú funcionara hasta que el usuario tecleara la letra “c”. Utilizando switch hice cada apartado del menú con las opciones “a, b y c” y con su respectivo break para cada una.
Para el case “a” manda al header “Tabla.h” donde tuve que utilizar la función “sizeof” y los “Integer Limits” para los rangos. Sizeof nos da los bytes, por lo cual tuve que multiplicar los bytes por 8 para que nos diera los bits y los resultados fueron guardados en variables que utilicé en la tabla, puse todo alineado ayudándome del “setw” y utilicé los Integer Limits para poder sacar los valores mínimos y máximos.
Terminando la opción “a” nos regresa al menú en donde sigue case “b”, el cual nos manda al header “Matriz.h” en donde primero nos valida que el usuario teclee un número del 3 al 10 o sino nos dirá que el número no es válido, después si el número si es válido se le pide al usuario dar una dimensión para las matrices, mínimo 3 y máximo 10. Utilizamos la función “srand” para obtener números aleatorios, para lograr que nos diera negativos intenté con algunas funciones y formas que encontré en internet, pero al final lo que me funcionó fue poner como límite 2001 entre 100 para tener 2 decimales, -100 para tener también negativos y funciona perfecto. Entonces se generan dos matrices aleatorias, una vez creadas se hace multiplicación de esas dos matrices, así como la suma y se imprimen dos matrices más, una con el producto de las matrices y la otra con la suma de las matrices y se imprimen en pantalla. Terminando esto, nos regresa al menú de opciones y si se presiona la tecla “c”, termina el programa y nos arroja un mensaje diciendo “bye”.
Código fuente
Main.cpp
#include <iostream>
#include "Menu.h"
using namespace std;
int main() {
Menu menu;
setlocale(LC_CTYPE,"Spanish");
menu.imprimirMenu();
return 0;
}
Menu.h
#ifndef MENU_H_INCLUDED
#define MENU_H_INCLUDED
#include <climits>
#include <iomanip>
#include <float.h>
#include <cstdlib>
#include "Tabla.h"
#include "Matriz.h"
using namespace std;
class Menu {
private:
Tabla tabla;
Matriz matriz;
public:
void imprimirMenu() {
char opcionMenu;
do {
cout<<"a. Tamaño y rangos de los Tipos de Dato Primitivos"<<endl;
cout<<"b. Ejemplo de uso de Tipo de dato Estructurado"<<endl;
cout<<"c. Salir"<<endl;
cout<<"Que opción de menu deseas realizar? " <<endl;
cin>>opcionMenu;
if (opcionMenu=='a' || opcionMenu=='b' || opcionMenu=='c' ) {
switch (opcionMenu) {
case 'a':
tabla.imprimirTabla();
break;
case 'b':
matriz.imprimirMatrices();
break;
case 'c':
cout<<"Bye"<<endl;
break;
default:
cout<<"Opción no válida"<<endl;
}
} else {
cout <<"Opción no valida" <<endl;
}
if (opcionMenu!='c') {
cout<<endl<<"Presione entrar para continuar...";
cin.get();
cin.get();
system("cls");
}
} while(opcionMenu!='c');
...