|
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 - Elforious
1
« en: Lunes 28 de Julio de 2008, 01:20 »
Tienes 2 opciones, una declarando la función como un puntero a un puntero (int **LoaQueSea()), la otra sería mandando la matriz por referencia a tu función.
Espero haber ayudado.
2
« en: Domingo 27 de Julio de 2008, 17:27 »
Aparentemente a mi me funciona bien.
Prueba sacándole los corchetes que hacen bloques y poniendo el "Desea salir?" después del switch, y me avisas.
Espero haber ayudado.
3
« en: Sábado 26 de Julio de 2008, 19:22 »
Si tu archivo es de texto, tendrías que leer letra por letra (es el único método que conozco), y por cada palabra que leas, según los separadores, le metés toda la palabra a tu vector. El método más entendible que conozco para hacer vectores de cadenas, a parte de la matriz, es con el tipedef: typedef char Cadena[101]; // Tipo de dato Cadena Vector_Cadena[10]; // Declaración de la variable
Lo que hice fue crearme un tipo de dato "Cadena" que es una cadena de 100, si contar con el ' ', y con ese tipo de dato me creé un vector de 10 posiciones, donde en cada posición hay una cadena de 100. A mi me parece mejor, por que lo manejo como un vector simple. Espero haber ayudado.
4
« en: Sábado 26 de Julio de 2008, 07:04 »
Lo que pasa es que la función atoi() no devuelve valores buleanos (verdadero o falso), devuelve valores enteros.
Te recomiendo que hagas una funció que recorra todo el vector de char y te diga si es un número o no, preguntándote si Cadena[Contador] > '9' && Cadena[Contador] < '0' .
Espero haber ayudado.
5
« en: Sábado 26 de Julio de 2008, 06:46 »
Lo que pasa es que en los for estás empezando desde 1 y te estás saliendo de la matriz. Los vectores en C empiezan en la posición 0. Tendrías que hacer los for así: Espero haber ayudado.
6
« en: Viernes 25 de Julio de 2008, 08:01 »
Pero recuerda que cuando definís un puntero con new, tenés que eliminarlo con delete. **mat = new float[filas]; // demás código... delete mat;
Variable dinámica que creas, variable dinámica que destruyes.
7
« en: Miércoles 23 de Julio de 2008, 19:16 »
Para mi es más eficiente colocar los #iclude<> en el .h, por el hecho de que los tenés que poner entre los if: #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #iclude<...> #iclude<...> #iclude<...> //--------------------------------------------------------------------------- #endif
y así tu ejecutable va a ser más liviano (eso creo), por que no va a compilar el mismo código de la misma unidad más de una vez. ¿es obligatorio insertar en el fichero miClase.cpp la directiva #include <miClase.h>? Si, si tienes funciones declaradas en el .cpp que están definidas en el .h , y además estás llamando desde otra unidad. Espero haber ayudado.
8
« en: Jueves 10 de Julio de 2008, 17:04 »
Recuerdo haber hecho ese algoritmo recursivo, pero en un vector, me inspiré en el QuickSort jeje.
Con respecto a la lista enlazada, creo que se refiere al código compuesto, y que tienes que realizar la búsqueda en varias listas según lo que vas encontrando en la anterior.
Espero haber ayudado.
9
« en: Jueves 10 de Julio de 2008, 16:45 »
Tu código me confundió un poco, creo que no estás leyendo el código en la variable "Codigo", sino en "Registro.Cod" (no estoy seguro de lo que hace tu función "Leercod()"), y estarías comparando al código con basura en el if if(strcmp(Registro.Cod,Codigo)==0)
Creo que tu problema está en que sie estás usando el gotoxy() en tus funciones de Leer, para el código le estás mandando una posición demás. (eso creo) Te aconsejo estructurarlo mas, puede ser en dos funciones más: Recoger_Datos (mandando al registro por Referencia y una cadena larga para registrar los errores) y Grabar_Datos (mandando al registro para guardarlo), y si en Recoger_Datos no se repite el código y demás cosas, muestras el error ocurrido grabados en la cadena. Algo así: // Suponiendo que tu tipo registro es "rA" void IngresarRegAlumno() { rA Registro; char Error_Generado[200]; Recoger_Datos(Registro, Error_Generado); // Para la lógica con el Interfaz if(strlen(Error_Generado) == 0) { Grabar_Datos(Registro, Error_Generado); // Para la lógica con el Archivo } if(strlen(Error_Generado) > 0) { cout << Error_Generado; } else { cout << "Guardado!"; } }
Espero haber ayudado.
10
« en: Sábado 14 de Junio de 2008, 18:35 »
Para pasar de char a int, tambien está la funcion "StrToInt(<cadena>);", que funciona igual que atoi().
Espero que te sirva.
11
« en: Jueves 12 de Junio de 2008, 04:40 »
Ya solucione el problema , por si a alguien le sirve se puede comparar de la siguiente manera: void __fastcall TForm1::StringGrid1KeyDown( TObject *Sender, WORD &Key, TShiftState Shift) { if(Shift.Contains(ssShift)) // ssShift es un valor que puede tomar el TShiftState. { ShowMessage("Estás presionando shift."); } }
Solo necesitava saber como usar el Tshiftstate, así ahora puedo saber cuáles celdas están enfocadas en la grilla. Gracias de todos modos.
12
« en: Miércoles 11 de Junio de 2008, 19:17 »
Hola, estoy haciendo un programa de movimientos de items, los cuales listo en un TStringGrid; en el mivimiento de un solo item, no tengo problemas, pero tengo que mover varios items de un solo saque, y para eso estaba pensando en usar el evento OnKeyDown con el propósito de saber cuáles celdas están enfocadas mediante el TShiftState, pero no se cómo usarlo, ni siquiera la ayuda del Borland me da un ejemplo, o al menos no lo he visto; estaría muy agredecido que me ayudaran con este problema. Ya intenté usar otros eventos con variables globales y todo eso pero siempre encuentro un tumbe feo que lo caga diarreicamente todo , jejeje. Gracias por su atención.
13
« en: Miércoles 11 de Junio de 2008, 15:22 »
Ya intentaste abrir el archivo que se guarda como "Proyect" y hacerle click a Yes a todos los mensajes que salen, como Homero Simpson jejeje, yo siempre lo hago así y nunca me ocasionó problemas.
14
« en: Viernes 30 de Mayo de 2008, 04:17 »
Creo que lo que buscas está en "Object Inspector", "Options", "goEditing = true";
y si querés que no se pueda editar una sola columna (fila) o varias, te vas al evento "OnKeyPress", y le dices que, por ejemplo, si (StringGrid1->Col == 0) entonces Key = 0;
Espero haber ayudado.
15
« en: Jueves 22 de Mayo de 2008, 22:25 »
Creo que si la conertís a string otra vez te sale bien, usando DateToStr().
Espero haber ayudado.
16
« en: Martes 20 de Mayo de 2008, 17:36 »
Si, solamente tenés que ponerle el \n (ENTER): ShowMessage(" Hola\n esto es una prueba");
Espero haber ayudado.
17
« en: Martes 13 de Mayo de 2008, 02:52 »
Tal vez lo que buscas es "extern". Si tienes una variable global en una unidad, y la quieres utilizar en otra, declarás esta variable en el ".h" de la unidad origen, y en el ".cpp" de la unidad destino la declarás con "extern" (obviamente incluyendo la unidad origen en la destino): // Unidad_Origen.h int Variable_Global;
// Unidad_Destino.cpp extern int Variable_Global;
Al menos así yo lo hago... Espero haber ayudado.
18
« en: Jueves 8 de Mayo de 2008, 01:04 »
Yo también estaba buscando eso, y como no lo encontré, declaré una variable entera global que se inicializa en cero, para decir que no lo presionaron, y uno para decir que si, y cuando lo apreto otra vez se vuelve cero, y así sucesivamente...
También puede ser booleano, eso está a tu criterio...
Espero haber ayudado.
Si encuentras la función, me avisas...jejeje.
Saludos.
19
« en: Lunes 28 de Abril de 2008, 18:56 »
2.- Si entiendo bien, del Form1 sale el Form2, entonces cuando hagas clic en el botón del Form1 para abrir al Form2: y cuando hagas clic en el botón del Form2 para cerrarlo: Si estás haciendo eso y no funciona, debe ser por el ShowModal(); si es eso cambia a ShowModal() por Show()... Espero haber ayudado...
20
« en: Viernes 18 de Abril de 2008, 00:04 »
Gracias por la ayuda, no respondí antes por que mi Internet se cagó , jejeje, pero me surgió otra duda, ¿cómo hago para borrar la imagen de BitBtn?, para simularlo me creé otra imagen muy pequeña (casi un punto) del mismo color de fondo del botón, pero yo creo que existe una función o propiedad del BitBtn que libera a la imagen cargada.... Gracias por su atención. EI: Juntando mensajes.Ya encontré la solución! , la pongo acá por si le sirve a alguien: BitBtn1->Glyph = NULL;
Así libero a la imagen del BitBtn. Le pongo NULL por que cuando abro un archivo (Bitmap) que no existe me retorna NULL, y si yo quiero que ya no tenga al archivo cargado le pongo NULL. Saludos.
21
« en: Jueves 17 de Abril de 2008, 14:51 »
Lo que yo haría, suponiendo que ya tengo cargado al vector, sería: void Calcular_Promedio_Recursivo( int Vector[], int Pos_Cargadas, int &Suma, int &Pos_Actual) { if(Pos_Actual > Pos_Cargadas) { int Promedio = Suma / (Pos_Cargadas-1); printf("%d", Promedio); } else { Suma = Suma + Vector[Pos_Actual]; Pos_Actual++; Calcular_Promedio_Recursivo( Vector, Pos_Cargadas,Suma,Pos_Actual); } }
No lo prové por que lo hice a la rápida.... Espero haber ayudado.
22
« en: Lunes 14 de Abril de 2008, 01:04 »
Hola, mi duda sobre el BitBtn es que quiero saber la dirección física de la imágen cargada al Glyph para compararla con otra dirección física, solo me gustaría saber si es que existe alguna función que me devuelva esta dirección física...
Si alguno me pudiera ayudar estaría muy agradecido...
Gracias por su atención.
23
« en: Lunes 14 de Abril de 2008, 00:36 »
La división de matrices no existe, o al menos todavía se a determinado matemáticamente; de las inversas, tendrías que calcularla usando Álgebra Lineal, osea, haciendo reducciones por renglones o demás métodos...
Tendrás que chekear un libro de Álgebra Lineal, yo te aconsejo el de Stanley Grossman, es un libro muy bueno...
Si tenés dudas del código, las ponés acá...
Espero haber ayudado...
24
« en: Lunes 14 de Abril de 2008, 00:08 »
Lo que se me ocurre en este momento, sería que declares a "nuevacadena" en el main y que le mandes "nuevacadena" por referencia a "FuncionExtraer" y así la podes usar, con los datos cambiados, en "Funcion2"...
Espero haber ayudado...
25
« en: Viernes 11 de Abril de 2008, 18:15 »
Tienes varios errores de sintaxis y uno que otro de lógica, hasta después de definir la función "imprimir_juegosudoku" está bien excepto en el punto y coma cuando la definís; después de eso, tienes muchos errores, por ejemplo en: printf("digite los los valores de la posicion fila columna y luego el numero a poner"); scanf("%d",f,c,d);
Tienes que hacer un printf y scanf para cada uno, y el scanf funciona con & antes de la variable( scanf("%d",&f); ), por lo que mandas la variable por referencia... Otro error de lógica está dentro del for en esta misma finción función "recoge_datos": if(tabla[f][c]==tabla[f][j]||tabla[f][c]==tabla[i][c]) printf("no se puede ubicar este numero aqui\n");
Por que si la condición no se cumple, te imprime hasta que se acbe el for; tampoco l¡no le mandas los parámetros necesarios. Organiza bien tu código y revisalo... Espero haber ayudado.
|
|
|