Einzelnen Beitrag anzeigen

Benutzerbild von TwoFace
TwoFace

Registriert seit: 21. Jun 2003
Ort: Uffenheim
26 Beiträge
 
#8

Re: Berechnung eines Wertes aus Widerstandsreihe

  Alt 29. Dez 2006, 15:57
Wie wärs damit:
Mein erster Code-Post hier im Forum Hoffentlich passt alles *schwitz*

Hab mir mal die Freiheit genommen, deine schönen Arrays zu verwenden

Delphi-Quellcode:
var
  a: integer;
  // ist die verwendete E_Reihe z.B. 6
  e_Reihe : integer;
  // das Array das zum bestimmen verwendet wird
  Ex_Reihe : array[0..200] of double;
  // der Widerstand, den du berechnet hast z.B. 3.1 Ohm
  widerstand: real;
  // der Widerstand, der dem nächstgelegenen in der E-Reihe entspricht; hier 3.3 Ohm
  widerstand_nach_e : real;
begin
  // Berechneten Widerstandswert festlegen
  widerstand := 7.0;
  // E-Reihe festlegen
  E_reihe := 6;

  // deine schönen Arrays in eins zum berechnen übertragen
  for a := 0 to E_reihe-1 do
  case e_reihe of
    3: ex_reihe[a] := r3[a];
    6: ex_reihe[a] := r6[a];
    12: ex_reihe[a] := r12[a];
    { .. }
    24: ex_reihe[a] := r24[a];
    192: ex_reihe[a] := r192[a];
   end;

  // Sollte der Widerstandswert größer sein, als der größte der E-Reihe, so ist die Ausgabe
  // 1.0 Ohm mit einem größeren Multiplikator
  if widerstand > Ex_Reihe[e_reihe-1] then
    widerstand_nach_e := 10
  else
  // Eigentliche Auswahlroutine
  for a := E_Reihe-1 downto 0 do
  begin
    if widerstand < Ex_reihe[a] then
        widerstand_nach_e := ex_reihe[a];
   end;
   label4.caption := 'Nächter Widerstand nach E'+inttostr(e_reihe)+
                     ': '+floattostrf(widerstand_nach_e,fffixed,10,5);
Habs paarmal getestet und müsste funktionieren. Ich hab allerdings alle E-Reihen verwendet, weil es ja in der E24 Reihe Widerstände gibt, die in der E6 Reihe nicht auftauchen.

greetz
  Mit Zitat antworten Zitat