Negativos en batch

Iniciado por wiluxion, 2 Junio 2012, 23:29 PM

0 Miembros y 3 Visitantes están viendo este tema.

wiluxion

Necesito hacer algo así cómo:

@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.

Eleкtro

#1
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 "%".
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 (dos) [Seleccionar]
@echo off

:: Visita Foro.ElHacker.Net

Echo Introduezca los grados Celsius (§C)
set /P gradoscelsius=^>^>
Set /A gradoscelsius=%gradoscelsius:-=%
set /A gradoskelvin=-273
set /A resultado=%gradoscelsius%+-%gradoskelvin%
Echo Resultado: %gradoscelsius% §C = %resultado% §K | MORE

pause


Output:


Saludos.








wiluxion

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...


Eleкtro

#3
Cita de: wiluxion en  3 Junio 2012, 10:09 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.php100 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 (dos) [Seleccionar]
@echo off

:: Visita Foro.ElHacker.Net

Echo Introduezca los grados Celsius (§C)
set /P gradoscelsius=^>^>
Set /A gradoscelsius=%gradoscelsius:-=%
set /A gradoskelvin=-273
set /A resultado=%gradoscelsius%+%gradoskelvin%
Echo Resultado: %gradoscelsius% §C = %resultado% §K | MORE

pause








wiluxion

Jajajaj, gracias, no soy muy buen estudiante ;)
En fin, gracias.

79137913

HOLA!!!

¿No seria mejor asi?

Cita de: EleKtro H@cker en  3 Junio 2012, 10:49 AM
Código (dos) [Seleccionar]
@echo off
Echo Introduezca los grados Celsius (§C)
set /P gradoscelsius=^>^>
Set /A gradoscelsius=%gradoscelsius:-=%
set /A resultado=%gradoscelsius%-273
Echo Resultado: %gradoscelsius% §C = %resultado% §K | MORE
pause


GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

Puntoinfinito

Una pregunta, aun que batch no enseñe números negativos los calcula?
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

BatchianoISpyxolo

Cita de: puntoinfinito en  6 Junio 2012, 22:09 PM
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 (dos) [Seleccionar]
set /a 0-1
Puede que desees aprender a programar desde 0: www.espascal.es

Puntoinfinito

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

SmartGenius

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



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

Saludos.