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
| |-+  Scripting
| | |-+  Progresion geometrica con FOR
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Progresion geometrica con FOR  (Leído 8,159 veces)
kraszic

Desconectado Desconectado

Mensajes: 277


Ver Perfil
Progresion geometrica con FOR
« en: 4 Septiembre 2007, 22:36 pm »

Hola, me gustaria saber si hay alguna manera de utilizar el for para hacer una progresion geometrica.

Lo q quiero decir es q con el for con este codigo puedo hacer una progresion aritmetica, en q hay un incremento
Código:
FOR /L %%a IN (2,2,8) DO echo %%a
Esto daria de resultado: 2, 4, 6, 8

Habria alguna manera de hacer una progresion tipo: 2, 4, 8, 16, 32, 64
En la q a cada numero se le multiplica una razon (en este caso 2)
Yo creo q la solucion estarian en multiplicar el termino resultante por 2 pero no sabria como hacerlo. Se puede hacer?? Como??

saludos


En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Progresion geometrica con FOR
« Respuesta #1 en: 4 Septiembre 2007, 22:48 pm »

estemm
Código
  1. @echo off
  2. set i=1
  3. FOR /L %%a IN (0,1,3) DO (
  4. call:geo
  5. )
  6.  
  7. goto:EOF
  8. :geo
  9. echo %i%
  10. set /A i=%i%*2
  11. goto:EOF
  12.  
cambia el 3 en  0,1,3 por la potencia hasta donde quieres llegar

Saludos!!

PD. tambien se puede hacer activando unas extensiones de cmd, pero es mas complicado.


En línea

kraszic

Desconectado Desconectado

Mensajes: 277


Ver Perfil
Re: Progresion geometrica con FOR
« Respuesta #2 en: 5 Septiembre 2007, 10:33 am »

estemm
Código
  1. @echo off
  2. set i=1
  3. FOR /L %%a IN (0,1,3) DO (
  4. call:geo
  5. )
  6.  
  7. goto:EOF
  8. :geo
  9. echo %i%
  10. set /A i=%i%*2
  11. goto:EOF
  12.  
cambia el 3 en  0,1,3 por la potencia hasta donde quieres llegar

Saludos!!

PD. tambien se puede hacer activando unas extensiones de cmd, pero es mas complicado.

gracias no lo habia pensado, y mira q estuve pensando, me faltara practica.
Una preg, se podria hacer de alguna manera para q envez de poner el numero de terminos q tiene q tener la progresion se pudiera poner el ultimo termino de la progresion. Por ejemplo q el ultimo termino fuera 120 y al llegar ahi se detuviera.
Se puede hacer??

saludos
En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Progresion geometrica con FOR
« Respuesta #3 en: 5 Septiembre 2007, 16:51 pm »

no se me ocurre como la verdad..
Saludos!!
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Progresion geometrica con FOR
« Respuesta #4 en: 6 Septiembre 2007, 09:21 am »

Mas facil: for /l %i in (1,1,8) do set /A O=%i*%i
« Última modificación: 6 Septiembre 2007, 09:31 am por WHK » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Progresion geometrica con FOR
« Respuesta #5 en: 6 Septiembre 2007, 09:47 am »

Hice un código que me demoré un tanto pero bueno... acá está:

Según el código de Sirdarckcat:
Código
  1. @echo off
  2. set i=1
  3. FOR /L %%a IN (0,1,9) DO (
  4. call:geo
  5. )
  6.  
  7. goto:EOF
  8. :geo
  9. echo %i%
  10. set /A i=%i%*2
  11. goto:EOF
  12.  

Da como resultado:
Citar
C:\WINDOWS>"C:\Documents and Settings\Yan\Escritorio\probar.bat"
1
2
4
8
16
32
64
128
256
512

Según mi código:
Código
  1. @echo off
  2. set/p calcular=Escribe tu cifra:
  3.  
  4. :1
  5. set /A div=calcular/2
  6. echo %div%
  7. set calcular=%div%
  8. echo.>%div%
  9. if exist 0 (pause&&del /f /q %div%&&exit) else echo.>nul
  10. del /f /q %div%
  11. goto 1

Da como resultado:
Citar
C:\WINDOWS>"C:\Documents and Settings\Yan\Escritorio\test.bat"
Escribe tu cifra: 512
256
128
64
32
16
8
4
2
1
0
Presione una tecla para continuar . . .

Supongo que era eso lo que buscabas no?
Puedes poner el if exist antes del echo para evitar que muestre el cero.
« Última modificación: 6 Septiembre 2007, 09:55 am por WHK » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Progresion geometrica con FOR
« Respuesta #6 en: 6 Septiembre 2007, 09:58 am »

Ahora si deceas puedes crear un segundo bat con comandos echo para evitar que te cierre la consola en caso de que estés dentro de una seción:

Código
  1. @echo off
  2. echo @echo off > E.bat
  3. echo del /f /q 0 >> E.bat
  4. echo cls >> E.bat
  5. echo set/p calcular=Escribe tu cifra:   >> E.bat
  6. echo :1  >> E.bat
  7. echo set /A div=calcular/2  >> E.bat
  8. echo echo ^%%div^%%  >> E.bat
  9. echo set calcular=^%%div^%%  >> E.bat
  10. echo echo.^>^%%div^%%  >> E.bat
  11. echo if exist 0 (pause^&^&del /f /q ^%%div^%%^&^&exit) else echo.^>nul  >> E.bat
  12. echo del /f /q ^%%div^%%  >> E.bat
  13. echo goto 1  >> E.bat
  14. cmd /c E.bat
  15. del /f /q E.bat
« Última modificación: 6 Septiembre 2007, 10:15 am por WHK » En línea

kraszic

Desconectado Desconectado

Mensajes: 277


Ver Perfil
Re: Progresion geometrica con FOR
« Respuesta #7 en: 6 Septiembre 2007, 11:21 am »

ya lo tengooOoOoOOO!!!
Muchas gracias a los dos por ayudarme

Código:
@echo off
set /p ini=Escribe el primer termino:
set /p ra=Escribe la razon de la progresion:
set /p fina=Escribe el final de la progresion:
echo.
echo %ini%

:inicio
set /A mult=ini*%ra%
if %mult% GTR %fina% (pause>nul&&exit)
echo %mult%
set ini=%mult%
goto inicio

Da como resultado:
Código:
Escribe el primer termino: 2
Escribe la razon de la progresion: 3
Escribe el final de la progresion: 1000

2
6
18
54
162
486

Bueno, eso es lo q buscaba des de el principio no se si puede ser q os haya liado.
Ya q estamos en el post me gustaria haceros una pregunta mas, ya q tengo la progresion echa me gustaria q con el programa el usuario pudiera hacer algunas operaciones con ella como sumarla o calcular un numero n en la progresion, pero para hacer estas operaciones necesitaria saber el valor de n, y no se como hacer para q el programa lo saque porq ice otro programa con una progresion aritmetica y consegui sacar el valor de n mediante una ecuacion pero aqui no se como sacar n. Como lo podria sacar???

saludos

PD: Para los q no sepan q es n en este ejemplo de arriba, n = 6 (porq hay seis terminos, seis numeros)
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Progresion geometrica con FOR
« Respuesta #8 en: 6 Septiembre 2007, 19:39 pm »

 :xD no te entiendo pero puedes ejecutar un echo.>%valor% y después ejecutar un if exist y preguntar con set /p operacion=Escribe la operación y realizas la operación con set /A var=%valor%%operacion%%valor2%
En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Progresion geometrica con FOR
« Respuesta #9 en: 6 Septiembre 2007, 22:45 pm »

pues la duda que se planteo al principio, de si se podia hacer una progresion geometrica con un FOR, cambio de tema y terminaron usando IF xD

puedes hacer ecuaciones con batch :P
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con nomenclatura para función geométrica
Programación General
Eleкtro 6 2,495 Último mensaje 7 Diciembre 2018, 21:55 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines