|
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 ... 18 19 [20] 21 22 ... 32
476
« en: Jueves 26 de Noviembre de 2009, 19:13 »
a riesgo de equivocarme, me parece que te falta un # en la primera linea. Saludos
477
« en: Miércoles 25 de Noviembre de 2009, 20:45 »
Me temo que no es posible, en este caso el tiempo no tiene que ver con la complejidad del algoritmo, sino con el numero de iteraciones, que suben de manera exponencial ya que el numero es n!, o sea que si por ejemplo son 4, las iteraciones son 4! o sea 24, pero si son 15!, las iteraciones suben hasta 1 307 674 368 000. O sea que al final tendrias 2 opciones para hacerlo un poco mas "rapido": 1. hacerlo en lenguaje ensamblador. 2. conseguir un procesador mas rapido (doh  ). Saludos
478
« en: Miércoles 25 de Noviembre de 2009, 19:35 »
Donde esta lo que has hecho, y cual es la duda exactamente?
Aqui no se hacen tareas.
479
« en: Miércoles 25 de Noviembre de 2009, 19:33 »
Utiliza el metodo ShowDialog() en lugar de Show() para desplegar el segundo formulario:
480
« en: Lunes 23 de Noviembre de 2009, 20:01 »
Aunque no lo mencionas, me parece que estas usando linux, la funcion system() lo que hace es llamar a comandos del sistema operativo (como si los escribieras en el shell) y creo que en linux no existe el comando pause. Saludos  .
481
« en: Miércoles 18 de Noviembre de 2009, 19:57 »
Pues entonces tendrias que aprender entonces mas sobre SQL, C# y bases de datos  Desconozco la forma exacta en que te conectas y accedes a la base de datos, asi que no puedo ser muy especifico en ese sentido, solo puedo darte guias generales sobre lo que tienes que hacer. En mi caso utilizo lo siguiente: MySqlConnection para conectarme a la base de datos. MySqlConnectionStringBuilder para crear mi cadena de conexion. MySqlCommand para establecer los comandos que voy a usar sobre mi base de datos (select, insert, update, etc.) MySqlDataReader cuando unicamente necesito leer lo que contienen mis tablas. MySqlDataAdapter y DataTable, cuando necesito leer/escribir lo que hay en mis tablas; En el ejemplo anterior que te di, la variable comand es simplemente un objeto de tipo MySqlCommand, al cual le asignas a la propiedad CommandText los comandos que quieras realizar sobre tu base de datos (cualquier comando que permita mysql), y luego simplemente utilizo el metodo ExecuteNonQuery() para ejecutar mi comando/consulta. Suponiendo que tengo una tabla de articulos y quiero leer toda mi tabla, despues de haber enlazado correctamente mis objetos MySqlConnection, MySqlCommand, MySqlDataReader, MySqlDataAdapter y DataTable, lo que hago en ese caso es: // Asigno mi comando en la variable command, en este caso // lectura de la tabla command.CommandText = "select * from articulos"; try { // Me conecto a la base de datos (abro la conexion) conexion.Open(); // executo el comando previo en este caso un select (lectura) command.ExecuteNonQuery(); // Cierro la conexion a mi base de datos conexion.Close(); } // Manejo de errores (excepciones) a la hora de abrir mi // base de datos o ejecutar comandos catch (MySqlException ex) { MessageBox.Show(ex.Message); if (conexion.State == ConnectionState.Open) conexion.Close(); }
Ahora, suponiendo que quiero actualizar TODOS los precios de mis articulos, en caso que hayan tenido un incremento por la inflacion, haria algo como lo siguiente: // Asigno mi comando en la variable command, en este caso // actualizacion de todas las filas de la tabla mediante UPDATE, // aumento TODOS los precios en un 10% command.CommandText = "UPDATE articulos SET articulo_precio = articulo_precio * 1.10" try { // Me conecto a la base de datos (abro la conexion) conexion.Open(); // executo el comando previo en este caso un UPDATE // (actualizacion o escritura) command.ExecuteNonQuery(); // Cierro la conexion a mi base de datos conexion.Close(); } // Manejo de errores (excepciones) a la hora de abrir mi // base de datos o ejecutar comandos catch (MySqlException ex) { MessageBox.Show(ex.Message); if (conexion.State == ConnectionState.Open) conexion.Close(); }
Si te fijas lo unico que modifico es command.CommandText, el resto de codigo es el mismo, no importa si voy a leer (select) o actualizar (update) la base de datos. Esa es la razon por la que solo te puse la sentencia command.CommandText, en mi respuesta anterior. No se necesita mas que saber que sentencia vas a utilizar, en ese caso fue un ejemplo de la utilizacion de UPDATE. Ahora, si no lo haces asi, pon el codigo que utilizas para conectarte y leer, y quizas asi podriamos ayudarte mas, aunque te recomiendo que leas un poco mas sobre SQL, asi podras comprender mejor que comandos necesitas. Saludos
482
« en: Miércoles 18 de Noviembre de 2009, 04:11 »
Me gusta la idea, aunque no he usado SQL Server, solo MySQL y actualmente estoy probando FireBird, pero seria bueno para ir aprendiendo sobre SQL Server. Yo te haria otra pregunta, que lenguaje piensas utilizar para el programa, ASP, o PHP, o ninguno de los 2 y en su lugar que otra opcion. Saludos
483
« en: Miércoles 18 de Noviembre de 2009, 04:00 »
El procedimiento que tendrias que hacer es leer la cantidad de articulos que tienes en el inventario y luego utilizar la sentencia UPDATE para actualizar la base base de datos. Te dejo un pequeño ejemplo a continuacion, suponiendo que tienes tu stock guardado en una variable llamada cantidad, (que previamente leiste mediante un select) y que la clave de tu articulo es articulo_id. La clasula WHERE es necesaria porque sin ella, UPDATE actualizaria todas las filas de tu tabla, y solo queremos que actualice aquella fila cuya clave de articulo es la clave del articulo que vas a modificar, no se si me explique bien  command.CommandText = "UPDATE articulos " + "SET articulo_cantidad = articulo_cantidad - " + cantidad.ToString() + " WHERE articulo_id = '" + articulo_id + "'";
Saludos
484
« en: Martes 17 de Noviembre de 2009, 20:53 »
En Ranking no, pero en MostrarRanking tienes 2 errores en printf debe ser: El printf, a diferencia de scanf, no necesita & Bueno, ya terminaste la parte facil, corregir los errores de sintaxis (compilacion) ahora viene lo mas dificil, corregir los errores de logica en tu programa, te deseo suerte  Saludos
485
« en: Martes 17 de Noviembre de 2009, 19:50 »
El encabezado esta mal en lugar de: void MostrarRanking(char orden1,int[] A,int CE)
debe ser void MostrarRanking(char orden1,int A[],int CE)
486
« en: Martes 17 de Noviembre de 2009, 01:43 »
Para empezar, cuando publiques codigo, utiliza las etiquetas de codigo [ code][ /code] (sin espacio) para encerrar tu codigo, hace que sea mas legible en el foro. En segundo lugar, tu codigo tiene DEMASIADOS ERRORES para corregirlo, lo que me indica que no tienes ni idea de lenguaje C/C++, por lo que te recomiendo que te consigas un buen libro de programacion en C/C++ y te pongas a estudiar, porque asi no lograras mucho, y aqui nadie te hara tu trabajo si tu no lo haces. Solo para que te des cuenta de algunos de tus errores, pondre la primera funcion de tu programa corregida, no te corregire todo el programa, pero repito, consigue un buen libro y estudia. void RevisarFinDatos (int* haydatos) { char rta; do { // en C/C++, las cadenas van entre comillas "" no entre apostrofes '' printf("Desea ingresar dato? (S/N)"); // Cuando usas scanf, debes poner el tipo de variable a leer, en esta caso %c, // indicando que es una variable de tipo char, ademas deberas usar el & antes de la variable scanf ("%c", &rta); } // Te falto ; al final del do..while while (rta != 'S' || rta != 'N'); *haydatos = 1; if (rta == 'N') { *haydatos = 0; } }
Saludos y suerte
487
« en: Miércoles 11 de Noviembre de 2009, 22:51 »
la otra seria crear en tu dll un delegado y un evento, que al cerrar el form disparara ese evento. y tu donde el formulario "padre" darte de "alta" (no recuerdo la palabra) en ese evento para que se dispare cuando cierres el Formdll.
Justamente iba a sugerir eso, pero ademas te dire que no es necesario crearlo, porque ya existe, el evento se llama FormClosed, y se genera justo cuando ya se cerro el formulario. Tambien existe el evento FormClosing, que se genera antes de que se cierre realmente el formulario, muy util para cancelar el cierre o realizar alguna accion antes de cerrar definitivamente el formulario, por ejemplo, si estas haciendo un editor de texto, y quieres que aparezca un mensaje para guardar los cambios de tu archivo antes de cerrar el programa  A continuacion las direcciones dende encontraras mas informacion FormClosingFormClosed
488
« en: Lunes 9 de Noviembre de 2009, 21:31 »
Segun lo que publicaste, te faltaria tomar en cuenta lo siguiente, para obtener el dia de la semana. 1. Agregar el numero de dias transcurridos desde el inicio del año hasta la fecha que hayas introducido. Ejemplo, si la fecha que introduciste es 25 de enero, han pasado 25 dias desde que comenzo el año y debes añadirlos. Si la fecha qe introdujiste es 3 de marzo, entonces han pasado 62 o 63 dias, dependiendo si el año es bisiesto o no. 2. Verifica en que dia de la semana comenzo el calendario gregoriano, porque me parece que no comenzo en domingo, de ser asi, habria una desviacion de dias, que debes añadir para compensar. 3. Quizas te sea mas simple usar otro algoritmo, aqui te dejo un enlace de la wikipedia, solo tendrias que pasarlo a lenguaje C++: http://es.wikipedia.org/wiki/Algoritmo_para_determinar_el_d%C3%ADa_de_la_semanaSaludos
489
« en: Martes 21 de Abril de 2009, 19:50 »
Pues no tengo el codigo completo, por lo que no lo pude compilar, y me marcaba errores, pero asi a simple vista te puedo decir, que tu error esta en el uso de punteros. Aunque hayas leido que es mejor definir los array como punteros (la razon es que los punteros trabajan mas rapido), tambien es cierto que antes de hacerlo debes entender como funciona un puntero, y cuales son las diferencias entre estos y los array. Tambien debes saber la diferencia entre un array de caracteres y un tipo string de C++, que aunque los dos nos sirven para lo mismo (representacion de "textos" o "cadenas") no son intercambiables, y antes de usarlos, debes saber como funciona cada uno. El primer error que veo esta aqui: // Aqui estas definiendo tus punteros, pero no le dices a que porcion de la // memoria va a apuntar por lo tanto, apuntara a una seccion no valida de // la memoria, que probablemente en el mejor de los casos // sea la direccion de otra variable, y en el peor, codigo de tu programa char *conv; char *conv1={"0.000000"};
y luego aqui. // estas encimando la memoria, ya que como dije antes, el puntero conv //no apunta a una zona valida de la memoria. conv[i]=data[n];
Cuando estas definiendo tu variable conv de tipo puntero a char, no le estas asignando memoria libre, por lo que el puntero esta apuntando a una porcion no valida de la memoria, que es parte de la razon por la cual tu porgrama no haga lo que tu quieres. La solucion es asignar memoria dinamica por medio de las funciones malloc() de C o new de C++. Si usas C++ entonces debes hacer lo siguiente: // Reservas 10 posiciones de memoria para tus arreglo de char char *conv = new char[10]; char *conv1 = new char[10]; // Copia el valor a tu memoria reservada. strcpy(conv1, "0.000000");
cuando termines de usar la memoria debes liberarla con delete delete conv1; delete conv;
Ahora si usas la clase string de C++ en lugar de punteros a char, se hace de otra forma, pero eso ya es cuestion tuya leer, e investigar como se hace. Como dije antes, no es lo mismo usar string que punteros a char, hay diferencias. Saludos :-)
490
« en: Viernes 17 de Abril de 2009, 19:55 »
Me parece que estas utilizando mal la funcion getline de C++, y estas confundido un poco entre la clase string, y un arreglo de char, ya que no son lo mismo. La funcion getline espera como primer parametro una variable de tipo char * (arreglo de char o puntero a char), no un string, y como segundo parametro, la longitud del arreglo, para no leer mas alla del final de la cadena entonces, la utilizacion correcta de getline seria: char nombre[50] cin.getline(nombre, 50);
Te dejo unos enlaces para que veas la sintaxis correcta de getline, y ademas que es un string en C++, que no es lo msimo que un arreglo de char. http://www.cplusplus.com/reference/iost ... m/getline/http://www.cplusplus.com/reference/string/string/Saludos
491
« en: Viernes 27 de Marzo de 2009, 20:48 »
Jejeje, ups, mi error, voy a tratar de implementar de esa forma, también se me ocurrio usar "arreglos", vamos a ver que pasa.
 Aunque uses arreglos, sera lo mismo, debes hacer lo que dice m0skit0, usar archivos para que al salir del prograna no se pierda la informacion. Saludos
492
« en: Viernes 27 de Marzo de 2009, 20:45 »
¿De verdad no se noto que era una broma? Sí se notó, hombre Aunque lo de "fuhrer" no me gustó mucho, la verdad...
m0skit0, m0skit0, cuando Eternal Idol dijo fuhrer, no se referia a ti, sino al otro usuario que dijo: Dominando us sistema UNIX-LIKE, se domina cualquier otro sistema UNIX-LIKE, las distribuciones de GNU/Linux con sus herramientas que tienen ya son muy sencillos de usar, es mejor usar un sistema sin herramientas que no nos atan a un sistema en específico y Windows es para niños.
Que si nick es fuhrer, aunque quizas no lo notaste. Saludos
493
« en: Miércoles 25 de Marzo de 2009, 03:31 »
Aqui no se hacen programas gratis ni tareas, solo se resuielven dudas especificas de programacion cuando ya tienes algo hecho. Cuando publiques el codigo que hayas hecho TU, y preguntes por algo especifico en lo que tengas duda, seguramente en ese momento, alguien te ayudara. Saludos
494
« en: Lunes 23 de Marzo de 2009, 23:56 »
Eso es una tarea, y aqui no se hacen tareas.
495
« en: Sábado 21 de Marzo de 2009, 23:04 »
ya.....pero que funcion es? Como se hace para pasar los numeritos a fechas??? para que salga en vez de 03 salga March? Solo he visto funciones para que salga la fecha actual del pc...pero no la fecha que nosotros pongamos. No existe una funcion pre-hecha que haga eso, TU la tienes que programar. Si tu fecha tiene el formato AAAAMMDD donde AAAA representa el año, MM el mes, y DD el dia, con eso ya tienes informacion para que programes esa funcion. Hay funciones en C++ que toman "fragmentos" de las cadenas y de esa forma puedes separar la cadena en 3 partes, en este momento no recuerdo cuales son, pero google es tu mejor amigo en esos casos, busca informacion sobre la clase string de C++, y de seguro encontraras la respuesta. Saludos
496
« en: Jueves 19 de Marzo de 2009, 03:10 »
No se hacen tareas.
Postea lo que hayas hecho, y con gusto se te puede ir ayudando, pero no pidas que lo hagan por ti.
497
« en: Sábado 28 de Febrero de 2009, 02:31 »
Que yo sepa no se puede, Pascal es un lenguaje "Fuertemente Tipado" que quiere decir que debes colocar el tipo de la variable, no existe algo como un tipo "Comodin" que mencionas en pascal. De seguro el libro lo que quiere decir con "AnyTipe" es que puedes definir tu variable de cualquier tipo, mas no que acepta cualquier tipo, que son dos cosas diferentes, no se si me explique. Saludos
498
« en: Sábado 21 de Febrero de 2009, 20:02 »
Pues mi respuesta seria un rotundo no. Aunque los usuarios tengan el mismo nombre y la misma contraseña, eso no importa, cada usuario esta trabajando en servidores distintos e independientes, que no se relacionan en nada, para ponertelo en forma de metafora, es como si cada servidor hablara en idiomas diferentes y no hubiera un traductor para que se entendieran entre ellos. Si se pudiera hacer, ademas constituiraia un grave riesgo a la seguridad, pues entonces cualqueir persona se podria crear un nombre de usuario que se llamara igual, pero en un servidor diferente, y acceder a tu servidor. Saludos
499
« en: Lunes 16 de Febrero de 2009, 18:41 »
No hay ningun error, lo que sucede es que en C# (y tambien en C/C++) el caracater '' se le conoce como caracter para secuencias de escape, por ejemplo, si tu pones 'n', el compilador lo interpreta como la secuencia de escape para nueva linea y rectorno de carro. Entonces, para diferenciar el '' de una secuencia de escape, en el depurador o debugger siempre te aparecera como '\', pero si tu lo mandas a imprimir, solo veras una sola '' y no 2. Saludos  .
500
« en: Martes 10 de Febrero de 2009, 02:42 »
Cualquier base de datos que use SQL te sirve para practicar (SQL server, MySQl...)
Páginas: 1 ... 18 19 [20] 21 22 ... 32
|
|
|