Test Foro de elhacker.net SMF 2.1

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:

@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 "%".
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:
(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
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
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?

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!!!
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
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
Título: Re: Negativos en batch
Publicado por: Puntoinfinito en 7 Junio 2012, 20:23 PM
Cita de: BatchianoISpyxolo en  7 Junio 2012, 00:33 AM
Código (dos) [Seleccionar]
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 (dos) [Seleccionar]
@ECHO OFF
title Prueba de restas
:index
set /p one=Indique el numero principal^>^>
echo.
set /p twoo=Indique el numero que restara^>^>
pause
cls
set /a three=%one% - %twoo%
echo.Resultado %three%
echo.
Pause>Nul&exit
goto :Index


Os referíais a esto, no?

Saludos  ;D