variablen ganz groß?
-
eher ungern.
Da ich sowas sicher noch für andere dinge brauche.Und wenn wir schon dabei sind wie kann ich den hochzahlen eingeben?
-
Dann mußt Du Dir wohl nen eigenen Datentyp basteln, mit Operatorüberladung. Bei Fließkommazahlen stell ich mir das kompliziert vor - viel Spaß

-
6.022e23
-
UNeverNo schrieb:
Dann mußt Du Dir wohl nen eigenen Datentyp basteln, mit Operatorüberladung. Bei Fließkommazahlen stell ich mir das kompliziert vor - viel Spaß

hö???
bin schon froh wenn ich ne klasse basteln kann.
-
double kann bis 10^300nochwas, nagelt mich nicht auf den konkreten Exponenten fest, mit ca. 16 Stellen Genauigkeit. 10^38 isses bei float, aber nur etwa 7 Stellen.
double avogadro = 6.022e23;
-
64-Bit-Gleitkommazahl double
80-Bit-Gleitkommazahl long doubleich denke das das reichen wird;-)
-
Achja das programm dazu sieht bisjetz wiefolgt aus:
/*
Programm: Geschwindigkwitskonstante k
Autor : *********
*/#include <iostream.h>
#include <math.h>double exp(double x);
int main ()
{
char dummy;int x=1,y=1;
while (x<=y)
{/*
Formel um k zu berechnen!!
k=(R*t/N*h) * exp (-dG/(R*t))
*/
double t,dG,R,N,h,ef,b,a,k;cout << "Bitte Temperatur in Kelvin angeben" << endl;
cin >> t;
cout << "Bitte delta G in J/mol angeben " << endl;
cin >> dG;R=8.314;
N=6.022e23;
h=6.6e-34;//Alle einfachen Variablen initialsiert
ef=-dG/(R+t); //berechnung teil 2
b=exp(ef); //übergabe und rükgabe von efa=(R*t)/(N*h); //berechnung teil 1
k=a*b;
/*Progammschleife*/
cout << "k= " << k << endl;
cout << "Drucken sie 2 um das Programm zu beenden, drucken sie " << endl;
cout << "1 fur weitere berechnungen" << endl;
cin >> x;}
cin >> dummy;
return (0);
}Könnt ihr mir was dazu sagen?
z.b. ob das mit der exp funktion so richtig ist
was man am stiel/oder generel verbesseren könnte?Achja und da ich neu i forum bin wäre es auchnoch net zu sagen ob
ich für den programmtext lieber ein neuen treat hätte aufmachen sollen?
-
die Schleifenkonstruktion sieht etwas ungewohnt aus, besser wäre wohl so etwas:
char c='J'; while(toupper(c)=='J') { ... cout<<"nochmal rechnen (J/N)?"; cin>>c; }Und da du die Zwischenwerte nicht benötigst, könntest du auch alle Rechnungen zu einem Ausdruck zusammenfassen:
k = (R*t*exp(-dG/(R+t)))/(N*h);PS: Und die Konstanten solltest du auch als "const" deklarieren

-
CStoll schrieb:
die Schleifenkonstruktion sieht etwas ungewohnt aus, besser wäre wohl so etwas:
char c='J'; while(toupper(c)=='J') { ... cout<<"nochmal rechnen (J/N)?"; cin>>c; }Und da du die Zwischenwerte nicht benötigst, könntest du auch alle Rechnungen zu einem Ausdruck zusammenfassen:
k = (R*t*exp(-dG/(R+t)))/(N*h);interessant fürwas steht das touppert
(bin in meinem c++ buch bisjetzt nur bei zahlen nicht bei buchstaben)
-
Princ_of_Galaxy schrieb:
interessant fürwas steht das touppert
Umwandlung in Großbuchstaben (damit ist es egal, ob jetzt 'j' oder 'J' eingegeben wurde).