Q:

A team of engineers is designing a bridge to span the Podunk River. As part of the design process, the local flooding data must be analyzed

0

A team of engineers is designing a bridge to span the Podunk 

River. As part of the design process, the local flooding data must be 

analyzed. The following information on each storm that has been 

recorded in the last 40 years is stored in a file: a code for the location 

of the source of the data, the amount of rainfall (in inches), and the 

duration of the storm (in hours), in that order. For example, the file 

might look like this:

321 2.4 1.5

111 3.3 12.1

 etc.

Create a data file. Write the first part of the program: design a data 

structure to store the storm data from the file, and also the intensity of 

each storm. The intensity is the rainfall amount divided by the 

duration. Write a function to read the data from the file (use load), 

copy from the matrix into a vector of structs, and then calculate the 

intensities. Write another function to print all of the information in a 

neatly organized table.

Add a function to the program to calculate the average intensity of the 

storms.

Add a function to the program to print all of the information given on 

the most intense storm. Use a subfunction for this function which will 

return the index of the most intense storm.

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

flooding.m

% Process flood data

flooddata = floodInfo;

printflood(flooddata)

calcavg(flooddata)

printIntense(flooddata)

floodInfo.m

function flood = floodInfo

% load flood information and store in vector

% Format of call: floodInfo or floodInfo()

% Returns vector of structures

load floodData.dat

[r c] = size(floodData);

for i=1:r

 flood(i) = struct('source',floodData(i,1),'inches',...

 floodData(i,2),'duration',floodData(i,3),...

 'intensity', floodData(i,2)/floodData(i,3));

end

end

calcavg.m

function calcavg(flooddata)

% Calculates the ave storm intensity

% Format of call: calcavg(flooddata)

% Returns average storm intensity

avginten = sum([flooddata.intensity])/length(flooddata);

fprintf('The average intensity of the storms is %.4f',...

 avginten);

end

printflood.m

function printflood(flooddata)

% Prints flood info

% Format of call: printflood(flooddata)

% Does not return any values

for i = 1:length(flooddata)

 fprintf('Flood Source: %d\n')

 fprintf('Total Rainfall (in inches): %.2f\n')

 fprintf('Duration of Storm: %.2f\n')

 fprintf('Intensity: %.3f\n\n', ...

 flooddata(i).source, flooddata(i).inches,...

 flooddata(i).duration, flooddata(i).intensity)

end

end

printIntense.m

function printIntense(flooddata)

% Prints info on most intense storm

% Format of call: printIntense(flooddata)

% Does not return any values

ind = findind(flooddata);

fprintf('\nThe most intense recorded storm began')

fprintf(' flooding at location %d.\n')

fprintf('%.2f inches of rain fell in %.2f hours\n\n',...

 flooddata(ind).source, flooddata(ind).inches, ...

 flooddata(ind).duration)

end

findind.m 

function ind = findind(flooddata)

% Determines most intense storm

% Format of call: findind(flooddata)

% Returns index of most intense storm

intensity = [flooddata.intensity];

mostintense = intensity(1);

ind = 1;

%search for the highest intensity value

for i=1:length(intensity)

 if intensity(i) > mostintense

 %if higher intensity is found, save value and index

 mostintense = intensity(i);

 ind = i;

 end

end

end

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

Similar questions


need a help?


find thousands of online teachers now