Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Dnk!

#1
Java / [JAVA] NEW Operaciones con quebrados ~ ver.2
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 (java) [Seleccionar]

/* AUTOR: d3n3k4 (Dnk!)
* WEB: http://d3n3k4.blogspot.com/
* FECHA: 15/DIC/2010
* DESCRIPCION:
* - Nueva actualizacion para trabajar con quebrados (fracciones).
* - Introducido resta,multiplicacion,division de dos quebrados.
* - Con opcion a sumar,restar,multiplicar,dividir un vector de quebrados.
* NOTA: Este codigo es libre y puede ser usado,modificado... siempre y cuando se
* mantenga los creditos y comentarios del autor.
*/
import java.util.Scanner;

public class clsQuebrado {
//Atributos
private int numerador;
private int denominador;

//Contructores
public clsQuebrado(){
this.numerador = 0;
this.denominador = 0;
}
public clsQuebrado(int numerador,int denominador) {
this.numerador = numerador;
this.denominador = denominador;
}
//Setter&Getter
public void setNumerador(int numerador) {
this.numerador = numerador;
}
public void setDenominador(int denominador) {
this.denominador = denominador;
}
public int getNumerador(){
return this.numerador;
}
public int getDenominador(){
return this.denominador;
}
/*
* Calcular Maximo Comun Divisor.
*/
private static int mcd(int a, int b) {
int aux;
if (a < 0)
a = a * -1;
if (b < 0)
b = b * -1;
while (b != 0) {
aux = b;
b = a%b;
a = aux;
}
return a;
}
/*
* Calcular Minimo Comum Multiplo.
*/
private static int mcm(int a, int b) {
int min = (a*b)/mcd(a,b);
return min;
}
/*
* Reducir/simplificar Quebrado.
*/
public clsQuebrado reducir(){
clsQuebrado QuebradoRed = new clsQuebrado();
int max = mcd(this.getNumerador(),this.getDenominador());
QuebradoRed.setDenominador(this.getDenominador()/max);
QuebradoRed.setNumerador(this.getNumerador()/max);
return QuebradoRed;
}
/*
* @see java.lang.Object#toString()
*/
public String toString(){
return this.getNumerador()+"/"+this.getDenominador();
}
/*
* Sumar 2 quebrados o vector de quebrados.
*/
public static  clsQuebrado sumar(clsQuebrado q1,clsQuebrado q2) {
clsQuebrado QuebradoRes = new clsQuebrado();
int min = mcm(q1.getDenominador(),q2.getDenominador());
QuebradoRes.setDenominador(min);
QuebradoRes.setNumerador(q1.getNumerador()*(min/q1.getDenominador())+q2.getNumerador()*(min/q2.getDenominador()));
return QuebradoRes.reducir();
}
public static clsQuebrado sumar(clsQuebrado[] lista) {
clsQuebrado QuebradoRes = new clsQuebrado();
for (int i = 0; i < lista.length; i++) {
lista[i] = lista[i].reducir();
}
QuebradoRes = sumar(lista[0], lista[1]);
for (int i = 2; i < lista.length; i++) {
QuebradoRes = sumar(QuebradoRes,lista[i]);
}
return QuebradoRes.reducir();
}
/*
* Idem que anterior -> restar.
*/
public static clsQuebrado restar(clsQuebrado q1,clsQuebrado q2) {
clsQuebrado QuebradoRes = new clsQuebrado();
int min = mcm(q1.getDenominador(),q2.getDenominador());
QuebradoRes.setDenominador(min);
QuebradoRes.setNumerador(q1.getNumerador()*(min/q1.getDenominador())-q2.getNumerador()*(min/q2.getDenominador()));
return QuebradoRes.reducir();
}
public static clsQuebrado restar(clsQuebrado[] lista) {
clsQuebrado QuebradoRes = new clsQuebrado();
for (int i = 0; i < lista.length; i++) {
lista[i] = lista[i].reducir();
}
QuebradoRes = restar(lista[0], lista[1]);
for (int i = 2; i < lista.length; i++) {
QuebradoRes = restar(QuebradoRes,lista[i]);
}
return QuebradoRes.reducir();
}
/*
* Idem que anterior -> multiplicar.
*/
public static clsQuebrado multiplicar(clsQuebrado q1,clsQuebrado q2) {
clsQuebrado QuebradoRes = new clsQuebrado(q1.getNumerador()*q2.getNumerador(),q1.getDenominador()*q2.getDenominador());
return QuebradoRes.reducir();
}
public static clsQuebrado multiplicar(clsQuebrado[] lista) {
clsQuebrado QuebradoRes = new clsQuebrado();
for (int i = 0; i < lista.length; i++) {
lista[i] = lista[i].reducir();
}
QuebradoRes = multiplicar(lista[0], lista[1]);
for (int i = 2; i < lista.length; i++) {
QuebradoRes = multiplicar(QuebradoRes,lista[i]);
}
return QuebradoRes.reducir();
}
/*
* Idem que anterior -> dividir.
*/
public static clsQuebrado dividir(clsQuebrado q1,clsQuebrado q2){
clsQuebrado QuebradoRes = new clsQuebrado(q1.getNumerador()*q2.getDenominador(),q1.getDenominador()*q2.getNumerador());
return QuebradoRes.reducir();
}
public static clsQuebrado dividir(clsQuebrado[] lista) {
clsQuebrado QuebradoRes = new clsQuebrado();
for (int i = 0; i < lista.length; i++) {
lista[i] = lista[i].reducir();
}
QuebradoRes = dividir(lista[0], lista[1]);
for (int i = 2; i < lista.length; i++) {
QuebradoRes = dividir(QuebradoRes,lista[i]);
}
return QuebradoRes.reducir();
}
/*
* Lee un quebrado de teclado.
*/
public static clsQuebrado leerQuebrado(){
Scanner entrada = new Scanner(System.in);
clsQuebrado QuebradoRes = new clsQuebrado(entrada.nextInt(),entrada.nextInt());
return QuebradoRes.reducir();
}
/*
* Obtienes un string de la operacion total del arreglo.
*/
public static String escribeExpresion(clsQuebrado[] lista) {
String exp = "";
for (int i = 0; i < lista.length; i++) {
if (i > 0 && lista[i].getNumerador() >= 0)
exp += "+";
exp += lista[i].toString();
}
exp += "=";
return exp;
}
}


Ejemplo de uso:
Código (java) [Seleccionar]

public class ProgramaQuebrados {

public static void main(String[] args) {
Quebrado q1,q2,res;
System.out.println("Introduce primer quebrado:");
q1 = Quebrado.leerQuebrado();
System.out.println("Introduce primer quebrado:");
q2 = Quebrado.leerQuebrado();
System.out.println("Pruebas Operaciones");
res = Quebrado.sumar(q1, q2);
System.out.println(q1+" + "+q2+" = "+res);
res = Quebrado.restar(q1, q2);
System.out.println(q1+" - "+q2+" = "+res);
res = Quebrado.multiplicar(q1, q2);
System.out.println(q1+" * "+q2+" = "+res);
res = Quebrado.dividir(q1, q2);
System.out.println(q1+" / "+q2+" = "+res);
System.out.println("Prueba sumaQuebrados y escribeExpresion");
Quebrado[] lista = new Quebrado[5];
lista[0] =  new Quebrado(10,20);
lista[1] =  new Quebrado(10,30);
lista[2] =  new Quebrado(-10,10);
lista[3] =  new Quebrado(30,20);
lista[4] =  new Quebrado(-10,20);
res = Quebrado.sumaQuebrados(lista);
System.out.print(Quebrado.escribeExpresion(lista));
System.out.println(res);
}
}


xDnk!
#2
Ejercicios / Mini Reto Python. Dibujar rombo ~
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
Java / [SRC] Calculadora Matricial ~
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 (java) [Seleccionar]

/* AUTOR: d3n3k4 (Dnk!)
* WEB: http://d3n3k4.blogspot.com/
* FECHA: 01/DIC/2010
* DESCRIPCION:
* - Contiene varias clases que realizan calculos matriciales como:
* - suma y resta de matrices.
* - producto de matrices.
* - calcular la matriz transpuesta de una matriz.
* - comprobar si dos matrices son iguales.
* - comprobar si una matriz es cuadrada o no.
* - comprobar si una matriz es simetrica.
* - Se iran añadiendo mas funcionalidades, como multiplicacion por una constante,
*  calcular determinante, rango, etc... y seran expuestas en mi web.
* NOTA: Este codigo es libre y puede ser usado,modificado... siempre y cuando se
* mantenga los creditos y comentarios del autor.
*/
import java.util.Scanner;

public class CalC {
public static int[][] leeMatriz(int nFila, int nCol){
int[][] matriz = new int[nFila][nCol];
Scanner entrada = new Scanner(System.in);

for (int i = 0; i < nFila; i++) {
for (int j = 0; j < nCol; j++) {
matriz[i][j] = entrada.nextInt();
}
}
return matriz;
}
public static String escribeMatriz(int[][] matriz) {
String mat = "";
if (matriz != null) {
for (int i = 0; i < matriz.length; i++) {
mat += "|   ";
for (int j = 0; j < matriz[0].length; j++) {
mat += matriz[i][j] + "  ";
}
mat += "   |\n";
}
}
return mat;
}
public static int[][] sumaMatrices(int[][] mat1,int[][] mat2,boolean resta) {
int[][] matSal = null;

if (mat1.length == mat2.length && mat1[0].length == mat2[0].length) {
if (resta == true) { //cambia de signo mat2 para despues sea restada.
for (int i = 0; i < mat2.length; i++) {
for (int j = 0; j < mat2[0].length;j++) {
mat2[i][j] = mat2[i][j] * -1;
}
}
}
matSal = new int[mat1.length][mat1[0].length];
for (int i = 0; i < mat1.length; i++) {
for (int j = 0; j < mat1[0].length; j++) {
matSal[i][j] = mat1[i][j] + mat2[i][j];
}
}
}
return matSal;
}
public static int[][] transpuesta(int[][] mat1) {
int[][] M_trans = new int[mat1[0].length][mat1.length];

for (int i = 0; i < M_trans.length; i++) {
for (int j = 0; j < M_trans[0].length;j++) {
M_trans[i][j] = mat1[j][i];
}
}
return M_trans;
}
public static int[][] productoMatriz(int[][] mat1,int[][] mat2) {
int[][] matSal = null;

if (mat1[0].length == mat2.length) {
matSal = new int[mat1.length][mat2[0].length];

for (int i = 0; i < matSal.length; i++) {
for (int j = 0; j < matSal[0].length; j++) {
for (int k = 0; k < mat2.length; k++) {
matSal[i][j] += mat1[i][k] * mat2[k][j];
}
}
}
}
return matSal;
}
public static boolean esIgual(int[][] mat1,int[][] mat2) {
boolean igual = false;

if (mat1.length == mat2.length && mat1[0].length == mat2[0].length) {
igual = true;
for (int i = 0; i < mat1.length; i++) {
for (int j = 0; j < mat1.length; j++) {
if (mat1[i][j] != mat2[i][j]) {
igual = false;
}
}
}
}
return igual;
}
public static boolean esCuadrada(int[][] mat1) {
boolean cuadrada = false;
if (mat1.length == mat1[0].length) {
cuadrada = true;
}
return cuadrada;
}
public static boolean esSimetrica(int[][] mat1) {
boolean simetrica = false;
int[][] mat2 = transpuesta(mat1);
if (esIgual(mat1,mat2)) {
simetrica = true;
}
return simetrica;
}
public static void main(String[] args) {
/*int[][] matriz1,matriz2,resultado = null;
Scanner entrada = new Scanner(System.in);
int filas = 0, columnas = 0;*/

/*System.out.println("Introduce el numero de filas");
filas = entrada.nextInt();
System.out.println("Introduce el numero de columnas");
columnas = entrada.nextInt();
System.out.println("Introduce la primera matriz:");
matriz1 = leeMatriz(filas,columnas);*/

/*System.out.println("Introduce el numero de filas");
filas = entrada.nextInt();
System.out.println("Introduce el numero de columnas");
columnas = entrada.nextInt();
System.out.println("Introduce la primera matriz:");
matriz2 = leeMatriz(filas,columnas);*/

//resultado = sumaMatrices(matriz1,matriz2,true);
//resultado = transpuesta(matriz1);
//resultado = productoMatriz(matriz1,matriz2);
/*if (resultado == null) {
System.out.println("Error");
}*/
/*if (esIgual(matriz1,matriz2)) {
System.out.println("Son iguales");
} else {
System.out.println("No son iguales");
}*/
/*if (esCuadrada(matriz1)) {
System.out.println("Es cuadrada");
} else {
System.out.println("No es cuadrada");
}*/
/*if (esSimetrica(matriz1)) {
System.out.println("Es simetrica");
} else {
System.out.println("No es simetrica");
}*/
//System.out.print(escribeMatriz(resultado));
}

}


xDnk!
Recuerden respeten el autor  ;)
#4
Bueno mi problema radica en este code:

Código (python) [Seleccionar]

for i in range(ord('a'),ord('z')):
   print chr(i)


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
Java / [RETO ABIERTO] Cambio de base ~
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
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:

If WS.State <> sckConnected Then
   WS.CloseSck
   WS.Connect "127.0.0.1", "2066"
End If

servidor:
   
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:

If WS.State <> sckConnected Then
   WS.CloseSck
   WS.Connect "ejemplonoip.no-ip.org", "2066"
End If

servidor:
   
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]