duda con For

Iniciado por rub'n, 1 Junio 2010, 22:30 PM

0 Miembros y 1 Visitante están viendo este tema.

rub'n

como esta pana ,,miren tengo una DUDA COMO  cambio esto de for a while ?? ;D



#include <iostream>

using namespace std;

int main ()
{


   int nacimiento, actual,edad;
   

    for (int i=1; i<=10 ; i++)
{
   cout<<"tipee año de nacimiento ."<<endl;
   cin>> nacimiento;

   cout<<"escriba el año actual ."<<endl;
   cin>> actual;
}

   edad=actual-nacimiento;

   if (edad >=18)
   {
      cout<<"su edad es. "<<edad<<endl;
      cout<<"usted es mayor. "<<endl;
   }

system("pause");
   return 0;
   
}


   


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen


taul


#include <iostream>

using namespace std;

int main ()
{

int nacimiento, actual,edad;

int i=1;
while(i<=10){
  cout<<"tipee año de nacimiento ."<<endl;
  cin>> nacimiento;

  cout<<"escriba el año actual ."<<endl;
  cin>> actual;
i++;
}

  edad=actual-nacimiento;

  if (edad >=18)
  {
     cout<<"su edad es. "<<edad<<endl;
     cout<<"usted es mayor. "<<endl;
  }

system("pause");
  return 0;
 
}



PD: no le doy la solucion para decir toma aca tene...sino que muchas veces un ejemplo ayuda mucho mas.

nicolas_cof

Otra forma un poco mas confusa o no, eso depende de cada uno :P

int i = 0;
while ( ++i <= 10 )
{
   cout << "tipee año de nacimiento." << endl;
   cin >> nacimiento;

   cout << "escriba el año actual." << endl;
   cin >> actual;
}


Salu10

08l00D

#4
Cita de: nicolas_cof en  2 Junio 2010, 00:20 AM
Otra forma un poco mas confusa o no, eso depende de cada uno :P

int i = 0;
while ( ++i <= 10 )
{
  cout << "tipee año de nacimiento." << endl;
  cin >> nacimiento;

  cout << "escriba el año actual." << endl;
  cin >> actual;
}


Salu10
No es lo mismo, ya que el incremento se realiza antes de la comparacion...
en todo caso seria i++..

edito
:-X .. retiro lo dicho .. era que me parecio que empezaba a comparar desde 0  :xD ....

nicolas_cof

#5
08l00D es lo mismo, ya que si te fijas a la variable i la inicializo en 0 no en 1

En un simple programa puedes ver la diferencia...

#include <stdio.h>

int main( void )
{
int i = 0;

while ( ++i <= 10 )
printf( "%d\n", i );

return 0;
}


#include <stdio.h>

int main( void )
{
int i = 0;

while ( i++ <= 10 )
printf( "%d\n", i );

return 0;
}


Salu10.

08l00D

Cita de: nicolas_cof en  2 Junio 2010, 00:45 AM
08l00D es lo mismo, ya que si te fijas a la variable i la inicializo en 0 no en 1

En un simple programa puedes ver la diferencia...

#include <stdio.h>

int main( void )
{
int i = 0;

while ( ++i <= 10 )
printf( "%d\n", i );

return 0;
}


#include <stdio.h>

int main( void )
{
int i = 0;

while ( i++ <= 10 )
printf( "%d\n", i );

return 0;
}


Salu10.



Cita de: 08l00D en  2 Junio 2010, 00:31 AM
edito
:-X .. retiro lo dicho .. era que me parecio que empezaba a comparar desde 0  :xD ....

do-while

¡Buenas!

En lugar de darte codigo te voy a dar un explicacion.

Mira bien lo que hace for:

for(variable1 = valor_inicial1, variable2=valor_inicial2... ; ------->Inicializamos  variables (si hiciese falta, claro esta) con el primer valor que tomaran.

; condicion_continuidad_for ; -----> Antes de cada ciclo se comprueba que se cumple la condicion de continuacion de la estructura de repeticion.

; manipulacion_de_las_variables implicadas) ------->Se lleva a cabo al final de cada iteracion.

Por lo tanto, para pasar de for a while es bastante evidente lo que tienes que hacer:

1) Inicializar variables. (Si las hubiese)
2)
while(condicion_de_continudad) (Si la hubiese)
{
    codigo que quieras
    3) Manipulacion de las variables implicadas (Si las hubiese)
}

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

MessageBoxA

estaba notando q igualmente el code (del q hizo el post) esta mal xq hay q declarar un array de enteros..... vean pa q vean
SI LA MATRIX FUERA PERFECTA.... ESTARÍA ESCRITA EN C++