/* To jest szkielet programu z oprogramowanymi wyjatkami. Zadaniem jest dokonczenie tego programu. Nalezy: - zadeklarowac 2 tablice valarray typu float - przekazac je do funkcji read() poprzez referencje - nalezy dodac nowe zmienne w deklaracji funkcji read(ifstream &input, ...) - wczytac zawartosc pliku do tych tablic: - mozna uzyc funkcji getline() i strumieni napisu - zalecane - mozna wczytac za pomoca strumienia pliku - nalezy obsluzyc wyjatek przy wyjsciu poza zakres tablicy - metoda .at() automatycznie zwraca wyjatek - odwolanie poprzez [] nalezy zglosic poprzez throw - po wczytaniu danych do danych, zamknij plik wejciowy - nastepnie za pomoca funkcji write(ofstream &output, ...), do ktorej przekazane zostana wypelnione tablice(!), nadpisac istniejacy plik danymi w postaci: wartosc1 wartosc2 iloczyn_wartosci ... gdzie wartosc 1 i 2 to dane z pliku wejsciowego */ #include #include #include #include #include using namespace std; void read(ifstream &input, vector &x, vector &y){ if(!input) throw 1; //!input zwraca 1 gdy strumien nie zostanie poprawnie otwarty if(!input.is_open()) throw 2; string line; float t1, t2; while(!input.eof()){ getline(input, line); istringstream reader(line); reader >> t1 >> t2; x.push_back(t1); y.push_back(t2); } input.close(); } void write(ofstream &output, vector &x, vector &y){ if(!output) throw 1; if(!output.is_open()) throw 2; ostringstream writer; float calka; for(int i=0; i x, y; try{ ifstream input_file(name.c_str()); read(input_file, x, y); ofstream output_file(name.c_str()); write(output_file, x, y); for(int i=0; i