Einzelnen Beitrag anzeigen

Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#4

Re: Berechnung eines Wertes aus Widerstandsreihe

  Alt 29. Dez 2006, 13:48
es geht mir nicht darum die 3,3 abzudecken, sondern den Wert für ein Bauteil (welches sich an eine der E-Reihen hält) zu einem berechneten Widerstandswert zu bekommen.

wenn ich einen widerstand von 3,2 Ohm ausgerechnet habe, müsste ich z.b. nach E6-Reihe einen 3,3 Ohm verbauen. und diese 3,3 will ich haben.
//edit
da diese rundungsfehler bekannt sind muss ich das ganze wohl so in etwa machen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  //r3:array[0..2] of double=(1.0,2.2,4.7);
  //r6:array[0..5] of double=(1.0,1.5,2.2,3.3,4.7,6.8);
  //r12:array[0..11] of double=(1.0,1.2,1.5,1.8,2.2,2.7,
                                3.3,3.9,4.7,5.6,6.8,8.2);
  r24:array[0..23] of double=(1.0,1.1,1.2,1.3,1.5,1.6,1.8,2.0,2.2,2.4,2.7,
                              3.0,3.3,3.6,3.9,4.3,4.7,5.1,5.6,6.2,6.8,7.5,8.2,9.1);
  r192:array[0..191] of double=(1.00,1.01,1.02,1.04,1.05,1.06,1.07,1.09,
                               1.10,1.11,1.13,1.14,1.15,1.17,1.18,1.20,
1.21,1.23,1.24,1.26,1.27,1.29,1.30,1.32,
1.33,1.35,1.37,1.38,1.40,1.42,1.43,1.45,1.47,1.49,
1.50,1.52,1.54,1.56,1.58,1.60,1.62,1.64,1.65,1.67,1.69,
1.72,1.74,1.76,1.78,1.80,1.82,1.84,1.87,1.89,1.91,1.93,1.96,1.98,
2.00,2.03,2.05,2.08,2.10,2.13,2.15,2.18,2.21,2.23,2.26,2.29,
a2.32,2.34,2.37,2.40,2.43,2.46,2.49,
    2.52,2.55,2.58,2.61,2.64,2.67,2.71,2.74,2.77,2.80,2.84,2.87,2.91,2.94,2.98,
    3.01,3.05,3.09,3.12,3.16,3.20,3.24,3.28,3.32,3.36,3.40,3.44,3.48,
    3.52,3.57,3.61,3.65,3.70,3.74,3.79,3.83,3.88,3.92,3.97,
    4.02,4.07,4.12,4.17,4.22,4.27,4.32,4.37,4.42,4.48,
    4.53,4.59,4.64,4.70,4.75,4.81,4.87,4.93,4.99,
    5.05,5.11,5.17,5.23,5.30,5.36,5.42,5.49,
    5.56,5.62,5.69,5.76,5.83,5.90,5.97,
    6.04,6.12,6.19,6.26,6.34,6.42,6.49,
    6.57,6.65,6.73,6.81,6.90,6.98,
    7.06,7.15,7.23,7.32,7.41,
    7.50,7.59,7.68,7.77,7.87,7.96,
    8.06,8.16,8.25,8.35,8.45,
    8.56,8.66,8.76,8.87,8.98,
    9.09,9.20,9.31,9.42,
    9.53,9.65,9.76,9.88
  );
begin
  if spinedit1.value<(3 shl Combobox1.itemindex) then //maximalwert prüfen E3=2,E6=5,...
  begin
    if combobox1.itemindex<4 then
      showmessage(FloatToStr(r24[(1 shl (Combobox1.Items.count-(Combobox1.itemindex+4))*Spinedit1.value)]))
    else
      showmessage(FloatToStr(r192[(1 shl (Combobox1.Items.count-(Combobox1.itemindex+1))*Spinedit1.value)]));
  end else
    showmessage('Position zu hoch');
end;
Gruß Frank

[edit=Phoenix]Umbrüche wegen Layout eingefügt Mfg, Phoenix[/edit]
  Mit Zitat antworten Zitat