Ok new problem... The assignment I'm working on right now requires us to read in a file, make calculations on the file, and write the results to a new file. The file contains like 225 sets of data but we need to make the program so that you can select a value N so that it only calculates every Nth value. So lets say you pick 5, it would calculate every 5th value and print 45 values to the screen.
I think I got the skipping values part down, I just manipulated my for loop variable in the arrays. The real question is, how can I keep a running total of my calculations. I'm calculating a displacement so you calculate first two points, get a displacement, calculate next two points, get a displacement, but that displacement has to be the total displacement so far.... Get what I'm saying?
Here's some code.
Thanks!Code:#define C_F 286.8 #define MAX_VALUES 225 #define FILENAME "pixel_load.txt" //Start of main function int main(void) { //Declarations FILE *pixel_load = NULL; int i, j, N; double displacement_pixels[MAX_VALUES], displacement_inches[MAX_VALUES], load[MAX_VALUES]; double num_measurements, amount_of_points; //Header of program and user input for number of data points printf(" LOAD AND DEFLECTION \n"); printf("------------------------------------------------------------ \n\n"); printf("Only one out of every n data point will be recorded in the output. \n"); printf("What value of N would you like: "); scanf("%i", &N); //Open file pixel_load = fopen(FILENAME, "r"); //Check to see if file opens if(pixel_load == NULL) { printf("Could not open data file\n"); return -1; } //Read in number of measurements fscanf(pixel_load, "%lf", &num_measurements); //Calculate number of data points amount_of_points = num_measurements / N; floor(amount_of_points); //Display number of points recorded printf("\n\nRecording 1 out of every %i data samples.", N); printf(" There will be %4.0f samples in \nthe output file. \n\n", amount_of_points); //Headings for output printf(" DISPLACEMENT[in] LOAD[LBS] \n"); //For loop to read values for( i = 0; i < num_measurements; i++) { fscanf(pixel_load, "%lf %lf", &displacement_pixels[i], &load[i] ); } //Print zero deflection printf(" 0.000\n"); //For loop to calculate for( j = 0; j < amount_of_points; j++) { displacement_inches[j] = (displacement_pixels[(N * j) + 1] - displacement_pixels[N * j]) / C_F; printf(" %6.3lf %7.3lf\n", displacement_inches[j], load[(N * j)]); } //Calculations to convert pixels to inches //displacement_inches[j] = (displacement_pixels[j] - displacement_pixels[j]) * C_F; //printf(" %6.3lf %7.3lf\n", displacement_inches[j], load[j]); //End the program printf("Press ENTER to continue... "); getchar(); return 0; }



LinkBack URL
About LinkBacks


