Hilfe zu Array



  • also ein 91k-widerstand hat niemals genau 91k, sondern mal mehr, mal weniger. in deinem fall sollen die widerstände also werte von 91k - 7k = 84k bis 91k + 7k = 98k besitzen und du sollst jetzt mittels zufallsgenerator 100 werte zwischen 84k und 98k in ein array schreiben und daraus dann den mittelwert berechnen und dann mittelwert und alle werte des array auf dem bildschirm ausgeben.



  • Komisch... da nimmt man schon so lange am Unterricht teil, und plötzlich fragt der Lehrer nach Sachen, die man noch nie gemacht hat. Frechheit!



  • Ok liebe Dank Hans Klaus habe jetzt i=98 bis 84 For schleife und wie berechne ich jetzt den Mittelwert also (x1 +x2 +xn :100) *1/(Summe)



  • äh es gibt standardmethoden, um zufallszahlen zu erstellen, z.b. die funktion rand(). was meinst du mit "i= 98 bis 84 for schleife"?

    die rufst du auf und wenn sich die zahl im gewünschten bereich befindet, speicherst du sie im array ab. für den mittelwert durchläufst du das array mit einer for-schleife, addierst die jeweiligen werte zu der summe hinzu und dividierst dann durch die anzahl der elemente.



  • HansKlaus schrieb:

    und wenn sich die zahl im gewünschten bereich befindet, speicherst du sie im array ab.

    😋



  • ja es gibt auch noch die möglichkeit, zur untergrenze die zufallszahl modulus differenz obergrenze - untergrenze zu addieren, dann geht das alles etwas schneller, aber ich glaube, dass das erst einmal zuviel ist. 🙄


  • Mod

    Test mal, wie oft du im Durchschnitt rand aufrufen musst, um 15 Zahlen zwischen 84 und 98 zu erhalten. Und bevor du das nächste Mal solche Ratschläge gibst, denk vorher über solche Dinge nach.



  • Ok ich brauche ja das struktogramm ich schreibe also 1 zeile bei E also Widerstandswert dann 2 Zeile for Schleife wo drin steht I=98 bis 84
    3 Im Anweisungsblock dann E=Widerstandswert
    Zeile drunter Summe bilden
    Stimmt das bis dahin ?



  • Viel spannender finde ich doch, wie die Widerstände in dem Toleranzbereich verteilt sind. Ist das ein Gauß um 91 kΩ\Omega mit der Breite 7 kΩ\Omega - wobei, was für eine Breite eigentlich - Stddev, FWHM? Wie ist denn die Toleranz so definiert? Und wenn ein Widerstand in der Produktion um mehr als die Toleranz abweicht, ist das dann Ausschussware?

    Ich würde jedenfalls die Antwort gern wissen!

    Oder ist eine Gleichverteilung in diesem Bereich gewünscht?

    An HansKlaus:
    nimm noch einfach eine uniform_int_distribution<int> dist(91-7, 91+7) - das ist doch in jedem Fall einfacher + klarer als da irgendwie komisch mit modulo oder sonstwie rumzuhantieren und dann noch den Bereich zu verschieben!



  • wob schrieb:

    Viel spannender finde ich doch, wie die Widerstände in dem Toleranzbereich verteilt sind. Ist das ein Gauß um 91 kΩ\Omega mit der Breite 7 kΩ\Omega - wobei, was für eine Breite eigentlich - Stddev, FWHM? Wie ist denn die Toleranz so definiert? Und wenn ein Widerstand in der Produktion um mehr als die Toleranz abweicht, ist das dann Ausschussware?

    wenn man die widerstände hergestellt hat, werden die meine ich gemessen und je nachdem, wie stark sie von dem eigentlichen wert abweichen, in eine spezielle kiste einsortiert. im prinzip ist das eine umgedrehte gauß-kurve, weil die mit der geringsten abweichung ab seltensten vorkommen und daher entsprechend teuer sind.

    nimm noch einfach eine uniform_int_distribution<int> dist(91-7, 91+7) - das ist doch in jedem Fall einfacher + klarer als da irgendwie komisch mit modulo oder sonstwie rumzuhantieren und dann noch den Bereich zu verschieben!

    wieso bereich verschieben? du rechnest zur untergrenze 84 irgendeine zufallszahl von 0 - 14 dazu. nur hielt ich es für komisch, jemandem, der es offenbar nicht hinbekommt, lesend und schreibend mit einer schleife auf ein array zuzugreifen, auch noch mit sowas zu kommen, bzw. man hätte ja danach klären können, warum das programm so langsam läuft. 😃

    VW 13 schrieb:

    Ok ich brauche ja das struktogramm ich schreibe also 1 zeile bei E also Widerstandswert dann 2 Zeile for Schleife wo drin steht I=98 bis 84
    3 Im Anweisungsblock dann E=Widerstandswert
    Zeile drunter Summe bilden
    Stimmt das bis dahin ?

    äh ich glaube nicht. ich geb dir mal was vor, vielleicht verstehst du es ja dann. also ein mögliches programm könnte so aussehen:

    int main()
    {
    int array[100];
    int summe=0;
    int mittelwert;
    
    for(int i=0;i<100;i++)
    {
         array[i]=//hier die zufallswerte eintragen
         summe=//hier die elemente aufsummieren
    }
    
    mittelwert=//hier den mittelwert ausrechnen
    cout<<"Der Mittelwert lautet"//hier den mittelwert ausgeben
    cout<<"Die Widerstandswerte lauten"//einleitung zur ausgabe der widerstandswerte
    
    for(int i=0;i<100;i++)
    {
         cout<<//hier die widerstandswerte ausgeben
    }
    
    //programmende, evtl. konsolenfenster offen halten
    }
    


  • Für einen Widerstandswert ein int 😕
    Die sind doch nicht ganzzahlig (zumindest nicht mit Toleranz)

    HansKlaus schrieb:

    wenn man die widerstände hergestellt hat, werden die meine ich gemessen und je nachdem, wie stark sie von dem eigentlichen wert abweichen, in eine spezielle kiste einsortiert. im prinzip ist das eine umgedrehte gauß-kurve, weil die mit der geringsten abweichung ab seltensten vorkommen und daher entsprechend teuer sind.

    Das einzelne Messen der Widerstände ist zu aufwendig.
    Wenn, dann werden Stichproben gemessen und dann ganze Chargen in die Kisten sortiert.

    Dann bekommst du aber für die Reihen mit hohen Toleranzen eher eine Trampeltierkurve (mit zwei Höckern), da die Werte mit der niedrigen Toleranz in einer anderen Kiste sind.



  • DirkB schrieb:

    Für einen Widerstandswert ein int 😕
    Die sind doch nicht ganzzahlig (zumindest nicht mit Toleranz)

    das programm ist ja auch auf hochohmige widerstände von 91kOhm ausgelegt. selbst bei 0,5% toleranz hast du da noch abweichungen von 455Ohm.

    Das einzelne Messen der Widerstände ist zu aufwendig.
    Wenn, dann werden Stichproben gemessen und dann ganze Chargen in die Kisten sortiert.

    funktioniert das denn? angeblich soll das doch unglaublich schwer sein, die paste so gleichmäßig aufzutragen, dass die widerstandswerte halbwegs stabil sind.

    Dann bekommst du aber für die Reihen mit hohen Toleranzen eher eine Trampeltierkurve (mit zwei Höckern), da die Werte mit der niedrigen Toleranz in einer anderen Kiste sind.

    hast du ja im prinzip auch. aber ab der mitte des jeweiligen höckers fängt die vorherige bzw. nächste wertegruppe an.


Anmelden zum Antworten