Corrections to Feldman, Software Construction and Data Structures with Ada 95 Latest revision October 16, 2001 ------------------------------------------------------------------------- This list shows all errors reported since this book was published in June 1996. Please submit suggested corrections to mfeldman by e-mail, in the form given here, so they are easily copied and pasted into this document. "Line 3" means "3 actual lines of type from the top of the page, not counting the line with the page number. "Line -3" means "3 lines from the bottom of the page." I'm including only errors that might mislead the reader, not spelling or punctuation errors that don't change the meaning. If you are the first to report a new error, I will pay you $1.00. ------------------------------------------------------------------------- p.10 line -5 add a space between "implementation" and "in" p. 12 Fig. 1.2 (b) change "y" to "x p. 25 line -17 change "Field2 > Value2" to "Field2 => Value2" p. 37 line 5 change "END Calendar;" to "END Ada.Calendar;" p. 42 lines 3-6 delete this entire paragraph p. 43 lines -18, -17, -15, -13, -11, -9, -8 change "Text_IO" to "Ada.Text_IO" p. 44 lines -7, -6, -5, -4 change "Text_IO" to "Ada.Text_IO" p. 45 lines 11, -14, -4, -3, -2, -1 change "Text_IO" to "Ada.Text_IO" p. 46 lines 13, -13, -3 change "Text_IO" to "Ada.Text_IO" p. 47 lines 14, 15 change "Text_IO" to "Ada.Text_IO" p. 47 line -11 change "It" to "It is" p. 55 line -6 change the word "result" to "divisor, Y," p. 73 delete line -16 (TempCents: Natural) p. 74 line 12 there is a bug here when Q1 = Q2. In this case, the Positive flag should be set to True, giving a positive result value. So replace line 12 by this code: ELSE -- Result is negative or zero Result.Positive := (Q1 = Q2); p. 78 last four lines. Change the last two sentences to read: The date is represented by the year, followed by the sequential day in the year. For example, January 1, 1993 is 1993001; December 31, 1993 is 1993365. Naturally, all sequential days after Febryary 28 are different in leap years than in non-leap years, so that (for example), December 31, 1992 is 1992366. p. 90 line -3 change "X-windows" to "the X Window System" p. 111 line 15 change "Succ, First, and Last" to "Succ and First" p. 116 line -5 change "1-record test" to "10-record test" p. 120 line 9 change "-the the" to "-the" p. 123 line 3 change this line to read control. In Ada, we just use a WHILE or general loop. p. 127 line 3 change "you that" to "that you" p. 130 line -13 in "O(N2)" the "2" should be a superscript p. 137 line 4 of text change "to to" to "you to" p. 143 delete line 11 (Ada.Text_IO.New_Line) p. 146 line -4 change 11 to 12 p. 146 line -2 change 12 to 13 p. 154 line 5 change "1,2,3,5,8..." to "1,1,2,3,5,8..." p. 157, line -4 Change "seven" to "six" P. 173 line -14 Result(R,C) := K + M (R,C); not Right(R,C). p. 190 line 12 change "ValueType=>Quantity" to "ValueType=>Float" p. 190 line 14 change "ValueType=>Quantity" to "ValueType=>Float" p. 190 line 16 change "ValueType=>Quantity" to "ValueType=>Integer" p. 191 line -10 add after line starting BEGIN -- Result := List(List'First)); p. 192 line 9 at the end of the line, change ";" to ");" p. 193 line 18 LOOP should be aligned with FOR p. 197 line -4 "usng" to "using". p. 202, line -16 change "would should" to "would" p. 206, line 14 should be TYPE SmallNatural IS Natural RANGE 0..15; p. 221 line -22 delete the line reading "Count: TableSize;" p. 224 line 8-11 add in one more blank after the name on each line p. 225, line 3 change "a models" to "as models". p. 225, line -22 change "Program 5.23" to "Program 5.24" p. 227 line 19 delete extra ", i.e., change ""<" to "<" p. 249, 2nd paragraph, "canprecisely" should be "can precisely" p. 249, same sentence as above needs a period p. 249, 2nd paragraph, 2nd line, "anumbe" should be two words " a number" p. 256 change "FUNCTION "&" S :" to "FUNCTION "&" (S :" p. 284 line -11 change "VStrings.SubString" to "VStrings.Slice" p. 288 line 16 change "top Element" to "first Element" p. 288 line 20 change "top Element" to "first Element" p. 289 line 17 change "IN OUT queue" to "IN OUT Queue" p. 301, line -1 change A * (B * C) + D to A + (B * C) + D p. 302, Fig. 7.10, change A * B - C + D to A + B - C + D p. 302, Fig. 7.11, line 2: change "-B-C+D" to "+B-C+D" p. 305, line -12 interchange this line with the next one; that is, move "RETURN Result;" below "END IF;" p. 306, Fig. 7.13, line 9 and 10: in both cases add "-" to the top of the stack p. 308 line 10 change "depsrture" to "departure" p. 314 Figure 8.1 The last four line of code are incorrect. These should read: P1 := NEW RecType; P3 := P1; P1 := NEW RecType; P1 := NEW RecType; p.317 line 10 of text, "AC DC" should have one more space in between p. 318 Figure 8.6 Change R.Link to R.Next, and P.Link to P.Next p. 320, line 10 Change Unchecked_Deallocation to Ada.Unchecked_Deallocation Change all similar references on this page. p. 321, line -3 of text, "Ace" should be "Hat" p. 327, line -9, delete "it" p. 332, line -15, change NewTail.ALL.Link to NewTail.ALL.Next p. 333 line 7 should be "TYPE List IS RECORD" p. 335 line 22 should be "-- first word <= Word < last word" p. 335 line -12 change ">" to "<" p. 346 line -16 change "each node of L" to "each node of From" p. 346 line -5 change "each character of L" to "each character of From" p. 348 two unnumbered figures - change the bottom arrow of LAVS in both cases, so these arrows point at the last node, as in the L1 case directly above. p. 353 line 3 of text - change "begins" to "begins with" p. 353 line 5 of text - change Table.Info.Head to Table.Data.Head p. 366 line -2 , "sto red" should be "stored", omit space p. 429 Fig. 11.21, Step 5 - in the diagram itself, change "P" to "S" p. 528 line -20 change "T'First <= T'Last" to "List'First <= List'Last"