![]() |
Re: widerstandsschaltung
Hallo,
den geringsten Fehler dürftest du bekommen wenn du möglichst ganz ganz viele gleiche Widerstände in Reihe oder Parallel schaltest (unter der Vorraussetzung das die Verteilungsfunktion der Widerstandswerte symetrisch verteilt ist). |
Re: widerstandsschaltung
welche der antworten hat dir denn weitergeholfen?
|
Re: widerstandsschaltung
Zitat:
|
Re: widerstandsschaltung
so..
Zitat:
|
Re: widerstandsschaltung
hab das jetzt mal so gelöst, nur stimmt die rechnung bei mir nicht, die fehler(in %) sind zu groß.. weiß wer wo der fehler liegt?
Delphi-Quellcode:
[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
procedure TForm1.Button3Click(Sender: TObject);
var R : array[1..6] of integer; Rp : double; Rs : double; Rx : double; E : double; Ep : double; Es : double; m,n,i : integer; begin Rx := StrToInt(Edit2.text); E := 10000000.0; if pos(floattostr(Rx),ListBox1.Items.text)<> 0 then begin ShowMessage('Widerstand vorhanden!'); Edit3.text := '0'; Edit4.text := 'Vorhanden'; end else begin for n:=0 to ListBox1.items.count-1 do begin for m := 0 to ListBox1.items.count-1 do begin Rp := (R[n] * R[m]) / (R[n] + R[m]); Rs := R[n] + R[m]; Ep := (Rx - Rp) / Rx; Es := (Rx - Rs) / Rx; if Ep < E then begin E := Ep; Edit3.text := FloatToStr(100*(abs(Ep))); Edit4.text := 'P'; end; if Es > E then begin E := Es; Edit3.text := FloatToStr(100*(abs(Es))); Edit4.text := 'S'; end; end; end; end; end; end. |
Re: widerstandsschaltung
na, das sieht nach meinen code aus :-D
Zitat:
Fehler = ((Rneu * 100.0) / Rx) - 100.0) in % Zitat:
Delphi-Quellcode:
entweder du verwendest ein dynamisches Array oder schreibst eine Klasse die die Widerstandslösungen verwaltet, dann bist du flexibel
ListBox1.items.count
|
Re: widerstandsschaltung
...
- was steht in R und wo schreibst du das rein? - nimmst du nun ein array oder die listbox? - wo steht die entgültige auswahl der widerstände?
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var R : array[1..6] of integer; Rp : double; Rs : double; Rx : double; E : double; Ep : double; Es : double; m,n,anz : integer; begin Rx := StrToInt(Edit2.text); E := 10000000.0; if pos(Edit2.text,ListBox1.Items.text)<> 0 then begin ShowMessage('Widerstand vorhanden!'); Edit3.text := '0'; Edit4.text := 'Vorhanden'; end else begin anz:=ListBox1.items.count-1; for n:=0 to anz do begin for m := 0 to anz do begin Rp := (R[n] * R[m]) / (R[n] + R[m]); Rs := R[n] + R[m]; Ep := (Rp / Rx) - 1; Es := (Rs / Rx) - 1; if Ep < E then begin E := Ep; Edit3.text := FloatToStr(100*(abs(Ep))); Edit4.text := 'P'; end; if Es > E then begin E := Es; Edit3.text := FloatToStr(100*(abs(Es))); Edit4.text := 'S'; end; end; // for end; // for end; // if end; |
Re: widerstandsschaltung
[quote="ibp"]...
- nimmst du nun ein array oder die listbox? ich werde listbox verwenden, damit ich anzeigen kann welche widerstände im lagerbestand sind - wo steht die entgültige auswahl der widerstände? ? muss zugeben hab etwas überblick verloren....:roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz