Вы находитесь на странице: 1из 15

TRABAJO N1 MATRIZ /* Alummno: VICTORIO CRUZ YEFERSON Programa: operaciones con matrices,1er trabajo*/

using System; using System.Collections.Generic; using System.Text; namespace practica3 { class Leer { public static String leer_dato() { String dato = null; dato = Console.ReadLine(); return dato; } public static int leer_entero() { int n; n = int.Parse(leer_dato()); return n; } public static double leer_double() { double n; n = Double.Parse(leer_dato()); return n; } } class Matriz { double[,] m; int filas, columnas; int n; public Matriz() { Console.WriteLine("Cuantas Filas y Columnas tendra la Matriz"); filas = Leer.leer_entero(); columnas = Leer.leer_entero(); Console.WriteLine("Por que nmero desea multiplicar a la matriz"); n = Leer.leer_entero(); crear(); } public Matriz(int f, int c) { filas = f; columnas = c; crear();

} private void crear() { m = new double[filas, columnas]; } public void leer() { int i, j; for (i = 0; i < filas; i++) for (j = 0; j < columnas; j++) { Console.WriteLine("Posicion [" + i + "][" + j + "]"); m[i, j] = Leer.leer_double(); } } public void mostrar() { int i, j; for (i = 0; i < filas; i++) { for (j = 0; j < columnas; j++) { Console.Write(m[i, j] + " "); } Console.WriteLine(); } } public void multiplicarescalar() { int i, j; for (i = 0; i < filas; i++) { for (j = 0; j < columnas; j++) { Console.Write(n * m[i, j] + " "); } Console.WriteLine(); } } public Matriz suma(Matriz x) { Matriz suma = null; if (filas == x.filas && columnas == x.columnas) { suma = new Matriz(filas, columnas); int i, j; for (i = 0; i < filas; i++) for (j = 0; j < columnas; j++) suma.m[i, j] = m[i, j] + x.m[i, j]; } return suma;

} public Matriz producto(Matriz y) { Matriz producto = null; if (filas == y.filas && columnas == y.columnas) { producto = new Matriz(filas, columnas); int i, j, k; double sum; for (i = 0; i < filas; i++) { for (j = 0; j < columnas; j++) { sum = 0.00; for (k = 0; k < y.filas; k++) { sum = sum + m[i, k] * y.m[k, j]; } producto.m[i, j] = sum; } } } return producto; } public Matriz resta(Matriz z) { Matriz resta = null; if (filas == z.filas && columnas == z.columnas) { resta = new Matriz(filas, columnas); int i, j; for (i = 0; i < filas; i++) for (j = 0; j < columnas; j++) resta.m[i, j] = m[i, j] - z.m[i, j]; } return resta; } public void transpuesta1() { int i, j; for (i = 0; i < filas; i++) { for (j = 0; j < columnas; j++) { Console.Write(m[j, i] + " "); } Console.WriteLine(); } } public Matriz transpuesta() { Matriz x = new Matriz(filas, columnas); for (int i = 0; i < filas; i++) for (int j = 0; j < columnas; j++) x.m[i, j] = m[j, i];

return x; } public Matriz inversa() { Matriz x = new Matriz(filas, columnas); double det = determinante(); int i, j; if (filas == 2 && columnas == 2) { for (i = 0; i < filas; i++) { for (j = 0; j < filas; j++) { x.m[i, j] = m[filas - 1 - j, filas - 1 - i] / det; if (i + j == 1) x.m[i, j] = x.m[i, j] * -1; } } } else {

} }

for (i = 0; i < filas; i++) for (j = 0; j < columnas; j++) { x.m[i, j] = adjunta(i, j).determinante() / det; if ((i + j) % 2 == 1) x.m[i, j] *= -1; } x = x.transpuesta();

return x; public Matriz adjunta(int f, int c) { Matriz x = new Matriz(filas - 1, columnas - 1); int i, j, ii = 0, jj; for (i = 0; i < filas; i++) { if (i == f) continue; for (j = 0, jj = 0; j < columnas; j++) { if (j == c) continue; x.m[ii, jj++] = m[i, j]; } ii++; } return x; }

public double determinante(int diagonal, int signo) { double x = 1.00; int f = 0, c = diagonal; while (f < filas) { x *= m[f, c]; f++; c += signo; if (c >= columnas) c = 0; if (c < 0) c = columnas - 1; } return x; } public double determinante(int signo) { double x = 0.00; for (int i = 0; i < columnas; i++) x += determinante(i, signo); return x; } public double determinante() { double x; if (columnas == 2) { x = m[0, 0] * m[1, 1] - m[0, 1] * m[1, 0]; } else x = determinante(1) - determinante(-1); return x; } public double traza() { double t = 0; for (int i = 0; i < filas; i++) {t=t+m[i,i]; } return t; } }//Fin clase matriz class Program { static void Main(string[] args) { Console.Title = "matrices"; Console.BackgroundColor = ConsoleColor.White; Console.Clear();

Console.ForegroundColor = ConsoleColor.Blue; Matriz a, b, c, d, e, z; int opcion; do { Console.Clear(); Console.Beep(); Console.WriteLine("En todas las opciones esta considerado el producto escalar y la transpuesta"); Console.WriteLine(); Console.SetCursorPosition(28, 3); Console.WriteLine("****opciones****"); Console.SetCursorPosition(20, 4); Console.WriteLine("1.-Sumar"); Console.SetCursorPosition(20, 5); Console.WriteLine("2.-Restar"); Console.SetCursorPosition(20, 6); Console.WriteLine("3.-Multiplicar"); Console.SetCursorPosition(20, 7); Console.WriteLine("4.-Inversa,Determinan y la traza:"); Console.SetCursorPosition(20, 8); Console.WriteLine("9.-Salir"); Console.SetCursorPosition(20, 9); Console.WriteLine("Seleccione una opcion"); opcion = Leer.leer_entero(); switch (opcion) { case 1: { Console.WriteLine("Ingerese Matriz a"); a = new Matriz(); a.leer(); Console.WriteLine("Ingrese Matriz b"); b = new Matriz(); b.leer(); Console.WriteLine("Matriz a"); a.mostrar(); Console.WriteLine("multiplicado por un escalar"); a.multiplicarescalar(); Console.WriteLine("transpuesta es:"); a.transpuesta1(); Console.WriteLine("Matriz b"); b.mostrar(); Console.WriteLine("multiplicado por un escalar"); b.multiplicarescalar(); Console.WriteLine("transpuesta es:"); b.transpuesta1(); c = a.suma(b); Console.WriteLine("Matriz c (Suma)"); c.mostrar(); Console.ReadKey();

escalar");

} break; case 2: { Console.WriteLine("Ingerese Matriz a"); a = new Matriz(); a.leer(); Console.WriteLine("Ingrese Matriz b"); b = new Matriz(); b.leer(); Console.WriteLine("Matriz a"); a.mostrar(); Console.WriteLine("multiplicado por un a.multiplicarescalar(); Console.WriteLine("transpuesta es:"); a.transpuesta1(); Console.WriteLine("Matriz b"); b.mostrar(); Console.WriteLine("multiplicado por un

escalar");

b.multiplicarescalar(); Console.WriteLine("transpuesta es:"); b.transpuesta1(); e = a.resta(b); Console.WriteLine("matriz e (resta)"); e.mostrar(); Console.ReadKey(); } break; case 3: { Console.WriteLine("Ingerese Matriz a"); a = new Matriz(); a.leer(); Console.WriteLine("Ingrese Matriz b"); b = new Matriz(); b.leer(); Console.WriteLine("Matriz a"); a.mostrar(); Console.WriteLine("multiplicado por un

escalar");

escalar");

a.multiplicarescalar(); Console.WriteLine("transpuesta es:"); a.transpuesta1(); Console.WriteLine("Matriz b"); b.mostrar(); Console.WriteLine("multiplicado por un b.multiplicarescalar(); Console.WriteLine("transpuesta es:"); b.transpuesta1(); d = a.producto(b); Console.WriteLine("matriz d (producto)"); d.mostrar();

Console.ReadKey(); } break; case 4: { Console.WriteLine("Ingerese Matriz a"); a = new Matriz(); a.leer(); Console.WriteLine("Matriz a"); a.mostrar(); Console.WriteLine("la Determinate Es:"); double x = a.determinante(); Console.WriteLine(x); z = a.inversa(); if (x == 0) { Console.WriteLine("No existe } else {

inversa");

} Console.WriteLine("La traza de a es:"); double t = a.traza(); Console.WriteLine(t); Console.WriteLine("multiplicado por un escalar"); a.multiplicarescalar(); Console.WriteLine("transpuesta es:"); a.transpuesta1(); Console.ReadKey(); } break; } } while (opcion != 9);

Console.WriteLine("lA INVERSA ES:"); z.mostrar();

Console.ReadKey(); } } }

TRABAJO N2 PLANILLA /* Alummno: VICTORIO CRUZ YEFERSON Programa: Planilla 2do Trabajo */ using System; using System.Collections.Generic; using System.Text; namespace Menu { class Leer { public static string leer_dato() { string dato = null; dato = Console.ReadLine(); return dato; } public static int leer_entero() { int n; n = int.Parse(leer_dato()); return n; } public static double leer_double() { double n; n = double.Parse(leer_dato()); return n; }

class Persona { protected string nombre; protected int edad; public Persona(string nombre, int edad) { this.nombre = nombre; this.edad = edad; } public Persona() { } public virtual void mostrar() { Console.WriteLine("Nombre: " + nombre); Console.WriteLine("Edad: " + edad); }

class Trabajador : Persona

{ double sueldo; public Trabajador(string nombre, int edad, double sueldo) : base(nombre, edad) { this.sueldo = sueldo; } public Trabajador() : base() { leer(); } public void leer() { Console.Write("Nombre: "); nombre = Leer.leer_dato(); Console.Write("Edad: "); edad = Leer.leer_entero(); Console.Write("Sueldo: "); sueldo = Leer.leer_double(); } public override void mostrar() { base.mostrar(); Console.WriteLine("Sueldo: " + sueldo); } public string getNombre() { return nombre; }

class Planilla { Trabajador[] t = null; public void menu() { int opcion; do { Console.Clear(); Console.Beep(); Console.SetCursorPosition(28, 3); Console.WriteLine("***OPCIONES***"); Console.SetCursorPosition(28, 4); Console.WriteLine("1.- Nuevo"); Console.SetCursorPosition(28, 5); Console.WriteLine("2.- Modificar"); Console.SetCursorPosition(28, 6); Console.WriteLine("3.- Eliminar"); Console.SetCursorPosition(28, 7);

Console.WriteLine("4.- Buscar"); Console.SetCursorPosition(28, 8); Console.WriteLine("5.- Ordenar"); Console.SetCursorPosition(28, 9); Console.WriteLine("6.- Mostrar"); Console.SetCursorPosition(28, 10); Console.WriteLine("7.- Salir"); Console.SetCursorPosition(1, 11); Console.Write("Seleccionar una opcin: "); opcion = Leer.leer_entero(); switch (opcion) { case 1: ingresar(); break; case 2: modificar(); break; case 3: Eliminar(); break; case 4: buscar(); break; case 5: Ordenar(); break; case 6: mostrar(); break; } } while (opcion != 7);

public void ingresar() { int n = 0; if (t != null) n = t.Length; n++; Trabajador[] x = new Trabajador[n]; for (int i = 0; i < n - 1; i++) x[i] = t[i]; x[n - 1] = new Trabajador(); t = x; } public void mostrar() { if (t != null) { for (int i = 0; i < t.Length; i++) { Console.WriteLine("Trabajador" + (i + 1)); t[i].mostrar(); } }

else Console.WriteLine("Lista vaca."); Console.ReadKey(); } public void buscar() { int p = 0; string nombre; Console.WriteLine("Busqueda"); Console.Write("Nombre: "); nombre = Leer.leer_dato(); if (buscar(nombre, out p)) { Console.WriteLine("Encontrado en la posicin:" + p); t[p].mostrar(); } else Console.WriteLine("No encontrado."); Console.ReadKey(); } public Boolean buscar(string nombre, out int p) { int i; Boolean encontrado = false; p = 0; for (i = 0; t != null && i < t.Length; i++) { encontrado = nombre.Equals(t[i].getNombre()); if (encontrado) { p = i; break; } } return encontrado; } public void modificar() { int p = 0; string nombre; Console.WriteLine("Modificar"); Console.Write("Ingrese nombre que desea modificar: "); nombre = Leer.leer_dato(); if (buscar(nombre, out p)) t[p] = new Trabajador(); else Console.WriteLine("No encontrado en la lista."); Console.ReadKey(); } public void Eliminar() {

int p = 0; string nombre; Trabajador[] x; int n = 0; Console.WriteLine("Eliminar"); Console.Write("Nombre: "); nombre = Leer.leer_dato(); if (t != null) n = t.Length; n = n - 1; if (buscar(nombre, out p) && (n != -1)) { x = new Trabajador[n]; for (int i = 0; i < n; i++) { if (i >= p) x[i] = t[i + 1]; else x[i] = t[i]; } int y = x.Length; if (y == 0) t = null; else t = x; } else Console.WriteLine("Lista vaca."); Console.ReadKey();

public int codigo(char letra) { int x = 0; switch (letra) { case 'A': case 'a': x = 1; break; case 'B': case 'b': x = 2; break; case 'C': case 'c': x = 3; break; case 'D': case 'd': x = 4; break; case 'E': case 'e': x = 5; break; case 'F': case 'f': x = 6; break; case 'G': case 'g': x = 7; break; case 'H': case 'h': x = 8; break; case 'I': case 'i': x = 9; break; case 'J': case 'j': x = 10; break;

} return x;

case case case case case case case case case case case case case case case case case case case case case case case case case case case case case case case case case case

'K': 'k': 'L': 'l': 'M': 'm': 'N': 'n': '': '': 'O': 'o': 'P': 'p': 'Q': 'q': 'R': 'r': 'S': 's': 'T': 't': 'U': 'u': 'V': 'v': 'W': 'w': 'X': 'x': 'Y': 'y': 'Z': 'z':

x = 11; break; x = 12; break; x = 13; break; x = 14; break; x = 15; break; x = 16; break; x = 17; break; x = 18; break; x = 19; break; x = 20; break; x = 21; break; x = 22; break; x = 23; break; x = 24; break; x = 25; break; x = 26; break; x = 27; break;

public void Ordenar() { int i, j, a1 = 0, b1 = 0; char a, b; int n = t.Length; for (i = 0; i < n; i++) for (j = i; j < n; j++) { a = char.Parse(t[i].getNombre().Remove(1, t[i].getNombre().Length - 1)); a1 = codigo(a); b = char.Parse(t[j].getNombre().Remove(1, t[j].getNombre().Length - 1)); b1 = codigo(b); if (a1 > b1) conmutar(t[i], t[j], out t[i], out t[j]); } mostrar(); }

public void conmutar(Trabajador a, Trabajador b, out Trabajador c, out Trabajador d) { c = b; d = a; } } class Program { static void Main(string[] args) { Console.Title = "Planilla"; Console.BackgroundColor = ConsoleColor.White; Console.Clear(); Console.ForegroundColor = ConsoleColor.Blue; Planilla datos = new Planilla(); datos.menu(); } } }

Вам также может понравиться