You are not logged in.

  • Login

Neuling

Unregistered

1

Tuesday, April 5th 2011, 2:58pm

Temperator: Temperatur und Kelvin

Hallo ich habe ein Problem, ich habe eine Programmieraufgabe.
Und zwar soll ein Benutzer zwei Zahlen eingeben einmal : Anfangstemperatur, und die Endtemperatur ( in Grad)
Es soll eine Plausibilitätsprüfung geben das keine Eingabe leer sein soll und die Endtemperatur muss größer sein als die Anfangstemperatur.
Dann soll das Programm eine Ausgabe erzeugen die in 10er-Schritten die Temperatur in °C, F° und Kelvin angeben soll.
z.B.: Anfangstemperatur: 3, Endtemperatur: 30


Temperatur °C; Temperatur °F; Temperatur Kelvin
3; 37,4; 276,15
13; 55,4; 287,15
23; 73,4, 296,15

ich hab noch nie in delphi programmiert und bin am verzwifeln!!!!
Ich bitte um Lösungsoptionen.

2

Tuesday, April 5th 2011, 3:19pm

was hast du denn bis jetzt schon gemacht um die Aufgabe zu lösen ?

Neuling

Unregistered

3

Tuesday, April 5th 2011, 3:27pm

also ich sitze jetzt schon über 3std vor dem programm und ehrlich gesagt aheb ich nicht viel ahnung wie ich anfangen soll!!!
aber etwas habe ich schon gemacht ich hab schon die graphische oberfläche gemacht ein Button, zwei edit felder und die beschriftung halt anfangstemp. und endtemp.

Neuling

Unregistered

4

Tuesday, April 5th 2011, 3:29pm

unit Hauptfenster;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.

5

Tuesday, April 5th 2011, 4:25pm

Warum erinnert mich das nur sehr stark an das Thema hier?
Formulare überprüfen: Anfangstemperatur und Endtemperatur

Du kannst in diesem Thema nachlesen wie das ganze logisch aufgebaut wird. Musst es lediglich passend für dich in Delphi anpassen.

Neuling

Unregistered

6

Tuesday, April 5th 2011, 4:57pm

genau das ist mein problem der der den anderen thema erstellt hat ist ein guter freund von mir!!

7

Tuesday, April 5th 2011, 5:27pm

Nun mit Delphi sollte es ziemlich einfach gehen. Die Steuerelemente hast du ja schon Platziert, gib diesen am besten noch sinnvole Namen (Objektsinspektor -> Name):
Edit1 -> EditStartTemp
Edit2 -> EditEndTemp
o.ä., etc.

Wenn du doppelt klickst auf ein Steuerelement wird eine Objektspezifische Funktion erstellt, bei einem Button ist es halt die OnClick funktion dh. in diese Kompt der Code rein, der ausgeführt werden soll wenn der Button gedrückt wird.
Und zwar wird dann der dazugehörige Code zwischen begin und end ausgeführt.

Um auf den Text eines Edit-Objekts zuzugreifen kannst du ganz einfach mit NameDesEdits.Text zugreifen. z.B gibt dier dann der Befel ShowMessage(Edit1.Text); eine Infobox mit dem Inhalt deiner Edit-Box wieder.
Genauso kansnt du auch etwas zuweisen: NameDesEdits.Text := 'Hallo';

Der Rückgabetyp von XYZ.Text ist ein String, dass ist eine Zeichenkette, mit dieser alleine kannst du noch nicht Rechnen deswegen musst du diese in einen anderen Datentyp konventieren.
Da du Kommazahlen brauchst musst du es in einen Gleitkommatyp wie z.B Extendend benutzen. Die konventierung kannst du mit StrToFloat und FloatToStr durchführen.

Beispiel:

Delphi Quellcode

1
2
3
4
5
6
7
procedure TForm1.Button1Click(Sender: TObject);
var x: Extended;
begin
  x := StrToFloat(Edit1.Text);
  x := x + 1.5;
  Edit1.Text := FloatToStr(x);
end;


Mfg Rushh0ur

Neuling

Unregistered

8

Tuesday, April 5th 2011, 5:40pm

alles klar danek schön!!!
aber ich möchte ja das ergebnis tabellarisch darstellen und der rechnet ja nur das was in edit1 steht.
Und ich hab noch ne frage wegen den Kelvin, Fahrenheit gibt es da einfach so ne funktion oder ähnliches oder muss ich die formel eintippen???

mfg

9

Tuesday, April 5th 2011, 5:57pm

Eine fertige funktion ist mir jetzt nicht bekannt, kannst aber die Formel direkt eingeben oder dir eine Funktion selbert bauen und die dann verwenden.

Die Tabelle kannst du mti verschiedenen Steuerelementen verwirklich.
Mit einer Memo-Box in die du einfach mit Memo.Lines.Add('Text'); Zeilen hinzufügst oder du verwendest ein StrinGrid-Objekt und füllst die Zellen oder ein ListView-Steuerelement oder oder oder ...

Mfg Rushh0ur

Neuling

Unregistered

10

Tuesday, April 5th 2011, 5:58pm

wo sind diese elemente genau????

und wenn man nichts eingibt die fehlermeldung??? ich will das da steht bitte ausfüllen oder ähnliches

11

Tuesday, April 5th 2011, 6:32pm

Möchtest du dich vorher vielleicht nicht allgemein ein wenig mit den Grundlagen der Programmierung auseinandersetzen? Damit wir dir mit Tipps und Tricks helfen können, brauchst du ein gewisses Grundwissen ;)

12

Tuesday, April 5th 2011, 6:36pm

wo sind diese elemente genau????

In der Objekt Leiste unter Standart, Win32, und Zusätzlich.

und wenn man nichts eingibt die fehlermeldung??? ich will das da steht bitte ausfüllen oder ähnliches

Dann must du den Konventierungfehler bei FloatToStr in einem try-except block abfangen.

Delphi Quellcode

1
2
3
4
5
6
try
    x := StrToFloat(Edit1.Text);   
  except
    ShowMessage('Bitte geben Sie zahlen ein.');
    Exit;
  end;

Neuling

Unregistered

13

Tuesday, April 5th 2011, 8:18pm

ich hab noch ne frage was muss ich machen das das ergebnis in einer tabelle angezeigt wir also in einem anderen Fenster (Unit) ????

Neuling

Unregistered

15

Tuesday, April 5th 2011, 8:46pm

ja schon aber das ist eine andere programmiersprache ich will in delphi programmieren

Neuling

Unregistered

16

Wednesday, April 6th 2011, 4:10pm

hallokann mir bitte jemand helfen ich weis nicht wie ich die Fahrenheit und Kelvin berechnen soll also wie ich die formel aufstellen soll ???
Soll ich eine While-schleife machen oder irgendwie eine IF???
danke im Voraus

17

Wednesday, April 6th 2011, 6:37pm

Im Thema von deinem Kollegen (mit der exakten gleichen Frage) stehen die Formeln drin.

Celsius zu Fahrenheit: c * 1,8 + 32
Celsius zu Jekvub; c + 273

10 Grad Celsius sind also 10 + 273 = 283 Grad Kelvin.

Neuling

Unregistered

18

Wednesday, April 6th 2011, 6:56pm

ja schon abe rda ich ja ein delphi frischling bin habe ich gehofft das mir jemand mit der formel helfen kann also ich meine muss ich des in eine while schleife einbauen oder ähnliches???

19

Wednesday, April 6th 2011, 7:00pm

Die Formel habe ich d 1ir doch gerade gegeben. Es ist einfach Mathematik.

var kelvin, celsius, fahrenheit : integer;
celsius := 10; // das hier muss aus deinem Formularfeld kommen, also celsius := StrToInt(eingabe.Text);
kelvin := celsius + 273;
fahrenheit := celsius * 1.8 + 32;

Neuling

Unregistered

20

Wednesday, April 6th 2011, 7:07pm

Quoted

ok danke und wie gebe ich das ergebnis in einer tabelle extra aus???

Similar threads

Social bookmarks