Autor
|
Tema: [AYUDA] Porcentaje de un número en Batch (Leído 7,794 veces)
|
Geormarsch
Desconectado
Mensajes: 160
|
Hola, buenas, después de muchísimo tiempo de inactividad aquí estoy. Más inútil que nunca jajaj 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. 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!!! :menu cls echo Ingresa Stats totales: echo Presiona Enter para obtener tus stats recomendados. :calcular cls REM LOS NÚMEROS AQUÍ SUPONEN UN PORCENTAJE set /a fz= %stats% * %fuerza% set /a r1= %fz% / %porciento% set /a ag= %stats% * %agilidad% set /a r2= %ag% / %porciento% set /a vt= %stats% * %vitalidad% set /a r3= %vt% / %porciento% set /a ene= %stats% * %energia% set /a r4= %ene% / %porciento% echo Presiona una tecla para volver al menu
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
|
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
Mensajes: 160
|
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
Mensajes: 160
|
Encontré la solución, ejecuté mediante Wine el script en .bat el problema ahora es, cómo sacar porcentajes en batch...
|
|
|
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
Mensajes: 9.866
|
Para sacar un porcentaje del número 50.000 podrías hacerlo así: 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
Mensajes: 160
|
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
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
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
Mensajes: 9.866
|
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#!/usr/bin/ruby # -*- coding: Windows-1252 -*- require 'io/console' @stats = nil def Main() while true SetUserInput() puts('Presione cualquier tecla para continuar...') STDIN.getch() CalcStats() print('Presione cualquier tecla para volver al menú...') STDIN.getch() end end def SetUserInput() system("clear") or system('cls') print('Ingrese el valor de estadísticas totales: ') @stats = Integer(gets) rescue SetUserInput() end def CalcStats() # LOS NÚMEROS AQUÍ SUPONEN UN PORCENTAJE strPct = 2 agiPct = 40 vitPct = 8 enePct = 50 pctVal = 100 str = (@stats * strPct) / (pctVal) agi = (@stats * agiPct) / (pctVal) vit = (@stats * vitPct) / (pctVal) ene = (@stats * enePct) / (pctVal) # no deberías hacer esto de esperar 3 segundos intencionadamente, es absurdo. system("clear") or system('cls') puts('Procesando...') sleep(3) system("clear") or system('cls') puts("Fuerza : #{str}\n"\ "Agilidad : #{agi}\n"\ "Vitalidad : #{vit}\n"\ "Energia : #{ene}\n\n") end system('(CHCP 1252)1>NUL') Main() __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
Mensajes: 160
|
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"
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con Delphi (porcentaje) Plissss
Ejercicios
|
love_magic
|
3
|
8,272
|
12 Julio 2007, 20:16 pm
por ZEUS 34
|
|
|
[Ayuda][Batch][Againu.u]Modficar Seguna Numero de Linea?
Scripting
|
FranciskoAsdf
|
4
|
4,363
|
23 Diciembre 2009, 02:02 am
por FranciskoAsdf
|
|
|
[Batch] ayuda!! Elevar un Numero a una Potencia
Scripting
|
darkgx
|
3
|
12,055
|
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,604
|
17 Abril 2019, 20:12 pm
por EdePC
|
|
|
[APORTE SENCILLO] [BATCH] Calcular porcentaje
Scripting
|
.:Xx4NG3LxX:.
|
0
|
2,541
|
9 Febrero 2020, 15:15 pm
por .:Xx4NG3LxX:.
|
|