Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: Projekte ::  Einschalten einer Gluehbirne  
Gehen Sie zu Seite 1, 2, 3  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
agent60
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.04.2012
Beiträge: 10
Beitrag agent60 Mitglied 12:15:46 15.04.2012   Titel:   Einschalten einer Gluehbirne            Zitieren

Hey Leute,

habe ein Programm für die Uni welches ich leider nicht mehr zum Laufen krieg.
Es geht um eine Glühbirne. Weder Dev++ noch Visual krieg ich nicht hin :D
Das Programm ist aber schon fertig, kann mal bitte eben jemand schauen was für ein Fehler angezeigt wird ? Danke schonmal im v******.

#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;
}
// Ende Main Ende Main Ende Main Ende Main Ende Main Ende Main Ende Main Ende Main
// Ende des Programms
lagalopex
Mitglied

Benutzerprofil
Anmeldungsdatum: 21.01.2008
Beiträge: 317
Beitrag lagalopex Mitglied 17:03:32 15.04.2012   Titel:              Zitieren

Es fehlen die cpp-tags.
Was genau ist dein Problem?
Übersetzen lässt sich das Program so nicht...
Mechanics
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.01.2012
Beiträge: 1368
Beitrag Mechanics Mitglied 17:04:42 15.04.2012   Titel:   Re: Einschalten einer Gluehbirne            Zitieren

agent60 schrieb:
// Ende Main Ende Main Ende Main Ende Main Ende Main Ende Main Ende Main Ende Main


LOL
agent60
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.04.2012
Beiträge: 10
Beitrag agent60 Mitglied 23:16:41 15.04.2012   Titel:              Zitieren

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 :D
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.
Mechanics
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.01.2012
Beiträge: 1368
Beitrag Mechanics Mitglied 23:31:49 15.04.2012   Titel:              Zitieren

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

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
#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.
agent60
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.04.2012
Beiträge: 10
Beitrag agent60 Mitglied 23:44:30 15.04.2012   Titel:              Zitieren

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:

Zitat:
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 ?
Mechanics
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.01.2012
Beiträge: 1368
Beitrag Mechanics Mitglied 23:58:37 15.04.2012   Titel:              Zitieren

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 ;)
agent60
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.04.2012
Beiträge: 10
Beitrag agent60 Mitglied 00:07:47 16.04.2012   Titel:              Zitieren

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.
merano
Mitglied

Benutzerprofil
Anmeldungsdatum: 21.12.2006
Beiträge: 411
Beitrag merano Mitglied 00:12:39 16.04.2012   Titel:              Zitieren

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

C++:
#define M_PI 3.14


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

C++:
 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)

C++:
void Simulation()


vor Konstantenberechnung();

Danach lässt es sich kompilieren.
---

Eine Hilfe wäre angebracht; z.B:

Code:
1
2
3
4
5
6
7
8
 "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

Code:
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 ...
agent60
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.04.2012
Beiträge: 10
Beitrag agent60 Mitglied 21:50:08 16.04.2012   Titel:              Zitieren

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. :(
c++.de :: Projekte ::  Einschalten einer Gluehbirne  
Gehen Sie zu Seite 1, 2, 3  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.