diff --git a/BSP_1_B/bsp_1_b.cbp b/BSP_1_B/bsp_1_b.cbp
new file mode 100644
index 0000000..ae62cf6
--- /dev/null
+++ b/BSP_1_B/bsp_1_b.cbp
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BSP_1_B/bsp_1_b.cpp b/BSP_1_B/bsp_1_b.cpp
new file mode 100644
index 0000000..dd43282
--- /dev/null
+++ b/BSP_1_B/bsp_1_b.cpp
@@ -0,0 +1,102 @@
+#include "bsp_1_b.h"
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+using namespace std;
+
+
+void meandevvec(vector x, float &a, float &g, float &h, float &d)
+{
+ a = 0;
+ for(size_t k=1; k<=x.size(); k=k+1)
+ {
+ a = a+x.at(k-1);
+ }
+ a = a/x.size();
+
+ g = 1;
+ for(size_t k=1; k<=x.size(); k=k+1)
+ {
+ g = g*pow(x.at(k-1),1.0/x.size());
+ }
+
+ h = 0;
+ for(size_t k=1; k<=x.size(); k=k+1)
+ {
+ h = h + 1.0/x.at(k-1);
+ }
+ h = x.size()/h;
+
+ d = 0;
+ for(size_t k=1; k<=x.size(); k=k+1)
+ {
+ d = d + pow(x.at(k-1)-a,2);
+ }
+ d = d/x.size();
+ d = sqrt(d);
+
+ return;
+}
+
+
+// for reading a file and writing into a txt-file
+// [Str10, p.364]
+void fill_vector(istream& istr, vector& v)
+{
+ short int d=0;
+ while ( istr >> d) v.push_back(d); // Einlesen
+ if (!istr.eof())
+ { // Fehlerbehandlung
+ cout << " Error handling \n";
+ if ( istr.bad() ) throw runtime_error("Schwerer Fehler in istr");
+ if ( istr.fail() ) // Versuch des Aufraeumens
+ {
+ cout << " Failed in reading all data.\n";
+ istr.clear();
+ }
+ }
+ v.shrink_to_fit(); // C++11
+ return;
+}
+
+
+void read_vector_from_file(const string& file_name, vector& v)
+{
+ ifstream fin(file_name); // Oeffne das File im ASCII-Modus
+ if( fin.is_open() ) // File gefunden:
+ {
+ v.clear(); // Vektor leeren
+ fill_vector(fin, v);
+ }
+ else // File nicht gefunden:
+ {
+ cout << "\nFile " << file_name << " has not been found.\n\n" ;
+ assert( fin.is_open() && "File not found." ); // exeption handling for the poor programmer
+ }
+
+ return;
+}
+
+void write_vector_to_file(const string& file_name, const vector& v)
+{
+ ofstream fout(file_name); // Oeffne das File im ASCII-Modus
+ if( fout.is_open() )
+ {
+ for (unsigned int k=0; k
+#include
+
+
+/** \brief Funktion zur Berechnung des arithmetischen, geometrischen und harmonischen Mittels und der Standardabweichung aus den Eintraegen eines gegebenen Vektors
+ *
+ * \param[in,out] x Vektor mit Eintraegen
+ * \param[in,out] a arithmetisches Mittel
+ * \param[in,out] g geometrisches Mittel
+ * \param[in,out] h harmonisches Mittel
+ * \param[in,out] d Standardabweichung (deviation)
+ * \return
+ *
+ */
+void meandevvec(std::vector x, float &a, float &g, float &h, float &d);
+
+void fill_vector(std::istream& istr, std::vector& v);
+
+void read_vector_from_file(const std::string& file_name, std::vector& v);
+
+void write_vector_to_file(const std::string& file_name, const std::vector& v);
+
+#endif // BSP_1_B_H_INCLUDED
diff --git a/BSP_1_B/data_1.txt b/BSP_1_B/data_1.txt
new file mode 100644
index 0000000..4599071
--- /dev/null
+++ b/BSP_1_B/data_1.txt
@@ -0,0 +1,500 @@
+141
+261
+87
+430
+258
+298
+425
+120
+496
+707
+244
+786
+75
+394
+4
+221
+2
+190
+143
+269
+175
+139
+599
+902
+940
+222
+483
+377
+524
+265
+69
+437
+174
+27
+955
+431
+962
+763
+8
+681
+706
+646
+553
+219
+773
+229
+371
+891
+857
+403
+319
+609
+911
+910
+592
+333
+854
+443
+905
+34
+533
+717
+180
+337
+188
+322
+404
+549
+49
+553
+275
+242
+244
+155
+957
+936
+819
+729
+176
+361
+189
+2
+317
+700
+626
+544
+440
+288
+502
+762
+763
+577
+748
+646
+124
+505
+348
+93
+148
+199
+673
+432
+695
+257
+10
+533
+280
+947
+907
+393
+25
+672
+838
+972
+57
+451
+583
+687
+720
+651
+727
+374
+582
+117
+58
+980
+285
+595
+963
+186
+194
+342
+933
+391
+274
+152
+398
+375
+132
+436
+92
+615
+11
+574
+790
+236
+449
+570
+62
+497
+643
+222
+838
+972
+847
+506
+279
+747
+237
+958
+621
+601
+173
+91
+256
+859
+912
+700
+726
+230
+577
+811
+404
+989
+90
+321
+512
+61
+726
+557
+530
+830
+859
+790
+318
+453
+753
+110
+110
+270
+525
+973
+711
+312
+292
+851
+912
+640
+256
+89
+839
+585
+949
+62
+585
+286
+828
+191
+443
+394
+827
+677
+208
+319
+134
+672
+571
+170
+148
+477
+909
+553
+33
+54
+806
+452
+383
+790
+365
+533
+712
+872
+329
+651
+975
+76
+588
+414
+310
+264
+759
+996
+187
+782
+196
+993
+803
+425
+729
+499
+809
+357
+74
+591
+911
+194
+433
+750
+40
+947
+764
+559
+184
+498
+518
+995
+855
+963
+679
+404
+935
+480
+232
+397
+706
+559
+757
+996
+963
+536
+964
+116
+52
+305
+581
+531
+902
+541
+432
+543
+713
+17
+801
+143
+479
+257
+370
+662
+170
+279
+199
+196
+327
+881
+472
+404
+180
+969
+408
+845
+616
+377
+878
+785
+465
+814
+899
+430
+335
+597
+902
+703
+378
+735
+955
+543
+541
+312
+72
+182
+93
+464
+10
+916
+643
+2
+31
+209
+455
+128
+9
+728
+355
+781
+437
+437
+50
+50
+92
+595
+242
+842
+858
+964
+489
+221
+227
+537
+763
+348
+462
+640
+918
+162
+716
+578
+434
+885
+394
+179
+634
+625
+328
+803
+1000
+981
+128
+233
+24
+608
+111
+408
+885
+549
+370
+209
+441
+957
+125
+471
+857
+44
+692
+979
+284
+134
+686
+910
+611
+900
+194
+755
+347
+419
+156
+820
+625
+739
+806
+68
+951
+498
+756
+743
+832
+157
+458
+619
+933
+836
+896
+583
+583
+855
+35
+886
+408
+37
+747
+155
+144
+606
+255
+325
+402
+407
+387
+610
+167
+189
+95
+324
+770
+235
+741
+693
+825
+828
+294
+310
+524
+326
+832
+811
+557
+263
+681
+234
+457
+385
+539
+992
+756
+981
+235
+529
+52
+757
+602
+858
+989
+930
+410
+1
+541
+208
+220
+326
+96
+748
+749
+544
+339
+833
+553
+958
+893
+357
+547
+347
+623
+797
+746
+126
+823
+26
+415
+732
+782
+368
\ No newline at end of file
diff --git a/BSP_1_B/main.cpp b/BSP_1_B/main.cpp
new file mode 100644
index 0000000..55298e8
--- /dev/null
+++ b/BSP_1_B/main.cpp
@@ -0,0 +1,32 @@
+#include "bsp_1_b.h"
+#include
+#include
+using namespace std;
+// BSP 1_B
+
+int main()
+{
+ const string name1("data_1.txt"); // name of input file
+ const string name2("out.txt"); // name of output file
+ vector v;
+
+ read_vector_from_file(name1, v);
+
+ float a, g, h, d, minv, maxv;
+ meandevvec(v,a,g,h,d);
+ minv = *min_element(v.begin(),v.end());
+ maxv = *max_element(v.begin(),v.end());
+
+ cout << "Auswertung" << endl;
+ cout << "arithmetisches Mittel: " << a << endl;
+ cout << "geometrisches Mittel: " << g << endl;
+ cout << "harmonisches Mittel: " << h << endl;
+ cout << "deviation/Standardabweichung: " << d << endl;
+ cout << "Minimum: " << minv << endl;
+ cout << "Maximum: " << maxv << endl;
+
+ vector ve{a,g,h,d,minv,maxv};
+ write_vector_to_file(name2, ve);
+
+ return 0;
+}