From da95b9b9182cd8d28e41b4e5650a53c385e9ef6f Mon Sep 17 00:00:00 2001 From: Martin Goik <goik@hdm-stuttgart.de> Date: Sat, 14 Oct 2017 13:43:26 +0200 Subject: [PATCH] Float exercises, inline emphasis, int literals --- Doc/Sd1/Ref/LangFundament/javaCoolSmiley.png | Bin 0 -> 11254 bytes Doc/Sd1/languageFundamentals.xml | 650 +++++++++++++++--- .../CustomLayer/webhelp/positioning.css.patch | 13 +- ws/Xmlmind/Patch/010_docbookCss.patch | 16 + 4 files changed, 579 insertions(+), 100 deletions(-) create mode 100644 Doc/Sd1/Ref/LangFundament/javaCoolSmiley.png diff --git a/Doc/Sd1/Ref/LangFundament/javaCoolSmiley.png b/Doc/Sd1/Ref/LangFundament/javaCoolSmiley.png new file mode 100644 index 0000000000000000000000000000000000000000..6ca699f3d882c4b4330318addb7738df9fb24811 GIT binary patch literal 11254 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 literal 0 HcmV?d00001 diff --git a/Doc/Sd1/languageFundamentals.xml b/Doc/Sd1/languageFundamentals.xml index 1e9038355..fb97ae3bd 100644 --- a/Doc/Sd1/languageFundamentals.xml +++ b/Doc/Sd1/languageFundamentals.xml @@ -425,19 +425,34 @@ pi = 1.0; // Compile time error: Constant cannot be modified</programlisting> </figure> <figure xml:id="sd1_fig_legalVariableName"> - <title>Variable names</title> - - <para>A variable</para> + <title>Variable names (identifier)</title> <informaltable border="1"> + <colgroup width="73%"/> + + <colgroup width="15%"/> + + <colgroup width="12%"/> + + <tr> + <th>Rules</th> + + <th>Legal</th> + + <th>Illegal</th> + </tr> + <tr> <td><itemizedlist> <listitem> - <para>Starts with a letter</para> + <para>Start with a letter, <quote><code>_</code></quote> or + <quote><code>$</code></quote></para> </listitem> <listitem> - <para>May be followed by letters or digits</para> + <para><emphasis role="bold">May</emphasis> be followed by + letters, digits, <quote><code>_</code></quote> or + <quote><code>$</code></quote></para> </listitem> <listitem> @@ -445,65 +460,69 @@ pi = 1.0; // Compile time error: Constant cannot be modified</programlisting> <itemizedlist> <listitem> - <para>a <xref linkend="glo_Java"/> keyword</para> - </listitem> - - <listitem> - <para>a boolean literal</para> + <para>a <xref linkend="glo_Java"/> <link + linkend="sd1_fig_javaKeywords">keyword</link></para> </listitem> <listitem> - <para>The <code>null</code> literal</para> + <para><quote><code>boolean</code></quote> or + <quote><code>null</code></quote> literal</para> </listitem> </itemizedlist> </listitem> </itemizedlist></td> - <td><glosslist> - <glossentry> - <glossterm>Legal</glossterm> + <td valign="top"><itemizedlist> + <listitem> + <para><code>$test</code></para> + </listitem> - <glossdef> - <itemizedlist> - <listitem> - <para>$test</para> - </listitem> - - <listitem> - <para>count</para> - </listitem> - - <listitem> - <para>blue</para> - </listitem> - </itemizedlist> - </glossdef> - </glossentry> + <listitem> + <para><code>_</code></para> + </listitem> - <glossentry> - <glossterm>Illegal</glossterm> + <listitem> + <para><code>count</code></para> + </listitem> - <glossdef> - <itemizedlist> - <listitem> - <para>2sad</para> - </listitem> - - <listitem> - <para>switch</para> - </listitem> - - <listitem> - <para>true</para> - </listitem> - </itemizedlist> - </glossdef> - </glossentry> - </glosslist></td> + <listitem> + <para><code>blue</code></para> + </listitem> + </itemizedlist></td> + + <td valign="top"><itemizedlist> + <listitem> + <para><code><emphasis role="red">2sad</emphasis></code></para> + </listitem> + + <listitem> + <para><code><emphasis + role="red">switch</emphasis></code></para> + </listitem> + + <listitem> + <para><code><emphasis role="red">true</emphasis></code></para> + </listitem> + </itemizedlist></td> </tr> </informaltable> </figure> + <figure xml:id="sd1_fig_javaKeywords"> + <title><xref linkend="glo_Java"/> keywords.</title> + + <programlisting language="java">abstract continue for new switch +assert default if package synchronized +boolean do goto private this +break double implements protected throw +byte else import public throws +case enum instanceof return transient +catch extends int short try +char final interface static void +class finally long strictfp volatile +const float native super while</programlisting> + </figure> + <figure xml:id="sd1_fig_varCaseSensitive"> <title>Case sensitivity</title> @@ -511,7 +530,11 @@ pi = 1.0; // Compile time error: Constant cannot be modified</programlisting> <programlisting language="java">int count = 32; int Count = 44; -System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> +System.out.println(count + ":" + Count);</programlisting> + + <para>Resulting output:</para> + + <screen>32:44</screen> </figure> <qandaset defaultlabel="qanda" xml:id="sw1QandaLegalVarNames"> @@ -800,7 +823,7 @@ System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> </qandaset> <figure xml:id="sd1_fig_varDeclareBeforeUse"> - <title>Declare before use</title> + <title>Define before use</title> <glosslist> <glossentry> @@ -808,7 +831,7 @@ System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> <glossdef> <programlisting language="java">double f; -f = -4.55;</programlisting> +f = -4.55; </programlisting> </glossdef> </glossentry> @@ -816,7 +839,7 @@ f = -4.55;</programlisting> <glossterm>Wrong</glossterm> <glossdef> - <programlisting language="java">f = -4.55; + <programlisting language="java">f = -4.55; double f;</programlisting> </glossdef> </glossentry> @@ -921,6 +944,10 @@ void main(void) { <glossdef> <para>~$500 million.</para> + + <para><link + xlink:href="https://www.youtube.com/watch?v=gp_D8r-2hwk">related + video</link></para> </glossdef> </glossentry> </glosslist></td> @@ -939,7 +966,7 @@ void main(void) { converted to a 16 bit signed integer.</para> <para>The number was larger than 32,767, the largest integer possible in - a 16 bit signed integer, <emphasis role="bold">and thus the conversion + a 16 bit signed integer, <emphasis role="red">and thus the conversion failed</emphasis>.</para> </figure> @@ -1301,7 +1328,7 @@ int i = (int) d; // Explicit cast double to int</programlisting> <screen>-1 111 -2 +110 -- ------ --3 1_101 (See comment below)</screen> +-3 <emphasis role="red">1_</emphasis>101 (See comment below)</screen> <para>In 3-bit two complement representation the leftmost bit will be discarded. Thus the actual result @@ -1595,9 +1622,9 @@ pi = -4; // Compile time error: <glossterm>Even better</glossterm> <glossdef> - <para><programlisting language="java">final double PI = 3.141592653589793; // Coding style (Best practices): - // Using capital letters for constant variable -...</programlisting></para> + <para><programlisting language="java">final double PI = 3.141592653589793; // Coding style (Best practices): + // Using capital letters for +... // constant variable.</programlisting></para> </glossdef> </glossentry> </glosslist> @@ -1613,8 +1640,9 @@ pi = -4; // Compile time error: <glossdef> <programlisting language="java">int a = -15;</programlisting> - <para>Possible types: All eight primitive <xref - linkend="glo_Java"/> types.</para> + <para>Possible types: All eight <link + xlink:href="https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html">primitive</link> + <xref linkend="glo_Java"/> types.</para> </glossdef> </glossentry> @@ -1624,7 +1652,7 @@ pi = -4; // Compile time error: <glossdef> <programlisting language="java">GpsPosition start = new GpsPosition(48.7758, 9.1829);</programlisting> - <para>Possible types: Arbitrary built in or user defined + <para>Possible types: Arbitrary built-in or user defined classes.</para> </glossdef> </glossentry> @@ -1632,7 +1660,7 @@ pi = -4; // Compile time error: </figure> <figure xml:id="sd1_fig_refTypeVariants"> - <title>Reference type variants</title> + <title>Reference type examples</title> <programlisting language="java">GpsPosition start = new GpsPosition(48.7758, 9.1829); String name = "Simon"; @@ -1669,19 +1697,19 @@ LocalDate birtday = LocalDate.of(1990, Month.JULY, 5);</programlisting> <tr> <td><programlisting language="java">System.out.println("Decimal "+ <emphasis role="bold">35</emphasis>); -System.out.println("Binary " + <emphasis role="bold">0b10_0011</emphasis>); +System.out.println("Binary " + <emphasis role="bold">0b10_0011</emphasis>); System.out.println("Hex " + <emphasis role="bold">0x23</emphasis>); System.out.println("Octal " + <emphasis role="bold">043</emphasis>); </programlisting></td> <td><screen>Decimal 35 -Binary 35 +Binary 35 Hex 35 Octal 35</screen></td> </tr> </informaltable> </figure> - <qandaset defaultlabel="qanda" xml:id="sw1QandaWild"> + <qandaset defaultlabel="qanda" xml:id="sd1_qanda_illegalOctalLiteral"> <title>Pretty may not be pretty</title> <qandadiv> @@ -1689,13 +1717,13 @@ Octal 35</screen></td> <question> <para>Consider the following program:</para> - <programlisting language="java"> public static void main(String[] args) { + <programlisting language="java">public static void main(String[] args) { - int a = 20, - b = 3, - c = 9; +int a = 20, + b = 3, + c = 9; - System.out.println(a + " + " + b + " + " + c + " = " + (a + b + c)); + System.out.println(a + " + " + b + " + " + c + " = " + (a + b + c)); }</programlisting> @@ -1716,8 +1744,8 @@ Octal 35</screen></td> System.out.println(a + " + " + b + " + " + c + " = " + (a + b + c)); }</programlisting> - <para>The above code does not compile due to the compiler error - when defining variable <code>c</code>.</para> + <para>The above code does not compile due to a compiler error when + defining variable <code>c</code>.</para> <para>Explain the underlying cause. In particular: Why is <code>b = 03</code> just fine in contrast to <code>c = 09</code> ?</para> @@ -1729,10 +1757,9 @@ Octal 35</screen></td> </question> <answer> - <para>Integer literals starting with <quote>0</quote> are being - interpreted as octal representation. Since the octal system's set - of digits is {0,1,2,3,4,5,6,7} the value <quote>09</quote> is - simply not valid.</para> + <para>Integer literals starting with <quote>0</quote> denote octal + representation. Since the octal system's set of digits is + {0,1,2,3,4,5,6,7} the value <quote>09</quote> is invalid.</para> </answer> </qandaentry> </qandadiv> @@ -1756,11 +1783,104 @@ System.out.println("Value = " + a);</programlisting> <answer> <para>This problem is related to the previous exercise: The integer literal 041 defines octal representation. Changing from - octal to decimal representation takes us to 4 * 8 + 1 = 33.</para> + octal to decimal representation yields 4 * 8 + 1 = 33.</para> <para>There are 11 types of people: Those, who know can read binary codes, those who know what binary is and those who don't - have a clue what binary is.</para> + have a clue about binary at all.</para> + </answer> + </qandaentry> + </qandadiv> + </qandaset> + + <qandaset defaultlabel="qanda" xml:id="sd1_qanda_abesntEmoticon"> + <title>Representing emoticons.</title> + + <qandadiv> + <qandaentry> + <question> + <para>We may use the <link + xlink:href="https://www.fileformat.info/info/unicode/char/27bd/index.htm">HEAVY + WEDGE-TAILED RIGHTWARDS ARROW</link> character in <xref + linkend="glo_Java"/>:</para> + + <programlisting language="java">System.out.println("Arrow: " + "➽");</programlisting> + + <para>This results in:</para> + + <screen>Arrow: ➽</screen> + + <para>Strangely the <link + xlink:href="https://www.fileformat.info/info/unicode/char/1f60e/index.htm">SMILING + FACE WITH SUNGLASSES' (U+1F60E)</link> emoticon appears to be + different. Answer the following questions:</para> + + <orderedlist> + <listitem> + <para>Why can't the emoticon be used accordingly?</para> + + <tip> + <para>Try to assign the corresponding int values like e.g. + <code>0x27BD</code> rather than using the symbol + itself.</para> + </tip> + </listitem> + + <listitem> + <para>How do we represent it in <xref + linkend="glo_Java"/>?</para> + </listitem> + </orderedlist> + </question> + + <answer> + <orderedlist> + <listitem> + <para>Our emoticon's decimal <xref linkend="glo_unicode"/> + value is 128,526 or hexadecimal <code>1f60E</code> . So its + value is larger than 65535 and thus requires more than two + bytes. <xref linkend="glo_Java"/> however represents + characters using just two bytes. Thus the emoticon does not + fit into a single <xref linkend="glo_Java"/> <code>char</code> + value:</para> + + <programlisting language="java">char c = 0x1f60e; // Error: Incompatible types + // Required: char Found: int</programlisting> + + <para>On contrary the arrow's decimal value of 10173 or + hexadecimal <code>0x27BD</code> fits perfectly well into a + <xref linkend="glo_Java"/> <code>char</code> variable:</para> + + <programlisting language="java">char c = 0x27BD; +System.out.println("Arrow: " + c); +System.out.println("Arrow value: " + (int)c);</programlisting> + + <para>Result:</para> + + <screen>Arrow: ➽ +Arrow value: 10173</screen> + </listitem> + + <listitem> + <para>We may represent two two-byte codes in sequence:</para> + + <programlisting language="java">System.out.println("Cool smiley: " + "\uD83D\uDE0E");</programlisting> + + <para>Resulting in:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="Ref/LangFundament/javaCoolSmiley.png"/> + </imageobject> + </mediaobject> + + <para>We may also convert the <xref linkend="glo_unicode"/> + value directly:</para> + + <programlisting language="java">System.out.println(Character.<methodname + xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html#toChars-int-">toChars(0x1f60e)</methodname>);</programlisting> + </listitem> + </orderedlist> </answer> </qandaentry> </qandadiv> @@ -1770,14 +1890,279 @@ System.out.println("Value = " + a);</programlisting> <title>Know your limits!</title> <programlisting language="java">System.out.println(10000000000<emphasis - role="bold">L</emphasis>); // o.K. -System.out.println(10000000000 ); // Compile time error: Integer number too large</programlisting> + role="red">L</emphasis>); // o.K. +System.out.println(10000000000 ); // Compile time error: Integer number larger + // than 2147483647 (2^31 - 1, Integer.<link + xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#MAX_VALUE">MAX_VALUE</link>) + </programlisting> + </figure> + + <figure xml:id="sd1_fig_literals"> + <title>Literal examples</title> + + <programlisting language="java">System.out.println("Hello"); // A String literal + +System.out.println(33452); // An int literal + +System.out.println(34.0223); // An double (floating point) literal</programlisting> + </figure> + + <figure xml:id="sd1_fig_integerLiteral"> + <title><code>int</code> literals</title> + + <programlisting language="java">System.out.println("Value 1: " + 29); +System.out.println("Value 2: " + 0b11101); +System.out.println("Value 3: " + 0x1D); +System.out.println("Value 4: " + 035);</programlisting> + + <screen>Value 1: 29 +Value 2: 29 +Value 3: 29 +Value 4: 29</screen> + </figure> + + <figure xml:id="sd1_fig_integerLiteralExplain"> + <title><code>int</code> literals explained</title> + + <informaltable border="1"> + <colgroup width="11%"/> + + <colgroup width="13%"/> + + <colgroup width="11%"/> + + <colgroup width="65%"/> + + <tr> + <th>Literal</th> + + <th>Discriminator</th> + + <th>Type</th> + + <th>Value</th> + </tr> + + <tr> + <td valign="top">29</td> + + <td valign="top"><para>Default:</para><para>base <emphasis + role="red">10</emphasis></para></td> + + <td valign="top">Decimal</td> + + <td valign="top"><inlineequation> + <m:math display="inline"> + <m:mrow> + <m:mrow> + <m:mn>2</m:mn> + + <m:mo>×</m:mo> + + <m:msup> + <m:mn mathcolor="red">10</m:mn> + + <m:mn>1</m:mn> + </m:msup> + </m:mrow> + + <m:mo>+</m:mo> + + <m:mrow> + <m:mn>9</m:mn> + + <m:mo>×</m:mo> + + <m:msup> + <m:mn mathcolor="red">10</m:mn> + + <m:mn>0</m:mn> + </m:msup> + </m:mrow> + </m:mrow> + </m:math> + </inlineequation></td> + </tr> + + <tr> + <td valign="top"><emphasis role="red">0b</emphasis>11101</td> + + <td valign="top"><emphasis role="red">0b</emphasis>, base <emphasis + role="red">2</emphasis></td> + + <td valign="top">Binary</td> + + <td valign="top"><para><inlineequation> + <m:math display="inline"> + <m:mrow> + <m:mrow> + <m:mn>1</m:mn> + + <m:mo>×</m:mo> + + <m:msup> + <m:mn mathcolor="red">2</m:mn> + + <m:mn>4</m:mn> + </m:msup> + </m:mrow> + + <m:mo>+</m:mo> + + <m:mrow> + <m:mn>1</m:mn> + + <m:mo>×</m:mo> + + <m:msup> + <m:mn mathcolor="red">2</m:mn> + + <m:mn>3</m:mn> + </m:msup> + </m:mrow> + + <m:mo>+</m:mo> + + <m:mrow> + <m:mn>1</m:mn> + + <m:mo>×</m:mo> + + <m:msup> + <m:mn mathcolor="red">2</m:mn> + + <m:mn>2</m:mn> + </m:msup> + </m:mrow> + </m:mrow> + </m:math> + </inlineequation></para><para><inlineequation> + <m:math display="inline"> + <m:mrow> + <m:mo>+</m:mo> + + <m:mrow> + <m:mn>0</m:mn> + + <m:mo>×</m:mo> + + <m:msup> + <m:mn mathcolor="red">2</m:mn> + + <m:mn>1</m:mn> + </m:msup> + </m:mrow> + + <m:mo>+</m:mo> + + <m:mrow> + <m:mn>1</m:mn> + + <m:mo>×</m:mo> + + <m:msup> + <m:mn mathcolor="red">2</m:mn> + + <m:mn>0</m:mn> + </m:msup> + </m:mrow> + </m:mrow> + </m:math> + </inlineequation></para></td> + </tr> + + <tr> + <td><emphasis role="red">0x</emphasis>1D</td> + + <td><emphasis role="red">0x</emphasis>, base <emphasis + role="red">16</emphasis></td> + + <td>Hexadecimal</td> + + <td><inlineequation> + <m:math display="inline"> + <m:mrow> + <m:mrow> + <m:mn>1</m:mn> + + <m:mo>×</m:mo> + + <m:msup> + <m:mn mathcolor="red">16</m:mn> + + <m:mn>1</m:mn> + </m:msup> + </m:mrow> + + <m:mo>+</m:mo> + + <m:mrow> + <m:mn>13</m:mn> + + <m:mo>×</m:mo> + + <m:msup> + <m:mn mathcolor="red">10</m:mn> + + <m:mn>0</m:mn> + </m:msup> + </m:mrow> + </m:mrow> + </m:math> + </inlineequation></td> + </tr> + + <tr> + <td><emphasis role="red">0</emphasis>35</td> + + <td><emphasis role="red">0</emphasis>, base <emphasis + role="red">8</emphasis></td> + + <td>Octal</td> + + <td><inlineequation> + <m:math display="inline"> + <m:mrow> + <m:mrow> + <m:mn>3</m:mn> + + <m:mo>×</m:mo> + + <m:msup> + <m:mn mathcolor="red">8</m:mn> + + <m:mn>1</m:mn> + </m:msup> + </m:mrow> + + <m:mo>+</m:mo> + + <m:mrow> + <m:mn>5</m:mn> + + <m:mo>×</m:mo> + + <m:msup> + <m:mn mathcolor="red">8</m:mn> + + <m:mn>0</m:mn> + </m:msup> + </m:mrow> + </m:mrow> + </m:math> + </inlineequation></td> + </tr> + </informaltable> </figure> <figure xml:id="sd1_fig_javaLiterals"> <title><xref linkend="glo_Java"/> literals</title> <informaltable border="1"> + <colgroup width="24%"/> + + <colgroup width="76%"/> + <tr> <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>, @@ -1806,16 +2191,21 @@ System.out.println(10000000000 ); // Compile time error: Integer number too lar <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code></td> - <td><code>35L</code>, <code>0b10_0011L</code>, <code>0x23L</code>, - <code>043L</code>, <code>-35L</code>,...</td> + <td><code>35<emphasis role="red">L</emphasis></code>, + <code>0b10_0011<emphasis role="red">L</emphasis></code>, + <code>0x23<emphasis role="red">L</emphasis></code>, + <code>043<emphasis role="red">L</emphasis></code>, + <code>-35<emphasis role="red">L</emphasis></code>,...</td> </tr> <tr> <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code></td> - <td><code>55.43F</code>, <code>1.7E-23F</code>, <code>-17.F, - 100_342.334_113</code></td> + <td><code>55.43<emphasis role="red">F</emphasis></code>, + <code>1.7E-23<emphasis role="red">F</emphasis></code>, + <code>-17.<emphasis role="red">F</emphasis></code>, + <code>100_342.334_113<emphasis role="red">F</emphasis></code></td> </tr> <tr> @@ -1827,7 +2217,8 @@ System.out.println(10000000000 ); // Compile time error: Integer number too lar </tr> <tr> - <td><code>String</code></td> + <td><code + xlink:href="https://docs.oracle.com/javase/tutorial/java/data/strings.html">String</code></td> <td><code>"Hello"</code>, <code>"Greek Δ"</code>, <code>"Greek <link xlink:href="https://www.fileformat.info/info/unicode/char/0394/index.htm">\u0394</link>"</code></td> @@ -2037,8 +2428,9 @@ System.out.println(intensity);</programlisting> <para>The literal <quote>048</quote> denotes <link xlink:href="https://en.wikipedia.org/wiki/Octal">octal representation</link>. Digits in octal representation range from 0 - to 7. So <quote>047</quote> is fine but <quote>048</quote> simply - is invalid.</para> + to 7. So <quote>047</quote> is fine but <quote>048</quote> is + <link linkend="sd1_qanda_illegalOctalLiteral">again</link> + invalid.</para> </answer> </qandaentry> </qandadiv> @@ -2649,6 +3041,8 @@ System.out.println("Character: " + arabicChar);</programlisting> System.out.println("Olympic winter games: " + year);</programlisting> + <para>Could this happen?</para> + <screen>Olympic winter games: 2014</screen> </figure> </section> @@ -2679,13 +3073,17 @@ System.out.println("Sum = " + sum);</programlisting> <para>Result:</para> <informaltable border="1"> + <colgroup width="27%"/> + + <colgroup width="73%"/> + <tr> <td valign="top"><screen>Sum = -2</screen></td> <td><screen> 01111111_11111111_11111111_11111111 -+ 01111111_11111111_11111111_11111111 ++ 01111111_11111111_11111111_11111111 _____________________________________ -1_11111111_11111111_11111111_11111110</screen></td> +<emphasis role="red">1_</emphasis>11111111_11111111_11111111_11111110</screen></td> </tr> </informaltable> </figure> @@ -3900,21 +4298,79 @@ System.out.println(<link <figure xml:id="sd1_fig_summingOverflowDetect"> <title>Detecting arithmetic overflow (Java 8+)</title> - <informaltable border="1"> - <tr> - <td valign="top"><programlisting language="java">try { + <programlisting language="java">try { int sum = Math.<link - xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#addExact-int-int-">addExact(2147480000, 2147480000)</link>; + xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#addExact-int-int-">addExact(2147480000, 2147480000)</link>; System.out.println("sum = " + sum); -} catch (<link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/ArithmeticException.html">ArithmeticException</link> ex) { - System.err.println("Problem:" + ex.getMessage()); -}</programlisting></td> +} catch (<link + xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/ArithmeticException.html">ArithmeticException</link> ex) { + System.err.println("Problem:" + ex.getMessage()); +}</programlisting> + + <screen>Problem:integer overflow</screen> + </figure> + + <figure xml:id="sd1_fig_divideByZero"> + <title>Dividing by zero</title> + + <informaltable border="1"> + <tr> + <td valign="top"><programlisting language="java">double f = 34.3 / 0; +System.out.println("Value: " + f);</programlisting></td> - <td valign="top"><screen>Problem:integer overflow</screen></td> + <td valign="top"><screen>Value: Infinity</screen></td> </tr> </informaltable> </figure> + <qandaset defaultlabel="qanda" xml:id="sd1_qanda_infinityCalculations"> + <title>Expressions involving infinity</title> + + <qandadiv> + <qandaentry> + <question> + <para><xref linkend="sd1_fig_divideByZero"/> raises some + interesting questions:</para> + + <orderedlist> + <listitem> + <para>What happens if we add e.g. 1000 to a variable + containing a value of Infinity?</para> + </listitem> + + <listitem> + <para>What happens if we add or subtract two variables both + containing a value of + <code><quote>Infinity</quote></code>?</para> + </listitem> + </orderedlist> + </question> + + <answer> + <itemizedlist> + <listitem> + <programlisting language="java">double f = 1. / 0; +double difference = f - 1000; +System.out.println("Difference: " + difference);</programlisting> + + <screen>Difference: Infinity</screen> + </listitem> + + <listitem> + <para><programlisting language="java">double f = 1. / 0; +double g = 1. / 0; +double difference = f - g; +System.out.println("Difference: " + difference);</programlisting><screen>Difference: NaN</screen><parameter>Explanation: + This represents a special <quote + xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html#NaN">not + a number</quote> encoded value.</parameter></para> + </listitem> + </itemizedlist> + </answer> + </qandaentry> + </qandadiv> + </qandaset> + <figure xml:id="sd1_fig_genericBinaryOpType"> <title>Operator type behaviour</title> diff --git a/ws/Docbook/CustomLayer/webhelp/positioning.css.patch b/ws/Docbook/CustomLayer/webhelp/positioning.css.patch index d185f946d..748750954 100644 --- a/ws/Docbook/CustomLayer/webhelp/positioning.css.patch +++ b/ws/Docbook/CustomLayer/webhelp/positioning.css.patch @@ -1,5 +1,5 @@ ---- positioning.css.orig 2017-09-18 10:14:19.575041451 +0200 -+++ positioning.css 2017-09-18 10:13:29.027701744 +0200 +--- positioning.css.orig 2017-10-14 09:40:46.682122317 +0200 ++++ positioning.css 2017-10-14 09:39:32.787147200 +0200 @@ -1,3 +1,8 @@ +/* + * patched by: /usr/share/hdm-docbook-xsl/CustomLayer/webhelp/positioning.css.patch @@ -53,7 +53,7 @@ #content .qandaset>table, #content .qandaset>table td, #content .calloutlist table, #content .calloutlist table td, #content .navfooter table, #content .navfooter table td { border: 0px solid; } -@@ -375,3 +394,117 @@ +@@ -375,3 +394,124 @@ } @@ -171,3 +171,10 @@ +:target { + background-color: #ffa; +} ++ ++/* inline emphasis role based extensions */ ++.red { ++ color: red; ++ font-weight: bold !important; ++} ++ diff --git a/ws/Xmlmind/Patch/010_docbookCss.patch b/ws/Xmlmind/Patch/010_docbookCss.patch index b42da3328..be7ccd226 100644 --- a/ws/Xmlmind/Patch/010_docbookCss.patch +++ b/ws/Xmlmind/Patch/010_docbookCss.patch @@ -40,3 +40,19 @@ keycombo { display: inline; } +--- /usr/share/xmlmind.orig/addon/config/docbook/css/inline2.imp 2017-06-12 15:37:30.000000000 +0200 ++++ /usr/share/xmlmind/addon/config/docbook/css/inline2.imp 2017-10-14 09:58:40.909253180 +0200 +@@ -39,6 +39,13 @@ + font-style: normal; + background-color: #F0F080; + } ++/* HdM Extension */ ++emphasis[role=red] { ++ color: red; ++ font-weight: bold !important; ++ font-style: normal; ++} ++/* End HdM Extension */ + + emphasis > emphasis { + font-style: normal; -- GitLab