int main(int argc, char *argv[]) { double Imax; double I; double Fgmax; double m; double mges; double power; int n; int nmax; nmax = scanInt("Maximale Motorenanzahl: "); m = scanDouble("Gesamtgewicht ohne Motoren und Regler (in g): "); m /=1000; while(1) { Fgmax = scanDouble("Maximaler Schub pro Motor (in g): "); Imax = scanDouble("Stromverbrauch eines Motors (in A): "); Fgmax /=1000; for ( n = 1; n <= nmax; n++ ) { mges = m + ( (double) n * ( 0.05 + 0.05 )); // I = (mges * Imax) / (Fgmax * n); power = mges / (Fgmax * n); I = pow(power,1.5) * Imax; printf("Iges( %2d ) = %4.1lfA\t\tm( %2d ) = %5.0lfg", n, I*n, n, mges*1000); printf("\tpower = %3.0lf\n", power * 100); }; printf("\n"); } return 0; }
int main(int argc, char *argv[]) { double zahl; excode = 0; summe = 0; n = 0; while (1) { /* Was soll passieren wenn SIGINT eintrifft? */ if (signal(SIGINT, abfangen) == SIG_ERR) { perror("SIGINT"); exit(10); } if (signal(SIGQUIT, reset) == SIG_ERR) { perror("SIGINT"); summe = 0.0; n = 0.0; exit(11); } printf("------------------------------------------------\n"); zahl = scanDouble("Summand: "); excode = 0; summe += zahl; n++; printf("Summe = %7.2lf ; Anzahl Summanden = %5d\n", summe, n); } return 0; }
Dictionary *StringReader :: ReadDictionary(const char *source, const char *idString) { const char *str1 = source; double value; int size; char key [ 100 + 1 ]; // 'key' is eventually of size 1, but some words that are // read in the meantime in the data file can be larger ! Dictionary *dict; dict = new Dictionary(); str1 = getPosAfter(source, idString); // move after idString str1 = scanInteger(str1, & size); // read number of conditions if ( size == 0 ) { return dict; // no - conditions - return void dictionary } if ( str1 == NULL ) { return dict; // end of line - return void dictionary } for ( int i = 1; i <= size; i++ ) { readSimpleString(str1, key, 100 + 1, & str1); str1 = scanDouble(str1, & value); dict->add(key [ 0 ], value); } return dict; }
FloatArray *StringReader :: ReadFloatArray(const char *source, const char *idString) { const char *str1 = source; double value; int size; FloatArray *arry; str1 = getPosAfter(source, idString); str1 = scanInteger(str1, & size); // if(size ==0) return NULL; // if commented returns new array of size 0 for size = 0 if ( str1 == NULL ) { size = 0; } arry = new FloatArray(size); for ( int i = 1; i <= size; i++ ) { str1 = scanDouble(str1, & value); arry->at(i) = value; } return arry; }
int main(int argc, char *argv[]) { char mdesc[2][MAXLEN] = {"#Motordescription (text)",""}; char pdesc[2][MAXLEN] = {"#Propellerdescription (text)",""}; char psdesc[2][MAXLEN] = {"#size [in] (eg. 8x4)",""}; char wbdesc[2][MAXLEN] = {"#weight battery [kg]",""}; char wrvdesc[2][MAXLEN] = {"#weight receiver + voltmeter [kg]",""}; char wmspdesc[2][MAXLEN] = {"#weight motor + speedcontroller + propeller [kg]",""}; char wcdesc[2][MAXLEN] = {"#weight camera [kg]",""}; char wfdesc[2][MAXLEN] = {"#weight fuselage (center piece) [kg]",""}; char wadesc[2][MAXLEN] = {"#weight arms [kg]",""}; char wtdesc[2][MAXLEN] = {"#weight tilt mechanism + servo [kg]",""}; char again[MAXLEN]; double bsize; double I; double m[7]; double mges; int n; int nmax; if (argc < 2) { fprintf(stderr, "Fehlender Dateiname! Aufruf des Programms:\ncopter.exe data.txt\n"); exit(1); } readFile(argv[1], mdesc[0], mdesc[1]); readFile(argv[1], pdesc[0], pdesc[1]); readFile(argv[1], psdesc[0], psdesc[1]); readFile(argv[1], wbdesc[0], wbdesc[1]); m[0] = readValue(wbdesc[1]); readFile(argv[1], wrvdesc[0], wrvdesc[1]); m[1] = readValue(wrvdesc[1]); readFile(argv[1], wmspdesc[0], wmspdesc[1]); m[2] = readValue(wmspdesc[1]); readFile(argv[1], wcdesc[0], wcdesc[1]); m[3] = readValue(wcdesc[1]); readFile(argv[1], wfdesc[0], wfdesc[1]); m[4] = readValue(wfdesc[1]); readFile(argv[1], wadesc[0], wadesc[1]); m[5] = readValue(wadesc[1]); readFile(argv[1], wtdesc[0], wtdesc[1]); m[6] = readValue(wtdesc[1]); while(1) { nmax = scanInt("\nMaximale Motorenanzahl: "); bsize = scanDouble("Akkukapazitaet [mAh]:"); printf("\n"); printf("Anzahl | I(ges) | m(ges) | Schwebeflugdauer\n"); printf("-------------------------------------------\n"); for ( n = 1; n <= nmax; n++ ) { if ( (n % 2) != 0) { mges = m[0] + m[1] + n * (m[2] + m[5]) + m[3] + m[4] + 1 * m[6]; } else { mges = m[0] + m[1] + n * (m[2] + m[5]) + m[3] + m[4] + 0 * m[6]; } I = copter_funktion(1,argv[1], mges/n); printf("%6d |%6.1lfA |%6.0lfg |\t%5.1lfmin\n", n, I*n, mges*1000, ((0.8 * (bsize / 1000)) / (I*n) ) * 60 ); }; scanString("\nNochmal? (j/n) : ", again, MAXLEN); if (strcasecmp(again, "n") == 0) exit(1); } return 0; }
const char *StringReader :: readKeyAndVal(const char *source, char *key, double *val, int maxchar, const char **remain) { key = readSimpleString(source, key, maxchar, remain); * remain = scanDouble(* remain, val); return * remain; }