Computer Science: A Structured Programming Approach Using C. Third Edition. Behrouz A. Forouzan and Richard F. Gilberg Course Technology (ISBN: 0-534-49132-4) This document contains errata for the text. Status in the table below indicates the print run that contains the correction: 0 indicates that the problem has been reported but not yet corrected, 1 indicates that the errata was corrected in the first printing, and so forth. Status Page 3 9 3 Subject Correction Footnote Change "There are no identifiers..." to "There are no labels... 10 4th Paragraph Change "C is..." to read "C, with its standard libraries, is considered..." 3 11 Figure 1-10 Line 1 in Program: Delete space between stdio. and h> Last box, change "Runner" to "Loader" 3 30 Last Paragraph Delete "...and added the concept of data types." from 7th line. 3 45 Figure 2-12 First line on left, change lower-case ’b’ to upper-case ’B’ 3 53 Program 2-3 In line 16, change "...PI);" to "...cPI):" 3 61 Example 12 First print position in second example should be “+0002.30” 3 66 Example 1 First line insert "if there were" after "Note that" insert a comma after "z" insert "it" before "would" delete comma after "error" so it reads "Note that if there were a space...z, it would create an error" 3 101 Cast Operator In blue box, change to read: "(float) x" 3 102 Box at top Delete last example in blue box at top of page [“(2 + 3 * 1)…7 * I”] 3 109 Figure 3-8 Align asterisks (2x) with rest of text 3 110 Figure 3-9 In green box, align *= In yellow box, align -= 3 118 Line 8 Change "now" (third word) to "not" 3 145 Problem 33 In formula, change (100 / 180) to (100.0 / 180.0) 3 157 Program 4-2 Line 17 should not be highlighted. Delete yellow background Lline 18 should be highlighted. Add yellow background 3 178 6th Full Paragraph Change "date" to "data" so it reads "The asterisk...not data variables" 3 189 Floor Functions Function names are wrong. Change "float" to "floor" in second column of all three rows so it reads double floor (... 8/1/16 Page 1 Status Page Subject Correction float long double floorf (... floorl (... 3 195 Program 4-10 Line 13: Delete comment (// Seed temporally) 3 201 Figure 4-33 Move shadow in "Add" rectangle to the right 3 225 Problem 34 In second sentence, change “three” to “four”, change comma after functions to a semicolon, and insert “main” (italics) so it reads: “…Use four functions: main, one to read…” 3 236 Figure 5-4 Change title to "Relational and Equality Operators" 1 239 Figure 5-8 First line: change -- to == so it reads "if (i == 3)" 3 240 Blue box at top Delete "else" and align the print statement to the left. 3 256 Line 2 at top Change "types" to "constants" so it reads C integral constants. For every... 3 297 Problem 56 Line 7. Change "sum" to "value" so it reads "} // if value" 3 311 Program 6-1 Line 5 Add: turnOffAirCond( ) after semicolon. Line 7 Add: turnOffHeater( ) after semicolon. Align with line 5 3 314 Program 6-3 In Results: Add a period after stop in second line. 3 317 Paragraph 2 Change ’C’ at beginning of paragraph to ’C99’ Change "previous" in second line to "next" so it reads "done in the...in the next example." 3 323 The Comma... Last line first paragraph: Change "expression" to operator twice so it reads: "...operator has the lowest priority of all operators, ..." 3 340 Figure 6-21 Change arrow line in for statement to point to expr3. 3 343 Powers Line 4: xn should be xn 3 345 Highlight Note First line: change to read "...initialize the result (a variable named largest) to a very small..." Third line: change to read: "...initialize the result (a variable named smallest) to a vary large..." 3 348 Third Blue Box Change fourth line to "result = result && number > 0;" 3 356 Last sentence First line: Delete "obvious" Second line: delete " for more than 20 numbers". 3 366 Linear Loops in for statement: insert a space between "i=" delete space in "i ++" 3 367 Second paragraph At end of line 1, change "a factor" to "the limit test in the for loop." so it reads 8/1/16 Page 2 Status Page Subject Correction "In both cases, ... proportionate to the limit test in the for loop." Delete next sentence: “The higher…numer of loops.” 3 384 Problem 44 Delete "a list of the numbers followed by" in the second line. 3 395 Streams Line 2: change "is" to "are" so it reads "as we...2, data are input..." 3 396 Closing the Stream delete last line "and destroy the contents of the file" 3 398 File Open... 4th Line from bottom: insert "file" between "the name" so it reads "dows system, the file name..." Delete "up...with" and insert "a name, a dot (period), and" so it reads "dows system, the file name consists of a name, a dot (period), and a threecharacter" 1 399 Figure 7-3 Remove extra line through top of disk token 3 401 Code at Bottom 6th line: change "spData" to "spTemp" so it reads "spTemp = fopen..." 3 406 Figure 7-5 In lower, blue box on left, insert "# Alternate" below "0 zero..." 3 407 Table 7-3 In the four rows at the bottom (real) change the first double to "float" and add "long" before the third double so they all read: none (float), l (double), L (long double) This change should also be made to the top figure in the inside back cover. 3 419 Table 7-4 In rows 5 - 8 (real) change the first double to "float" and add "long" before the third double so they all read: none (float), l (double), L (long double) This change should also be made to the bottom figure in the inside back cover. 3 420 Table 7-5 Formatting box in last row: change "scientific" to "real" 3 421 Conversion Codes in Real (f), after "Chapter 2." add "If the precision is 0, the decimal point is printed only if the alternate flag (#) is also present." 3 425 Program 7-3 Line 16: Change to "if (spIn != NULL) 3 434 Read a Character 4th line: Insert after “occurs.” “We discuss how to tell the difference in Chapter 13.” 3 436 Program 7-7 Line 19: Change “P07.07.DAT” to “P07-07.DAT” 3 462 First sentence Change "scores1" to "scores0" Change "scores[1]" to "scores[0] Change "scores19" to "scores9" Change "scores[19] to "scores[9] 3 463 Figure 8-6 Add one more entry at bottom of array: scores[9] then blue box with data 16 Draw line from Elements oval to new entry 8/1/16 Page 3 Status Page Subject Correction 3 463 Second Paragraph Line 3: insert "introduced in C99," so it reads "program is...In a variablelength array, introduced in C99, the size..." 3 464 Figure 8-7 In top entry in figure, change [9] to [10] and add new blue box at end. Label new box "[9]" 3 464 Accessing Elements Last example: change "9," to "10;" (change number and change comma to semicolon. 3 466 First blue box Change "9" to "10" so it reads: "for (... i < 10; i++) 3 467 Second blue box Change "9" to "10" so it reads: "for (... i < 10; i++) 3 484 Program 8-7 Delete lines 53 and 54. Line 60, change expression after && to "dataIn < range" 3 493 Top of Page Delete "Program 8-9 Analysis" Note: Do not delete "Program 8-9 Analysis" at end of program. 3 497 Figure 8-26 In left flowchart, on leftmost arrow, add box containing list[walker + 1] = temp 3 508 Figure 8-33 Change "Sequential" to "Binary" in top oval. 3 516 Figure 8-37 Top program, line 4: make "int" blue text Bottom program, line 4: make "printf" blue text 3 538 Blue Box Third line, change "// Invalid" to "// Poor Style 3 538 Summary Fourth Bullet (Initialization...): Change "an array" to "a fixed length array" 3 581 Figure 9-22 Last line: remove & so it reads "pa = a; 3 583 Figure 9-23 Line 3 from bottom: remove & so it reads pa = a; // Invalid: different level 3 596 Last sentence Change "systems" to "applications" so it reads "ity to move data between applications, such..." 3 614 Figure 10-4 In display, change second line from "2 4" to "4 4" 3 631 Reallocation of Memory blue box at end: move asterisk to left so it reads void* realloc... 3 632 Figure 10-17 Make background of text "10 integers" white not gray 3 647 648 "Dynamic Memory..." Delete this section because it is now obsolete. Virtually all computers now correctly handle memory deletion. 3 681 First Paragraph Delete first sentence: "The easy...scan set." Delete fourth and fifth sentences: "The scan set...alphabetical character." Before last sentence, insert: We read the first and last names using the string 8/1/16 // Error Different levels Page 4 Status Page Subject Correction conversion code." After last sentence, insert: "As an alternative, we could have used the scan-set conversion code, but it is simpler to use the basic string code (remember KISS)." 1 690 Section 11.5 First paragraph, last sentence. Change "w4e" to "we" 3 691 String Length Move "strlen" before "returns" so it reads "...function, strlen, returns..." 3 697 Second Paragraph Start of last sentence: Change "This" to "Using an extra element" 3 704 Figure 11-22 Change "ptr" to "pToken" in (b), (c), and (d) 1 713 Figure 11-24 Remove extraneous (straight) line on right of figure. 3 750 Third blue box Change "enum color" to "enum myColor" Note: keep alignment of RED, BLUE, and GREEN 3 750 Next Paragraph Line 1: change "ROSE" to "RED in color (see page 747)" 3 750 Anonymous Enumeration: Add at end of sentence beginning with "As another example..." "Anonymous enumeration cannot be used to declare a variable." 3 775 Figure 12-17 In function header, add return type "int" 3 784 First Paragraph Insert after "Figure 12-21." "Note that in the figure, un is the member name to access the union structure." 3 788 Last Paragraph In second line, delete ", such as the Macintosh," Change "index 3" to "index 0" 3 809 Question 12 Delete second sentence: "Variables cannot be created at the same time." 3 814 Question 32 After "Figure 12-29." in last paragraph, add "Zero is considered positive." 3 818 Question 42 Last line, delete " in a 13x3x4 matrix" 3 823 Differences... #3 in first set, change "is" to "may be" so it reads "There may be a..." #3 in second set, change "is" to may be" so it reads "there may be an" 3 828 Figure 13-7 1. Make red pointer box 50% color 2. Make sure red line starts in the center of the red box 3 830 Figure 13-8 1. Make red pointer box 50% color 2. Make sure red line starts in the center of the red box 3 831 Figure 13-9 1. Make red pointer box 50% color 2. Make sure red line starts in the center of the red box 3 832 Figure 13-10 1. Make red pointer box 50% color 2. Make sure red line starts in the center of the red box 3 835 Figure 13-12 Add an ellipse (...) between the last two green boxes on right. 8/1/16 Page 5 Status Page Subject 3 882 First Paragraph Line 6, insert after "(4 Bytes). Beginning with C99, 1 885 Program 14-3 Line 1. "or" overflows. Delete "This program" and start demonstrates with upper case. 1 888 Program 14-5 Line 1 overflow. Move "one’s" to beginning of line 2 and delete empty line 1 889 Program 14-5 In line 14 delete "// 0 for sender" In line 15 delete "// value for receiver" In line 29, make "while" blue text 3 889 Shift Operators In line 4, change "system" to "compiler" so it reads "tion of the software engineer who designs the compiler. It... 1 891 Program 14-6 Four lines overflow. 21. Move "bitStr" to new line 22 and align under "O" in Original. 25. Move "bitStr" to new line 27 and align under "S" in Shifted. 29. Move "bitStr" to new line 32 and align under "S" in Shifted. 33. Move "bitStr" to new line 37 and align under "S" in Shifted. 3 891 Program 14-6 Line 48. Move "0X001 +" to new line 53 and align under open paren in "(char) 1 893 Program 14-7 Line 9: make "include" blue text 3 894 Rotation Paragraph 2, line 2. Change "right" to "left" so it reads "the other end...we shift them off the left end..." Paragraph 2, line 3: Change "left" to "right" in two places to read "value...on the right. When we..., we shift off the right" Paragraph 2, line 4, change "right" to "left" so it reads, "end and insert them on the left. Figure..." 3 894 Figure 14-4 First line, change "Left" to "Right" Line under first rectangle, change "left" to "right" Line under second rectangle, change "right" to "left" Last line, change "Right" to "Left" 3 894 Last sentence Change "left" at end of first line to "right" Last line: change "right" to "left" 3 895 First paragraph Line 1: end of line, delete "it is easy" Line 2: Beginning of line, delete "to code" Insert in place of deleted text "the rotations can be coded" so it reads "Although...left or right, the rotations can be coded using..." 3 895 Second paragraph Change "shift" to "rotate" so it reads "The rotate left operation..." 3 895 Program 14-8 Line 30: change "rotate16Right" to "rotate16Left" 3 896 Program 14-8 Line 33: change "rotate16Right" to "rotate16Left" Line 38: change left to right so it reads "Post:...bits right" Line 40: Change "rotate16Left" to "rotate16Right" Line 43: Change "rotate16Left" to "rotate16Right" 8/1/16 Correction Page 6 Status Page Subject Correction Results: Change third line to read "Rotated Left: 0X3452 Change fourth line to read" "Rotated Right: 0X5234 3 896 Creating Masks Line 3: change "0x8031" to "0x8101" and "flags" to "masks" so it reads: "stant 0x8101. dynamic masks are created..." 1 897 Second Blue Box Make "define" blue text (3 times) 1 899 Program 14-9 Line 24 overflow. Add number (25) to following line and align "&comAddr[10]" under "&comAddr[3] in line 24 Rest of line numbers should automatically renumber. 1 900 Program 14-9 Lines 58 and 66 overflow. Add line numbers and align code as explained in 899 above. 1 901 Program 14-10 line 9: make "void" blue text 3 902 Program 14-10 Line 57 overflow. Create new line 58. align "comAddr[1] under "comAddr[3] Add space after comma so "comAddr[0] aligns on "comAddr[2] Line 66: Make "return" blue text 1 924 Alpha List a. change "integers" (last word) to "blocks" b. change "integer" (2 times) to "block" 3 929 Nodes Make style header3 (same as "Pointers..." on next page 3 984 top of page Line 4 & 5: Delete "When we discuss...key sequence." 3 1059 Appendix F List flows in columns through the four pages rather than the customary flow from the bottom of column1 to the top of column 2 on each page. 3 1091 First sentence Change "All" (first word) to "In all..." Insert "main" (italic type) between "have" and "coded" 3 1095 Appendix I Title Make ’V’ in "Void" lower case. Make "void" italic. 8/1/16 Page 7