Ver la Versión Completa : calcular temperatura en delphi
nemesis
04-03-2007, 17:47:17
Hola :D
yo estoy cogiendo una clase de delphi, por ahora estoy empezando. Necesito hacer un progrma que te cambie la temperature de farenheit a celcius y viceversa. ya casi lo tengo hecho pero no se como poner la formula para cambiar de celcius a farenheit que es Tc = (5/9)*(Tf-32),
begin
If Fbutton.Checked = True Then
Begin
DataPanel.Caption := FloatToStr(StrToFloat(DataInput.Text) -32 * 5/9);
End
Else If Cbutton.Checked = True Then
Begin
DataPanel.Caption := FloatToStr(StrToFloat(DataInput.Text)* 9/5 + 32);
End
Else
Begin
ShowMessage(DataInput.Text + ' Choose Farenheit or Celsius');
End;
end;
la primera formula es la que no funciona, me da un numero erroneo ya que se supose reste 32 primero pero el programa hace primero las multiplicaciones y divisiones como debe ser, so creo necesito un parentesis o algo pero no se como ponerlo.
tambien ahi alguna manera de cuando use
begin
ShowMessage(' ????????');
end;
ahi alguna manera de empezar una nueva linea en el texto de showmessage? como en c++ es \n o endl. thanks :)
Delphius
04-03-2007, 19:09:22
Hola nemesis, bienvenido a clubDelphi.
Fijate si te sirve estas funciones:
function CelciusToFarenheit(Temperatura: real): real;
begin
result := (5/9)*(Temperatura - 32);
end;
function FarenheitToCelcius(Temperatura: real): real;
begin
result := (9/5)* (Temperatura + 32);
end;
Con respecto a tu seguda pregunta... puedes agregar una segunda línea (o las que deseas) mediante el caracter ASCII: #13. Algo como esto:
'Primera Linea' + #13 + 'Este texto va en la segunda linea';
Espero haber ayudado.
Saludos,
seoane
04-03-2007, 20:20:05
Bueno Delphius parece que por fin voy a ser yo quien te corrija un calculo :p
function FarenheitToCelcius(Temperatura: real): real;
begin
result := (9/5) * Temperatura + 32;
end;
Crandel
04-03-2007, 21:50:54
Creo que los dos estan equivocados :p
function CelciusToFarenheit(Temperatura: real): real;
begin
result := (9/5) * Temperatura + 32;
end;
function FarenheitToCelcius(Temperatura: real): real;
begin
result := (5/9) * (Temperatura - 32);
end;
nemesis
04-03-2007, 23:02:43
k gracias. voy a tratar eso ahora a ver si me sale :D
gluglu
04-03-2007, 23:32:33
En este caso debe también de decir, que en cuanto al cálculo de temperaturas, el correcto es el de crandel.
Yo siempre me he sabido la fórmula de esta manera :
ºF - 32 ºC
------- = ------
9 5
... y ya que cada cual despeje lo que quiera.
Vaya, no tengo manera de ponerlo bien con el editor por más que lo intento. En palabras : ºF - 32 dividido entre 9 es igual a ºC dividido entre 5 .
nemesis
04-03-2007, 23:36:24
una pregunta, estoy haciendolo y no me sale :( yo tengo un Edit que el usuario entra alli la temperatura a convertir, cuando undes un botton que tengo el programa la convierte. una pregunta?
es Temperatura el nombre de un botton o variable? algo asi :p
Robert01
05-03-2007, 01:21:32
Hola
Temperatura es una variable real
Para escribir el valor en el Tedit habría que usar
Edit1.text:= FloatToStr(Result)
Saludos
Robert01
05-03-2007, 01:44:40
Conversión de grados centígrados o Celsius a otras varias:
FunctionCelsiusToRankine(Temperatura:real):real;
begin
result{Ra}:= (9/5)*(temperatura) + 491,67;
end;
functionCelsiusToRéaumur(Temperatura:real):real;
begin
result {°Ré} := (4/5) * Temperatura;
end;
functionCelsiusToNewton(Temperatura:real):real;
begin
result{°N} := (33/100) * Temperatura;
end;
functionCelsiusToRømer(Temperatura:real):real;
begin
result {°Rø} := (21/40) * Temperatura + 7,5;
end;
functionCelsiusToDelisle(Temperatura:real):real;
begin
result {°Da} := (3,2) * (100 − Temperatura);
end
functionCelsiusToKelvin(Temperatura:real):real;
begin
result {K} := Temperatura + 273.15;
end;
/saludos
nemesis
05-03-2007, 02:00:25
grr estoy tratando y no se, esto delphi esta dificil pa mi hehehe. aqui esta el codigo por ahora. necesito estudiar mas :confused:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
Fbutton: TRadioButton;
Cbutton: TRadioButton;
DataInput: TEdit;
DataPanel: TPanel;
cmdclear: TBitBtn;
CmdClose: TBitBtn;
CmdAbout: TBitBtn;
CmdHelp: TBitBtn;
cmdcalc: TBitBtn;
procedure cmdclearClick(Sender: TObject);
procedure cmdcalcClick(Sender: TObject);
procedure CmdAboutClick(Sender: TObject);
procedure CmdHelpClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.cmdclearClick(Sender: TObject);
begin
DataInput.Clear;
end;
procedure TForm1.cmdcalcClick(Sender: TObject);
function CelciusToFarenheit(Temperatura: real): real;
begin
result := (9/5) * Temperatura + 32;
end;
function FarenheitToCelcius(Temperatura: real): real;
begin
result := (5/9) * (Temperatura - 32);
end;
begin
If Fbutton.Checked = True Then
Begin
End;
End;
...
ni se si eso esta bien :rolleyes: me esta volviendo loco, a ver si mañana pregunto en la uni. ahora voy a estudiar pa examen de c++, eso es mas facil :p
Delphius
05-03-2007, 04:03:39
Bueno Delphius parece que por fin voy a ser yo quien te corrija un calculo :p
Este... la verdad es lo hice muy al vuelo. Ni lo probé:D Gracias por corregirme.
Tengo que admitir que mi mente estaba pensando en gradientes, sobel, filtrados. Mucho no me pude concentar.
nemesis, vas bien... lo que te faltaría es llamar a dichas funciones. Algo como, por ejemplo: convertir 132º F a ºC
if FButton.Checked
then Edit1.Text := FloatToStr(FarenheithToCelcius(132));
NOTA: A esto tampoco lo probé, pero de seguro anda.
Con esto consigues que se muestre en Edit1 los grados celcius correspondientes.
Si te estas iniciando en Delphi, dale una buena leida a La Cara Oculta de Delphi 4. (http://www.clubdelphi.com/foros/www.marteens.com/caraoculta.htm) Te va a servir mucho. Si bien dice Delphi 4... sirve para otras versiones ya que los principios no han cambiado.
Saludos,
nemesis
05-03-2007, 04:44:08
si soy nuevo en delphi no se mucho :p ok el resultado esta bien pero cada vez que quiera cambiar un numero tengo que ir al codigo y cambiarlo? por que yo tengo un edit donde tu pones los grados a cambiar y los muestra en un panel.
If Fbutton.Checked Then
Begin
DataPanel.Caption := FloatToStr(FarenheitToCelcius(20))
End;
http://img104.imageshack.us/img104/5148/delphinewvu4.jpg
eso es lo que llevo hasta ahora :( e estado todo el dia aqui y todavia no me sale lol. es facil poner los botones :p
el resultado da correcto pero ese 20 ahi q poner algo para q el usuario lo pueda cambiar en el edit, no ir al codigo y cambiar el numero alli.
nemesis
05-03-2007, 04:50:43
yey crao que lo hice necesito verificar bien
If Fbutton.Checked Then
Begin
DataPanel.Caption := FloatToStr(FarenheitToCelcius(StrToFloat(DataInput.Text)))
End;
nemesis
05-03-2007, 04:53:09
sip siempre da el resultado correcto :D Gracias!!!
algun dia yo sere tambien de los que ayude hehehe pero por ahora, no creo :p
Delphius
05-03-2007, 05:01:45
ok el resultado esta bien pero cada vez que quiera cambiar un numero tengo que ir al codigo y cambiarlo? por que yo tengo un edit donde tu pones los grados a cambiar y los muestra en un panel
el código que puse fue a manera de ejemplo.
Veamos, tienes un Edit y un panel, Uno para ingresar y otro para mostrar respectivamente. Para el caso puedes hacer esto:
PaneldeResultado.Caption := FloatToStr(FarenheitToCelcius(StrToFloat(EditDeEntrada.Text)));
Te recomiendo que para ir aprendiendo veas:
FloatTostr(), StrToFloat(), IntToStr(), StrToInt()... son funciones para pasar de real a string y de integer a string; junto a su inversa.
Para el tema de errores ve las instrucciones: try, except, finally, exception.
eso es lo que llevo hasta ahora :( e estado todo el dia aqui y todavia no me sale lol. es facil poner los botones :p
Calma... de a poco se aprende. A tu propio ritmo. Como te dije... dale a una buena leida a la cara oculta.
A medidas que empieces a conocerlo mejor, se te hará más sencillo y le podrás ver el potencial que tiene.
Saludos,
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.