rendered paste body#include <fstream>#include <iomanip> // For setprecision()using namespace std;int main( ) {const double MainArc = 42.3333333,SecondaryArc = 52.25,pi = 3.14159265;ifstream rainbow; // input file streamofstream heights; // output file streamdouble distance, // Distance of rainbowheightMain, // 1st Rainbow's heightheightSecondary; // Shadow's heightInt numInput = 5, // Number of data inputscalculated = 0; //Data inputs already calculatedrainbow.open("rainbow.dat");heights.open("heights.dat");heights.setf(ios::fixed, ios::floatfield);heights.setf(ios::showpoint);heights << "Larry Titus" << endl; //*** substitute your own name ***heights << "Rainbow Heights (in miles)" << endl << endl;rainbow.ignore(200, '\n'); // Skip to next line of input.heights << " Rainbow Secondary Distance" << endl;heights << "---------------------------------------------" << endl;if (rainbow) && (numInput > 0) rainbow >> distance;while ( (rainbow) && (calculated < numInput) ) {calculated++;rainbow.ignore(200, '\n'); // Skip to next line of input.heightMain=distance * tan(MainArc * pi / 180)heightSecondary=distance * tan(SecondaryAc * pi / 180)