int main() { float voltage; int i; char conn; char component; int count; float *componentsresistance; float totalresistance; float current; float e12[3]; int e12count; printf( "Ange spänningskälla[V]: " ); scanf( "%f", &voltage ); getchar(); printf( "Ange komponenttyp: " ); scanf( "%c", &component ); getchar(); printf( "Ange koppling (s för serie- och p för parallellkoppling): " ); scanf( "%c", &conn ); printf( "Ange antalet komponenter: " ); scanf( "%d", &count ); componentsresistance = (float*) malloc(count*sizeof(float)); for (i = 0; i < count; i++) { printf( "Komponent %d[ohm]: ", i ); scanf("%f", &componentsresistance[i]); } totalresistance = calc_resistans(count, conn, componentsresistance); printf("\nErsättningsresistans: %g ohm", totalresistance); /* LibPower */ if(component == 'R' || component == 'r') { current = voltage/totalresistance; if(calc_power_r(voltage, totalresistance) == calc_power_i(voltage, current)) printf("\nEffekt: %5.2f W", calc_power_i(voltage, current)); } /* LibComponent */ e12count = e_resistance(totalresistance, e12); printf("\nErsättningsresistanser i E12-serien kopplade i serie: "); for (i = 0; i < e12count; i++) { printf("%g, ", e12[i]); } printf("\n"); return 1; }
/** * @brief Event method that is fired when it's time to calculate the output of the input * * Event method that fires when the button is clicked. This calculates the result of the electrolib functionality. * @return void **/ static void calculateAndPresentOutput(){ int RESISTANCEOUTPUTLABELROW = 6; int VOLTAGEOUTPUTLABELROW = 7; int E12OUTPUTLABELROW = 8; float* replaceResistanceValues = calloc(3,sizeof(float)); float totalresistance = calc_resistance(getNumberOfComponents(), getConnectionType(), getResistanceItems()); float totalpower = calc_power_r(getVoltage(), totalresistance); int numberOfResistors = e_resistance(totalresistance, replaceResistanceValues); char formatedMessage[100]; sprintf(formatedMessage, "Ersättningsresistance: %.1f ohm", totalresistance); addOutputLabel(_mainGrid, formatedMessage, 1, RESISTANCEOUTPUTLABELROW, 2); sprintf(formatedMessage, "Effekt: %.2f W", totalpower); addOutputLabel(_mainGrid, formatedMessage, 1, VOLTAGEOUTPUTLABELROW, 2); sprintf(formatedMessage, "Ersättningsresistans i E12-serien koppliade i serie: %.0f, %.0f, %.0f", *replaceResistanceValues, *(replaceResistanceValues+1), *(replaceResistanceValues+2)); addOutputLabel(_mainGrid, formatedMessage, 1, E12OUTPUTLABELROW, 2); }
int main() { int count, i; float totRes; float volt=2.0; float power; float *array; char conn; float resistors[3]; float *fp=&resistors[0]; int antal; printf("Ange koppling[S | P]: "); if (scanf("%c", &conn)!=1) { printf ("Error - Inmatat värde är inte en char\n"); return -1; } printf("Antal komponenter: "); if (scanf("%i", &count)!=1) { printf ("Error - Inmatat värde är inte en integer\n"); return -1; } array = (float*) malloc(sizeof(float) * count); for (i=0; i < count; i++) { printf("Komponent %d i ohm: ",i + 1); if (scanf("%f", &array[i])!=1) { printf ("Error - Inmatat värde är inte en float\n"); return -1; } } // Calculate values totRes = calc_resistance(count,conn,array); if (totRes == -1) {printf ("Error - Misslyckades med att räkna ut ersättningsresistans\n"); return -1;} printf("Ersättningsresistans: %.2f ohm\n",totRes); printf("Ange spänningskälla i V: "); if (scanf("%f", &volt)!=1){ printf("Error - Inmatat värde är inte en float\n"); return -1;} power = calc_power_r(volt, totRes); printf("Effekt: %.2f W\n", power); printf("Ersättningsresistanser i E12-serien kopplade i serie: "); for (antal = e_resistance(totRes, &resistors[0]); antal>0; antal--){ printf("%1.0f", *fp++); if (antal>1) printf(", "); } printf("\n"); free(array); return 0; }