AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Problem mit Größer als und Kleiner als
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Größer als und Kleiner als

Ein Thema von Gehstock · begonnen am 25. Jul 2006 · letzter Beitrag vom 28. Jul 2006
Antwort Antwort
Seite 1 von 3  1 23      
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#1

Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 20:16
Hi,
versuche grade ein bereits existierendes Programm nachzubauen um was Dazuzulernen

Delphi-Quellcode:
procedure TForm2.btn_execute_preresistClick(Sender: TObject);
var
Resistor : string;
begin
Resistor := floattostr(((strtofloat(edit_UV.text)-
strtofloat(edit_UD.text))/strtofloat(edit_ID.text))*1000);
if StrToInt(Resistor)<1000000 then begin
pnl_calculated_resistor.caption := (floattostr((strtofloat(resistor)/
1000000))+' MOhm') )<-- hier ein problem MOhm wird nich berechnet ausgabe z.b 16000 kohm soll aber 16 mOhm sein

end;
if StrToInt(Resistor)>1000 and StrToInt(Resistor)<1000000 then begin
pnl_calculated_resistor.caption := (floattostr((strtofloat(resistor)/
1000))+' KOhm')
end;

if StrToInt(Resistor)<1000 then begin
pnl_calculated_resistor.caption := resistor+' Ohm'
end;
end;
Marcel
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 20:19
Was anderes... was machst du wenn der Widerstand genau 1 kOhm ist.

Denn Ohm bei kleiner 1000
kOhm bei größer 1000



Schau dir mal das an:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
  u,uf,if_,uv,rv, Result: Real;
  ResultI: Integer;
  eh:String;
begin
 U := StrToFloat(Edit1.Text);
 UF:= StrToFloat(Edit2.Text);
 IF_:=StrToFloat(Edit3.Text);

 if UF > U then
 begin
  MessageDlg('Solche Widerstände gibt es nicht. ;-)', mtError, [mbOK], 0);
 end
 else
 begin
  UV := U - UF;
  RV := UV / IF_;

  RV := RV * 1000;
  EH := 'Ohm';
  Result := RV;

  if RV >= 1000 then begin Result := RV / 1000; EH := 'kOhm'; end;
  if RV >= 1000000 then begin Result := RV / 1000000; EH := 'MOhm'; end;
  if RV >= 1000000000 then begin Result := RV / 1000000; EH := 'GOhm'; end;

  ResultI := ceil(Result);

  Showmessage('Der Widerstand hat einen Wert von: ' + IntToStr(ResultI) + ' ' + EH);
 end;

 Button1.SetFocus;
 Edit1.Text := 'Eingangsspannung (in Volt)';
 Edit2.Text := 'Ausgangsspannung (in Volt)';
 Edit3.Text := 'Ausgangsstrom (in mA)';
end;
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 20:20
Reistor ist ein String. der Vergleich mit > 10000 kann nicht zum richtigen Ergebnis führen. Ich würde mit Integer oder Float rechnen und erst zu Anzeige zurück in String wandeln.
Markus Kinzler
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 20:22
Ach und nochmal was du solltest erst nach kohm dann nach mohm prüfen denn größer 1000 ist es bei beiden
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 20:23
Zitat von EDatabaseError:
Was anderes... was machst du wenn der Widerstand genau 1 kOhm ist.

Denn Ohm bei kleiner 1000
kOhm bei größer 1000



[/delphi]

Ups hast recht


Delphi-Quellcode:
procedure TForm2.btn_execute_preresistClick(Sender: TObject);
var
Resistor : string;
begin
Resistor := floattostr(((strtofloat(edit_UV.text)-
strtofloat(edit_UD.text))/strtofloat(edit_ID.text))*1000);
if StrToInt(Resistor)<1000000 then begin
pnl_calculated_resistor.caption := (floattostr((strtofloat(resistor)/
1000000))+' MOhm')
end;
if StrToInt(Resistor)>1000 and StrToInt(Resistor)<1000000 then begin
pnl_calculated_resistor.caption := (floattostr((strtofloat(resistor)/
1000))+' KOhm')
end;

if StrToInt(Resistor)<999 then begin
pnl_calculated_resistor.caption := resistor+' Ohm'
end;
end;
Marcel
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 20:26
Zitat von Gehstock:
Zitat von EDatabaseError:
Was anderes... was machst du wenn der Widerstand genau 1 kOhm ist.

Denn Ohm bei kleiner 1000
kOhm bei größer 1000



[/delphi]

Ups hast recht


Delphi-Quellcode:
procedure TForm2.btn_execute_preresistClick(Sender: TObject);
var
Resistor : string;
begin
if StrToInt(Resistor)<1000then begin
pnl_calculated_resistor.caption := resistor+' Ohm'
end;

if StrToInt(Resistor)>=1000 and StrToInt(Resistor)<1000000 then begin
pnl_calculated_resistor.caption := (floattostr((strtofloat(resistor)/
1000))+' KOhm')
end;

Resistor := floattostr(((strtofloat(edit_UV.text)-
strtofloat(edit_UD.text))/strtofloat(edit_ID.text))*1000);
if StrToInt(Resistor)<1000000 then begin
pnl_calculated_resistor.caption := (floattostr((strtofloat(resistor)/
1000000))+' MOhm')
end;
end;
nein eher so wie ichs oben gemacht hab ^
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 20:38
Delphi-Quellcode:

procedure TForm2.btn_execute_preresistClick(Sender: TObject);
var
  u,uf,if_,uv,rv, Result: Real;
  ResultI: Integer;
  eh:String;
begin
U := StrToFloat(edit_UV.text);
UF:= StrToFloat(edit_UD.text);
IF_:=StrToFloat(edit_ID.text);


begin
  UV := U - UF;
  RV := UV / IF_;

  RV := RV * 1000;
  EH := 'Ohm';
  Result := RV;

  if RV >= 1000 then begin Result := RV / 1000; EH := 'kOhm'; end;
  if RV >= 1000000 then begin Result := RV / 1000000; EH := 'MOhm'; end;
  if RV >= 1000000000 then begin Result := RV / 1000000; EH := 'GOhm'; end;
begin
pnl_calculated_resistor.caption :=ResultI <---fehler
end;
end;
end;
Marcel
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 20:41
Ich schätz mal EConvertError -> IntToStr(IResult)
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 20:43
nee Incompitable types `string` and ´ìnteger`

sorry hab grad nen blackout zuviel Bier
Marcel
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Problem mit Größer als und Kleiner als

  Alt 25. Jul 2006, 20:45
Trotzdem IntToStr(IResult)
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz