Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   calcular temperatura en delphi (https://www.clubdelphi.com/foros/showthread.php?t=40979)

nemesis 04-03-2007 17:47:17

calcular temperatura en delphi
 
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),


Código Delphi [-]
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


Código Delphi [-]
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:
Código Delphi [-]
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:

Código Delphi [-]
'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
Código Delphi [-]
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

Código Delphi [-]
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 :

Cita:

º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:


Código Delphi [-]
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:


Código:

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

Cita:

Empezado por seoane
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

Código Delphi [-]
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. 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.


Código Delphi [-]
    If Fbutton.Checked  Then
    Begin
      DataPanel.Caption := FloatToStr(FarenheitToCelcius(20))
    End;

http://img104.imageshack.us/img104/5...lphinewvu4.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

Código Delphi [-]
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

Cita:

Empezado por nemesis
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:

Código Delphi [-]
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.

Cita:

Empezado por nemesis
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,


La franja horaria es GMT +2. Ahora son las 11:29:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi