Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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;
}
Exemplo n.º 3
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;
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
0
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;
}
Exemplo n.º 6
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;
}