Einschalten einer Gluehbirne



  • Also ich hab das ganze nicht selber geschrieben. Könnte ich auch nicht, weil ich absoluter Anfänger bin.
    Was genau muss ich denn machen um die Konsole hier jetzt anzubekommen 😃
    Weiss nämlich nicht was ich mit der Aussage über cpp.tags anfangen soll.

    Wäre echt nett wenn ihr mir eben helfen könnt.



  • Du sollst die cpp tags benutzen, damit dein Code halbwegs lesbar wird:

    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
    #include <string.h>
    #include <stdio.h>
    
    // Anfang Definition der beteiligten Elemente
    FILE *datei;
    double
    
    // Eigenschaften des Drahtes
    l = 0.45, // Länge des Drahtes in m
    r = 0.00002, // Radius des Drahtes in m
    Ob, // Oberfläche Draht
    A, // Querschnittsfläche des Drahtes
    V, // Volumen des Drahtes
    Rspe = 0.0000000528,// Spezifischer Wiederstand Wolfram in Ohm*m
    Rhod = 19300, // Dichte von Wolfram in kg/m3
    md, // Masse des Drahtes
    Rd, // Wiederstand des Drahtes
    Rel, // Elektrischer Wiederstand des Drahtes bei T
    Rt, // Spezifische-elektrische Wiederstand des Drahtes in Abhängigkeit von der Temperatur
    Rhalte=3.5, // Widerstand des Haltedrahtes und des Gehäuses
    Tschmelz = 3695.15, // Schmelztemperatur des Drahtes in °K
    
    // Temperaturkonstanten/variablen
    Tr = 293.15, // Raumtemperatur in K / Temperatur des Drahtes bei t=0
    T, // Temperatur des Drahtes in Abhängigkeit von der Zeit
    Tc, // Temperatur des Drahtes in Celsius
    Td, // Temperaturdifferenz Raum-Draht in °C
    Ter, // Erwärmung des Drahtes
    alpha = 0.0041, // Linearer Temperaturkoeffizient in 1/°C
    beta = 0.000001, // Linearer Temperaturkoeffizient in 1/°C
    lambda = 163, // Wärmeleitfähigkeit Wolfram
    c = 134, // spezifische Wärmekapazität Wolfram in J/(kg*°C)
    
    // Allgemeine Variablen / Konstanten
    iterationen = 100000000, // Anzahl der maximalen Iterationen der Simulation
    lambdamax, // Maximum der Strahlungsintensität in Nanometern
    Ug = 230, // Spannung
    U, // Spannung die am Draht anliegt in V
    I, // Stromstärke die am Draht anliegt in A
    f = 50, // Frequenz der Wechselspannung in Hz
    P, // Leistung im Draht
    Pg, // Aufgenommene Leistung Pgesamt
    C, // Wärmekapazität
    Bk = 0.000000056704, // Stefan-Boltzmann-Konstante
    Pstr, // Strahlungsleistung des Drahtes
    deltat = 0.000001, // Zeitschritt pro Iteration in Sekunden
    epsilon, // Näherung des Gesamtemmisionsgrades
    quiet = 0, // Nur Daten ausgeben, keine weiteren Informationen
    stat = 1, // Stationäre Werte erreicht falls stat==0
    Im, // Memory der Werte für stat()
    statvar = 1.00000001, // Faktor um den P variieren darf um als stat. zu gelten
    k=10, // Zähler für Wellenlaenge(), Startwert der Spannung/10 für UI-Diagramm
    
    //Längenänderung Draht
    deltal, // Länge
    deltar, // Radius
    deltaT, // Temperatur
    ausdkoeff = 0.0000045, // Ausdehnungskoeffizient
    la, // Länge nach Ausdehnung
    ra, // Radius nach Audehnung
    t, // Zeitpunkt in Sekunden nach dem einschalten
    // Ausgabevariablen
    custom=0, // Kündigt eigene Ausgabe an:
    uout=0, // Spannung U wird ausgegeben
    iout=0, // Stromstärke I wird ausgegeben
    lambdamaxout=0, // Wellenlänge mit max. Strahlungsintensität wird ausgegeben
    pout, // Aufgenommene Leistung ausgeben
    tout=0, // Temperatur in C° wird ausgegeben
    wechselstrom=0, // Wird der Wechselstorm beachtet?
    freq = 50,
    timeout=0; // Laufzeit in s wurd ausgegeben
    int type;
    // Ende Definition der beteiligten Elemente
    
    // Anfang Mem Anfang Mem Anfang Mem Anfang Mem Anfang Mem Anfang Mem Anfang Mem
    void Mem()
    {
    if (wechselstrom==1) // Falls mit Wechselstrom simuliert wird:
    {
    if (Ug == 325 ); // Es wird die Stromstärke bei der Maximalspannung verglichen,
    { Im = I;}
    }
    if (wechselstrom ==0)
    Im= I; //
    }
    // Ende Mem Ende Mem Ende Mem Ende Mem Ende Mem Ende Mem Ende Mem Ende Mem Ende Mem
    
    // Anfang Stationar Anfang Stationar Anfang Stationar Anfang Stationar Anfang Stationar
    void Stationaer() // Überprüfung auf Stationäre Werte
    
    {
    if (wechselstrom==0) // Ohne Wechselstrom:
    {
    if (I >= Im){
    if(I<=Im*statvar){ stat = 0;}} // Hier wird bei jeder Iteration verglichen
    else if (I <= Im){
    if(I*statvar>=Im){ stat = 0;}}
    }
    else // Mit Wechselstrom:
    { if (Ug==325) // Hier wird nur bei der <Maximalspannung verglichen
    {
    if (I >= Im){
    if(I<=Im*statvar){ stat = 0;}}
    else if (I <= Im){
    if(I*statvar>=Im){ stat = 0;}}
    }
    }
    }
    // Ende Stationaer Ende Stationaer Ende Stationaer Ende Stationaer Ende Stationaer
    
    // Anfang Wechselstrom Anfang Wechselstrom Anfang Wechselstrom Anfang Wechselstrom
    void Wechselstrom()
    {
    Ug=325*sin((M_PI*t)/((1/freq))); // Simmuliet eine Sinusförmige Wechselspannung
    }
    // Ende Wechselstrom Ende Wechselstrom Ende Wechselstrom Ende Wechselstrom Ende Wechselstrom
    
    // Anfang Laengenaenderung Anfang Laengenaenderung Anfang Laengenaenderung Anfang Laengenaenderung
    void Laengenaenderung() // Simuliert die Temperaturanhängige Ausdehnung des Drahtes
    {
    deltaT = T - Tr; // Temperaturdifferenz Draht - Raum
    deltal = l*ausdkoeff*deltaT; // Längenänderung des Drahtes
    deltar = r*ausdkoeff*deltaT; // Änderung des Drahtradius
    la = l + deltal; // Drahtlänge nach Ausdehnung
    ra = r + deltar; // Drahtradius nach Ausdehnung
    Ob = 2*ra*M_PI*la; // Neue Oberfläche des Drahtes
    }
    // Ende Laengenaenderung Ende Laengenaenderung Ende Laengenaenderung Ende Laengenaenderung
    
    // Anfang Farbe Anfang Farbe Anfang Farbe Anfang Farbe Anfang Farbe Anfang Farbe Anfang Farbe
    void Farbe() // Beschreibt die Farbe mit der max. Strahlungsleistung
    {
    if (lambdamax > 780 && lambdamax < 1000000) printf("Infrarot\n");
    else if (lambdamax > 0 && lambdamax <380) printf("Ultraviolett\n");
    else if (lambdamax > 380 && lambdamax <450) printf("der Farbe Pupurblau\n");
    else if (lambdamax > 450 && lambdamax <482) printf("der Farbe Blau\n");
    else if (lambdamax > 482 && lambdamax <487) printf("der Farbe Grünlich-Blau\n");
    else if (lambdamax > 487 && lambdamax <492) printf("der Farbe Cyan\n");
    else if (lambdamax > 492 && lambdamax <497) printf("der Farbe Bläulich-Grün\n");
    else if (lambdamax > 497 && lambdamax <530) printf("der Farbe Grün\n");
    else if (lambdamax > 530 && lambdamax <560) printf("der Farbe Gelblich-Grün\n");
    else if (lambdamax > 560 && lambdamax <570) printf("der Farbe Gelb-Grün\n");
    else if (lambdamax > 570 && lambdamax <575) printf("der Farbe Grünlich-Gelb\n");
    else if (lambdamax > 575 && lambdamax <580) printf("der Farbe Gelb\n");
    else if (lambdamax > 580 && lambdamax <585) printf("der Farbe Gelblich-Orange\n");
    else if (lambdamax > 585 && lambdamax <595) printf("der Farbe Orange\n");
    else if (lambdamax > 595 && lambdamax <620) printf("der Farbe Rötlich-Orange\n");
    else if (lambdamax > 620 && lambdamax <780) printf("der Farbe Rot\n");
    }
    // Ende Farbe Ende Farbe Ende Farbe Ende Farbe Ende Farbe Ende Farbe Ende Farbe Ende Farbe
    
    // Anfang Konstantenberechnung Anfang Konstantenberechnung Anfang Konstantenberechnung
    void Konstantenberechnung()
    {// Hier werden die im Laufe der Rechnung benoetigten Konstanten berechnet
    T = Tr; // T Temperatur des Drahtes ist Raumtemperatur Tr
    A = r*r*M_PI; // Querschnittflaeche des Drahtes
    V = A*l; // Volumen des Drahtes
    Ob = 2*r*M_PI*l; // Oberfläche des Drahtes
    md = V*Rhod; // Masse des Drahtes
    //Rel = (Rspe*l)/A; // elektrischer Widerstand des Drahtes
    Rel = 58.5; // Widerstand laut Osram
    C = c*md; // Wärmekapazität
    t=0;
    if (quiet == 0)printf(" Oberfläche %9.8fm² Gewicht %10.9fkg Rel %10.8fOhm C%10.9f\n" ,Ob,md,Rel,C);
    }
    // Ende Konstantenberechnung Anfang Konstantenberechnung Anfang Konstantenberechnung
    
    // Anfang Berechnung Anfang Berechnung Anfang Berechnung Anfang Berechnung
    void Berechnung() // Anfang: Berechnung eines Zeitabschnittes
    {
    if (wechselstrom==1) Wechselstrom();
    Laengenaenderung(); // Beachten der Temperaturabhängigen Ausdehnung des Glühdrahtes
    Td = T - 293.15; // Temperaturdifferenz Draht-Raumtemperatur
    
    //Elektrische Eigenschaften-----------------
    Rt = Rel*(1+alpha*(Td)+beta*pow(Td,2)); // Spezifische-elektrische Wiederstand des Drahtes
    U = Ug - (Ug * Rhalte / (Rhalte + Rt)); // Spannung die am Glühdraht anliegt, //Haltedrahtwiderstand subtr.
    P =0.98*((U*U)/Rt); // Aufgenommene Leistung
    I = U / Rt; // Stromstaerke I wird berechnet
    Pg= U * I; // vom Draht aufgenommene Leistung
    
    //Gesamtemissionsgrad-----------------------------------
    //epsilon = 0.05 + ((0.39/3300)*(T-273.153)); // Gesamtemissionsgrad linear
    Tc = T - 273.15; // Temperatur von Kelvin in Celsius umrechnen
    epsilon = -1*pow(10, -8)*Tc*Tc +0.0002*Tc + 0.0235; // Gesamtemissionsgrad polynomisch
    if (epsilon > 0.39) // Lineare Naeherung mit 0.39 als Obergrenze
    epsilon=0.39;
    
    //Strahlung----------------------------------------------
    Pstr = (pow(T,4)*Bk*Ob*epsilon); // Strahlungsleistung nach Stefan-Boltzmann-Gesetz
    P = P-Pstr; // Summe der Leistungsaufnahme/abgabe
    lambdamax = 2897800 / T; // Wiensches Verschiebungsgesetz
    Ter = (P*deltat)/C; // Ter = Erwärmung des Drahtes
    T = T + Ter; // Aktualisierung der Drahttemperatur
    t = t + deltat; // Aktualisierung der Laufzeit
    
    }
    // Ende Berechnung Ende Berechnung Ende Berechnung Ende Berechnung Ende Berechnung
    
    // Anfang Datenausgabe Anfang Datenausgabe Anfang Datenausgabe Anfang Datenausgabe
    void DatenausgabeSim() // Für "Simulation()"
    {
    datei = fopen ("Simulation.dat", "a"); // Öffnen der Zeildatei
    if (datei != NULL) // Falls fehlerfrei
    if (quiet == 1) // Ausgabe ohne Einheiten
    {
    printf(" %8.3f %10.8f %10.9f %7.2f %8.6f\n"
    ,Pg,I,T-273.15,Pstr,t); // Ausgabe in der Console, ohne Einheiten
    fprintf (datei," %8.3f %5.2f %10.9f %7.2f %8.6f\n"
    ,Pg,I,T-273.15,Pstr,t); // Hinzufügen einer Zeile, ohne Einheiten
    }
    else // Ausgabe mit Einheiten
    {
    printf(" P %15.10fW I %10.8fA T %8.2f°C Strahll. %7.2fW t %8.6fs\n"
    ,Pg,I,T-273.15,Pstr,t); // Ausgabe in der Console, mit Einheiten
    fprintf (datei, " P %10.3fW I %5.2fA T %8.2f°C Strahll. %7.2fW t %8.6fs\n"
    ,Pg,I,T-273.15,Pstr,t);// Hinzufügen einer Zeile, mit Einheiten
    }
    fclose (datei); // Schließen der Zieldatei
    }
    
    void DatenausgabeUID() // Für UIDiagramm
    {
    datei = fopen ("UIDiagramm.dat", "a"); // Öffnen der Zeildatei
    if (datei != NULL) // Falls fehlerfrei
    if (quiet == 1) // Falls keine Einheuten ausgegeben werden sollen
    {
    fprintf (datei, "%5.1f %6.5f\n" ,Ug,I); // Hinzufügen einer Zeile, ohne Einheiten
    printf("%5.1f %6.5f\n" ,Ug,I); // Ausgabe in der Console, ohne Einheiten
    }
    else // Falls Einheiten mit ausgegeben werden sollen
    {
    fprintf (datei, "%5.1fV %6.5fA\n" ,Ug,I); // Hinzufügen einer Zeile, ohne Einheiten
    printf("%5.1fV %6.5fA\n" ,Ug,I); // Ausgabe in der Console, ohne Einheiten
    }
    fclose (datei); // Schließen der Zieldatei
    }
    // Ende Datenausgabe Ende Datenausgabe Ende Datenausgabe Ende Datenausgabe Ende Datenausgabe
    
    // Anfang Customout Anfang Customout Anfang Customout Anfang Customout Anfang Customout
    void Customout() // Falls eine eigene Ausgabe gewünscht ist, wird diese hier entsprechend den Parametern erstellt
    {
    if (quiet == 0) // Einheiten werden ausgegeben
    {
    if (timeout==1){ printf ("%8.6fs ",t); fprintf (datei, "%8.6fs " ,t);} // Laufzeit
    if (uout==1){ printf ("%5.1fV ",Ug); fprintf (datei, "%5.1fV " ,Ug);} // Spannung
    if (iout==1){ printf ("%6.4fA ",I); fprintf (datei, "%6.4fA " ,I);} // Stromstärke
    if (pout==1){ printf ("%6.4fW ",Pg); fprintf (datei, "%6.4f " ,Pg);} // Aufgenommene
    //Leistung gesamt
    if (lambdamaxout==1){ printf ("%5.1fnm ",lambdamax); fprintf (datei, "%5.1fnm " ,lambdamax);} // Wellenlänge mit max. Strahlungsleistung
    if (tout==1){ printf ("%6.2f°C ",T-273.15); fprintf (datei, "%5.1f°C " ,T-273.15);}
    // Temperatur in °C
    printf ("\n"); fprintf (datei, "\n"); // Zeilenumbruch
    fclose (datei);
    }
    else // Einheiten werden nicht ausgegeben
    {
    if (timeout==1){ printf ("%8.6f ",t); fprintf (datei, "%8.6f " ,t);} // Laufzeit
    if (uout==1){ printf ("%5.1f ",Ug); fprintf (datei, "%5.1f " ,Ug);} // Spannung
    if (iout==1){ printf ("%6.4f ",I); fprintf (datei, "%6.4f " ,I);} // Stromstärke
    if (pout==1){ printf ("%6.4f ",Pg); fprintf (datei, "%6.4f " ,Pg);} // Aufgenommene // Leistung gesamt
    if (lambdamaxout==1){ printf ("%5.1f ",lambdamax); fprintf (datei, "%5.1f" ,lambdamax);} // Wellenlänge mit max. Strahlungsleistung
    if (tout==1){ printf ("%6.2f",T-273.15); fprintf (datei, "%6.2f " ,T-273.15);}
    // Temperatur in °C
    printf ("\n"); fprintf (datei, "\n"); // Zeilenumbruch
    fclose (datei);
    }
    }
    // Ende Customout Ende Customout Ende Customout Ende Customout Ende Customout
    
    // Anfang Simulation Anfang Simulation Anfang Simulation Anfang Simulation Anfang Simulation
    
    {
    Konstantenberechnung();
    int i;
    for (i=0; i<iterationen*stat; i++) // Iteriert bis stationäre Werte erreicht sind
    {
    Mem(); // Speichert die Momentane Stromstärke um sie mit der nächsten zu vergleichen
    Berechnung(); // Eigentliche Berechnung der Lampe
    if (custom == 1) // Falls eigene Ausgabe gewünscht ist
    {
    datei = fopen ("Simulation.dat", "a");
    Customout(); // Eigene Ausgabe
    }
    else if (custom == 0) // Ansonsten Standartausgabe
    DatenausgabeSim(); // Gibt die Werte aus
    Stationaer(); // Vergleicht die Werte aus Mem() mit den aktuellen
    if (stat == 1 && i == iterationen-1) // Falls keine Stationären Werte erreicht werden und alle
    // Schleifen durchgelaufen sind
    printf(" Ende der Schleife\n Keine Stationären Werte erreicht\n");
    }
    if (quiet == 0)
    {
    if (T > Tschmelz) printf("Die Drahttemperatur überschreitet denn Schmelzpunkt. Der Draht versagt!\n");
    printf ("Stationäre Werte erreicht bei %7.6fs, Änderung P < 0.01promille\n",t);
    printf("Maximale Strahlungsleistung bei %8.6fnm, das entspricht " ,lambdamax);
    Farbe(); printf("\n");
    
    }
    }
    // Ende Simulation Ende Simulation Ende Simulation Ende Simulation Ende Simulation Ende Simulation
    
    // Anfang UIDiagramm Anfang UIDiagramm Anfang UIDiagramm Anfang UIDiagramm Anfang UIDiagramm
    void UIDiagramm()
    {
    
    int i;
    if(quiet == 0) printf("UIDiagramm Start\n");
    Konstantenberechnung();
    datei = fopen ("UIDiagramm.dat", "a");
    if (datei != NULL)
    for (k; k<2301; k++) // Intervall für das die stationären Werte berechnet werden
    
    {
    
    Ug=k*0.1; // 0.1V Schritte
    
    if (timeout==1) // Nur falls die Zeit bis zur Stationärität benötigt wird
    { // Andernfalls wird so die Rechenzeit verkürzt
    T = Tr; // Widerherstellung der Ausgangswerte: Draht hat Raumtemperatur
    Ob = 2*r*M_PI*l; // Oberfläche des Drahtes, Längenänderung zurücknehmen
    t = 0; // Laufzeit auf 0
    }
    for (i=0; i<iterationen*stat; i++) // Widerholen bis stat. Werte erreicht sind
    {
    Mem(); // Speichert die Momentane Stromstärke um sie mit der nächsten zu vergleichen
    Berechnung(); // Eigentliche Berechnung der Lampe
    Stationaer(); // Vergleicht die Werte aus Mem() mit den aktuellen
    }
    stat=1; // stationär wider "unwahr" setzen
    
    {
    if (custom == 1) // Eigene Ausgabe
    {
    datei = fopen ("UIDiagramm.dat", "a");
    Customout();
    }
    else if (custom == 0) // stan**** Ausgabe
    {
    DatenausgabeUID();
    
    }
    }
    }
    if(quiet == 0) printf("UIDiagramm Ende\n" ); // Statusmeldung
    }
    
    // Ende UIDiagramm Ende UIDiagramm Ende UIDiagramm Ende UIDiagramm Ende UIDiagramm Ende UIDiagramm
    
    // Anfang main Anfang main Anfang main Anfang main Anfang main Anfang main Anfang main
    int main(int argc,char* argv[])
    {
    int gueltig=1; // Parameter für gültige Eingabe
    int i = 1;
    if (argc == 1) printf("Kein Parameter übergeben.\nDas Programm wurde beendet. \nSiehe Bericht: '5.Programmaufruf'."); // Falls kein Parameter übergeben wird
    for(; i < argc*gueltig; ++i) // Überprüfung der Parameter, bis ein ungültiger auftritt
    {
    if (!strcmp( argv[i], "quiet" )) // Nur Daten werden ausgegeben,
    quiet = 1; // Keine Einheiten/Statusmeldung
    
    else if (!strcmp( argv[i], "U" )) // Spannung U ausgeben
    {
    custom = 1; // Benutzerdefienierte Ausgabe
    uout = 1;
    }
    else if (!strcmp( argv[i], "I" )) // Stromstärke I ausgeben
    {
    custom = 1; // Benutzerdefienierte Ausgabe
    iout = 1;
    }
    else if (!strcmp( argv[i], "L" )) // Gibt Wellenlänge mit maximaler
    { // Strahlungsleistung aus
    custom = 1; // Benutzerdefienierte Ausgabe
    lambdamaxout = 1;
    }
    else if (!strcmp( argv[i], "T" )) // Gibt die Temperatur in Grad Celsius aus
    {
    custom = 1; // Benutzerdefienierte Ausgabe
    tout = 1;
    }
    else if (!strcmp( argv[i], "P" )) // GIbt die aufgenommene Leistung aus
    {
    custom = 1; // Benutzerdefienierte Ausgabe
    pout = 1;
    }
    else if (!strcmp( argv[i], "speed" )) // Beschleunigt den Iterationsvorgang zu
    { // Lasten der Ergebnisse
    statvar = ((statvar-1)*10)+1;
    k = k+100; // Erhöht Anfang des UIDiagramms um 10V
    }
    
    else if (!strcmp( argv[i], "Z" )) // Gibt die Laufzeit aus
    {
    timeout = 1;
    custom = 1; // Benutzerdefienierte Ausgabe
    }
    else if (!strcmp( argv[i], "wechsel" ))// Simuliert mit Wechselspannung
    {
    wechselstrom = 1;
    statvar = 1.0001; // Verringert nötige Genauiggkeit
    }
    
    else if (!strcmp( argv[i], "S" ))
    {
    FILE *datei; // Erstellen bzw überschreiben des Textdokumentes
    datei = fopen ("Simulation.dat", "w");
    if (datei != NULL)
    fprintf (datei, "");
    fclose (datei);
    Simulation(); // Eigentliche Berechnung
    }
    
    else if (!strcmp( argv[i], "W" ))
    {
    FILE *datei; // Erstellen bzw überschreiben des Textdokumentes
    datei = fopen ("UIDiagramm.dat", "w");
    if (datei != NULL)
    fprintf (datei, "");
    fclose (datei);
    UIDiagramm(); // Eigentliche Berechnung
    
    }
    else // Ungültige Parameter abfangen
    {
    printf("Ungültiger Parameter '%s'\nDas Programm wurde beendet."
    "\nBitte verwenden Sie nur gültige Parameter.",argv[i]);
    gueltig=0; // Stoppt das Programm
    }
    }
    return 0;
    }
    

    Aber ich glaub nicht, dass mit dem Code jemand was anfangen kann.



  • Ah danke, jetzt siehts echt besser aus.

    Naja es geht ja nicht direkt um den Inhalt bzw. die elektrotechnischen Aspekte des Programms.

    Ich erklärs mal so. Wenn ich diesen Quellquode jetzt sowie er da steht kopiere und ich MS Visual C++ in eine neue Konsolenanwendung einfüge. Dann müsste er sich doch kompilieren lassen ?

    Aber stattdessen bekomme ich einige so Fehlermeldungen wie:

    warning C4627: "#include <stdlib.h>": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
    1> "StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen

    Wie kann ich das beseitigen ?



  • Das ist ja erstmal nur eine Warnung und kein Fehler. Vorkompilierte Header kannst in den Projekteinstellungen deaktivieren, die sind in dem Fall glaub ich ziemlich egal.
    Ansonsten musst halt schauen ob sich das kompilieren lässt und evlt. alle Compilerfehler beheben 😉



  • Danke für die schnellen Antworten.

    Auch ohne vorkompilierten Header funktioniert es leider nicht 😞
    Weiss jetzt leider auch nicht, was genau ich machen muss damit das Ganze läuft.

    Kann das denn jemand mal ändern wenns nicht soviel zu Tun ist ? Kann das leider nicht einschätzen.



  • Die vorkompilierten Header lassen sich beim Anlegen eines Projekts abschalten.

    Die Fehler lassen darauf schliessen, das es eigentlich so nie gelaufen sein
    kann.

    1>warning C4390: ';': Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt?

    Bei if (Ug == 325 ); kann man sich alle if-Teile auch ganz sparen,
    siehe Kommentar "Speichert die Momentane Stromstärke"

    1>error C2065: 'M_PI': nichtdeklarierter Bezeichner

    es fehlt ganz oben

    #define M_PI 3.14
    

    1>error C2668: 'pow': Mehrdeutiger Aufruf einer überladenen Funktion

    epsilon = -1*pow((double)10, -8)* ...
    

    1> error C3861: "Simulation": Bezeichner wurde nicht gefunden.
    1> error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?

    Es fehlt wohl (mindestes)

    void Simulation()
    

    vor Konstantenberechnung();

    Danach lässt es sich kompilieren.
    ---

    Eine Hilfe wäre angebracht; z.B:

    "U"  Spannung U ausgeben 
     "I"  Stromstärke I ausgeben 
     "L"  Gibt Wellenlänge mit maximaler Strahlungsleistung aus 
     "T"  Gibt Temperatur in Grad Celsius aus 
     "P"  Gibt aufgenommene Leistung aus
    
     "S"  Eigentliche Berechnung 
          Erstellen bzw überschreiben des Textdokumentes "Simulation.dat"
    

    ----

    Wenn man es jetzt startet z.B. mit

    glbtst.exe  U S
    

    gibt es sehr viele 230.0V aus (Screen und Datei!)

    PS: Ob es elektrotechnisch Sinn macht habe ich nicht geprüft ...



  • Kannst du (oder jmd anderes) mir das per Teamviewer eben machen bitte ? 😞
    Habe die Änderungen die du genannt hast vorgenommen, bekomme jetzt aber erneut ganz andere Meldungen. 😞



  • Was ist eine Glühbirne?



  • Jaaa sorry Glühlampe, wollte es umschreiben damit es keiner googelt 😃

    Edit: Habe echt keine Grundlagen um das Programm zum Laufen zu bekommen. Aber für einen Kenner ist das doch nicht viel Arbeit oder ? Will nicht jemand 5 Minuten Hand anwerfen bitte ?

    Edit: Auch nicht gegen eine kleine Belohnung ? 🙂





  • Jetzt startet zwar die Konsole, aber mit folgendem Inhalt 😞

    Kein Parameter übergeben.
    Das Programm wurde beendet.

    Bei dir auch so ? Trotzdem danke erstmal für deine Mühe



  • agent60 schrieb:

    Jetzt startet zwar die Konsole, aber mit folgendem Inhalt 😞

    Kein Parameter übergeben.
    Das Programm wurde beendet.

    Bei dir auch so ? Trotzdem danke erstmal für deine Mühe

    Es ist doch dein Programm ?

    Ich hatte ja schon angemerkt, das es keine Aufrufhilfe gibt ...

    Also (mindestens) zwei Parameter scheint es zu brauchen ->siehe meinen post
    weiter oben - dann scheint es auch was zu machen.



  • Wie gesagt, habe es nicht selber geschrieben und kenne den Inhalt auch grötenteils nicht. Es ging nur darum, dass es einmal laufen sollte.

    An welcher Stelle genau muss ich denn void Simulation () einfügen ?



  • 314159265358979 schrieb:

    Was ist eine Glühbirne?

    http://www.stupidedia.org/stupi/Gl%C3%BChbirne



  • Ich finde das nicht sooo witzig jetzt....



  • Also du hast keine AHnung was der Code macht oder was er machen soll. Dich interessiert nur der e-technische Aspekt?
    Wenn du keine AHnung von dem Code hast, ists wohl besser du vergisst ihn ganz schnell.



  • Aber er soll doch laufen 😃



  • agent60 schrieb:

    Wie gesagt, habe es nicht selber geschrieben und kenne den Inhalt auch grötenteils nicht. Es ging nur darum, dass es einmal laufen sollte.

    An welcher Stelle genau muss ich denn void Simulation () einfügen ?

    Da wo die einsame (bisher sinnlose) Klammer (Zeile 276) hochsteht wäre noch
    eine freie Stelle ...



  • Ich weiß nich wieso,
    aber ich habe das Gefühl, dass genau in simulation()
    die eigentlich wichtigen Schritte stehen müssten.

    Zumindest würde ich eine Funktion, die wichtige Simulationsschritte berechnet
    simulation() nennen.



  • @ Thread Ersteller
    Das fertig Compilierte Programm hat dir ja bereits wer hochgeladen.

    Jetzt mach mal folgendes.

    Rechts klick auf die Exe Datei -> Eigenschaften kopier den Pfad raus der Bei Ort steht.

    Jetzt klickst du auf den Windows Start Button und bei Ausführen bzw. bei Win7 heitßt es suchen dort gibst du ein "cmd.exe" (ohne " ") und drückst Enter. ^^

    Jetzt siehst du die Eingabeaufforderung, nun schreibst du: "cd" (ohne " ")
    und machst eine Leerstelle, jetzt Rechtsklick in das Eingabeaufforderungsfenster und dann auf Einfügen klicken und Enter drücken.

    Jetzt schreibst du: d S und drückst Enter (d=Programmname S=Ein Parameter welchen das Programm erwartet) und schon gibt es dir irgendwelche tollen Zahlen aus wenn du kb mehr auf Zahlen gucken hast hälst du strg gedrückt und dabei drückst du C auf deiner Tastatur. Das Programm erstellt eine Datei die heisst: Simulation.dat und da drin wird das gespeichert was du auf der Konsole gesehen hast.

    Es gibt da aber noch mehr Parameter. Kannst ja selbst mal schauen welche Parameter es so gibt:

    else if (!strcmp( argv[i], "S" ))
    

    Hier prüft das Programm z.b. ob du den Parameter S eingeben hast

    if (!strcmp( argv[i], "quiet" )) // Nur Daten werden ausgegeben, 
     quiet = 1; // Keine Einheiten/Statusmeldung 
    
    else if (!strcmp( argv[i], "U" )) // Spannung U ausgeben 
     { 
     custom = 1; // Benutzerdefienierte Ausgabe 
     uout = 1; 
     } 
    else if (!strcmp( argv[i], "I" )) // Stromstärke I ausgeben 
     { 
     custom = 1; // Benutzerdefienierte Ausgabe 
     iout = 1; 
     } 
    else if (!strcmp( argv[i], "L" )) // Gibt Wellenlänge mit maximaler 
     { // Strahlungsleistung aus 
     custom = 1; // Benutzerdefienierte Ausgabe 
     lambdamaxout = 1; 
     } 
    else if (!strcmp( argv[i], "T" )) // Gibt die Temperatur in Grad Celsius aus 
     { 
     custom = 1; // Benutzerdefienierte Ausgabe 
     tout = 1; 
     } 
    else if (!strcmp( argv[i], "P" )) // GIbt die aufgenommene Leistung aus 
     { 
     custom = 1; // Benutzerdefienierte Ausgabe 
     pout = 1; 
     } 
    else if (!strcmp( argv[i], "speed" )) // Beschleunigt den Iterationsvorgang zu 
     { // Lasten der Ergebnisse 
     statvar = ((statvar-1)*10)+1; 
     k = k+100; // Erhöht Anfang des UIDiagramms um 10V 
     } 
    
    else if (!strcmp( argv[i], "Z" )) // Gibt die Laufzeit aus 
     { 
     timeout = 1; 
     custom = 1; // Benutzerdefienierte Ausgabe 
     } 
    else if (!strcmp( argv[i], "wechsel" ))// Simuliert mit Wechselspannung 
     { 
     wechselstrom = 1; 
     statvar = 1.0001; // Verringert nötige Genauiggkeit 
     } 
    
    else if (!strcmp( argv[i], "S" )) 
     {
    

    Aber sowie ich das sehe wurde das Programm nicht fertig Programmiert.^^


Anmelden zum Antworten