Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola, quisiera que me recomendarais algun programa, gratuito si es posible, para compilar y programar en c, y saber si se puede hacer programas en c, que ademas de escribir texto en pantalla pueda manejar graficos, crear entorno grafico propio y similares (como los entornos graficos de un videojuego) y como se puede programar que se muestren imagenes en pantalla con c. Igualmente agradeceria cualquier referencia a manuales lo mas completos posibles sobre programacion en c, preferiblemente en castellano.
Gracias por cualquier ayuda que me podais ofrecer.
Las librerías gráficas no suelen estar incluidas en los lenguajes, y en concreto en C/C++ no lo están, hay que usar librerías externas. Para Windows puedes usar, por ejemplo, SDL o Qt, pero si buscas en google no creo que te cueste mucho encontrar más. Si usas las que te he dicho los programas que hagas serán muy fáciles de portar a otros sistemas operativos.
De todas formas yo te recomendaría que no te lies con gráficos, primero aprende a programar en modo texto, es decir, aprende a programar de verdad, luego ya te pondrás con las ventanitas.
Efectivamente, si no usas el modo gráfico usas el modo texto, en el que sólo sale texto.
¿un programa en C podria ejecutarse sin SO como windows o Linux, sino directamente por el ordenador, al igual que se ejecuta windows o linux?
La informática no es lo mio, pero me voy a atrever a contestarte, que me corrijan si lo digo mal.
Yo diría que no puedes hacer eso (al nivel que preguntas), cuando escribes un programa, una vez terminado, lo compilas y después de pasar por unas cuantas fases acaba convertido en lenguaje máquina, es decir ensamblador, que es lo único que entiende el microprocesador de tu pc. Para poder hacer esto en principio tienes que partir de ese sistema operativo y un entorno de programación.
En todo pc para empezar tienes que tener un sistema operativo que maneje los recursos del hard y tareas, tu podrías programarte tu sistema operativo en c, ensamblador, y una vez hecho esto instalarlo en tu hard. Pero vamos sería como crear una distribución de Linux o un windows, para hacer esto hace falta entender del tema. Si programas en C un programa sobre un SO, pues este programa necesita de ese SO.
En muchos uC, uP puedes crear un sistema operativo en C desde el pc, el pc lo convierte al ensamblador del microcontrolador, y una vez convertido los grabas sobre el hardware. Aquí si tendrías tu sistema operativo funcionando sobre un microcontrolador, encargado de controlar los recursos del hard y tareas que se ejecutan, que es mucho más simple que el hardware de un pc.
Si es posible!!
Lo que ocurre es que hay que compilar el programa adecuadamente.
Los programas compilados normalmente en PC son .EXE o ELF etc, son unos ficheros con un formato determinado para que lo cargue y ejecute el SO.
Cuando encendemos el PC arranca el programa contenido en la ROM-BIOS, que carga el SO de una zona concreta del disco duro. Es posible compilar un programa en C para que se instale en esa zona del disco duro y sustituya al SO.
Evidentmente esto no es una tarea sencilla, primero hay que substituir la librería de "startup" del C (que es la que contiene la información del formato y arranque del programa bajo un SO) por otra orientada a nuestras necesidades. Luego el programa ha de instalarse en una zona concreta del disco duro para que pueda cargarlo la ROM-BIOS. Para el desarrollo de nuestro programa no podremos hacer uso de las llamadas a SO (que no existe) solo de llamadas a la ROM-BIOS.
Demasiado complejo, aunque posible. Mejor usar un SO light como linux...
En aquellos tiempos remotos en que los vándalos ibamos como motos, los viejos PC-AT se podían 'ampliar' con una EEPROM (de las de ventana, que se borraban con UV) y que se podía poner ahí el compilado del programa, de manera que no hacía falta ningún disco duro. He montado (que no programado) sistemas de estos, y funcionaban de narices, con placas base muy viejas de 'reciclado', actuando de concentradores de puertos serie.
Nada fácil de programar.
Beamspot.