elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Temas
Páginas: [1]
1  Programación / Java / [JAVA] NEW Operaciones con quebrados ~ ver.2 en: 15 Diciembre 2010, 01:29 am
Aqui os dejo este codigo que hice de tarea. Asi que mejor que me digan que les parece, y me den muchas criticas, porque herrar es umano.  :-*

Código
  1. /* AUTOR: d3n3k4 (Dnk!)
  2.  * WEB: http://d3n3k4.blogspot.com/
  3.  * FECHA: 15/DIC/2010
  4.  * DESCRIPCION:
  5.  * - Nueva actualizacion para trabajar con quebrados (fracciones).
  6.  * - Introducido resta,multiplicacion,division de dos quebrados.
  7.  * - Con opcion a sumar,restar,multiplicar,dividir un vector de quebrados.
  8.  * NOTA: Este codigo es libre y puede ser usado,modificado... siempre y cuando se
  9.  * mantenga los creditos y comentarios del autor.
  10.  */
  11. import java.util.Scanner;
  12.  
  13. public class clsQuebrado {
  14. //Atributos
  15. private int numerador;
  16. private int denominador;
  17.  
  18. //Contructores
  19. public clsQuebrado(){
  20. this.numerador = 0;
  21. this.denominador = 0;
  22. }
  23. public clsQuebrado(int numerador,int denominador) {
  24. this.numerador = numerador;
  25. this.denominador = denominador;
  26. }
  27. //Setter&Getter
  28. public void setNumerador(int numerador) {
  29. this.numerador = numerador;
  30. }
  31. public void setDenominador(int denominador) {
  32. this.denominador = denominador;
  33. }
  34. public int getNumerador(){
  35. return this.numerador;
  36. }
  37. public int getDenominador(){
  38. return this.denominador;
  39. }
  40. /*
  41. * Calcular Maximo Comun Divisor.
  42. */
  43. private static int mcd(int a, int b) {
  44. int aux;
  45. if (a < 0)
  46. a = a * -1;
  47. if (b < 0)
  48. b = b * -1;
  49. while (b != 0) {
  50. aux = b;
  51. b = a%b;
  52. a = aux;
  53. }
  54. return a;
  55. }
  56. /*
  57. * Calcular Minimo Comum Multiplo.
  58. */
  59. private static int mcm(int a, int b) {
  60. int min = (a*b)/mcd(a,b);
  61. return min;
  62. }
  63. /*
  64. * Reducir/simplificar Quebrado.
  65. */
  66. public clsQuebrado reducir(){
  67. clsQuebrado QuebradoRed = new clsQuebrado();
  68. int max = mcd(this.getNumerador(),this.getDenominador());
  69. QuebradoRed.setDenominador(this.getDenominador()/max);
  70. QuebradoRed.setNumerador(this.getNumerador()/max);
  71. return QuebradoRed;
  72. }
  73. /*
  74. * @see java.lang.Object#toString()
  75. */
  76. public String toString(){
  77. return this.getNumerador()+"/"+this.getDenominador();
  78. }
  79. /*
  80. * Sumar 2 quebrados o vector de quebrados.
  81. */
  82. public static  clsQuebrado sumar(clsQuebrado q1,clsQuebrado q2) {
  83. clsQuebrado QuebradoRes = new clsQuebrado();
  84. int min = mcm(q1.getDenominador(),q2.getDenominador());
  85. QuebradoRes.setDenominador(min);
  86. QuebradoRes.setNumerador(q1.getNumerador()*(min/q1.getDenominador())+q2.getNumerador()*(min/q2.getDenominador()));
  87. return QuebradoRes.reducir();
  88. }
  89. public static clsQuebrado sumar(clsQuebrado[] lista) {
  90. clsQuebrado QuebradoRes = new clsQuebrado();
  91. for (int i = 0; i < lista.length; i++) {
  92. lista[i] = lista[i].reducir();
  93. }
  94. QuebradoRes = sumar(lista[0], lista[1]);
  95. for (int i = 2; i < lista.length; i++) {
  96. QuebradoRes = sumar(QuebradoRes,lista[i]);
  97. }
  98. return QuebradoRes.reducir();
  99. }
  100. /*
  101. * Idem que anterior -> restar.
  102. */
  103. public static clsQuebrado restar(clsQuebrado q1,clsQuebrado q2) {
  104. clsQuebrado QuebradoRes = new clsQuebrado();
  105. int min = mcm(q1.getDenominador(),q2.getDenominador());
  106. QuebradoRes.setDenominador(min);
  107. QuebradoRes.setNumerador(q1.getNumerador()*(min/q1.getDenominador())-q2.getNumerador()*(min/q2.getDenominador()));
  108. return QuebradoRes.reducir();
  109. }
  110. public static clsQuebrado restar(clsQuebrado[] lista) {
  111. clsQuebrado QuebradoRes = new clsQuebrado();
  112. for (int i = 0; i < lista.length; i++) {
  113. lista[i] = lista[i].reducir();
  114. }
  115. QuebradoRes = restar(lista[0], lista[1]);
  116. for (int i = 2; i < lista.length; i++) {
  117. QuebradoRes = restar(QuebradoRes,lista[i]);
  118. }
  119. return QuebradoRes.reducir();
  120. }
  121. /*
  122. * Idem que anterior -> multiplicar.
  123. */
  124. public static clsQuebrado multiplicar(clsQuebrado q1,clsQuebrado q2) {
  125. clsQuebrado QuebradoRes = new clsQuebrado(q1.getNumerador()*q2.getNumerador(),q1.getDenominador()*q2.getDenominador());
  126. return QuebradoRes.reducir();
  127. }
  128. public static clsQuebrado multiplicar(clsQuebrado[] lista) {
  129. clsQuebrado QuebradoRes = new clsQuebrado();
  130. for (int i = 0; i < lista.length; i++) {
  131. lista[i] = lista[i].reducir();
  132. }
  133. QuebradoRes = multiplicar(lista[0], lista[1]);
  134. for (int i = 2; i < lista.length; i++) {
  135. QuebradoRes = multiplicar(QuebradoRes,lista[i]);
  136. }
  137. return QuebradoRes.reducir();
  138. }
  139. /*
  140. * Idem que anterior -> dividir.
  141. */
  142. public static clsQuebrado dividir(clsQuebrado q1,clsQuebrado q2){
  143. clsQuebrado QuebradoRes = new clsQuebrado(q1.getNumerador()*q2.getDenominador(),q1.getDenominador()*q2.getNumerador());
  144. return QuebradoRes.reducir();
  145. }
  146. public static clsQuebrado dividir(clsQuebrado[] lista) {
  147. clsQuebrado QuebradoRes = new clsQuebrado();
  148. for (int i = 0; i < lista.length; i++) {
  149. lista[i] = lista[i].reducir();
  150. }
  151. QuebradoRes = dividir(lista[0], lista[1]);
  152. for (int i = 2; i < lista.length; i++) {
  153. QuebradoRes = dividir(QuebradoRes,lista[i]);
  154. }
  155. return QuebradoRes.reducir();
  156. }
  157. /*
  158. * Lee un quebrado de teclado.
  159. */
  160. public static clsQuebrado leerQuebrado(){
  161. Scanner entrada = new Scanner(System.in);
  162. clsQuebrado QuebradoRes = new clsQuebrado(entrada.nextInt(),entrada.nextInt());
  163. return QuebradoRes.reducir();
  164. }
  165. /*
  166. * Obtienes un string de la operacion total del arreglo.
  167. */
  168. public static String escribeExpresion(clsQuebrado[] lista) {
  169. String exp = "";
  170. for (int i = 0; i < lista.length; i++) {
  171. if (i > 0 && lista[i].getNumerador() >= 0)
  172. exp += "+";
  173. exp += lista[i].toString();
  174. }
  175. exp += "=";
  176. return exp;
  177. }
  178. }
  179.  

Ejemplo de uso:
Código
  1. public class ProgramaQuebrados {
  2.  
  3. public static void main(String[] args) {
  4. Quebrado q1,q2,res;
  5. System.out.println("Introduce primer quebrado:");
  6. q1 = Quebrado.leerQuebrado();
  7. System.out.println("Introduce primer quebrado:");
  8. q2 = Quebrado.leerQuebrado();
  9. System.out.println("Pruebas Operaciones");
  10. res = Quebrado.sumar(q1, q2);
  11. System.out.println(q1+" + "+q2+" = "+res);
  12. res = Quebrado.restar(q1, q2);
  13. System.out.println(q1+" - "+q2+" = "+res);
  14. res = Quebrado.multiplicar(q1, q2);
  15. System.out.println(q1+" * "+q2+" = "+res);
  16. res = Quebrado.dividir(q1, q2);
  17. System.out.println(q1+" / "+q2+" = "+res);
  18. System.out.println("Prueba sumaQuebrados y escribeExpresion");
  19. Quebrado[] lista = new Quebrado[5];
  20. lista[0] =  new Quebrado(10,20);
  21. lista[1] =  new Quebrado(10,30);
  22. lista[2] =  new Quebrado(-10,10);
  23. lista[3] =  new Quebrado(30,20);
  24. lista[4] =  new Quebrado(-10,20);
  25. res = Quebrado.sumaQuebrados(lista);
  26. System.out.print(Quebrado.escribeExpresion(lista));
  27. System.out.println(res);
  28. }
  29. }
  30.  

xDnk!
2  Programación / Ejercicios / Mini Reto Python. Dibujar rombo ~ en: 1 Diciembre 2010, 23:34 pm
Se debe realizar una funcion en python el cual dibuje un rombo de asteriscos "*". Se le debe pasar por parametro el numero de lineas.

Debiera quedar mas o menos asi:


Espero se animen. xDnk!
3  Programación / Java / [SRC] Calculadora Matricial ~ en: 1 Diciembre 2010, 11:52 am
Aqui os presento mi modesta y humilde obra. Pero cuan cariño le tengo XD. No mucho mas que decir, ya viene todo explicado en el source. Le he añadido las importaciones de java.util, ademas de un main, para que os sea mas facil probar la clase, si lo quieren como clase externa solo borren esto y ya esta.

Código
  1. /* AUTOR: d3n3k4 (Dnk!)
  2.  * WEB: http://d3n3k4.blogspot.com/
  3.  * FECHA: 01/DIC/2010
  4.  * DESCRIPCION:
  5.  * - Contiene varias clases que realizan calculos matriciales como:
  6.  * - suma y resta de matrices.
  7.  * - producto de matrices.
  8.  * - calcular la matriz transpuesta de una matriz.
  9.  * - comprobar si dos matrices son iguales.
  10.  * - comprobar si una matriz es cuadrada o no.
  11.  * - comprobar si una matriz es simetrica.
  12.  * - Se iran añadiendo mas funcionalidades, como multiplicacion por una constante,
  13.  *  calcular determinante, rango, etc... y seran expuestas en mi web.
  14.  * NOTA: Este codigo es libre y puede ser usado,modificado... siempre y cuando se
  15.  * mantenga los creditos y comentarios del autor.
  16.  */
  17. import java.util.Scanner;
  18.  
  19. public class CalC {
  20. public static int[][] leeMatriz(int nFila, int nCol){
  21. int[][] matriz = new int[nFila][nCol];
  22. Scanner entrada = new Scanner(System.in);
  23.  
  24. for (int i = 0; i < nFila; i++) {
  25. for (int j = 0; j < nCol; j++) {
  26. matriz[i][j] = entrada.nextInt();
  27. }
  28. }
  29. return matriz;
  30. }
  31. public static String escribeMatriz(int[][] matriz) {
  32. String mat = "";
  33. if (matriz != null) {
  34. for (int i = 0; i < matriz.length; i++) {
  35. mat += "|   ";
  36. for (int j = 0; j < matriz[0].length; j++) {
  37. mat += matriz[i][j] + "  ";
  38. }
  39. mat += "   |\n";
  40. }
  41. }
  42. return mat;
  43. }
  44. public static int[][] sumaMatrices(int[][] mat1,int[][] mat2,boolean resta) {
  45. int[][] matSal = null;
  46.  
  47. if (mat1.length == mat2.length && mat1[0].length == mat2[0].length) {
  48. if (resta == true) { //cambia de signo mat2 para despues sea restada.
  49. for (int i = 0; i < mat2.length; i++) {
  50. for (int j = 0; j < mat2[0].length;j++) {
  51. mat2[i][j] = mat2[i][j] * -1;
  52. }
  53. }
  54. }
  55. matSal = new int[mat1.length][mat1[0].length];
  56. for (int i = 0; i < mat1.length; i++) {
  57. for (int j = 0; j < mat1[0].length; j++) {
  58. matSal[i][j] = mat1[i][j] + mat2[i][j];
  59. }
  60. }
  61. }
  62. return matSal;
  63. }
  64. public static int[][] transpuesta(int[][] mat1) {
  65. int[][] M_trans = new int[mat1[0].length][mat1.length];
  66.  
  67. for (int i = 0; i < M_trans.length; i++) {
  68. for (int j = 0; j < M_trans[0].length;j++) {
  69. M_trans[i][j] = mat1[j][i];
  70. }
  71. }
  72. return M_trans;
  73. }
  74. public static int[][] productoMatriz(int[][] mat1,int[][] mat2) {
  75. int[][] matSal = null;
  76.  
  77. if (mat1[0].length == mat2.length) {
  78. matSal = new int[mat1.length][mat2[0].length];
  79.  
  80. for (int i = 0; i < matSal.length; i++) {
  81. for (int j = 0; j < matSal[0].length; j++) {
  82. for (int k = 0; k < mat2.length; k++) {
  83. matSal[i][j] += mat1[i][k] * mat2[k][j];
  84. }
  85. }
  86. }
  87. }
  88. return matSal;
  89. }
  90. public static boolean esIgual(int[][] mat1,int[][] mat2) {
  91. boolean igual = false;
  92.  
  93. if (mat1.length == mat2.length && mat1[0].length == mat2[0].length) {
  94. igual = true;
  95. for (int i = 0; i < mat1.length; i++) {
  96. for (int j = 0; j < mat1.length; j++) {
  97. if (mat1[i][j] != mat2[i][j]) {
  98. igual = false;
  99. }
  100. }
  101. }
  102. }
  103. return igual;
  104. }
  105. public static boolean esCuadrada(int[][] mat1) {
  106. boolean cuadrada = false;
  107. if (mat1.length == mat1[0].length) {
  108. cuadrada = true;
  109. }
  110. return cuadrada;
  111. }
  112. public static boolean esSimetrica(int[][] mat1) {
  113. boolean simetrica = false;
  114. int[][] mat2 = transpuesta(mat1);
  115. if (esIgual(mat1,mat2)) {
  116. simetrica = true;
  117. }
  118. return simetrica;
  119. }
  120. public static void main(String[] args) {
  121. /*int[][] matriz1,matriz2,resultado = null;
  122. Scanner entrada = new Scanner(System.in);
  123. int filas = 0, columnas = 0;*/
  124.  
  125. /*System.out.println("Introduce el numero de filas");
  126. filas = entrada.nextInt();
  127. System.out.println("Introduce el numero de columnas");
  128. columnas = entrada.nextInt();
  129. System.out.println("Introduce la primera matriz:");
  130. matriz1 = leeMatriz(filas,columnas);*/
  131.  
  132. /*System.out.println("Introduce el numero de filas");
  133. filas = entrada.nextInt();
  134. System.out.println("Introduce el numero de columnas");
  135. columnas = entrada.nextInt();
  136. System.out.println("Introduce la primera matriz:");
  137. matriz2 = leeMatriz(filas,columnas);*/
  138.  
  139. //resultado = sumaMatrices(matriz1,matriz2,true);
  140. //resultado = transpuesta(matriz1);
  141. //resultado = productoMatriz(matriz1,matriz2);
  142. /*if (resultado == null) {
  143. System.out.println("Error");
  144. }*/
  145. /*if (esIgual(matriz1,matriz2)) {
  146. System.out.println("Son iguales");
  147. } else {
  148. System.out.println("No son iguales");
  149. }*/
  150. /*if (esCuadrada(matriz1)) {
  151. System.out.println("Es cuadrada");
  152. } else {
  153. System.out.println("No es cuadrada");
  154. }*/
  155. /*if (esSimetrica(matriz1)) {
  156. System.out.println("Es simetrica");
  157. } else {
  158. System.out.println("No es simetrica");
  159. }*/
  160. //System.out.print(escribeMatriz(resultado));
  161. }
  162.  
  163. }
  164.  

xDnk!
Recuerden respeten el autor  ;)
4  Programación / Scripting / [SOLUCIONADO] "Varios" print en una misma linea en: 30 Noviembre 2010, 11:00 am
Bueno mi problema radica en este code:

Código
  1. for i in range(ord('a'),ord('z')):
  2.    print chr(i)
  3.  

Como veis muestra por pantalla el abcedario, pero cada letra en una linea diferente,
y me gustaria que se imprimiese todo en una misma linea, alguna sugerencia?

Saludos xDnk!
5  Programación / Java / [RETO ABIERTO] Cambio de base ~ en: 29 Noviembre 2010, 23:28 pm
Reto abierto:

# Se puede realizar en cualquier lenguaje.
# Tipo de Reto: Ejercicio sencillo
# Categoria: Abierto
# Fecha de entrega: 04/11/2010 , empiezan votaciones el 04/11/2010
# Sources abiertos: Sí

Citar
1)Escriba un programa JAVA que lea del teclado un entero en base 10 y escriba la secuencia de
caracteres que representa dicho número en la base especificada:
Introduce un entero (base 10): 4833
Introduce una base: 25
El número leído en base 25 es:7I8 (es una i, no un uno)

2)Escriba un programa JAVA que lea del teclado un entero, indicando la base en la que está
expresado y una secuencia de caracteres que represente un número en dicha base, y escriba su
valor en base 10.
Base: 25
Número en base 25:7I8 (es una i, no un uno)
El número leído en base 10 es:4833

Nota: Hay 25 caracteres de la ‘A’ a la ‘Z’. Por lo tanto podemos representar números desde base 2
hasta base 36. Debes leer las secuencias hasta que encuentres un carácter no válido para la base
introducida.
6  Programación / Programación Visual Basic / VB6, cliente no conecta a servidor, winsock en: 2 Marzo 2010, 03:21 am
Buenas, tengo un problema que no puedo resolver. Estoy aprendiendo a manejar el control winsock en vb. Y tengo un sencillo programa cliente - servidor. en el que el servidor escucha por un puerto y el cliente intenta conectarse al servidor por el puerto que escucha el servidor. Entoces haciendo pruebas si me auto-conecto me funciona.

asi me funciona:

cliente:
Código:
If WS.State <> sckConnected Then
    WS.CloseSck
    WS.Connect "127.0.0.1", "2066"
End If
servidor:
Código:
    
WS(0).LocalPort = 2066
WS(0).Listen

Estos puertos son de ejemplo, los que de verdad utilizo, los tengo abiertos xD

En este caso no me funciona:

cliente:
Código:
If WS.State <> sckConnected Then
    WS.CloseSck
    WS.Connect "ejemplonoip.no-ip.org", "2066"
End If
servidor:
Código:
    
WS(0).LocalPort = 2066
WS(0).Listen

Conclusion, si quiero conectar por "no-ip", no va... lo he probado en un equipo remoto y tampoco funciona.

Un saludo. Atte gOuDiiX[/b]
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines