diff --git a/2-ObjectProgramming/4b-hands-on.ipynb b/2-ObjectProgramming/4b-hands-on.ipynb index 3da29bac350de4741917961c5c589f334f784498..6eefb1bef9623f2a98b1c3f0bb705d9decc4d0e9 100644 --- a/2-ObjectProgramming/4b-hands-on.ipynb +++ b/2-ObjectProgramming/4b-hands-on.ipynb @@ -14,7 +14,7 @@ }, "source": [ "<h1>Table of contents<span class=\"tocSkip\"></span></h1>\n", - "<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#EXERCISE-16:-transform-struct-PowerOfTwoApprox-into-a-class\" data-toc-modified-id=\"EXERCISE-16:-transform-struct-PowerOfTwoApprox-into-a-class-1\">EXERCISE 16: transform struct <code>PowerOfTwoApprox</code> into a class</a></span></li><li><span><a href=\"#EXERCISE-17:-transform-Multiply()-into-a-method-Multiply()-of-PowerOfTwoApprox\" data-toc-modified-id=\"EXERCISE-17:-transform-Multiply()-into-a-method-Multiply()-of-PowerOfTwoApprox-2\">EXERCISE 17: transform <code>Multiply()</code> into a method <code>Multiply()</code> of <code>PowerOfTwoApprox</code></a></span></li><li><span><a href=\"#EXERCISE-18:-transform-DisplayPowerOf2Approx()-into-a-class\" data-toc-modified-id=\"EXERCISE-18:-transform-DisplayPowerOf2Approx()-into-a-class-3\">EXERCISE 18: transform <code>DisplayPowerOf2Approx()</code> into a class</a></span></li><li><span><a href=\"#EXERCISE-19:-transform-DisplayMultiply()-into-a-class\" data-toc-modified-id=\"EXERCISE-19:-transform-DisplayMultiply()-into-a-class-4\">EXERCISE 19: transform <code>DisplayMultiply()</code> into a class</a></span></li><li><span><a href=\"#EXERCISE-20:-introduce-common-PrintLine()-function-for-outputs\" data-toc-modified-id=\"EXERCISE-20:-introduce-common-PrintLine()-function-for-outputs-5\">EXERCISE 20: introduce common <code>PrintLine()</code> function for outputs</a></span></li></ul></div>" + "<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#EXERCISE-16:-transform-struct-PowerOfTwoApprox-into-a-class\" data-toc-modified-id=\"EXERCISE-16:-transform-struct-PowerOfTwoApprox-into-a-class-1\">EXERCISE 16: transform struct <code>PowerOfTwoApprox</code> into a class</a></span></li><li><span><a href=\"#EXERCISE-17:-transform-Multiply()-into-a-method-Multiply()-of-PowerOfTwoApprox\" data-toc-modified-id=\"EXERCISE-17:-transform-Multiply()-into-a-method-Multiply()-of-PowerOfTwoApprox-2\">EXERCISE 17: transform <code>Multiply()</code> into a method <code>Multiply()</code> of <code>PowerOfTwoApprox</code></a></span></li><li><span><a href=\"#EXERCISE-18:-transform-DisplayPowerOf2Approx()-into-a-class\" data-toc-modified-id=\"EXERCISE-18:-transform-DisplayPowerOf2Approx()-into-a-class-3\">EXERCISE 18: transform <code>DisplayPowerOf2Approx()</code> into a class</a></span></li><li><span><a href=\"#EXERCISE-19:-transform-DisplaySumOfMultiply()-into-a-class\" data-toc-modified-id=\"EXERCISE-19:-transform-DisplaySumOfMultiply()-into-a-class-4\">EXERCISE 19: transform <code>DisplaySumOfMultiply()</code> into a class</a></span></li><li><span><a href=\"#EXERCISE-20:-introduce-common-PrintLine()-function-for-outputs\" data-toc-modified-id=\"EXERCISE-20:-introduce-common-PrintLine()-function-for-outputs-5\">EXERCISE 20: introduce common <code>PrintLine()</code> function for outputs</a></span></li></ul></div>" ] }, { @@ -39,7 +39,7 @@ "\n", "The method will take as argument only the integer coefficient.\n", "\n", - "`DisplayMultiply()` will of course need also some light rewriting to accommodate that change.\n", + "`DisplaySumOfMultiply()` will of course need also some light rewriting to accommodate that change.\n", "\n", "Expected output is the same as previously.\n" ] @@ -79,7 +79,7 @@ " std::cout << std::endl;\n", "\n", " for (int nbits = 1; nbits <= 8; ++nbits)\n", - " DisplayMultiply(nbits, 0.65, 3515, 0.35, 4832);\n", + " DisplaySumOfMultiply(nbits, 0.65, 3515, 0.35, 4832);\n", "\n", " return EXIT_SUCCESS;\n", "}" @@ -116,9 +116,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### EXERCISE 19: transform `DisplayMultiply()` into a class\n", + "### EXERCISE 19: transform `DisplaySumOfMultiply()` into a class\n", "\n", - "Likewise, create a class `TestDisplayMultiply` which will be in charge of printing the display for 0.65 * 3515 + 0.35 * 4832 with public method `Do()` and private method `Display()` which will takes 5 arguments:\n", + "Likewise, create a class `TestDisplaySumOfMultiply` which will be in charge of printing the display for 0.65 * 3515 + 0.35 * 4832 with public method `Do()` and private method `Display()` which will takes 5 arguments:\n", "\n", "* Number of bits.\n", "* The two floating point values.\n", @@ -145,10 +145,10 @@ "\n", " std::cout << std::endl;\n", "\n", - " TestDisplayMultiply test_DisplayMultiply;\n", + " TestDisplaySumOfMultiply test_display_sum_of_multiply;\n", "\n", " for (int nbits = 1; nbits <= 8; ++nbits)\n", - " test_DisplayMultiply.Do(nbits);\n", + " test_display_sum_of_multiply.Do(nbits);\n", "\n", " return EXIT_SUCCESS;\n", "}" @@ -177,7 +177,7 @@ "\n", "So to do that you will need two strings arguments to provide the possibility to customize the line at the two locations pointed out in red (to achieve this you may need a reminder of [how to convert a number into a string](../1-ProceduralProgramming/6-Streams.ipynb#Conversion)). \n", "\n", - "Last subtlety: for the `DisplayMultiply` case we round the exact value to an integer, but that would break the output for the `TestDisplayPowerOfTwoApprox` cases... So we introduce an enum class which will act as a boolean:\n", + "Last subtlety: for the `DisplaySumOfMultiply` case we round the exact value to an integer, but that would break the output for the `TestDisplayPowerOfTwoApprox` cases... So we introduce an enum class which will act as a boolean:\n", "\n", "````\n", "enum class RoundToInteger { no, yes };\n", @@ -197,8 +197,7 @@ "metadata": {}, "source": [ "[© Copyright](../COPYRIGHT.md) \n", - "", - "" + "\n" ] } ], diff --git a/2-ObjectProgramming/7b-hands-on.ipynb b/2-ObjectProgramming/7b-hands-on.ipynb index 57df59ac90f7d755da126b89fd31060acba13d99..5e5889521a192b9fb338989e54fe8f931731ec61 100644 --- a/2-ObjectProgramming/7b-hands-on.ipynb +++ b/2-ObjectProgramming/7b-hands-on.ipynb @@ -73,10 +73,10 @@ " \n", " std::cout << std::endl;\n", "\n", - " TestDisplayMultiply test_DisplayMultiply(1000);\n", + " TestDisplaySumOfMultiply test_display_sum_of_multiply(1000);\n", "\n", " for (int nbits = 1; nbits <= 8; ++nbits)\n", - " test_DisplayMultiply.Do(nbits);\n", + " test_display_sum_of_multiply.Do(nbits);\n", "\n", " return EXIT_SUCCESS;\n", "}" @@ -193,7 +193,7 @@ " \n", " container.Register(new TestDisplayPowerOfTwoApprox065(1000000));\n", " container.Register(new TestDisplayPowerOfTwoApprox035(1000000));\n", - " container.Register(new TestDisplayMultiply(10000));\n", + " container.Register(new TestDisplaySumOfMultiply(10000));\n", " \n", " container.Do(4, 16, 4);\n", " \n", @@ -288,7 +288,7 @@ " \n", " container.Register(new TestDisplayPowerOfTwoApprox065(1000000));\n", " container.Register(new TestDisplayPowerOfTwoApprox035(1000000));\n", - " container.Register(new TestDisplayMultiply(10000));\n", + " container.Register(new TestDisplaySumOfMultiply(10000));\n", " \n", " Loop(4, 16, 4, container);\n", " \n", @@ -302,8 +302,7 @@ "source": [ "\n", "[© Copyright](../COPYRIGHT.md) \n", - "", - "" + "\n" ] } ], diff --git a/4-Templates/1b-hands-on.ipynb b/4-Templates/1b-hands-on.ipynb index 891295f9ce8c66d8fddfb087a2f63ed399d9972a..45dc9dd4ade64c39e12e669beb06acc953fa6952 100644 --- a/4-Templates/1b-hands-on.ipynb +++ b/4-Templates/1b-hands-on.ipynb @@ -116,7 +116,7 @@ "Let's humor the compiler and 'propagate' the template... which will not be a trivial journey:\n", "\n", "* You will first have to make your own operator* template functions.\n", - "* As the operator is used directly in `TestDisplayMultiply`, you will also have to make that class a template class.\n", + "* As the operator is used directly in `TestDisplaySumOfMultiply`, you will also have to make that class a template class.\n", "\n", "At this point the code should be able to compile... but there are still loose ends, as your compiler will tell you (more or less clearly):\n", "\n", @@ -171,8 +171,7 @@ "metadata": {}, "source": [ "[© Copyright](../COPYRIGHT.md) \n", - "", - "" + "\n" ] } ],