commit efa357f397f19b1d276fed74104f2b5c3222758d Author: Pablo Date: Sat Mar 14 15:11:19 2026 +0100 menu practica 1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..25a7384 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.o +*.exe diff --git a/Practica0/Makefile b/Practica0/Makefile new file mode 100644 index 0000000..29fb841 --- /dev/null +++ b/Practica0/Makefile @@ -0,0 +1,39 @@ +# --- Configuración general --- +CXX = g++ +CXXFLAGS = -Wall -Wextra -std=c++17 -Iinclude +SRC_DIR = src +OBJ_DIR = obj +BIN_DIR = bin +TARGET = $(BIN_DIR)/programa + +# --- Archivos fuente y objeto --- +SRCS = $(wildcard $(SRC_DIR)/*.cpp) +OBJS = $(SRCS:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o) + +# --- Regla principal --- +all: $(TARGET) + +# --- Cómo generar el ejecutable --- +$(TARGET): $(OBJS) + @mkdir -p $(BIN_DIR) + $(CXX) $(CXXFLAGS) $(OBJS) -o $(TARGET) + @echo "Compilación completa. Ejecutable en $(TARGET)" + +# --- Cómo compilar cada .cpp a .o --- +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp + @mkdir -p $(OBJ_DIR) + $(CXX) $(CXXFLAGS) -c $< -o $@ + +# --- Limpieza --- +clean: + rm -rf $(OBJ_DIR)/*.o + @echo "Archivos objeto eliminados." + +mrproper: clean + rm -rf $(BIN_DIR)/* + @echo "Ejecutables eliminados." + +# --- Ejecución rápida --- +run: all + ./$(TARGET) + diff --git a/Practica0/P0.cbp b/Practica0/P0.cbp new file mode 100644 index 0000000..e02c551 --- /dev/null +++ b/Practica0/P0.cbp @@ -0,0 +1,43 @@ + + + + + + diff --git a/Practica0/Practica0.cpp b/Practica0/Practica0.cpp new file mode 100644 index 0000000..a208ac5 --- /dev/null +++ b/Practica0/Practica0.cpp @@ -0,0 +1,502 @@ +#include //cin, cout +#include // getch +#include +#include +#include +#include + +#define MAXIMO 20 +#define M 5 +using namespace std; + + + + + + +class quebrado { + int numerador, denominador; +public: + quebrado() { numerador=0; denominador=1; } + quebrado(int n, int d=1); + int getnumerador() { return numerador; } + int getdenominador() {return denominador; } + void valor(int n, int d=1); + quebrado operator+(quebrado q); + quebrado operator-(quebrado q); + quebrado operator*(quebrado q); + quebrado operator/(quebrado q); + quebrado operator-(); + int operator==(quebrado q); + void mostrar(); +}; + +typedef quebrado tipoelemento ; + +int mcd(int a, int b) { + int comun,encontrado=0; + a=abs(a); + b=abs(b); + if (a>b) comun=b; + else comun=a; + while (comun>1 && !encontrado) + { + if (a%comun==0 && b%comun==0) + encontrado=1; + else comun--; +} + return(comun); +} +//calcula el mcm de a y b (en positivo) +int mcm(int a, int b) { + int comun,encontrado; + if (a<0) a=-a; + if (b<0) b=-b; + if (a>b) comun=a; + else comun=b; + encontrado=0; + while (!encontrado) { + if (comun%a==0 && comun%b==0) + encontrado=1; + else + comun++; + } + return(comun); +} + +quebrado::quebrado(int n, int d) { + if (d==0) cout << "\nError: Quebrado no valido"; + numerador=n; denominador=d; +} + +void quebrado::valor(int n, int d) { + if (d==0) cout << "\nError: Quebrado no valido"; + numerador=n; denominador=d; +} + +void quebrado::mostrar() { + if (denominador>0) cout << numerador << "/" << denominador; + else cout << -numerador << "/" << -denominador; +} + +quebrado quebrado::operator/(quebrado q) { + quebrado division; + division.numerador=numerador*q.denominador; + division.denominador=denominador*q.numerador; + return division; +} +quebrado quebrado::operator-() { + quebrado aux; + aux.numerador=-numerador; + aux.denominador=denominador; + return aux; +} + +int quebrado::operator==(quebrado q) { + int igual; + if (numerador*q.denominador==denominador*q.numerador) + igual=1; + else + igual=0; + return igual; +} + + +quebrado quebrado::operator+(quebrado q) { +quebrado suma; + int comun; + if (denominador==q.denominador) { + suma.numerador= numerador + q.numerador; + suma.denominador = denominador; + } + else { + comun=mcm(denominador,q.denominador); + suma.denominador = comun; + suma.numerador=numerador*comun/denominador + q.numerador*comun/q.denominador; + } + return suma; +} +quebrado quebrado::operator-(quebrado q) { + quebrado resta; + q.numerador=-q.numerador; + resta=(*this)+q; + return(resta); +} +quebrado quebrado::operator*(quebrado q) { + quebrado producto; + producto.numerador=numerador*q.numerador; + producto.denominador=denominador*q.denominador; + return producto; +} + + +class complejo { +double real, imag; +public: + complejo(void) { real = 0.0; imag = 0.0; } + complejo(double re, double im=0.0) { real = re; imag = im;} + complejo(const complejo& r) { real = r.real;imag = r.imag;} + void SetReal(double re) { real = re; } + void SetImag(double im) { imag = im; } + double GetReal(void) {return real; } + double GetImag(void) {return imag; } + complejo operator+(int e); + complejo operator+(complejo c); //por valor + complejo operator-(const complejo& c); //por ref + int operator== (complejo c); + complejo operator=(complejo c); + complejo operator*(complejo c); + complejo operator++(); // ++obj; + complejo operator++(int notused); //obj++ + complejo operator-(); + void mostrar(); +}; + + +complejo complejo::operator+ (int e) { + complejo suma; + suma.real = real + e; suma.imag = imag; + return suma; +} +// sobrecarga de + +complejo complejo::operator+ (complejo c) { + complejo suma; + suma.real = real + c.real; + suma.imag = imag + c.imag; + return suma; +} +// sobrecarga de - +complejo complejo::operator- (const complejo &c) { + complejo resta; + resta.real = real - c.real; + resta.imag = imag - c.imag; + return resta; +} +// sobrecarga de == +int complejo::operator== (complejo c) { + if (real==c.real && imag==c.imag) + return 1; + else + return 0; +} +// sobrecarga de = +complejo complejo::operator= (complejo c) { + real=c.real; imag=c.imag; + return c; +} +// sobrecarga de – unario +complejo complejo::operator-() { +complejo copia; +copia.real=-real; +copia.imag=-imag; +return copia; +} +// sobrecarga de ++ (++obj) +complejo complejo::operator++() { +complejo copia; +real++; +copia.real=real; +copia.imag=imag; +return copia; +} +// sobrecarga de ++ (obj++) +complejo complejo::operator++(int notused){ +complejo copia; +copia.real=real; +copia.imag=imag; +real++; +return copia; +} +//sobrecarga de * +complejo complejo::operator*(complejo c){ +//Falta implementar +complejo copia; + + +return copia; +} +// mostrar complejo +void complejo::mostrar(){ +if (imag>0) + cout<> fila; + cout << "Columnas: "; cin >> col; + } while (fila>M || fila<1 || col>M || col<1); + cout << "Carga de una matriz " << fila << " x " << col << ":\n"; + fin = fopen(cad, "rb"); + if (fin != NULL) { + for (int i=0; i> fila; + cout << "Columnas: "; cin >> col; + } while (fila>M || fila<1 || col>M || col<1); + cout << "Carga de una matriz " << fila << " x " << col << ":\n"; + for (int i=0; i>x>>y; + tipoelemento A(x,y); + celda[i][j]=A; + //A.mostrar(); + } + } +} + +matriz::matriz(int f, int c) { + fila=f; + col=c; + for (int i=0; i"; + fflush(stdin); gets(comando); + if (strcmp(comando,"cargar")==0) { + cout<<"Cuantas matrices quieres cargar? \n"; cin>>n; + if (n+N>=MAXIMO) + cout<<"Se excede el numero de matrices con las que operar\n"; + else + { + N=N+n; + for (i=0;i>pos;//Insertar matriz en la posicion pos + if (pos>=0 && pos<=N){ + N++; + for(i=N-1;i>=pos;i--) + m[i]=m[i-1]; + m[pos].cargar(); + } + else cout<<"La posicion no es valida\n";break; + case 0: cout<<"Posiciones?:";cin>>pos>>pos2;//Sumar matrices en estas posiciones + if (pos>=0 && pos=0 && pos2>pos;//Eliminar matriz en la posicion pos + if (pos>=0 && pos>pos>>pos2;//Restar matrices en estas posiciones + if (pos>=0 && pos=0 && pos2>pos>>pos2;//Multiplicar matrices en estas posiciones + if (pos>=0 && pos=0 && pos2>pos; + if (pos>=0 && pos +#include //cin, cout +#include // getch +#include +#include +#include +#include + +#define MAXIMO 20 +#define M 5 + +using namespace std; + + diff --git a/Practica1/dgt.o b/Practica1/dgt.o new file mode 100755 index 0000000..d4dc569 Binary files /dev/null and b/Practica1/dgt.o differ diff --git a/Practica1/main.cpp b/Practica1/main.cpp new file mode 100644 index 0000000..212a66f --- /dev/null +++ b/Practica1/main.cpp @@ -0,0 +1,26 @@ +#include +#include +#include +using namespace std; + +int main() +{ + char opcion; + while (opcion!=8) + { + cout<