From c5ee50737c7b734d0453e596197a3ab1537f7f34 Mon Sep 17 00:00:00 2001 From: davoudn Date: Wed, 24 Apr 2024 14:28:31 +0330 Subject: [PATCH] histogram.ccp was added. --- .../examples/ch06/a.out | Bin 17408 -> 37248 bytes .../examples/ch06/fig06_07.cpp | 18 +++++- .../examples/ch06/histogram.cpp | 60 ++++++++++++++++++ 3 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 CPlusPlus20ForProgrammers-master/examples/ch06/histogram.cpp diff --git a/CPlusPlus20ForProgrammers-master/examples/ch06/a.out b/CPlusPlus20ForProgrammers-master/examples/ch06/a.out index ed9afff5c8a5885617d52ad1c23f590ed83582fe..bb044394640062f534f810904306603ae753644c 100755 GIT binary patch literal 37248 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 literal 17408 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 #include +template +void accumulate(std::array& histogram, double val, double upper, double lower){ + + double del {(upper-lower)/N}; + for (int i{0}; i < N; i++){ + if ( val > i*del && val < (i+1) * del ) + histogram[i]++; + } + return; +} + int main() { // set up random-number generation std::random_device rd; // used to seed the default_random_engine std::default_random_engine engine{rd()}; // rd() produces a seed std::uniform_int_distribution randomDie{0, 6}; - std::uniform_real_distribution randomReal{0, 1}; + double upper_bound = 1; + std::uniform_real_distribution randomReal{0, upper_bound}; constexpr size_t arraySize{7}; // ignore element zero std::array frequency{}; // initialize to 0s @@ -22,9 +34,11 @@ int main() { // roll die 60,000,000 times; use die value as frequency index for (int roll{1}; roll <= 60'000'000; ++roll) { - randomReal(engine); + frequency[roll]++; +// randomReal(engine); } + std::cout << "Face " << " Frequency \n"; // output each array element's value diff --git a/CPlusPlus20ForProgrammers-master/examples/ch06/histogram.cpp b/CPlusPlus20ForProgrammers-master/examples/ch06/histogram.cpp new file mode 100644 index 0000000..d8399ea --- /dev/null +++ b/CPlusPlus20ForProgrammers-master/examples/ch06/histogram.cpp @@ -0,0 +1,60 @@ +// fig06_07.cpp +// Die-rolling program using an array instead of switch. +//#include // C++20: This will be #include +#include +#include +#include + +template +void accumulate(std::array& histogram, double val, double lower, double upper){ + + double del {(upper-lower)/N}; + for (int i{0}; i < N; i++){ + if ( val > i*del && val < (i+1) * del ) + histogram[i]++; + } + return; +} + +int main() { + // set up random-number generation + std::random_device rd; // used to seed the default_random_engine + std::default_random_engine engine{rd()}; // rd() produces a seed + + double upper_bound = 1; + double lower_bound = 0; + std::uniform_real_distribution randomReal{lower_bound, upper_bound}; + + constexpr size_t N{10}; + double del {(upper_bound-lower_bound)/N}; + std::array histogram{}; + + // roll die 60,000 times; use die value as frequency index + for (int roll{1}; roll <= 60'000; ++roll) { + double val{ randomReal(engine)}; + accumulate(histogram, val, lower_bound, upper_bound); + } + + + std::cout << " Histogram : \n"; + + // output each array element's value + for (size_t face{1}; face < histogram.size(); ++face) { + std::cout <<"Number of samples between " << lower_bound+face*del << " and " << lower_bound+(face+1)*del << " is " << histogram.at(face) << "\n"; + } +} + +/************************************************************************** + * (C) Copyright 1992-2022 by Deitel & Associates, Inc. and * + * Pearson Education, Inc. All Rights Reserved. * + * * + * DISCLAIMER: The authors and publisher of this book have used their * + * best efforts in preparing the book. These efforts include the * + * development, research, and testing of the theories and programs * + * to determine their effectiveness. The authors and publisher make * + * no warranty of any kind, expressed or implied, with regard to these * + * programs or to the documentation contained in these books. The authors * + * and publisher shall not be liable in any event for incidental or * + * consequential damages in connection with, or arising out of, the * + * furnishing, performance, or use of these programs. * + **************************************************************************/