|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - ProfesorX
Páginas: 1 ... 22 23 [24] 25 26 ... 32
576
« en: Miércoles 3 de Septiembre de 2008, 02:26 »
Tengo un problema que no he podido resolver, resulta que tengo un DataGridView que lleno previamente mediante un DataTable que obengo de una base de datos, y quiero añadirle una columna extra en la que calcule el 15% de impuesto. El problema es que aunque añado la columna, y despues recorro las filas con un foreach para llenar las celdas, al despelgar el DataGridView en el formulario, esta columna me aparece vacia. A pesar de que ya comprobe que la celda tiene un valor en el debugger. Ojala y alguien me pudiera explicar el porque, y si hay una solucion, que no sea añadir un campo extra a la B.D. private void ChildFormArticuloslectura_Load(object sender, EventArgs e) { tablaExistencias = articulos.ObtenerExistencias(); dgvArticulos.DataSource = tablaExistencias; dgvArticulos.Columns[0].HeaderText = "CLAVE ARTICULO"; dgvArticulos.Columns[1].HeaderText = "DESCRIPCION"; dgvArticulos.Columns[2].HeaderText = "IDENTIFICACION"; dgvArticulos.Columns[3].HeaderText = "PRECIO COSTO"; dgvArticulos.Columns[3].DefaultCellStyle.Format = "C2"; dgvArticulos.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight; dgvArticulos.Columns[4].HeaderText = "EXISTENCIAS"; dgvArticulos.Columns[4].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight; dgvArticulos.Columns.Add("articulos_iva", "IVA"); foreach (DataGridViewRow row in dgvArticulos.Rows) { row.Cells[5].Value = (decimal)(row.Cells[3].Value) * 0.15m; } }
577
« en: Lunes 1 de Septiembre de 2008, 19:32 »
Tienes razon en todo mosquito, aunque si te fijas, yo solo recalque en donde podia estar el error, no puse todas las reglas de la formula para ecuaciones de segundo grado.
Y respecto a las raices pares de numero negativos, claro que existen, y eso ya se sabe que son los numeros imaginarios, pero a menos que diseñes un tipo especial para manejarlas, el compilador dara error al tratar de hacer sqrt(-1). A eso me referia yo en la explicacion.
578
« en: Domingo 31 de Agosto de 2008, 21:10 »
Pues veo que no has revisado por todas partes como dices. Pensaba que tu error era de logica, pero en relidad es de sintaxis Verifique (no recordaba porque hacia tiempo que no porgramaba en pascal) y resulta que no existe el operador ** en pascal. Para elevar al cuadrado deberias hacer b*b y no b**2. otra cosa, al usar double, todos tus numeros deben ser double. esta sentencia si debe compilar. b+sqrt(b*b-4.0*a*c))/(2.0*a) Pero aun asi, faltan las comprobaciones que te comentaba arriba. Saludos
579
« en: Domingo 31 de Agosto de 2008, 00:25 »
Pues no estoy seguro, pero me parece que la division deberia ser con / y no con div. Tambien viene el problema de la division por cero, no se puede dividir entre cero, ya que da error, faltaria una comprobacion para verificar que 2*A no sea igual a cero. Y tambien no puede haber raices cuadradas de numeros negativos, por lo que tambien debes comprobar que b**2-4*a*c no sea negativa. Yo creo que por ahi estan los problemas. Saludos
580
« en: Viernes 29 de Agosto de 2008, 20:06 »
Aparte del punto y coma que menciona EI, tambien esta mal el "else if" solo debes poner "else" quita el if despues de else
581
« en: Viernes 29 de Agosto de 2008, 19:53 »
Pues esa es la solucion, usar decimal en lugar de float  La precision de los float es asi, no puedes cambiarla, y aunque trunques, el resultado nunca sera exacto. Lo mejor es decimal,, ya que es un formato que tiene precision hasta 28 digitos. La pregunta que debes hacerte no es ¿Cuanto espacio me ocupara? sino ¿Necesito alta precision, porque requiero guardar valores con varios decimale? Si la respuesta es afirmativa, entonces debes usar decimal.
582
« en: Viernes 29 de Agosto de 2008, 03:30 »
Como dices, es normal que la aplicacion se vuelva "loca" cuando cambias el XML, es que en realidad me parece que no tendrias que cambiarlo. No estoy muy seguro de lo que estas haciendo y lo que quieras hacer, pero por lo que me comentas, supongo que solo quieres insertar el dato del xml en la base de datos. En ese caso, si conoces cual es la estructura de la base de datos, y el orden de los campos no va a cambiar, podrias hacer una conversion de cada campo antes de insertar con la clase System.Convert().
583
« en: Viernes 29 de Agosto de 2008, 03:09 »
Pues si unicamente quieres que lo ordene en la vista, podrias utilizar el metodo Sort() del DataGridView, en caso contrario, tu deberias de hacer la ordenacion.
584
« en: Jueves 28 de Agosto de 2008, 20:10 »
Es sencillo, el parametro predicate es una funcion que TU defines y en la que debes devolver true cuando se cumple la condicion que quieras, y false si no se cumple. Entonces el metodo FindIndex te devuelve el indice de la lista que cumple con esa condicion.
En el ejemplo que te dio mollense y que publicas, FindIndex utiliza una funcion que definiste, en esta caso llamada EndsWithSaurus, que devuelve true si la cadena que insertaste termina con "saurus" y false si no termina con "saurus".
Entonces la primera corrida te regresa como indice 1, porque de acuerdo al ejemplo, es la segunda cadena de la lista (Amargasaurus) la que termina con "saurus", y los indices comienzan con cero, entonces el primer elemento tiene indice 0, el segundo indice 1 y asi sucesivamente.
Si quieres cambiar la condicion, por ejemplo, que encuente el indice de la lista de todos los "pedros" tendrias que definir una funcion llamada BuscaPedro() que regrese true si encuentra a pedro en la cadena, y false si no encuentra a pedro en la cadena, y pasarsela como parametro a FindIndex.
585
« en: Miércoles 27 de Agosto de 2008, 21:05 »
El heap es la memoria que se reserva dinámicamente... Aqui el compañero Mosquito esta equivocado. Es cierto que heap en algunos casos se refiere al espacio de memoria dinamica, pero en esta caso, se refiere a una estructura de datos. http://en.wikipedia.org/wiki/Heap_(data_structure)En realidad, tal como lo menciona la wikipedia, es una especie de arbol binario. Y respondiendo a lo que preguntabas en tu mensaje original, si, es posible hacer un recorrido mostrando sus elementos. En la pagina que te deje, ahi te dice cuales son las operaciones mas comunes con heaps Saludos
586
« en: Lunes 25 de Agosto de 2008, 19:36 »
Como ya te dijeron, en otro hilo y aqui, a ver si te queda claro, no es que aparezca y desaparezca, ni tampoco es error de tu maquina, ni extraterrestres, ni poderes telepaticos de la pc ni nada por el estilo, lo que sucede es que todo programa, despues de ejecutarse, termina y cierra la ventana, pero como lo hace tan rapido (milisegundos) pareciera que desaparece pero no es asi.
Si quieres que no se cierre la ventana tan rapido y poder ver el resultado FORZOSAMENTE tienes que poner una pausa en el codigo, ya sea con getchar() como te dijo Eternal Idol, o con system("PAUSE");
Tambien puedes abrir una ventana de comandos manualmente y de ahi ejecutar el programa. En ese caso como tu creaste la ventana de comandos manualmente, esta no se cierra automaticamente. Pero entonces perderias la ventaja de depurar tu programa mediante el IDE.
587
« en: Martes 19 de Agosto de 2008, 18:59 »
1. Recuerda utilizar [ code][ /code], mejora la legibilidad del codigo. 2. El error sucede porque las variables de tu clase no estan definidas explicitamente como public, y por defecto, las variables de una clase son de tipo private, con el constructor pasa lo mismo, no tienes un constructor para Celador() con cero parametros, entonces el compilador crea un constructor por defecto, y los constructores por defecto son de tipo private, asi que por eso dice que el constructor no esta accesible. La solucion es que declares tus variables explicitamente como public, class Celador { public string nombre; public double valorHora; public string fechaNacimiento; public bool escopeta = false;
ademas define explicitamente un contructor por defecto de tipo public o utiliza el otro constructor que ya tienes, y pasale los parametros, ejemplo: Celador celador1 = new Celador ("Rodrigo", 10000, "10/03/1965", true);
588
« en: Martes 19 de Agosto de 2008, 03:57 »
Pues esa es la definicion, no hay otra, binding significa "enlace", o sea que un databinding, es un enlace de datos, de tal forma que si cambia el origen de datos, tambien cambia el control enlazado. Ahora, yo solo lo he hecho con databases, no se si se pueda con otros controles  Edito: se me acaba de ocurrir que se podria implementar algo parecido por medio del evento TextChanged del control, o sea, que cuando detectes que hay un cambio en un control por medio de TextChanged, modificas la propiedad Text del otro control.
589
« en: Martes 19 de Agosto de 2008, 03:53 »
Recuarda utilizar [ code][ /code], mejora la legibilidad del codigo. Podrias hacer un casting: int temp1 = (int) drInicativa.GetValue(0); int temp2 = (int) drInicativa.GetValue(1); int temp3 = (int) drInicativa.GetValue(2);
590
« en: Martes 12 de Agosto de 2008, 19:33 »
Exactamente es un type mismatch, en esta parte: Esta esperando un valor boleano, y tienes un valor entero. Lo que necesitas es un contador para el ciclo tambien, que vaya de 1 hasta el numero de veces que quieres lanzar el dado. Lo puedes hacer con otro for, o si lo quieres hacer con repeat..until, debes poner lo siguiente, en la parte de repeat: En la parte del until: el J=num devuelve un valor boleano, aunque eso creo que ya lo sabes  .
591
« en: Lunes 11 de Agosto de 2008, 22:45 »
Ahora entiendo, es que en realidad no son variables, son direcciones de memoria, si has llevado ensamblador, sabras a que me refiero (las variables se convierten en direcciones de memoria cuando compilas en cualquier lenguaje).
Si vas a desensamblar (ingenieria en reversa como tu le llamas) necesitaras tener nociones de CIL/MSIL, y que significan las instrucciones en ese codigo, aunque te dire que yo que he llevado ensamblador, no es nada facil desemsamblar, requiere mucha paciencia, y muchos conocimientos.
Por lo otro que preguntas, la verdad desconozco cual sea la respuesta, y pues no tengo mucha experiencia con CIL.
592
« en: Lunes 11 de Agosto de 2008, 19:56 »
Elimina los dos $ de la variable CS$0$0000, ya que no se permite ese simbolo en nombres de variables.
Los nombres de variables solo admiten letras, numeros, - (guion normal) y _ (guion subrayado). Ademas el primer caracter de un nombre de variable debe de ser una letra o el _ (guion subrayado)
593
« en: Lunes 11 de Agosto de 2008, 18:05 »
Deberias poner el codigo para saber cual es el problema exactamente(no somos adivinos).
Aunque un type mismatch (tipos no coincidentes) significa por lo regular que estas tratando de guardar valores incompatibles en variables incompatibles, por ejemplo, un float en una variable integer.
594
« en: Sábado 9 de Agosto de 2008, 01:15 »
Checate el namespace Microsoft.Win32, contiene clases para trabajar con el registro desde C#
595
« en: Viernes 8 de Agosto de 2008, 18:46 »
En primer lugar, te pediria que uses [ code][ /code] cuando pongas codigo, mejora la legibilidad de tu codigo  Estas lineas: salir:=0; WHILE salir=0 DO
deberian ir antes del menu, para que vuelva al principio, tu lo tienes antes del case, es la razon por la cual no regresa. Pero en lugar de usar while..do, quizas deberias usar mejor repeat..until, ya que el ciclo se debe ejecutar AL MENOS una vez.
596
« en: Viernes 8 de Agosto de 2008, 00:15 »
no , mejor, que se cierren , cuando esten SOLUCIONADOS. No estoy de acuerdo, yo pienso como Iron Man y Eternal Idol , si ya tiene mas de un mes y no hay respuesta, no tiene caso revivirlo, y te dire porque, piensalo y fijate, en la mayoria de los casos, esos mensajes los ponen estudiantes que los necesitan por alguna tarea, y no son contestados por lo mismo, uno ve que son tareas, y por eso no se responden, y esas personas que los ponen, por lo general es su unico mensaje, y jamas regresan, asi que nunca le pondran SOLUCIONADO, aunque hayan encontrado la respuesta, asi que un tema de una persona que jamas haya regresado, no tiene caso revivirlo, en ese caso, es mejor que si tienes la misma duda, la vuelvas a publicar si ves que la pregunta ya tiene mucho tiempo, y no añadir a un tema, 5 meses despues, una respuesta para preguntar si alguien encontro alguna respuesta y lo soluciono, ya que es obvio que si no tuvo respuesta, no hubo solucion. Es mi forma de pensar. Saludos
597
« en: Jueves 7 de Agosto de 2008, 23:02 »
Access que yo sepa no puede trabajar como servidor, es una arquitectura diferente.
Lo que puedes hacer, es hacer un archivo de access, ponerlo en una carpeta de red compartida, y accederlo mediante VB utilizando el motor jet. Deberas poner la ubicacion de red, en la cadena de conexion.
598
« en: Jueves 7 de Agosto de 2008, 19:25 »
Solo tienes que utilizar la propiedad Enabled del boton2 dentro del evento click de boton1, si lo quieres hacer como un "togle" (o sea, que si esta activado lo desactive y viceversa), deberias poner algo como: private void boton1_Click(object sender, EventArgs e) { boton2.Enabled = ! boton2.Enabled; }
El not (!) cambia el valor de verdadero a falso y de falso a verdadero
599
« en: Jueves 7 de Agosto de 2008, 04:35 »
Hay dos formas, una facil y otra mas complicada
1. La facil, creas un acceso directo a tu programa, y luego añades ese acceso directo al Menu "Inicio/Programas/Inicio"
2. La complicada, modificas el registro, especificamente la clave HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun, y añades un nuevo valor (alfanumerico), con la ruta y el nombre de tu programa.
600
« en: Miércoles 6 de Agosto de 2008, 01:48 »
La falla esta en la forma que identificas si un numero es primo o no, en realidad la formula que ocupas identifica numeros impares.
Segun la definicion de numero primo, es aquel que solo se puede dividir entre uno, y si mismo. entonces lo que debes hacer, es dividir el numero entre todos los numeros anteriores, y si el residuo es diferente de cero, es primo, si algun residuo es cero, entonces no es primo.
Dicho con numeros, si quieres identificar si el 9 es primo o no, tendrias que hacer esto
9/2 9/3 9/4 9/5 9/6 9/7 9/8
en este caso, 9/3, la segunda division da a 3 y el residuo es cero, por lo tanto, no es primo.
si fuera el 7: 7/2 7/3 7/4 7/5 7/6
en este caso, ninguna division da un residuo igual a cero, por lo tanto, es primo
Con esta informacion ya podrias hacer una funcion para verificar si un numero es primo o no. Pista: Podrias usar un ciclo for que vaya de 2 hasta N-1, donde N es el numero que quieres comprobar.
Páginas: 1 ... 22 23 [24] 25 26 ... 32
|
|
|