Ayuda con C++, Ejercicio Simple [Soy Novato]

Iniciado por xmbeat92, 30 Septiembre 2010, 08:22 AM

0 Miembros y 2 Visitantes están viendo este tema.

xmbeat92

Buen dia/noche foreros, pues la verdad yo he programado en vb y pues siempre me ha interesado c++, y finalmente hoy he decido empezar, me descargue el codebloks, devc++ y un tuto, y todo bien conforme a la lectura, pero un ejercicio propuesto q tenia el libro lo pegue en el dev y no quiso correr, me arrojaba unos warnings y no se q mas (no estoy familiarizado), este es el code:
Código (cpp) [Seleccionar]

#include <iostream.h>; // librería para uso de cout
int main() // función principal
{
int i = 1; // variable para bucles
bool sumar = true; // Siguiente operación es sumar o restar
bool terminado = false; // Se ha alcanzado la condición de fin
do { // Hacer
cout << i; // muestra el valor en pantalla
terminado = (i == 23); // Actualiza condición de fin
if(terminado) cout << "."; else cout << ", "; // Puntuación,
separadores
if(sumar) i += 4; else i -= 2; // Calcula siguiente elemento
sumar = !sumar; // Cambia la siguiente operación
} while(!terminado); // ... mientras no se termine
cout << endl; // Cambio de línea



pero buscando en otros codes q vi externos vi q usaban <iostream> sin h
y que hacian uso del namespace, asi que tratando de hacer mi primer code hice esto:
Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;

int main()
{
   int i, num, j, r;
   cout<<"Ingrese el numero de filas:" << endl;
   cin >>num;
   for (i=0;i++<num;)
   {
       for (j=0; j++<i*2;)
       {
           if (j>i)
           {
              r=i-(j-i);
              if (r>0) cout<< r;  
           }
           else cout<<j;
       }
       cout<<endl;
   }
   system("PAUSE");
   return 0;
}



que  vendria siendo el triangulo de pascal
pero lo q me frusta es que pase mucho tiempo tratando de averiguar por q no corria el programa sin el uso de namespace ademas de las cabeceras q no tenian h,
se que esto es una novatada para todos pero necesito su orientacion!!, otra cosa q quiero senalar es que poniendo ese code q hice en codeblocks no funciona,  es mas ni compila ni nada, cosa q no me agrada porq me gusta mas su entorno
q me recomiendan otro tuto de c++ por q el q tengo no quiere jalar algunas cosas. Gracias!!
Agradeceria cualquier explicacion y de como arreglar el codeblocks.
Mil disculpas por esta novatada!!
El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein

Akai

#1
Con tu segundo código, compila si le quitas el system("pause"). En C funcionaría, pero en C++ me parece que no puedes hacer llamadas al sistema de esta forma (alguien que concrete esto, por favor). Por otro lado, si usas codeblocks no necesitas un pause, ya que cuando compilas y ejectuas dentro del propio IDE él mismo para el programa después que este finalice.

Turbo C, dev c++ y alguno más están obsoletos, como Littlehorse (y otros) han dicho ya en muchas ocasiones, es mejor utilizar Codeblocks o Visual C++

Cita de: Littlehorse en 29 Septiembre 2010, 16:42 PM
[...]

En lo personal, te recomendaría que instales otro entorno de trabajo:



Por otro lado, a diferencia de C, las librerías suelen incluirse sin el .h, como ya has visto.

Sobre el namespace, te recomendaría que leyeses sobre espacio de nombres. Como pequeño resumen se podría decir que el espacio de nombres es el apellido de las variables, algo que diferencia variables de un mismo nombre. Según tengo entendido no es algo que se emplee demasiado a menos que trabajes en proyectos grandes / con diferentes personas que es cuando se pueden dar casos de variables homónimas.

EDIT: Codeblocks no te avisaba del error? ¿qué compilador dentro de codeblocks estás usando? Mira también de activar en las opciones del compilador (settings -> compiler and debugger) lo siguiente: -Wall, -pedantic.

Littlehorse

Lo de iostream.h, en C++ es una declaración de archivos de cabecera obsoleta. En otros hilos lo he explicado a fondo pero creo que lo ideal seria que leas este link ya que abarca el tema en forma mas detallada.

Lo de las llamadas al sistema, si, como poder hacerlas podes, por supuesto es poco recomendable. Tampoco es que sea terrible hacerlo en un ejercicio de universidad pero en definitiva las malas costumbres se quitan de a poco así que lo ideal seria no utilizarlas. Mas allá de eso, system se encuentra en el archivo de cabecera cstdlib (stdlib.h en C) el cual no esta declarado en el código.

En cuanto al namespace, si, es tal como has dicho, generalmente se utiliza para evitar colisiones en los nombres lo cual por supuesto es mas factible en proyectos grandes y/o grupos de trabajo.

Es bastante temprano, así que si me olvide de responder algo me avisan.

Saludos!
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

xmbeat92

entonces el tuto q se supone es de c++ debo dejarlo y conseguirme otro mas moderno, y a lo de codeblocks me aparece esto
"C++ - Debug" uses an invalid compiler. Probably the toolchain path within the compiler options is not setup correctly?! Skipping...
Nothing to be done.
El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein