Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: wiluxion en 2 Junio 2012, 23:29 pm



Título: Negativos en batch
Publicado por: wiluxion en 2 Junio 2012, 23:29 pm
Necesito hacer algo así cómo:

Código:
@echo off

set/p gradoscelsius= Introduzca los grados Celsius (ºC):
set/a gradoskelvin= -273
set/a resultado= gradoscelsius + gradoskelvin

echo resultado= %resultado% ºK

pause


 Esto tendría que ser fácil, pero la consola no admite el número "-273" y lo considera igual al 273. ¿Cómo puedo hacer para que admita números negativos?

Gracias por adelantado.


Título: Re: Negativos en batch
Publicado por: Eleкtro en 3 Junio 2012, 03:54 am
Al setear los celsius con el prompt lo escribes como negativo o positivo?
Si estás intentando sumar un positivo a un negativo no vas a obtener un negativo mayor, obviamente...

Además, aqui no estás realizando ningúna operación ya que no usas el simbolo identificador de las variables "%".
Código:
set/a resultat= gradoscelsius + gradoskelvin)
PD: Y además... No se, Fíjate un poco al escribir... Que el parentesis del final SE VE.

Aparte, seteas la variable "resultat" y luego la intentas mostrar como "resultado"... No existe la variable "resultado".

Solución:
Código
  1. @echo off
  2.  
  3. :: Visita Foro.ElHacker.Net
  4.  
  5. Echo Introduezca los grados Celsius (§C)
  6. set /P gradoscelsius=^>^>
  7. Set /A gradoscelsius=%gradoscelsius:-=%
  8. set /A gradoskelvin=-273
  9. set /A resultado=%gradoscelsius%+-%gradoskelvin%
  10. Echo Resultado: %gradoscelsius% §C = %resultado% §K | MORE
  11.  
  12.  

Output:
(http://img193.imageshack.us/img193/387/prtscrcaptureaa.jpg)

Saludos.


Título: Re: Negativos en batch
Publicado por: wiluxion en 3 Junio 2012, 10:09 am
Gracias, pero sigue sin funcionar... 100ºC equivaldrían a -173ºK, y me muestra 373ºK, así que...
En cuanto los errores del código anterior, hice la traducción al castellano y me olvidé de alguna variable...



Título: Re: Negativos en batch
Publicado por: Eleкtro en 3 Junio 2012, 10:49 am
100ºC equivaldrían a -173ºK, y me muestra 373ºK, así que...

Cita de: http://www.unitsconversion.com.ar/esp/conversionunidadestemperatura/resultados2.php
100 grados Celsius equivale a 373.15 grados Kelvin

http://www.metric-conversions.org/temperature/celsius-to-kelvin.htm
http://www.unitsconversion.com.ar/esp/conversionunidadestemperatura/resultados2.php
http://calculator-converter.com/k_to_c_kelvin_to_celsius_calculator.php
http://www.asknumbers.com/celsius-to-kelvin.aspx


Saludos

Edito:

De todas formas si quieres el resultado a tu manera...:

Código
  1. @echo off
  2.  
  3. :: Visita Foro.ElHacker.Net
  4.  
  5. Echo Introduezca los grados Celsius (§C)
  6. set /P gradoscelsius=^>^>
  7. Set /A gradoscelsius=%gradoscelsius:-=%
  8. set /A gradoskelvin=-273
  9. set /A resultado=%gradoscelsius%+%gradoskelvin%
  10. Echo Resultado: %gradoscelsius% §C = %resultado% §K | MORE
  11.  


Título: Re: Negativos en batch
Publicado por: wiluxion en 5 Junio 2012, 19:43 pm
Jajajaj, gracias, no soy muy buen estudiante ;)
En fin, gracias.


Título: Re: Negativos en batch
Publicado por: 79137913 en 5 Junio 2012, 19:52 pm
HOLA!!!

¿No seria mejor asi?

Código
  1. @echo off
  2. Echo Introduezca los grados Celsius (§C)
  3. set /P gradoscelsius=^>^>
  4. Set /A gradoscelsius=%gradoscelsius:-=%
  5. set /A resultado=%gradoscelsius%-273
  6. Echo Resultado: %gradoscelsius% §C = %resultado% §K | MORE

GRACIAS POR LEER!!!


Título: Re: Negativos en batch
Publicado por: Puntoinfinito en 6 Junio 2012, 22:09 pm
Una pregunta, aun que batch no enseñe números negativos los calcula?


Título: Re: Negativos en batch
Publicado por: BatchianoISpyxolo en 7 Junio 2012, 00:33 am
Una pregunta, aun que batch no enseñe números negativos los calcula?


? Batch trabaja en Z y con límites dependiendo de la computadora.

No entiendo como antes de escribir en el foro no hacen pruebas. Tan simple como en cmd poner:

Código
  1. set /a 0-1


Título: Re: Negativos en batch
Publicado por: Puntoinfinito en 7 Junio 2012, 20:23 pm
Código
  1. set /a 0-1

Entonces, e aquí la solución, no? xD


Título: Re: Negativos en batch
Publicado por: SmartGenius en 7 Junio 2012, 22:53 pm
Para el modificador /A del comando SET, no es necesario usar los simbolos de porcentajes para delimitar variables, ps este mismo las identifica y toma su valor

(http://s2.subirimagenes.com/imagen/previo/thump_7755396seta.png)

Ademas de que hace los calculos correctamente, tomando valores positivos y negativos, y segun las reglas de signos.

Saludos.


Título: Re: Negativos en batch
Publicado por: Puntoinfinito en 8 Junio 2012, 17:27 pm
Sí, mirad convertido todo en un ejemplo sería así:

Código
  1. @ECHO OFF
  2. title Prueba de restas
  3. :index
  4. set /p one=Indique el numero principal^>^>
  5. set /p twoo=Indique el numero que restara^>^>
  6. cls
  7. set /a three=%one% - %twoo%
  8. echo.Resultado %three%
  9. Pause>Nul&exit
  10. goto :Index
  11.  

Os referíais a esto, no?

Saludos  ;D