|
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 - Geo
Páginas: 1 ... 29 30 [31] 32 33 ... 41
751
« en: Jueves 11 de Mayo de 2006, 02:14 »
Me parece que con funciones estándar no lo vas a poder hacer, no hay ninguna que detecte la pulsación de una tecla (que es lo que necesitas). Con las funciones getche y getch de conio.h de Borland, puedes detectar la pulsación de una tecla, obtener el caracter pulsado y, así, llevar la cuenta de cuántas letras se han introducido y permitir o borrar el caracter introducido por el usuario. Por los encabezados que tienes me parece que estás trabajando con Turbo C++, por tanto puedes hacer uso de estas funciones. Si no usas este compilador, una opción sería buscar alguna función de la API de Windows que detecte la pulsación de una tecla, aunque ya la he buscado y no la encontré . Saludos, José Jorge (Geo).
752
« en: Miércoles 10 de Mayo de 2006, 06:35 »
Primero, nunca he programado en C# , luego, pienso que puedes hacerte una función que reciba el número y devuelva el color. En la creación de e.foreBrush usas dicha función para obtener el color. Saludos, José Jorge (Geo).
753
« en: Miércoles 10 de Mayo de 2006, 06:17 »
Explica un poco mejor qué es lo que deseas hacer. Puedes usar los dos programas en secuencia, uno tras otro. ¿O quieres hacer uso en un programa de las funciones en el otro (entonces se hace así precisamente: con funciones)? ¿O qué?
Saludos, José Jorge (Geo).
754
« en: Lunes 8 de Mayo de 2006, 02:10 »
JuanK se va a enojar... . Saludos, José Jorge (Geo).
755
« en: Domingo 7 de Mayo de 2006, 20:17 »
756
« en: Miércoles 3 de Mayo de 2006, 20:15 »
En Sourceforge basta con que se trate de un proyecto de código abierto.
Saludos, José Jorge (Geo).
757
« en: Miércoles 3 de Mayo de 2006, 00:16 »
¿Sigue usando CONIO?
Completamente de acuerdo con su -, si buscas más audiencia y, siendo libre, puedes intentar colocarlo en uno de los servidores que comenta.
Saludos, José Jorge (Geo).
758
« en: Lunes 1 de Mayo de 2006, 21:01 »
Y desde el 19 de Abril todas las versiones Express de Visual Studio son gratuitas para siempre. Es un hecho que esta opción le ha dado muchos beneficios a MS, y un acierto de su parte el hacerlas completamente gratuitas (hasta antes de este anuncio las versiones iban a estar disponibles para descarga gratuita hasta el 5 de Noviembre de este año). Saludos, José Jorge (Geo).
759
« en: Lunes 1 de Mayo de 2006, 20:47 »
XD No manches Ya en serio, para lo del tiro, puedes hacer una secuencia de tiros predeterminados, la encapsulas en una función y la llamas después de que el jugador haga un tiro. Con esto el jugador siempre empezaría el juego, para que la máquina inicie, al empezar la partida haces una llamada a tu función de tiro. Saludos, José Jorge (Geo).
760
« en: Domingo 30 de Abril de 2006, 19:53 »
Saludos a todos los de este foro, tengo unas dudas de como hacer un programa que tome un valor de x como entrada y visualice la suma para cada uno de los valores 1 a 100. Si alguien sabe como hacerlo sera de mucha ayuda. ¿Y cuáles son esas "unas dudas"? Saludos, José Jorge (Geo).
761
« en: Domingo 30 de Abril de 2006, 07:26 »
Te repito, Dev-Pascal es un IDE, o más simple: un editor de texto con comandos para compilar fácilmente tus programas. Para convertir los programas (archivos de texto) a ejecutables, necesitas hacer uso de un compilador, allí entra FreePascal.
Teniendo el compilador, el IDE no es tan necesario (puedes editar los programas usando cualquier editor de textos como el Bloc de Notas), pero facilita mucho el trabajo.
Saludos, José Jorge (Geo).
762
« en: Domingo 30 de Abril de 2006, 06:44 »
¿La suma la realizas dentro de la función simple, verdad? Allí estás realizándola mal pues estás almacenando el resultado de un par de elementos contiguos de vr en cada posición de st, no estás realizando la suma de todos los elementos de vr. Para hacerlo simplemente inicializa una variable en 0, realiza el ciclo y súmale a dicha variable el contenido del array vr en la posición indicada por tu variable contador en el ciclo. A mi me parecería mejor algo como esto: float lasX[] = { 140, 159, ... }; float suma = 0; for ( int x = 1; i <= n; i++ ) { suma += lasX[ i - 1 ]; } // La suma está en la variable suma, // ahora la dividirías entre n: float resultado = suma / n;
Saludos, José Jorge (Geo).
763
« en: Sábado 29 de Abril de 2006, 20:10 »
Dev-Pascal es un IDE, un entorno de desarrollo que consta de un editor de código y algunas herramientas para trabajar más cómodamente al desarrollar programas. Dev-Pascal puede trabajar con el compilador FreePascal, o sea, son cosas distintas. Es algo similar a la confusión que tienen muchos cuando dicen que utilizan Dev-C++ como compilador . Saludos, José Jorge (Geo).
764
« en: Sábado 22 de Abril de 2006, 04:36 »
Tu problema está con la variable b al momento de cada ciclo de conversión, nunca la inicializas y, por tanto, cada ciclo tiene un valor mayor y no el que esperas. Simplemente, antes de cada ciclo inicialízala a 0.
También, es buena idea inicializar el array v, aunque si la variable b tiene el valor correcto, quizá no tengas problemas.
Un consejo: ASEGÚRATE de que una variable (contadores, especialmente) tiene el valor inicial que tú supones que debería tener (hay que inicializar TODO para evitar errores como este o aún más sutiles).
Saludos, José Jorge (Geo).
765
« en: Sábado 22 de Abril de 2006, 03:05 »
Vamos por el principio, ¿qué compilador/entorno estás utilizando? Lo que se ha supuesto es que ejecutas el programa desde el mismo entorno, se abre una ventana de consola, aparece el mensaje, ingresas el número e inmediatamente desaparece la ventana. Esto porque no hay una instrucción que detenga la ejecución al final para que puedas ver el resultado antes de que se cierre la ventana (comportamiento por defecto de las ventanas de consola en Windows). Para ello utiliza una de las funciones que aquí te han sugerido. El otro método que mencionó juank, es que abras una ventana de consola de Windows (Menú Inicio -> Ejecutar -> cmd (preferible) o command), vayas al directorio/carpeta donde está tu ejecutable y lo llames. Ya sea que soluciones tu problema, haz esto para que aprecies mejor qué es lo que ocurre . Saludos, José Jorge (Geo).
766
« en: Viernes 21 de Abril de 2006, 04:59 »
No entiendo. ¿Qué tiene que ver Delphi? El Dev-C++ está hecho en Delphi, pero eso no importa, es simplemente el IDE, el trabajo grande lo hace el compilador, MinGw. El tema empezó por una comparación del tamaño de ejecutables generados por Delphi contra los generados con VC++. No he usado Delphi lo suficiente, pero la única prueba de tamaño que hice fué generar un proyecto vacío y crear el ejecutable, por supuesto que salía más grande pues no configuré ninguna opción para optimizarlo . Saludos, José Jorge (Geo).
767
« en: Miércoles 19 de Abril de 2006, 02:47 »
Borrar toda la línea en donde vas a imprimir el texto. Un contador desde la última columna de la pantalla hasta la primera, para cada vez que avances, otro contador para el tamaño de la cadena a mostrar. Imprimir la cadena caracter a caracter, antes de imprimir checar si no estás fuera de la pantalla. Hacer un pequeño retardo. Volver a empezar. Más o menos con este flujo de acciones podría funcionar (habría que probar y revisar para corregir u optimizar), el problema es cómo moverte a la posición deseada de manera fácil, si trabajas con Turbo C para DOS, aprovecha la función gotoxy declarada en conio.h; si trabajas en Windows usa las funciones de la API como SetConsoleCursorPosition; si trabajas en Linux no sé, y menos aún si deseas que sea multiplataforma . Saludos, José Jorge (Geo).
768
« en: Miércoles 19 de Abril de 2006, 02:32 »
Hola Geo, muchas gracias por responder y gracias tambien por la ayuda que le das a todos aqui, mira yo uso el DEV C++, este IDE te pone en la pantalla las librerias que usualmente se usan, es por ello que las librerias estan asi como se ven, Yo uso Dev-C++ y esto es lo que te pone cuando creas un nuevo proyecto de aplicación de consola con C++: #include <cstdlib> #include <iostream> // Esta es la forma de incluir cabeceras estándar using namespace std; int main(int argc, char *argv[]) { system("PAUSE"); return EXIT_SUCCESS; }
lo que yo ando buscando con este codigo es aprender a trabajar vectores y matrices pero mandandolas a un funcion o procedimiento para asi trabajar todo por separado y no complicarme la vida con una forma estructurada tradicional, aunque está tambien es una forma estructurada de trabajar pero con funciones y procedimientos se hace mas leible el codigo, corrijeme si me equivoco Eso que mencionas es precisamente la programación estructurada: dividir una gran tarea en pequeñas subtareas, y si alguna subtarea es medianamente grande pues también dividirla en más subtareas (aunque tampoco hay que exagerar demasiado), tratando de que las subtareas sean lo más generales posibles (cuando se pueda) de manera que puedan aprovecharse el mayor número posible de veces. entonces lo que quiero entender es como mandar un vector o matriz de forma dinamica y no estatica para aprovechar espacio en memoria, a un procedimiento o funcion para asi trabajarlo dentro de la funcion o proced. y luego regresar al main y seguir con el siguiente procd. o func. Lo que haces es en cierta forma correcto, una función que reciba como parámetro un array (vector) sería como una de estas (su declaración/prototipo): tipoRetorno recibeArray( elArray[], int tamanioArray ); tipoRetorno recibeArray( *punteroAlPrimerElemento, int tamanioArray );
Aquí es necesario pasar el tamaño como parámetro pues no hay forma de saberlo de otra manera. El array se pasaría más o menos así: #define TAM_ARRAY 5 int miArray[ TAM_ARRAY ] = { 0 }; ... recibeArray( miArray, TAM_ARRAY );
Ahora, esto es básico para entender cómo trabajan los punteros y su relación con los arrays. Pero una mejor implementación sería crear un tipo de dato nuevo que encapsule el comportamiento de un vector o de una matriz (en la biblioteca del C++ estándar ya se tiene una forma de implementar vectores). Por ejemplo, para manejo de matrices de enteros podrías usar algo como esto (es precisamente lo que estoy haciendo ahora para un pequeño programa de operaciones sencillas de matrices): struct MATRIZ { int filas; int columnas; int* datos; }; tipoRetorno recibeMatriz( MATRIZ *laMatriz );
Aquí, ya no necesitas pasar el tamaño pues de eso te encargarías en la parte donde creas la matriz. Nota: esto que pongo es una struct al estilo C, en C++ puedes crear un objeto Matriz (una clase) con todos los métodos (funciones) para manejarse. Por último, te recuerdo nuevamente, te recomiendo mucho que te consigas un libro (o busques un buen tutorial, como este: http://c.conclase.net/curso/index.php), avanzarás más rápido leyendo/practicando un poco por tu cuenta y preguntando de vez en cuando (o a menudo, si lo amerita) por aquí . Saludos, José Jorge (Geo).
769
« en: Miércoles 19 de Abril de 2006, 02:04 »
* indica que el parámetro recibido es un puntero al tipo de dato indicado. La función malloc te permite "reservar memoria" de manera dinámica (en tiempo de ejecución) y se asigna a un puntero. Esto está relacionado con el manejo dinámico de la memoria, y se usa generalmente para cuando se desea cambiar el tamaño de alguna colección de datos en el momento en el que se ejecuta el programa. Un ejemplo sencillo sería con un array de 5 enteros, lo puedes declarar así: o así: int *miArrayDinamico; // Declara miArray como un puntero a int. miArray = malloc( 5 * sizeof( int ) );.
La instrucción malloc reserva 5 veces el número de bytes ocupados por un dato de tipo int, y hace que el puntero miArray apunte al primer elemento reservado. Después, las operaciones tanto con miArray como con miArrayDinamico son similares. Saludos, José Jorge (Geo).
770
« en: Miércoles 19 de Abril de 2006, 01:28 »
Recibes lo que el usuario teclea, lo concatenas y el resultado final lo pasas a la llamada al sistema. Otra forma, podrías pasar a trabajar con funciones de la API de Windows, checa en http://msdn.microsoft.com referencia sobre funciones de la API (no he usado para lo que quieres, pero es probable que allí estén ). Saludos, José Jorge (Geo).
771
« en: Martes 18 de Abril de 2006, 05:52 »
Puedes ir contacatenando cada una de las partes mediante strcat(); y pasar a la función system el resultado final.
Saludos, José Jorge (Geo).
772
« en: Martes 18 de Abril de 2006, 05:23 »
¿Podrías comentar cómo lo solucionaste o cuál era el problema? Puede servir más adelante para alguien que se encuentre en la misma situación.
Por cierto, tu página sobre la API Win32 está muy buena, el único detalle que le encontré es cuando voy a una sección, al darle clic al enlace para ir a la página de Inicio me la abre en una nueva ventana, creo que debería abrir en la misma ¿no?
Saludos, José Jorge (Geo).
773
« en: Martes 18 de Abril de 2006, 05:00 »
Estuve revisando este famoso programita y descubri que no esta (o no la veo) la opcion de testear los programas, ya que no los compila. En una palabra, es un programa que muestra 50 sintaxis distintas. Es porque se trata de editores, no de entornos de desarrollo. Un entorno de desarrollo por lo regular está más orientado hacia un solo lenguaje (quizá con la opción de manejar varios compiladores, como Code::Blocks). Sin embargo este tipo de editores son muy útiles cuando no necesitas demasiadas herramientas, cuando sólo quieres trabajar con un archivo, para hacer pruebas, porque te agrada su interfaz, porque trabajas en un entorno con poca capacidad, etc. ¿No sabes qué es Gimp? Aquí lo explican: http://es.wikipedia.org/wiki/GIMP, y aquí lo consigues: http://www.gimp.org/¿De qué es el link que pusiste? Saludos, José Jorge (Geo).
774
« en: Lunes 17 de Abril de 2006, 06:23 »
Cuando tengas problemas al compilar, lo mejor es tratar de incluir también los errores que te mostró el compilador (en la ventana de salida, clic derecho-> copiar). Allí es donde se ve con claridad de qué es lo que se queja el compilador . Viendo rápido tu código, me parece que el primer parámetro de la función carga está mal, debería ser algo como vector[] ó *vector. También, en la función impresion, declaras un puntero a double (vectorimp) que al parecer pretendes utilizar como vector, pero nunca reservas memoria para dicho vector. También, en el C++ estándar, el archivo de cabecera es <iostream> y no <iostream.h>, además de que la función (bueno, instancia) cout está dentro del namespace (espacio de nombre) std, por lo que para usarlo tiene que ser algo como esto: #include <iostream> using std::cout; using std::endl; ... cout << "Hola amigos de Solo Codigo" << endl; ...
o #include <iostream> ... std::cout << "Hola amigos de SoloCodigo" << std::endl; ...
Si no estás en un curso, te convendría comprarte un libro (yo me compré uno, también estoy aprendiendo C++, pero ya manejo más o menos C y los punteros), o también (aunque siempre es mejor un libro), puedes buscar algún tutorial aquí. Saludos, José Jorge (Geo).
775
« en: Lunes 17 de Abril de 2006, 05:48 »
gracias . una pregunta el dx y el opengl corren en linux? cluster: DirectX es solo para Windows (bueno, y para aquello que tenga que ver con Microsoft, como el Xbox), OpenGL es un estándar abierto (no de código abierto, sino de especificaciones abiertas), por lo que quien desee puede crear una implementación para su plataforma (y las hay para Linux, Windows y más). Por tanto, si tu interés está en crear aplicaciones para varias plataformas, OpenGL es la elección. Gracias por el enlace juank, por curiosidad lo había estado buscando pero no lo encontré . Tengo una duda, ¿de qué versión de DirectX se trata? ¿O ahora sólo se conoce por el mes/año? Disculpen la torpeza pero es que nunca he trabajado con DirectX, aunque quizá dentro de poco me ponga con ello . Saludos, José Jorge (Geo).
Páginas: 1 ... 29 30 [31] 32 33 ... 41
|
|
|