Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-03-2007
nemesis nemesis is offline
Miembro
 
Registrado: mar 2007
Ubicación: Puerto Rico
Posts: 21
Poder: 0
nemesis Va por buen camino
calcular temperatura en delphi

Hola

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

Última edición por dec fecha: 04-03-2007 a las 17:51:38.
Responder Con Cita
  #2  
Antiguo 04-03-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 04-03-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Bueno Delphius parece que por fin voy a ser yo quien te corrija un calculo
Código Delphi [-]
function FarenheitToCelcius(Temperatura: real): real;
begin
  result := (9/5) * Temperatura + 32;
end;
Responder Con Cita
  #4  
Antiguo 04-03-2007
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
Creo que los dos estan equivocados

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;
__________________
[Crandel]
Responder Con Cita
  #5  
Antiguo 04-03-2007
nemesis nemesis is offline
Miembro
 
Registrado: mar 2007
Ubicación: Puerto Rico
Posts: 21
Poder: 0
nemesis Va por buen camino
k gracias. voy a tratar eso ahora a ver si me sale
Responder Con Cita
  #6  
Antiguo 04-03-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
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 .
__________________
Piensa siempre en positivo !

Última edición por gluglu fecha: 04-03-2007 a las 23:36:29.
Responder Con Cita
  #7  
Antiguo 04-03-2007
nemesis nemesis is offline
Miembro
 
Registrado: mar 2007
Ubicación: Puerto Rico
Posts: 21
Poder: 0
nemesis Va por buen camino
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
Responder Con Cita
  #8  
Antiguo 05-03-2007
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Hola

Temperatura es una variable real

Para escribir el valor en el Tedit habría que usar
Edit1.text:= FloatToStr(Result)


Saludos
Responder Con Cita
  #9  
Antiguo 05-03-2007
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
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
Responder Con Cita
  #10  
Antiguo 05-03-2007
nemesis nemesis is offline
Miembro
 
Registrado: mar 2007
Ubicación: Puerto Rico
Posts: 21
Poder: 0
nemesis Va por buen camino
grr estoy tratando y no se, esto delphi esta dificil pa mi hehehe. aqui esta el codigo por ahora. necesito estudiar mas


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 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
Responder Con Cita
  #11  
Antiguo 05-03-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por seoane
Bueno Delphius parece que por fin voy a ser yo quien te corrija un calculo
Este... la verdad es lo hice muy al vuelo. Ni lo probé 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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #12  
Antiguo 05-03-2007
nemesis nemesis is offline
Miembro
 
Registrado: mar 2007
Ubicación: Puerto Rico
Posts: 21
Poder: 0
nemesis Va por buen camino
si soy nuevo en delphi no se mucho 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

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.
Responder Con Cita
  #13  
Antiguo 05-03-2007
nemesis nemesis is offline
Miembro
 
Registrado: mar 2007
Ubicación: Puerto Rico
Posts: 21
Poder: 0
nemesis Va por buen camino
yey crao que lo hice necesito verificar bien

Código Delphi [-]
If Fbutton.Checked  Then
    Begin
      DataPanel.Caption := FloatToStr(FarenheitToCelcius(StrToFloat(DataInput.Text)))
    End;
Responder Con Cita
  #14  
Antiguo 05-03-2007
nemesis nemesis is offline
Miembro
 
Registrado: mar 2007
Ubicación: Puerto Rico
Posts: 21
Poder: 0
nemesis Va por buen camino
sip siempre da el resultado correcto Gracias!!!

algun dia yo sere tambien de los que ayude hehehe pero por ahora, no creo
Responder Con Cita
  #15  
Antiguo 05-03-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
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
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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener temperatura JoeyJordison Varios 6 29-11-2006 21:11:23
Obtener temperatura de microprocesador Mauro.NET API de Windows 1 20-10-2006 12:29:38
Temperatura del micro con el verano Lepe Debates 7 12-09-2006 03:47:02
Control Temperatura miguel_fr Varios 12 17-06-2006 18:43:20
temperatura del procesador??? Andres_Franco Varios 1 10-01-2004 07:03:29


La franja horaria es GMT +2. Ahora son las 05:37:48.


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
Copyright 1996-2007 Club Delphi