Starting from:

$30

CSE102-Assignment 2 Solved

You will write a C program according to the following description.

•     The program reads real numbers from a file. Determines the chunks according to a criteria. For each chunk, the average of the numbers is calculated. Chunks are listed in ascending order based on their average.

•     Input file contains a sequence of real numbers which are separated by whitespace. The whole sequence consists of chunks which are going to be separated by the following criteria:

–    n is the number to be added and a is the average of the chunk. If n is added to the current chunk the average becomes b.

–    n is going to be added to the chunk if the following condition is satisfied:

–    !(b a*(1+p1) || b < a*(1-p1) || a n*p2 || a < n/p2)

–    Beware, there is a ! at the beginning of the condition.

–    Here, p1 and p2 are pre-defined variables. Declare them as constants in your program.

•     Each line of the output file lists the numbers in chunks.

•     Code it so that it reads a text file named input.txt and writes to a text file named output.txt. (If you don’t follow this convention your grade will be 0.0).

Example
•     Contents of the input file:

12.432 23.5 344.6 11.85 2.5 8.2313 19.27 70.001 23.64 13.62

•     Given p1 = 0.5 and p2 = 20, there are 4 chunks:

•     Find averages of numbers in each chunk.

                12.4320 23.5000                                              ave: 17.9660

              344.6000                                                           ave: 344.6000

11.8500 2.5000 8.2313 19.2700        ave: 10.4628 70.0010 23.6400 13.6200    ave: 35.7537

•     Create a text file with chunks ordered as stacked lines based on the calculated average of each.

11.8500 2.5000 8.2313 19.2700

12.4320 23.5000

70.0010 23.6400 13.6200

344.6000

•     Each line is a chunk. Row order is according to the average(the chunk with the smallest average is on the first row.)

More products