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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [AYUDA] Porcentaje de un número en Batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA] Porcentaje de un número en Batch  (Leído 7,315 veces)
Geormarsch

Desconectado Desconectado

Mensajes: 160



Ver Perfil
[AYUDA] Porcentaje de un número en Batch
« en: 16 Octubre 2016, 05:37 am »

Hola, buenas, después de muchísimo tiempo de inactividad aquí estoy.
Más inútil que nunca jajaj  ;D

Tengo este script sencillo, que únicamente el objetivo de éste es obtener el porcentaje de un número y mostrarlo en pantalla.

En el fondo, por si no me expliqué bien, o mí código está malo(cosa que es muy probable, ya que no lo ejecuté porque estoy en Linux)
Pretendo consultar al usuario un número, por ejemplo 50.000
una vez teniendo esa cantidad, sacar 2% - 40% - 8% - 50% y mostrarlo en pantalla en el orden que puse en el script.

Código:
Fuerza     : 1.000
 Agilidad   : 20.000
 Vitalidad  : 4.000
 Energia    : 2.500

Mí consulta es la siguiente, cómo puedo ejecutar éste script en Linux, o cómo pasarlo a otro lenguaje compatible con Linux.
pensé en html y ver si podía subirlo a algún hosting gratuito. Pero a pesar de qué indague y pedí ayuda en el foro, no pude lograr nada.
Por eso recurro a ésta sección, ya que antiguamente hice alguno que otro aporte. que quizás a alguien le sirvio.



Dejo mí codigo!!!

Código
  1. @echo off
  2. title Stats
  3. :menu
  4. cls
  5. echo Ingresa Stats totales:
  6. set /p stats =
  7. echo Presiona Enter para obtener tus stats recomendados.
  8. goto calcular
  9.  
  10. :calcular
  11. cls
  12. REM LOS NÚMEROS AQUÍ SUPONEN UN PORCENTAJE
  13. set fuerza = 2
  14. set agilidad = 40
  15. set vitalidad = 8
  16. set energia = 50
  17. set porcieno = 100
  18. set /a fz=%stats% * %fuerza%
  19. set /a r1=%fz% / %porciento%
  20. set /a ag=%stats% * %agilidad%
  21. set /a r2=%ag% / %porciento%
  22. set /a vt=%stats% * %vitalidad%
  23. set /a r3=%vt% / %porciento%
  24. set /a ene=%stats% * %energia%
  25. set /a r4=%ene% / %porciento%
  26. echo Procesando...
  27. ping -n 3 localhost >nul
  28. echo Fuerza     : %r1%
  29. echo Agilidad   : %r2%
  30. echo Vitalidad  : %r3%
  31. echo Energia    : %r4%
  32. echo Presiona una tecla para volver al menu
  33. goto menu


PD: Elektro, espero que sigas aquí y puedas darme una manito.


EDIT:
Buenas noches gente!
Disculpen la hora de la publicación, soy Chileno y aquí apenas es media noche!!!


« Última modificación: 16 Octubre 2016, 15:40 pm por Geormarsch » En línea

"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ejecutar este script en Linux
« Respuesta #1 en: 16 Octubre 2016, 05:59 am »

si sabes lo minimo de programación es simple pasarlo a ya sea c++, python, javascript (no es necesario el server, solo te creas un html y listo) que los 3 son compatibles nativamente en la mayor parte de los linux, con algunas modificaciones podrías dejarlo listo para bash

lo unico que tienes que saber es que lo que está entre %% son las variables antes declaradas


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Geormarsch

Desconectado Desconectado

Mensajes: 160



Ver Perfil
Re: Ejecutar este script en Linux
« Respuesta #2 en: 16 Octubre 2016, 08:55 am »

si sabes lo minimo de programación es simple pasarlo a ya sea c++, python, javascript (no es necesario el server, solo te creas un html y listo) que los 3 son compatibles nativamente en la mayor parte de los linux, con algunas modificaciones podrías dejarlo listo para bash

lo unico que tienes que saber es que lo que está entre %% son las variables antes declaradas

Ese es el problema, hace bastantes años atrás sólo aprendí Batch, hice un par de script, descubrí el ciclo del FOR y bueno, sólo eso tengo en mente, cómo podría ejecutar esa idea en Linux, si es en Bash, espero puedan instruirme por que desconozco.
En línea

"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
Geormarsch

Desconectado Desconectado

Mensajes: 160



Ver Perfil
Re: Ejecutar este script en Linux
« Respuesta #3 en: 16 Octubre 2016, 09:08 am »

Encontré la solución, ejecuté mediante Wine el script en .bat
el problema ahora es, cómo sacar porcentajes en batch... :o
En línea

"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [AYUDA] Porcentaje de un número en Batch
« Respuesta #4 en: 17 Octubre 2016, 10:40 am »

Para sacar un porcentaje del número 50.000 podrías hacerlo así:

Código
  1. Set /A "num=50000"
  2. Set /A "percent=50"
  3.  
  4. Set /A "result=(%num%*%percent%) / 100"

¿Te refieres a ese tipo de operación, verdad?, si con eso te es suficiente entonces ok, pero de todas formas deberías tener en cuenta que la capacidad de Batch está limitada a un valor entero de 32 bits (2.147.483.647) y olvídate de operaciones con decimales... es preferible que lo hagas en Ruby u otro lenguaje multi plataforma como los que ya te han mencionado.

Saludos!
« Última modificación: 18 Octubre 2016, 23:12 pm por Eleкtro » En línea

Geormarsch

Desconectado Desconectado

Mensajes: 160



Ver Perfil
Re: [AYUDA] Porcentaje de un número en Batch
« Respuesta #5 en: 18 Octubre 2016, 21:12 pm »

Código
  1. Set /A "num=%numero%"
  2. Set /A "percent=%p1%"
  3.  
  4. Set /A "result=(%num% * %percent%) / 100"

Es viable setear una variable con otra variable??

Los números que el usuario introducirá, irán aumentando 300,
Por ejemplo el siguiente valor que el usuario podría introducir sería, 50.300, luego 50.600, 50.900 y así sucesivamente, crees que podría funcionar??

La idea de este script es para un juego, en el cual de un número total nos arroja esos porcentajes para repartir esos puntos a los stats del personaje, los cuales son los más "optimos"
« Última modificación: 18 Octubre 2016, 21:14 pm por Geormarsch » En línea

"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: [AYUDA] Porcentaje de un número en Batch
« Respuesta #6 en: 18 Octubre 2016, 22:28 pm »

perdón, ¿vale la pena tanto laburo en batch?  cuando podrías usar python(nativo en linux) o vbscript igual en windows. Donde ambos lenguajes proveen más funcionalidades.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [AYUDA] Porcentaje de un número en Batch
« Respuesta #7 en: 19 Octubre 2016, 00:38 am »

Es viable setear una variable con otra variable??

Viable, sí, no hay problema en hacer eso que has hecho, pero todo incluso lo más sencillo carece de eficiencia al implementarlo en un lenguaje tan limitado como es Batch.

Desde el principio todos te hemos aconsejado que lo hagas en otro lenguaje, sencillamente deberías olvidarte de Batch no solo para este problema sino para todo lo demás, olvídalo de por vida y avanza un nivel para aprender lo básico de otro lenguaje, ¡solo lo básico he dicho!, con eso ya te sería más que suficiente y de mayor utilidad... mucho más útil que ignorar el consejo que se te ha dado desde el principio.

Aquí abajo puedes compprobar lo sencillo que sería el equivalente a ese Batch-script en Ruby, he intentado evitar estructurarlo correctamente y evitar modificarlo más de lo necesario al adaptarlo para que te resulte facil compararlo con el código original. El código es portable para Windows y Linux... o al menos debería (excepto el comando CHCP, no se como manejará la terminal de Linux las codificaciones de texto/sets de caracteres)

script.rb
Código
  1. #!/usr/bin/ruby
  2. # -*- coding: Windows-1252 -*-
  3. require 'io/console'
  4.  
  5. @stats = nil
  6.  
  7. def Main()
  8.    while true
  9.        SetUserInput()
  10.        puts('Presione cualquier tecla para continuar...')
  11.        STDIN.getch()
  12.  
  13.        CalcStats()
  14.        print('Presione cualquier tecla para volver al menú...')
  15.        STDIN.getch()
  16.    end
  17. end
  18.  
  19. def SetUserInput()
  20.    system("clear") or system('cls')
  21.    print('Ingrese el valor de estadísticas totales: ')
  22.    @stats = Integer(gets) rescue SetUserInput()
  23. end
  24.  
  25. def CalcStats()
  26.    # LOS NÚMEROS AQUÍ SUPONEN UN PORCENTAJE
  27.    strPct =  2
  28.    agiPct = 40
  29.    vitPct =  8
  30.    enePct = 50
  31.  
  32.    pctVal = 100
  33.  
  34.    str = (@stats * strPct) / (pctVal)
  35.    agi = (@stats * agiPct) / (pctVal)
  36.    vit = (@stats * vitPct) / (pctVal)
  37.    ene = (@stats * enePct) / (pctVal)
  38.  
  39.    # no deberías hacer esto de esperar 3 segundos intencionadamente, es absurdo.
  40.    system("clear") or system('cls')
  41.    puts('Procesando...')
  42.    sleep(3)
  43.    system("clear") or system('cls')
  44.  
  45.    puts("Fuerza     : #{str}\n"\
  46.         "Agilidad   : #{agi}\n"\
  47.         "Vitalidad  : #{vit}\n"\
  48.         "Energia    : #{ene}\n\n")
  49. end
  50.  
  51. system('(CHCP 1252)1>NUL')
  52. Main()
  53.  
  54. __END__

No siempre te lo van a dar todo hecho, aprende un lenguaje para lo que necesites, no cuesta nada aprender lo más básico de lo básico que en este caso sería aprender a imprimir texto, usar los operadores aritméticos, y quizás los tipos de búcles, fin.

Saludos!
« Última modificación: 19 Octubre 2016, 00:50 am por Eleкtro » En línea

Geormarsch

Desconectado Desconectado

Mensajes: 160



Ver Perfil
Re: [AYUDA] Porcentaje de un número en Batch
« Respuesta #8 en: 19 Octubre 2016, 06:31 am »

Toda la razón, me iré por python y veré que sucede respecto al Script.

Gracias totales.
En línea

"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con Delphi (porcentaje) Plissss
Ejercicios
love_magic 3 8,042 Último mensaje 12 Julio 2007, 20:16 pm
por ZEUS 34
[Ayuda][Batch][Againu.u]Modficar Seguna Numero de Linea?
Scripting
FranciskoAsdf 4 4,110 Último mensaje 23 Diciembre 2009, 02:02 am
por FranciskoAsdf
[Batch] ayuda!! Elevar un Numero a una Potencia
Scripting
darkgx 3 11,680 Último mensaje 16 Diciembre 2009, 20:42 pm
por leogtz
Como pongo el símbolo del porcentaje en un echo (BATCH)
Programación General
juntacadaveres 1 3,190 Último mensaje 17 Abril 2019, 20:12 pm
por EdePC
[APORTE SENCILLO] [BATCH] Calcular porcentaje
Scripting
.:Xx4NG3LxX:. 0 2,214 Último mensaje 9 Febrero 2020, 15:15 pm
por .:Xx4NG3LxX:.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines