C++ Mas a fondo, Basico y avanzado

Estado
No está abierto para más respuestas.

JuanSebastian_

Lanero Reconocido
Se unió
6 Jun 2002
Mensajes
1,632
Yo quisiera aprender, pero no sé como empezar :(...
 

MigPosada

Lanero Reconocido
Se unió
16 Mar 2002
Mensajes
1,161
Originalmente colocado por ic_satanas
no mijo! yo soy bogotano.. y lo peor es q estoy viviendo en chile!! jajajaja
bueno ahi me baje uno q no me instalo.... :diablo: entonces voy por otro.
Bueno les queria hacer de una vez un par de preguntas:
1. como funciona la funcion do?
2. uno puede poner en #define una funcion? hay otro comando o no?
3. hay librerias q permitan incluir graficas? se pueden meter en una variable? (como para imprimir cout<<c; y q salga una imagen?)
4. como se le asigna una tecla a una accion espesifica? (por ejemplo esc para salir)
5. hay algunas forma de introducir uno de esos campos para q la persona pueda meter un valor (osea q no salga igual a lo escrito por el programa)
6. se pueden meter colores y formas a los textos (cout)
1. "do" funciona de manera similar a "while" (que son operadores del lenguaje y no funciones). Permiten repetir una serie de instrucciones mientras se cumpla una condición.

while( condicion )
{
// LO QUE SEA QUE HAGA
}

do
{
// LO QUE SEA QUE HAGA
}
while( condicion);

Como te puedes dar cuenta, la unica diferencia consiste en que "do" siempre se ejecuta al menos una vez, mientras que en el "while" tiene que cumplirse la condicion antes de que se ejecute el codigo interno al menos una vez.

2. #define es una orden del preprocesador. Las ordenes del preprocesador son ejecutadas antes de que se compile de verdad el programa. Con #define lo que haces es nombrar macros o "alias". Por ejemplo si pones
#define MI_NUMERO 56
entonces el preprocesador pondra en tu código el numero 56 en todas las partes donde encuentre MI_NUMERO.
No solamente puedes usar #define para poner nombres a valores determinados, sino también para crear "macro funciones" que no son funciones realmente, sino que (de manera similar a lo anterior) el preprocesador reemplaza el código en donde sea que lo encuentre. Por ejemplo:
#define MI_FUNCION_MACRO(numero1,numero2) numero1 + numero2
Entonces si colocas MI_FUNCION_MACRO(2,3) el preprocesador lo reemplazara con 2 + 3.
Recuerda que el preprocesador actua antes de que se compile en realidad el código fuente.

3. C++ es el lenguaje usado para el 99% de los juegos de computadora, ¿qué te dice ese dato?
El problema con los gráficos es que no se realiza de manera igual en todas las plataformas (es decir, en todos los compiladores y sistemas operativos), cosa que no ocurre en otros lenguajes como Java (pero que tienen que sacrificar muchas virtudes que tiene C++ por eso).
En C y C++ puedes crear tus propias funciones de gráficos comunicandote directamente con el hardware o con los drivers de los dispositivos, pero un programador normalmente utiliza librerías para gráficos o APIs (Application Programming Interface).
Entre las librerias una de las mejores alternativas es Allegro, que no solo sirve para gráficos, sino para manejar joysticks, sonido, música, videos, etc. Y además Allegro es multiplataforma.
Entre las APIs las más reconocidas son DirectX y OpenGL. OpenGL es más fácil de aprender, pero DirectX tiene mayores capacidades (actualmente) en sistemas Windows.

Para ponerte una idea de como funciona una libreria de gráficos sencilla como Allegro:
tu cargas el gráfico desde un archivo bmp, pcx, o lo que sea.
BITMAP * mi_grafico = loadbitmap("miarchivo.bmp");
y después indicas en que coordenadas quieres dibujar en la pantalla.
drawsprite(mi_grafico,23,23);
Creo que no es así exactamente, pero te da una idea.

Cabe anotar que ni cout ni ninguna de esas clases ó funciones convencionales te serviran para gráficos.

4. Normalmente no le asignas a una tecla una acción, más bien esperas a que el usuario presione la tecla para efectuar la acción.

5. Primero tenemos que aclarar si estamos trabajando en modo texto (MS-DOS) o si hablamos de aplicaciones con interfaces gráficas.

6. Con cout no puedes hacerlo, pero si con las funciones de conio.h y stdio.h. De todas maneras yo te recomedaría no apegarte mucho al modo texto, esa es la razón por la cual la gente suele desconocer lo que es capaz de hacer C++.
 

ic_satanas

Lanero Reconocido
Se unió
23 Jun 2002
Mensajes
344
oigan un favor gigante! miren lo q aparece cuando trato de complirar............ sera q no trae un compilador incluido el visual c++? como hago?
gracias
 

Adjuntos

ic_satanas

Lanero Reconocido
Se unió
23 Jun 2002
Mensajes
344
como soy de idiota... gracias
oe pero el clrscr() no me sirve!! q pasa!! tengo puesto el conio.h y todo!!
 

noseman

Lanero Reconocido
Lanero VIP
Se unió
21 May 2002
Mensajes
749
eso si no se, yo no utilizo eso, pero una vez ensalle y nada. esperemos que mig responda, aunque creo que ya lo hizo.
 

MigPosada

Lanero Reconocido
Se unió
16 Mar 2002
Mensajes
1,161
Aquí estoy!

El clrscr() no funciona en Visual C++, efectivamente, eso era para MS-DOS.

Estoy buscando un sustituto.
 

dpanesso

Lanero Reconocido
Se unió
28 Ago 2002
Mensajes
73
Una Pregunta

Hola Mig era para hacerte una pregunta, lo que pasa es que estaba usando el Visual C++ 6, y no me manje la libreria <string> para nada bien me toco pasarme a Dev C++, y cuando pase todo mi codigo el Dev si lo cogio bien y pude usar los strings bien, que pasa con eso, porque Visual no me maneja los strings????
 

MigPosada

Lanero Reconocido
Se unió
16 Mar 2002
Mensajes
1,161
No pude encontrar un reemplazo para clrscr() en Visual C++, pero repito, es que ya no trabajo en consolas de texto.

Sobre la libreria string, recuerda tener en cuenta esto:

#include <string> // NO string.h

using namespace std; // Para que el compilador sepa que existen "string" y otras clases

// y ahora si
//...

string micadena = "Hola";

// Y todo lo demás
 

MigPosada

Lanero Reconocido
Se unió
16 Mar 2002
Mensajes
1,161
Such is life.

Pero si debe existir un sustituto. El problema no es solamente de Visual C++, Linux tampoco soporta conio.h
 

[Hv_Chronozx]

Lanero Reconocido
Se unió
3 Oct 2002
Mensajes
475
linux tampoco soporta conio.h??? uyyyy.... esa si no me la sabia mig... podes aclarar ese punto !!!!
 

MigPosada

Lanero Reconocido
Se unió
16 Mar 2002
Mensajes
1,161
Sencillo: escribe esto

Código:
#include <conio.h>

int main()
{
  return 1;
}
Y obtienes como error: "conio.h: No existe el fichero o directorio"

Así de simple. Linux no lo tiene.
 

MigPosada

Lanero Reconocido
Se unió
16 Mar 2002
Mensajes
1,161
El Visual C++ no tiene la función clrscr(). Si te deja colocar #include <conio.h>, entonces tiene ese archivo de cabecera, pero no necesariamente todas las funciones de este.
 

AFQR-BARBAX

Lanero Reconocido
Se unió
26 Dic 2001
Mensajes
448
Según el profe que me da estructuras de datos me dice el que clrscr(); no sirve en Visual C++, porque disque este esta orientado a objetos y esta instrucción no se emplea en prog. orientado a objetos.

Señor Mig. Posada como borro yo la pantalla en Visual C++???
 

MigPosada

Lanero Reconocido
Se unió
16 Mar 2002
Mensajes
1,161
Puede ser una buena razón, pero sólo los programadores de Microsoft sabran la verdadera razón por la cual no incluyeron esa función.

Sobre tu pregunta, no te la puedo responder, pero te quiero mencionar algo importante:

Visual C++ NO está diseñado para hacer aplicaciones en consola (como si fuera MS-DOS), sino para hacer aplicaciones completas de Windows (como los programas y juegos que utilizas a diario).

Si quieres hacer programas a la antigua, Visual C++ no es el compilador que debes utilizar.
 

Static

Lanero Reconocido
Se unió
21 Feb 2002
Mensajes
800
aja para porgramar aplicaciones en consola es bueno el DJGPP, no?
 
Estado
No está abierto para más respuestas.
Arriba