Progresiones

Iniciado por kraszic, 24 Septiembre 2007, 17:10 PM

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

kraszic

Bueno, pues despues de haber leido los manuales de esta sección y haber preguntado bastantes cosas creo q he progresado bastante en la programacion en batch y me gustaria q me dijerais q tal veis este programa.

El programa es un programa q facilita los calculos matematicos con las progresiones aritmeticas y geometricas de manera q puedes crear una progresion, sumar todos los terminos de una progresion y tambien puedes calcular cuanto vale un numero n en una progresion aritmetica o geometrica.
A mi el programa me parece util desde un punto de vista matematico ya q puedes calcular una progresion con un termino final o con un numero de terminos y puedes hacer casi todas las cosas q puedes hacer con las progresiones...

Seguramente el codigo no estara perfecto (ni mucho menos) hay bastantes variables y es dificil de entender por la cantidad de formulas matematicas y otras operaciones q he tenido q realizar para lograr este resultado...
Creo q el programa no tiene ya ningun fallos y todo va bien, bueno, y aqui os dejo el codigo q es bastante largo para q lo guardeis y lo probeis.

@echo off

title PROGRESIONES----by kraszic

:menu
cls
echo --------------------------PROGRESIONES----------------------------------
echo,
echo,
echo,
echo 1. Progresion aritmetica
echo 2. Progresion geometrica
echo.
echo 3. Salir
echo.
echo.
echo.
set /p num=Selecciona un numero:
if %num%==1 goto menua1
if %num%==2 goto progmenu
if %num%==3 goto salir

:menua1
cls
echo 1. Calcular progresion aritmetica introduciendo el final de la progresion
echo 2. Calcular progresion mediante numero de terminos
echo.
echo.
echo.
set /p num=Selecciona un numero:
if %num%==1 goto proa
if %num%==2 goto proa2

:proa2
cls
echo Calculo de progresion aritmetica
echo.
echo.
set /p ini=Primer numero de la progresion:
set /p inc=Incremento de la progresion:
set /p np2=Numero de terminos:
set ini2=%ini%
echo.
set /a np22=%np2%-1
FOR /L %%a IN (0,1,%np22%) DO (call:geo)
echo.
echo.
echo.
set /a an=%ini%+(%np2%-1)*%inc%
set /a sum=%np2%*(%ini%+%an%)
set /a suma=%sum%/2
echo La suma de la progresion es: %suma%
echo.
echo.
echo.
echo Pulse una tecla para continuar
pause>nul
cls
echo 1. Calcular un termino en la progresion
echo 2. Volver al menu
echo.
echo 3. Salir
echo.
echo.
echo.
set /p opt=Selecciona un numero:
if %opt%==1 goto num
if %opt%==2 goto menu
if %opt%==3 goto salir

:geo
echo %ini2%
set /A ini2=%ini2%+%inc%
goto:EOF

:proa
cls
echo Calculo de progresion aritmetica
echo.
echo.
set /p ini=Primer numero de la progresion:
set /p inc=Incremento de la progresion:
set /p fina=Final de la progresion:
echo.
FOR /L %%a IN (%ini%,%inc%,%fina%) DO echo %%a
echo.
echo.
echo.
set /a rest=(%fina%-%ini%)/%inc%
set /a n=%rest%+1
set /a an=%ini%+(%n%-1)*%inc%
set /a sum=%n%*(%ini%+%an%)
set /a suma=%sum%/2
echo La suma de la progresion es: %suma%
echo.
echo.
echo.
echo Pulse una tecla para continuar
pause>nul
cls
echo 1. Calcular un termino en la progresion
echo 2. Volver al menu
echo.
echo 3. Salir
echo.
echo.
echo.
set /p opt=Selecciona un numero:
if %opt%==1 goto num
if %opt%==2 goto menu
if %opt%==3 goto salir

:num
cls
set /p nu=Introduce el termino q deseas calcular en la progresion:
set /a nuc=%ini%+(%nu%-1)*%inc%
echo.
echo.
echo El termino %nu% es el numero %nuc% en la progresion
echo.
echo.
echo.
echo Pulse una tecla para volver al menu
pause>nul
goto menu

:prog
cls
echo Calculo de progresion geometrica
echo.
set /p inig=Escribe el primer termino:
set /p ra=Escribe la razon de la progresion:
set /p finag=Escribe el final de la progresion:
echo.
echo %inig%
set inig2=%inig%
goto bucle

:bucle
set /A mult=inig2*%ra%
if %mult% GTR %finag% (goto prog1)
echo %mult%
set inig2=%mult%
goto bucle

:prog1
echo.
echo.
echo.
set /a div=%finag%/%inig%
set contar=1
goto bucle2

:bucle2
set /a contar2=contar+1
set resultado=1
FOR /L %%A IN (1,1,%contar2%) DO set /A resultado=resultado*%ra%
if %resultado%==%div% goto tenemosn
if %resultado% GTR %div% goto igual
set contar=%contar2%
goto bucle2

:tenemosn
set /a contar2=%contar2%+1
set nn=%contar2%
goto juntos

:igual
set nn=%contar2%
goto juntos

:juntos
set resultado=1
set /a EXPONENTE=%nn%-1
FOR /L %%B IN (1,1,%EXPONENTE%) DO set /a resultado=resultado*%ra%
set /a ann=%resultado%*%inig%
set /a sumag=((%ann%*%ra%)-%inig%)/(%ra%-1)
echo La suma de la progresion es: %sumag%
echo.
echo.
echo.
echo Pulse una tecla para continuar
pause>nul
cls
echo 1. Calcular un termino en la progresion
echo 2. Volver al menu
echo.
echo 3. Salir
echo.
echo.
echo.
set /p opt=Selecciona un numero:
if %opt%==1 goto numg
if %opt%==2 goto menu
if %opt%==3 goto salir

:progmenu
cls
echo 1. Calcular progresion geometrica introduciendo el final de la progresion
echo 2. Calcular progresion mediante numero de terminos
echo.
echo.
echo.
set /p num=Selecciona un numero:
if %num%==1 goto prog
if %num%==2 goto prog2

:prog2
cls
echo Calculo de progresion geometrica
echo.
set /p inig=Escribe el primer termino:
set /p ra=Escribe la razon de la progresion:
set /p nn=Numero de terminos:
echo.
set i=%inig%
set /a ene=%nn%-1
FOR /L %%a IN (0,1,%ene%) DO (
call:geom
)
echo.
echo.
echo.
goto juntos

goto:EOF
:geom
echo %i%
set /A i=%i%*%ra%
goto:EOF

:numg
cls
set /p nug=Introduce el termino q deseas calcular en la progresion:
echo.
echo.
set resultado=1
set /a ex=%nug%-1
FOR /L %%A IN (1,1,%ex%) DO set /A resultado=resultado*%ra%
set /a caln=%inig%*%resultado%
echo El termino %nug% es el numero %caln% en la progresion
echo.
echo.
echo.
echo Pulse una tecla para volver al menu
pause>nul
goto menu

:salir
cls
exit


Bueno, espero q no tenga esto ya ningun fallo, sino me pego un tiro.. ;D
Me gustaria q me contestarais y q me dierais opiniones asi como fallos, cosas a mejorar y si creeis q seria bueno ponerse en otro lenguaje mas potente y con una interfaz mejor como puede ser visual basic.

saludos