Ohmsches Gesetz in C-Programm?


  • Mod

    @Infinity1337 sagte in Ohmsches Gesetz in C-Programm?:

    Das Ding ist halt, dass ich Späteinsteiger in der Ausbildung bin, habe 3 Wochen verpasst. Kann sein, dass die das da bereits gemacht haben, ich aber halt nicht.

    Ja, klingt so. Nach 3 Wochen C-Kurs wäre das eine ziemlich anspruchsvolle, aber zumindest realistische Hausarbeit. Das löst natürlich dein Problem nicht, denn das bedeutet ja nur, dass du 3 Wochen nachholen musst, und das wird sich kaum abkürzen lassen.

    Ich könnte mir vorstellen, später am Tage ein entsprechendes Programm in Python zu verfassen (weil mich C zu sehr nerven würde), dann hättest du wenigstens einige Ideen, wie man so etwas angeht und welche Komponenten da reingehen. Zumindest für die High-Level-Struktur. Das ganze Low-Level-Zeug, das einen Python abnimmt, müsstest du dann auch noch für C lernen. Python ist auch lesbar genug, dass man das (mit Anstrengung) auch als nicht-Programmierer verstehen kann.



  • @SeppJ Wenn ich den Code vor mir sehe, kann ich mir schon vorstellen, dass ich daraus lernen kann und verstehen kann, wieso er so geschrieben worden ist, aber momentan stehe ich auf dem Schlauch und sitze meine Zeit hier ab, weil ich einfach nicht weiterweiß.


  • Mod

    @Infinity1337 sagte in Ohmsches Gesetz in C-Programm?:

    @SeppJ Wenn ich den Code vor mir sehe, kann ich mir schon vorstellen, dass ich daraus lernen kann und verstehen kann, wieso er so geschrieben worden ist, aber momentan stehe ich auf dem Schlauch und sitze meine Zeit hier ab, weil ich einfach nicht weiterweiß.

    Das wäre der Plan (und ich würde es auch selber interessant finden). Aber jetzt habe ich erst einmal keine Zeit dafür.



  • @SeppJ sagte in Ohmsches Gesetz in C-Programm?:

    @Infinity1337 sagte in Ohmsches Gesetz in C-Programm?:

    @SeppJ Wenn ich den Code vor mir sehe, kann ich mir schon vorstellen, dass ich daraus lernen kann und verstehen kann, wieso er so geschrieben worden ist, aber momentan stehe ich auf dem Schlauch und sitze meine Zeit hier ab, weil ich einfach nicht weiterweiß.

    Das wäre der Plan (und ich würde es auch selber interessant finden). Aber jetzt habe ich erst einmal keine Zeit dafür.

    Ja, gar kein Ding. Mach dich da nur ran, wenn du willst und wenn du Zeit hast. Ich recherchiere für mich selbst noch weiter, allerdings weiß ich nicht, ob ich wirklich weiterkomme.



  • Du solltest erst einmal deinen Ausbilder bzw. andere Azubis fragen, was in den ersten 3 Wochen gelehrt wurde, damit du das nachholen kannst.
    Wenn dort kein konkretes C Tutorial oder Buch benutzt wurde, dann solltest du selber eines durcharbeiten.
    Online gefunden habe ich z.B. C-HowTo: Tutorial Start, welches keine Programmiererfahrung vorauszusetzen scheint.
    Weitere sind WikiBooks: C-Programmierung und (in englisch) tutorialspoint: C Tutorial, so daß du selber entscheiden kannst, welches dir mehr zusagt (bzw. wenn du bei einem etwas nicht verstehst, dann bei einem anderen nachlesen kannst).

    Und du solltest dir auch eine lokale Entwicklungsumgebung (IDE) installieren.
    Ohne selber einige Testprogramme geschrieben zu haben, wirst du kaum diese Aufgabe komplett lösen können.



  • @Infinity1337 sagte in Ohmsches Gesetz in C-Programm?:

    Ja, gar kein Ding. Mach dich da nur ran, wenn du willst und wenn du Zeit hast. Ich recherchiere für mich selbst noch weiter, allerdings weiß ich nicht, ob ich wirklich weiterkomme.

    Der erste Schritt ist die Berechnung in eine Abfolge von formalen Schritten aufzuschreiben (Pseudo-Code) – ganz ähnlich wie ein Rezept zum Kuchenbacken. Das sollte so simpel sein, dass jemand der davon keine Ahnung hat es trotzdem korrekt ausrechnen kann. Was muss jemand der von der Materie keinerlei Ahnung hat tun, damit er die nach Aufgabenstellung korrekten Ergebnisse bekommt? (Einfach in simplen deutschen Sätzen beschreiben.)

    1. ...
    2. ...

  • Mod

    @john-0 sagte in Ohmsches Gesetz in C-Programm?:

    @Infinity1337 sagte in Ohmsches Gesetz in C-Programm?:

    Ja, gar kein Ding. Mach dich da nur ran, wenn du willst und wenn du Zeit hast. Ich recherchiere für mich selbst noch weiter, allerdings weiß ich nicht, ob ich wirklich weiterkomme.

    Der erste Schritt ist die Berechnung in eine Abfolge von formalen Schritten aufzuschreiben (Pseudo-Code) – ganz ähnlich wie ein Rezept zum Kuchenbacken. Das sollte so simpel sein, dass jemand der davon keine Ahnung hat es trotzdem korrekt ausrechnen kann. Was muss jemand der von der Materie keinerlei Ahnung hat tun, damit er die nach Aufgabenstellung korrekten Ergebnisse bekommt? (Einfach in simplen deutschen Sätzen beschreiben.)

    1. ...
    2. ...

    Das ist aber eine ganz schön schwierige Forderung an jemanden ohne Programmierkenntnisse, so eine Liste zu erstellen, die dann auch sinnvoll in ein Programm umzusetzen ist. Zumal eine für die Programmierung taugliche Liste typischerweise keine Schritt-für-Schritt-Liste sein wird, sondern Schleifen, Bedingungen und ähnliches enthalten wird, wo man als Nicht-Programmierer gar nicht gewohnt ist so zu denken. Darum ist das ja gerade so schwierig, wenn man als Programmierer einem Nicht-Programmierer irgendwie eine brauchbare Erklärung abnehmen muss, was der überhaupt von einem will.

    Gerade hier ist das ja sogar ein rekursives Problem. Das kannst du als Programmierer jemandem ohne Vorkenntnisse kaum erklären; unmöglich dies umgekehrt in einer Problemdefinition zu erwarten!



  • @Infinity1337
    Mal eine Bitte: Stell doch mal bitte die komplette Aufgabe hier rein.



  • @SeppJ sagte in Ohmsches Gesetz in C-Programm?:

    Aber für ein allgemeines Programm, das mit einer beliebigen Kombination von Reihen und Serien und beliebigen Widerständen zurecht kommt

    Ist das denn die Aufgabe? Es sind doch konkrete Widerstände und ein konkreter Schaltplan gegeben. Oder übersehe ich etwas?
    => Der Plan https://ibb.co/J7cCTH7
    => Und im Thread ist angeben, welcher Wiederstand welche Farbringe hat (=> Mit meinem Halbwissen glaube ich das sich daraus doch direkt die Widerstände berechnen / online nachlesen lassen)

    Dann ist noch ne Eingangsspannung gegeben. Ich schätze mal, man soll jetzt irgendwie die Stromstärke oder so ausgeben? Dazu also dann die entsprechenden Formeln mit Reihe & Serie nachschlagen und in Code mit den konkreten Werten / Aufbau der Schaltung geben.

    Mit Sicherheit keine leichte Einstiegsaufgabe, wenn man so gar keine Ahnung von nix hat. Aber ich sehe noch nicht ganz die Komplexität, die dich 3h kosten würde.


  • Mod

    @Leon0402 sagte in Ohmsches Gesetz in C-Programm?:

    @SeppJ sagte in Ohmsches Gesetz in C-Programm?:

    Aber für ein allgemeines Programm, das mit einer beliebigen Kombination von Reihen und Serien und beliebigen Widerständen zurecht kommt

    Ist das denn die Aufgabe? Es sind doch konkrete Widerstände und ein konkreter Schaltplan gegeben. Oder übersehe ich etwas?

    Das ist halt impliziert, wenn man kein Klugscheißer sein möchte, der ein Programm printf("%f", auf_papier_berechnetes_ergebnis) schreiben möchte, sondern vielleicht wirklich dem Geiste der Aufgabe folgen will, weil man etwas lernen möchte. Wenn ich der Ausbilder wäre und mir jemand weniger als ein allgemeintaugliches Programm zu so einer Aufgabe abliefert, würde ich das als Verfehlen des Ausbildungsziels ansehen. Und mir irgendeine ironische Disziplinarmaßnahme ausdenken, wie "schreibe 100 Programme dieser Art zu jeweils leicht unterschiedlichen Schaltplänen"



  • @SeppJ sagte in Ohmsches Gesetz in C-Programm?:

    @Leon0402 sagte in Ohmsches Gesetz in C-Programm?:

    @SeppJ sagte in Ohmsches Gesetz in C-Programm?:

    Aber für ein allgemeines Programm, das mit einer beliebigen Kombination von Reihen und Serien und beliebigen Widerständen zurecht kommt

    Ist das denn die Aufgabe? Es sind doch konkrete Widerstände und ein konkreter Schaltplan gegeben. Oder übersehe ich etwas?

    Das ist halt impliziert, wenn man kein Klugscheißer sein möchte, der ein Programm printf("%f", auf_papier_berechnetes_ergebnis) schreiben möchte, sondern vielleicht wirklich dem Geiste der Aufgabe folgen will, weil man etwas lernen möchte.

    Verstehe ich nicht so ganz. Es gibt vier Varianten:

    1. Für einen konkreten Schaltplan, konkrete Ergebnisse auf Papier von Hand berechnen
    2. Für einen konkreten Schaltplan und konkrete Widerstandswerte, den Computer die Ergebnisse berechnen lassen
    3. Für einen konkreten Schaltplan und beliebige Widerstandswerte (per Eingabe), den Computer die Ergebnisse berechnen lassen
    4. Für einen beliebigen Schaltplan und beliebige Widerstandswerte (per Eingabe), die Ergebnisse automatisiert berechnen lassen

    Offensichtlich ist 1 nicht Sinn der Aufgabe. Aber ich sehe das Problem nicht mit Aufgabe 2. Das ist doch völlig üblich für Anfängeraufgaben, dass man nicht generische Probleme löst. Also sprich sowas wie mathematische Formeln in Code umzuwandeln. Da können alle Werte auch hardgecoded werden und diese Formeln sehr ungenerisch sein. Mit Stufe 3 wird das ganze ein ticken anspruchsvoller und schon fast eine nützliche Applikation. Aufgabe 4 ist natürlich eine sehr nützliche Applikation, aber mit Sicherheit eben keine absolute Anfängeraufgabe.

    Wie die Aufgabe konkret lautet, wird nur der Thread Ersteller und sagen können. Aber wie du darauf kommst, dass ausgerechnet Aufgabentyp 4 verlangt ist, obwohl doch explizit ein Schaltplan und explizit Widerstandswerte gegeben sind, erschließt sich mir überhaupt nicht. Auch den Satz "Beispielhaft könnte das so aussehen ...." habe ich nirgendswo gelesen, im Gegenteil.

    Edit: Und vlt. ist dann Aufgabe 3 oder 4 eine entsprechende Folgeaufgabe 😉


  • Mod

    Meinst du mit Stufe 2 so etwas wie

    int blue = 6, yellow = 4, red = 2; // Ich tippe jetzt nicht alle Farben ein
    
    float r1 = (blue*10 + yellow) * pow(10, red);
    
    [...]
    
    float r9 = r5 + r6 + r7 + r8;
    
    [...]
    
    float r_gesamt = r9 + [ich rechne das jetzt nicht alles durch];
    printf("Ergebnis %f", r_gesamt);
    

    Also den Computer wie einen Taschenrechner nutzen? Das kann doch unmöglich das Ausbildungsziel sein. Wieso sollte man das programmieren und eben keinen Taschenrechner nutzen? Das ist doch quasi das gleiche, wie auf Papier rechnen, bloß dass man es in C aufschreibt.

    Es wäre natürlich etwas, das man ohne Vorkenntnisse tatsächlich nach 5 Minuten Lernen schaffen könnte. Da bräuchte der Threadersteller dann wohl auch keine Hilfe. Würde zu der Aussage passen, dass sich die Auszubildenen angeblich das einfach zusammengoogeln sollen. Hat mit C aber halt nix zu tun, und könnte jeder grafische Taschenrechner einfacher und besser.



  • @SeppJ sagte in Ohmsches Gesetz in C-Programm?:

    Meinst du mit Stufe 2 so etwas wie

    float r1 = (60 + 4) * 100;
    
    […]
    
    float r10 = r5 + r6 + r7 + r8;
    

    Also den Computer wie einen Taschenrechner nutzen? Das kann doch unmöglich das Ausbildungsziel sein. Wieso sollte man das programmieren und eben keinen Taschenrechner nutzen? Das ist doch quasi das gleiche, wie auf Papier rechnen, bloß dass man es in C aufschreibt.

    Es wäre natürlich etwas, das man ohne Vorkenntnisse tatsächlich nach 5 Minuten Lernen schaffen könnte.

    Ehrlicherweise weiß ich nicht zu 100% wie man das im Taschenrechner berechnet bzw. was man überhaupt hier berechnen soll. Da da ne Spannung gegeben ist, habe ich mal vermutet, dass man da schon etwas komplexere Formeln für braucht (mindestens sowas wie U = RI 😃 ). Und diese widerum kann man z.B. als halbwegs generische Funktionen definieren. Sowas wie berechne_irgendwas_aus_widerstand_aus_irgendwas_anderem(float widerstand, ...).
    Oder berechne_widerstandswert_aus_farben(...), wo man dan z.B. mit nem Enum die Farben definiert und dann übergibt man vier Stück und kriegt den Wert dazu.

    Wie gesagt, beschränktes Wissen darüber, was hier eig. verlangt ist (=> Vlt. kommt daher auch meine Verwirrung hier). Aber meine Vermutung war, dass es mehr ist als nur + rechnen. Es sollte schon generische Inhalte beinhalten (Variablen für Widerstände, Hilfsmethoden etc.). Aber man muss ja nicht gleich alles komplett generisch machen. Und am besten noch ne graphische Oberfläche haben 😃

    Hat mit C aber halt nix zu tun, und könnte jeder grafische Taschenrechner einfacher und besser.

    Jeder fängt mal klein an. Und lernen wie man variablen definiert, etwas ausgibt auf der Konsole etc. gehört dazu. Ob ein grafischer Taschenrechner das besser kann, ist doch völlig egal 😃


  • Gesperrt

    Ich sehe das ähnlich wie @SeppJ , aber verstehe hier mehrere Dinge nicht. Es wurde ein Schaltplan gezeigt, aber keine konkreten Eingangswerte, keine Widerstands-Werte und auch keine Messpunkte. Ich denke, deshalb sollte der (Gesamt-)Widerstand vor und nach jedem Widerstand angegeben werden. Aber das ist nur eine Vermutung. Die genaue Aufgabenstellung wäre da aufschlussreich. Zweiter Punkt: Ich verstehe leider auch nicht, ob der Schaltplan fest ist oder beliebige Widerstände eingesetzt werden können. Weiterhin, ob der Schaltplan nur ein Beispiel für ein Muster darstellt, das unterschiedlich ausgeprägt sein kann ... Wie die Ein- und Ausgabe sein soll (grafisch? Konsole?) usw. Also kurzum: Außer Spekulationen weiß ich hier gar nichts.

    @Quiche-Lorraine sagte in Ohmsches Gesetz in C-Programm?:

    @Infinity1337
    Mal eine Bitte: Stell doch mal bitte die komplette Aufgabe hier rein.

    +1


  • Gesperrt

    @Leon0402 sagte in Ohmsches Gesetz in C-Programm?:

    Da da ne Spannung gegeben ist, habe ich mal vermutet, dass man da schon etwas komplexere Formeln für braucht (mindestens sowas wie U = RI ).

    Ich sehe da aber keine Spannung(en). Vielleicht könnte der ohmsche Widerstand auch in Prozent angegeben werden ... 🤷♂ Aber ich denke schon, dass es wahrscheinlich über so etwas https://www.digikey.de/de/resources/conversion-calculators/conversion-calculator-ohms hinausgehen soll ...



  • @CyborgBeta sagte in Ohmsches Gesetz in C-Programm?:

    @Leon0402 sagte in Ohmsches Gesetz in C-Programm?:

    Da da ne Spannung gegeben ist, habe ich mal vermutet, dass man da schon etwas komplexere Formeln für braucht (mindestens sowas wie U = RI ).

    Ich sehe da aber keine Spannung(en). Vielleicht könnte der ohmsche Widerstand auch in Prozent angegeben werden ... 🤷♂ Aber ich denke schon, dass es wahrscheinlich über so etwas https://www.digikey.de/de/resources/conversion-calculators/conversion-calculator-ohms hinausgehen soll ...

    Dann musst du wohl nochmal lesen,wenn du weder konkrete Widerstandwerte noch eine Spannung aus dem Eingangspost erkennen kannst. Beides steht nämlich drin. Ob das reicht, um X zu berechnen: Keine Ahnung. Aber es sind zumindest einige Werte angegeben.



  • @CyborgBeta sagte in Ohmsches Gesetz in C-Programm?:

    Vielleicht könnte der ohmsche Widerstand auch in Prozent angegeben werden ... Aber ich denke schon, dass es wahrscheinlich über so etwas https://www.digikey.de/de/resources/conversion-calculators/conversion-calculator-ohms hinausgehen soll ...

    Die Farbcodes spiegeln geben die Widerstände an:

    https://de.farnell.com/widerstand-farbcode-rechner?CMP=KNC-GDE-GEN-KWL-PMAX-Search-TEST-1545&gclid=EAIaIQobChMIwLj86Y2WgQMVEgd7Ch3SOgBLEAAYASAAEgLeIfD_BwE


  • Gesperrt

    Dieser Beitrag wurde gelöscht!

  • Gesperrt

    Dieser Beitrag wurde gelöscht!

  • Mod

    Dieser Beitrag wurde gelöscht!

Anmelden zum Antworten