Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: buhyr en 2 Noviembre 2012, 23:37 pm



Título: Duda c++
Publicado por: buhyr en 2 Noviembre 2012, 23:37 pm
Hola a todos, soy nuevo en esto el caso es que quiero hacer que este programa vuelva al principio o se repita y no me aclaro el codigo es:
#include <conio.h>
#include <iostream>
using namespace std;

int main()
{
   int a,b,c;
   cout<<"type first number"<<endl;
   cin>>a;
   cout<<"type first number"<<endl;
   cin>>b;
   cout<<"type first number"<<endl;
   cin>>c;
   
   if ((a>=b) && (a>=c) )
   {
   cout<<"the biggest is: "<<a;
   }
   if ((b>=a) && (b>=c) )
   {
   cout<<"the biggest is: "<<b;           
   }
   if ((c>=b) && (c>=a) )
   {
   cout<<"the biggest is: "<<c;     

   } 
 
    getch();
    return 0;

}
    Y el caso es que he probado con  do y while pero no me aclaro chicos, gracias por vuestra atencion,.
   
   


Título: Re: Duda c++
Publicado por: Stakewinner00 en 2 Noviembre 2012, 23:43 pm
puedes hacer algo como

Código
  1. int main()
  2. {
  3. while (;;) {
  4.   int a,b,c;
  5.   cout<<"type first number"<<endl;
  6.   cin>>a;
  7.   cout<<"type first number"<<endl;
  8.   cin>>b;
  9.   cout<<"type first number"<<endl;
  10.   cin>>c;
  11.  
  12.   if ((a>=b) && (a>=c) )
  13.   {
  14.   cout<<"the biggest is: "<<a;
  15.   }
  16.   if ((b>=a) && (b>=c) )
  17.   {
  18.   cout<<"the biggest is: "<<b;          
  19.   }
  20.   if ((c>=b) && (c>=a) )
  21.   {
  22.   cout<<"the biggest is: "<<c;    
  23.  
  24.   }  
  25.  
  26.    getch();
  27.    return 0;
  28.  
  29. }
  30. }

creo que era asi, sino prueba con goto


Título: Re: Duda c++
Publicado por: flony en 3 Noviembre 2012, 00:15 am
en toeria el goto es mala palabra en c++, pero en batch lo usába bastante...ahora si lo que quieres es que vuelva al inicio seria con while...que hace eso
bue usando goto seria asi
Código:
#include <iostream>
using namespace std;

int main()
{
inicio:
int a,b,c,n;
   cout<<"type first number"<<endl;
   cin>>a;
   cout<<"type second number"<<endl;
   cin>>b;
   cout<<"type third number"<<endl;
   cin>>c;
   if ((a>=b) && (a>=c) )
   {
   cout<<"the biggest is: "<<a<<endl;
   }
   if ((b>=a) && (b>=c) )
   {
   cout<<"the biggest is: "<<b<<endl;           
   }
   if ((c>=b) && (c>=a) )
   {
   cout<<"the biggest is: "<<c <<endl;     

   } 
 cout<<"si quiere seguir apriete 1"<<endl;
 cin>>n;
 if (n==1)goto inicio;
 else goto fin;
 fin:
   system ("PAUSE");
   return 0;
}


Título: Re: Duda c++
Publicado por: Caster en 3 Noviembre 2012, 08:53 am
No useis goto, en su lugar existen los bucles y las funciones para obtener el mismo resultado, es mejor evitar el uso de goto.

en toeria el goto es mala palabra en c++, pero en batch lo usába bastante...ahora si lo que quieres es que vuelva al inicio seria con while...que hace eso
bue usando goto seria asi
Código:
#include <iostream>
using namespace std;

int main()
{
inicio:
int a,b,c,n;
   cout<<"type first number"<<endl;
   cin>>a;
   cout<<"type second number"<<endl;
   cin>>b;
   cout<<"type third number"<<endl;
   cin>>c;
   if ((a>=b) && (a>=c) )
   {
   cout<<"the biggest is: "<<a<<endl;
   }
   if ((b>=a) && (b>=c) )
   {
   cout<<"the biggest is: "<<b<<endl;           
   }
   if ((c>=b) && (c>=a) )
   {
   cout<<"the biggest is: "<<c <<endl;     

   } 
 cout<<"si quiere seguir apriete 1"<<endl;
 cin>>n;
 if (n==1)goto inicio;
 else goto fin;
 fin:
   system ("PAUSE");
   return 0;
}

El uso de goto aqui esta bien planteado, pero como ya he dicho antes, es mejor no usarlo, el igual que system("PAUSE"); leeros este post:

http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Y aqui te dejo el codigo que he hecho yo englobando todo el codigo en un bucle do - while:

Código
  1. #include <conio.h>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.   int a,b,c,op;
  9.   do{
  10.  
  11.      cout<<"type first number"<<endl;
  12.      cin>>a;
  13.      cout<<"type first number"<<endl;
  14.      cin>>b;
  15.      cout<<"type first number"<<endl;
  16.      cin>>c;
  17.  
  18.      if ((a>=b) && (a>=c) )
  19.      {
  20.         cout<<"the biggest is: "<<a;
  21.      }
  22.      if ((b>=a) && (b>=c) )
  23.      {
  24.         cout<<"the biggest is: "<<b;          
  25.      }
  26.      if ((c>=b) && (c>=a) )
  27.      {
  28.         cout<<"the biggest is: "<<c;    
  29.  
  30.      }
  31.  
  32.      cout<<"\nIntroduce un numero para continuar, 0 para salir"<<endl;
  33.      cin>>op;
  34.  
  35.   } while(op != 0);
  36.  
  37.  
  38.    return 0;
  39. }

Saludos


Título: Re: Duda c++
Publicado por: buhyr en 4 Noviembre 2012, 07:26 am
Muchísimas gracias chicos voy a probar
Uff estoy o tentando aprender tb java y me estoy liando
Con c++ a lo mejor debería aprender uno detrás de otro??
No se soy nuevo en esgo


Título: Re: Duda c++
Publicado por: BatchianoISpyxolo en 4 Noviembre 2012, 15:37 pm
Muchísimas gracias chicos voy a probar
Uff estoy o tentando aprender tb java y me estoy liando
Con c++ a lo mejor debería aprender uno detrás de otro??
No se soy nuevo en esgo

Puedes aprenderlos a la vez. Lo único que Java son todo clases, objetos y toda la teoría que conlleva la programación orientada a objetos.

En C++ también hay clases y objetos pero es un lenguaje de nivel intermedio mientras que Java es de nivel alto porque abstrae ciertas cosas como los punteros, aunque están ahí.


Título: Re: Duda c++
Publicado por: buhyr en 4 Noviembre 2012, 22:14 pm
A la hora de usar salida laboral que es mejor aprender disculpa la pregunta tan tonta pero eno entiendo mucho de esto


Título: Re: Duda c++
Publicado por: bemone en 5 Noviembre 2012, 02:08 am
C++ es un buen lenguaje para aprender tanto programacion estructurada como POO. Una vez que tengas conocimiento sobre este lenguaje los demas es solo cuestion de leer las referencias.
Lo bueno de Java es la cantidad de librerias e informacion que hay en la web pero no es tan optimo como C++.
Trata de aprender uno a la vez para no caer en la confusion. No pienses en la salida laboral, pensa en mejorarte a ti mismo dia a dia que sin ofender veo que te falta mucha practica.
Con respecto al programa ya te lo contestaron pero es mejor que primero hagas un pseudocodigo o plantearte que tenes que hacer paso a paso antes de largarte de lleno a hacer codigo.
No hay mejor compañero que la lapicera y el papel.
Saludos.


Título: Re: Duda c++
Publicado por: BatchianoISpyxolo en 5 Noviembre 2012, 03:48 am
@bemone, totalmente de acuerdo.

Si planteas la resolución del problema paso a paso en un papel tu cabeza se irá familizarizando con los pasos y objetivos de tu ejercicio. Una vez resuelto, tan sólo trasncribe el código.

Lo importante es saber resolver un problema por uno mismo utilizando la lógica y ayudándote de la experiencia.

Porque programar por programar, no lleva a ningún camino; y los errores aumentan exponencialmente.