elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Solucionado] Modificar el incremento del bucle for
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado] Modificar el incremento del bucle for  (Leído 13,271 veces)
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
[Solucionado] Modificar el incremento del bucle for
« en: 21 Febrero 2012, 10:12 am »

Hola a todos, me ha surgido esta duda. No es para aplicar a ningun prorama pero siento curiosidad igualmente.

Un bucle for simple:

Código
  1. for (x = 1; x <= y; x++) {
  2.  
  3. /*......./
  4.  
  5. }

Cada vez que se ejecuta, el valor de x aumenta en 1, pero, sería posible hacer esto para cambiar el valor del incremento:

Código
  1. for (x = 1; x <= y; x += 2) {
  2.  
  3. /*......./
  4.  
  5. }

O también así:

Código
  1. for (x = 1; x <= y; x = x + 2) {
  2.  
  3. /*......./
  4.  
  5. }


« Última modificación: 22 Febrero 2012, 11:35 am por |Demon| » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Modificar el incremento del bucle for
« Respuesta #1 en: 21 Febrero 2012, 14:12 pm »

Un bucle "for" tiene la estructura:
Código
  1. for (expr; expr; expr)
  2.   sentencia
A la ultima expresión se le conoce comúnmente como "incremento" porque es en ella donde se realiza el incremento del contador (la variable que controla la ejecución del bucle).

En otras palabras puedes colocar ahí cualquier expresión, por supuesto debes verificar que en algún momento la condición del bucle (segunda expresión) sea falsa para que este termine.

En C99 y C++ se puede sustituir la primera expresión por una declaración, por ejemplo:
Código
  1. for (int i = 0; i != 10; ++i)
  2.   cout << "i == " << i << endl;

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Modificar el incremento del bucle for
« Respuesta #2 en: 21 Febrero 2012, 15:08 pm »

He entendido mal o tu te has explicado mal. Lo que quiero saber yo es si es posible que en vez de incrementar en 1 como pones tu en el ejmplo, que se puede incrementar en cualquier valor.
En línea

Xandrete

Desconectado Desconectado

Mensajes: 210



Ver Perfil
Re: Modificar el incremento del bucle for
« Respuesta #3 en: 21 Febrero 2012, 15:28 pm »

He entendido mal o tu te has explicado mal. Lo que quiero saber yo es si es posible que en vez de incrementar en 1 como pones tu en el ejmplo, que se puede incrementar en cualquier valor.

Ni te ha entendido mal, ni te has explicado mal. Su respuesta es totalmente acertada.

for(expr;expr;expr) donde expr puede ser cualquier expresión. Una respuesta más específica: puedes incrementarlo sumándole dos unidades, multiplicarlo por dos, etc. O incluso puedes decrementarlo. O hacer su logarítmo, etc. ¡Lo que quieras!  ;)

Saludos
En línea

soyloqbuskas

Desconectado Desconectado

Mensajes: 219


¡El conocimiento es de todos!


Ver Perfil
Re: Modificar el incremento del bucle for
« Respuesta #4 en: 21 Febrero 2012, 15:29 pm »

¡Buenas |Demon| !

Creo que no has entendido bien a rir3760.

Como bien te han dicho, un bucle for() tiene esta estructura
Código
  1. for (expr1; expr2; expr3)
  2.   sentencia

Donde....
    expr1 = asignacion del valor inicial (ej.: i=3)
    expr2 = comparacion (ej.: i<10 ó i*3<27, etc)
    expr3 = incremento de la variable (i++, o i=+2)

Toma un codigo de ejemplo:
Código
  1. #include<stdio.h>
  2.  
  3. int main(){
  4.    int i=0;
  5.    for(i=1;i*3<27;i+=2) printf("hola mundo\n");
  6.  
  7.    getchar();
  8.    return 0;    
  9. }
  10.  

Este tipo de dudas se solucionan probando. Te haces un programita como el que te he dejado e intentas probar tu idea, y si funciona bien y si no, es que no se puede hacer.

Un saludo.
En línea

"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: Modificar el incremento del bucle for
« Respuesta #5 en: 21 Febrero 2012, 15:44 pm »

Creo que quieres hacer algo así no?

Código
  1. #include <iostream>
  2. using namespace std;
  3. int main(int argc,char *argv[]){
  4.    for(int x=1,i=0;i<100;i= i+x){
  5.        if(i==50)x=2;
  6.        cout << i << endl;
  7.    }
  8. };

si en vez 1 quieres que sea que vaya aumentando por ejemplo de 2 en 2.
Código
  1. #include <iostream>
  2. using namespace std;
  3. int main(int argc,char *argv[]){
  4.    for(int i=0;i<100;i=i+2){ // i=i+2 es igual a  i+=2
  5.        cout << i << endl;
  6.    }
  7. };
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Modificar el incremento del bucle for
« Respuesta #6 en: 21 Febrero 2012, 16:23 pm »

Ok, ahora lo entiendo mucho mejor, gracias a todos por las aclaraciones.

@Dr.Hacker++: Era en C, pero no importa que lo he entendido igual.

Gracias a todos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda (Parar bucle con dato boolean) [bucle while]
Java
Dem0ny 5 18,600 Último mensaje 17 Diciembre 2008, 17:43 pm
por Dem0ny
Python- Leer línia archivo bucle[Solucionado]
Scripting
¨°o.O (ßa¢Kg|姧) O.o° 7 7,134 Último mensaje 27 Marzo 2010, 17:25 pm
por h0oke
Bucle FOR para copiar archivos[Solucionado]
Scripting
jsgc15 2 3,816 Último mensaje 15 Julio 2010, 18:05 pm
por jsgc15
[SOLUCIONADO] JExcel, con bucle para escribir.
Java
NetJava 1 4,709 Último mensaje 25 Mayo 2011, 14:06 pm
por NetJava
(Solucionado) [VBS] como hacer este bucle? « 1 2 »
Scripting
Eleкtro 11 10,883 Último mensaje 22 Febrero 2012, 10:14 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines