100% found this document useful (11 votes)
182 views

Download ebooks file Starting out with c++ From control structures through objects Ninth Edition, Global Edition Tony Gaddis all chapters

Tony

Uploaded by

anglesbaizak
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (11 votes)
182 views

Download ebooks file Starting out with c++ From control structures through objects Ninth Edition, Global Edition Tony Gaddis all chapters

Tony

Uploaded by

anglesbaizak
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 66

Download Full Version ebookmass - Visit ebookmass.

com

Starting out with c++ From control structures


through objects Ninth Edition, Global Edition Tony
Gaddis

https://ebookmass.com/product/starting-out-with-c-from-
control-structures-through-objects-ninth-edition-global-
edition-tony-gaddis/

OR CLICK HERE

DOWLOAD NOW

Discover More Ebook - Explore Now at ebookmass.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Starting Out with C++: From Control Structures through


Objects 8th Edition, (Ebook PDF)

https://ebookmass.com/product/starting-out-with-c-from-control-
structures-through-objects-8th-edition-ebook-pdf/

ebookmass.com

Starting Out with Java: From Control Structures through


Objects 6th Edition, (Ebook PDF)

https://ebookmass.com/product/starting-out-with-java-from-control-
structures-through-objects-6th-edition-ebook-pdf/

ebookmass.com

(eTextbook PDF) for Starting Out with Java: From Control


Structures through Objects, 7th Edition

https://ebookmass.com/product/etextbook-pdf-for-starting-out-with-
java-from-control-structures-through-objects-7th-edition/

ebookmass.com

A History of the World Through Body Parts: The Stories


Behind the Organs, Appendages, Digits, and the Like
Attached to (or Detached from) Famous Bodies Kathy Petras
https://ebookmass.com/product/a-history-of-the-world-through-body-
parts-the-stories-behind-the-organs-appendages-digits-and-the-like-
attached-to-or-detached-from-famous-bodies-kathy-petras/
ebookmass.com
Empathy: The Contribution of Neuroscience to Social
Analysis Vincenzo Auriemma

https://ebookmass.com/product/empathy-the-contribution-of-
neuroscience-to-social-analysis-vincenzo-auriemma/

ebookmass.com

Highland Legend Kathryn Le Veque

https://ebookmass.com/product/highland-legend-kathryn-le-veque/

ebookmass.com

Experimental Methods for Membrane Applications in


Desalination and Water Treatment Sergio G. Salinas-
Rodriguez
https://ebookmass.com/product/experimental-methods-for-membrane-
applications-in-desalination-and-water-treatment-sergio-g-salinas-
rodriguez/
ebookmass.com

Juvenile Justice In America (8th Edition ) 8th Edition

https://ebookmass.com/product/juvenile-justice-in-america-8th-
edition-8th-edition/

ebookmass.com

Legacy of Blood: Jews, Pogroms, and Ritual Murder in the


Lands of the Soviets Elissa Bemporad

https://ebookmass.com/product/legacy-of-blood-jews-pogroms-and-ritual-
murder-in-the-lands-of-the-soviets-elissa-bemporad/

ebookmass.com
Nuclear Medicine and Molecular Imaging: the Requisites 5th
Edition Janis P. O'Malley

https://ebookmass.com/product/nuclear-medicine-and-molecular-imaging-
the-requisites-5th-edition-janis-p-omalley/

ebookmass.com
Starting Out with C++ From
Control Structures Through
Objects
Ninth Edition
Starting Out with C++ From
Control Structures Through
Objects
Ninth Edition

Tony Gaddis
Haywood Community College

330 Hudson Street, New York, NY 10013


Senior Vice President Courseware Portfolio Management: Marcia J.
Horton

Director, Portfolio Management: Engineering, Computer Science &


Global Editions: Julian Partridge

Portfolio Manager: Matt Goldstein

Portfolio Management Assistant: Kristy Alaura

Field Marketing Manager: Demetrius Hall

Product Marketing Manager: Yvonne Vannatta

Managing Producer, ECS and Math: Scott Disanno

Content Producer: Sandra L. Rodriguez

Composition: iEnergizer Aptara®, Ltd.

Cover Designer: Joyce Wells

Cover Photo: Samokhin/123RF

Credits and acknowledgments borrowed from other sources and


reproduced, with permission, appear on the Credits page in the
endmatter of this textbook.
Copyright © 2018, 2015, 2012, 2009 Pearson Education, Inc.
Hoboken, NJ 07030. All rights reserved. Manufactured in the United
States of America. This publication is protected by copyright and
permissions should be obtained from the publisher prior to any
prohibited reproduction, storage in a retrieval system, or
transmission in any form or by any means, electronic, mechanical,
photocopying, recording, or otherwise. For information regarding
permissions, request forms and the appropriate contacts within the
Pearson Education Global Rights & Permissions department, please
visit www.pearsoned.com/permissions/.

Many of the designations by manufacturers and seller to distinguish


their products are claimed as trademarks. Where those designations
appear in this book, and the publisher was aware of a trademark
claim, the designations have been printed in initial caps or all caps.

The author and publisher of this book have used their best efforts in
preparing this book. These efforts include the development,
research, and testing of theories and programs to determine their
effectiveness. The author and publisher make no warranty of any
kind, expressed or implied, with regard to these programs or the
documentation contained in this book. The author and publisher shall
not be liable in any event for incidental or consequential damages
with, or arising out of, the furnishing, performance, or use of these
programs.

Pearson Education Ltd., London


Pearson Education Singapore, Pte. Ltd

Pearson Education Canada, Inc.

Pearson Education Japan

Pearson Education Australia PTY, Ltd

Pearson Education North Asia, Ltd., Hong Kong

Pearson Education de Mexico, S.A. de C.V.

Pearson Education Malaysia, Pte. Ltd.

Pearson Education, Inc., Hoboken

Library of Congress Cataloging-in-Publication Data

Names: Gaddis, Tony, author.

Title: Starting out with C++. From control structures through objects /
Tony Gaddis, Haywood Community College.

Other titles: From control structures through objects | Starting out


with C plus plus. From control structures through objects

Description: Ninth edition. | Boston : Pearson Education, Inc., [2017]


Identifiers: LCCN 2016056456 | ISBN 9780134498379 (alk. paper) |
ISBN 0134498372 (alk. paper)

Subjects: LCSH: C++ (Computer program language)

Classification: LCC QA76.73.C153 G334 2017 | DDC 005.13/3—


dc23 LC record available at https://lccn.loc.gov/2016056456

1 17

ISBN-13: 978-0-13-449837-9

ISBN-10: 0-13-449837-2
Contents at a Glance
Preface xvii

Chapter 1 Introduction to Computers and Programming 1

Chapter 2 Introduction to C++ 27

Chapter 3 Expressions and Interactivity 85

Chapter 4 Making Decisions 151

Chapter 5 Loops and Files 231

Chapter 6 Functions 305

Chapter 7 Arrays and Vectors 381

Chapter 8 Searching and Sorting Arrays 463

Chapter 9 Pointers 503

Chapter 10 Characters, C-Strings, and More about the string


Class 557

Chapter 11 Structured Data 613

Chapter 12 Advanced File Operations 665

Chapter 13 Introduction to Classes 719

Chapter 14 More about Classes 817


Chapter 15 Inheritance, Polymorphism, and Virtual Functions
907

Chapter 16 Exceptions and Templates 989

Chapter 17 The Standard Template Library 1029

Chapter 18 Linked Lists 1123

Chapter 19 Stacks and Queues 1165

Chapter 20 Recursion 1223

Chapter 21 Binary Trees 1257


Appendix A: The ASCII Character Set 1287

Appendix B: Operator Precedence and Associativity 1289

Quick References 1291

Index 1293

Credit 1311

Online The following appendices are available at


www.pearsonhighered.com/gaddis.
Appendix C: Introduction to Flowcharting

Appendix D: Using UML in Class Design

Appendix E: Namespaces

Appendix F: Passing Command Line Arguments

Appendix G: Binary Numbers and Bitwise Operations


Appendix H: STL Algorithms

Appendix I: Multi-Source File Programs

Appendix J: Stream Member Functions for Formatting

Appendix K: Unions

Appendix L: Answers to Checkpoints

Appendix M: Answers to Odd Numbered Review Questions

Case Study 1: String Manipulation

Case Study 2: High Adventure Travel Agency—Part 1

Case Study 3: Loan Amortization

Case Study 4: Creating a String Class

Case Study 5: High Adventure Travel Agency—Part 2

Case Study 6: High Adventure Travel Agency—Part 3

Case Study 7: Intersection of Sets

Case Study 8: Sales Commission


Contents
Preface xxiii

Chapter 1 Introduction to Computers and Programming 1


1.1 Why Program? 1

1.2 Computer Systems: Hardware and Software 2

1.3 Programs and Programming Languages 8

1.4 What Is a Program Made of? 14

1.5 Input, Processing, and Output 17

1.6 The Programming Process 18

1.7 Procedural and Object-Oriented Programming 22

Review Questions and Exercises 24

Chapter 2 Introduction to C++ 27


2.1 The Parts of a C++ Program 27

2.2 The cout Object 31

2.3 The #include Directive 36

2.4 Variables, Literals, and Assignment Statements 38

2.5 Identifiers 42
2.6 Integer Data Types 43

2.7 The char Data Type 49

2.8 The C++ string Class 53

2.9 Floating-Point Data Types 55

2.10 The bool Data Type 58

2.11 Determining the Size of a Data Type 59

2.12 More about Variable Assignments and Initialization 60

2.13 Scope 62

2.14 Arithmetic Operators 63

2.15 Comments 71

2.16 Named Constants 73

2.17 Programming Style 75


Review Questions and Exercises 77

Programming Challenges 81

Chapter 3 Expressions and Interactivity 85


3.1 The cin Object 85

3.2 Mathematical Expressions 91

3.3 When You Mix Apples and Oranges: Type Conversion 100

3.4 Overflow and Underflow 102

3.5 Type Casting 103


3.6 Multiple Assignment and Combined Assignment 106

3.7 Formatting Output 110

3.8 Working with Characters and string Objects 120

3.9 More Mathematical Library Functions 126

3.10 Focus on Debugging: Hand Tracing a Program 132

3.11 Focus on Problem Solving: A Case Study 134


Review Questions and Exercises 138

Programming Challenges 144

Chapter 4 Making Decisions 151


4.1 Relational Operators 151

4.2 The if Statement 156

4.3 Expanding the if Statement 164

4.4 The if/else Statement 168

4.5 Nested if Statements 171

4.6 The if/else if Statement 178

4.7 Flags 183

4.8 Logical Operators 184

4.9 Checking Numeric Ranges with Logical Operators 191

4.10 Menus 192

4.11 Focus on Software Engineering: Validating User Input 195


4.12 Comparing Characters and Strings 197

4.13 The Conditional Operator 201

4.14 The switch Statement 204

4.15 More about Blocks and Variable Scope 213


Review Questions and Exercises 216

Programming Challenges 222

Chapter 5 Loops and Files 231


5.1 The Increment and Decrement Operators 231

5.2 Introduction to Loops: The while Loop 236

5.3 Using the while Loop for Input Validation 243

5.4 Counters 245

5.5 The do-while Loop 246

5.6 The for Loop 251

5.7 Keeping a Running Total 261

5.8 Sentinels 264

5.9 Focus on Software Engineering: Deciding Which Loop to


Use 265

5.10 Nested Loops 266

5.11 Using Files for Data Storage 269

5.12 Optional Topics: Breaking and Continuing a Loop 288


Review Questions and Exercises 292

Programming Challenges 297

Chapter 6 Functions 305


6.1 Focus on Software Engineering: Modular Programming
305

6.2 Defining and Calling Functions 306

6.3 Function Prototypes 315

6.4 Sending Data into a Function 317

6.5 Passing Data by Value 322

6.6 Focus on Software Engineering: Using Functions in a


Menu-Driven Program 324

6.7 The return Statement 328

6.8 Returning a Value from a Function 330

6.9 Returning a Boolean Value 338

6.10 Local and Global Variables 340

6.11 Static Local Variables 348

6.12 Default Arguments 351

6.13 Using Reference Variables as Parameters 354

6.14 Overloading Functions 360

6.15 The exit() Function 364


6.16 Stubs and Drivers 367
Review Questions and Exercises 369

Programming Challenges 372

Chapter 7 Arrays and Vectors 381


7.1 Arrays Hold Multiple Values 381

7.2 Accessing Array Elements 383

7.3 No Bounds Checking in C++ 395

7.4 The Range-Based for Loop 398

7.5 Processing Array Contents 402

7.6 Focus on Software Engineering: Using Parallel Arrays 410

7.7 Arrays as Function Arguments 413

7.8 Two-Dimensional Arrays 424

7.9 Arrays with Three or More Dimensions 431

7.10 Focus on Problem Solving and Program Design: A Case


Study 433

7.11 Introduction to the STL vector 435

Review Questions and Exercises 449

Programming Challenges 454

Chapter 8 Searching and Sorting Arrays 463


8.1 Focus on Software Engineering: Introduction to Search
Algorithms 463

8.2 Focus on Problem Solving and Program Design: A Case


Study 469

8.3 Focus on Software Engineering: Introduction to Sorting


Algorithms 476

8.4 Focus on Problem Solving and Program Design: A Case


Study 486

8.5 Sorting and Searching vectors 495

Review Questions and Exercises 498

Programming Challenges 499

Chapter 9 Pointers 503


9.1 Getting the Address of a Variable 503

9.2 Pointer Variables 505

9.3 The Relationship between Arrays and Pointers 512

9.4 Pointer Arithmetic 516

9.5 Initializing Pointers 518

9.6 Comparing Pointers 519

9.7 Pointers as Function Parameters 521

9.8 Dynamic Memory Allocation 530

9.9 Returning Pointers from Functions 534


9.10 Using Smart Pointers to Avoid Memory Leaks 541

9.11 Focus on Problem Solving and Program Design: A Case


Study 544
Review Questions and Exercises 550

Programming Challenges 553

Chapter 10 Characters, C-Strings, and More about the string


Class 557
10.1 Character Testing 557

10.2 Character Case Conversion 561

10.3 C-Strings 564

10.4 Library Functions for Working with C-Strings 568

10.5 String/Numeric Conversion Functions 579

10.6 Focus on Software Engineering: Writing Your Own C-


String-Handling Functions 585

10.7 More about the C++ string Class 591

10.8 Focus on Problem Solving and Program Design: A Case


Study 603

Review Questions and Exercises 604

Programming Challenges 607

Chapter 11 Structured Data 613


11.1 Abstract Data Types 613
11.2 Structures 615

11.3 Accessing Structure Members 618

11.4 Initializing a Structure 622

11.5 Arrays of Structures 625

11.6 Focus on Software Engineering: Nested Structures 627

11.7 Structures as Function Arguments 631

11.8 Returning a Structure from a Function 634

11.9 Pointers to Structures 637

11.10 Focus on Software Engineering: When to Use., When to


Use −> , and When to Use * 640

11.11 Enumerated Data Types 642


Review Questions and Exercises 653

Programming Challenges 659

Chapter 12 Advanced File Operations 665


12.1 File Operations 665

12.2 File Output Formatting 671

12.3 Passing File Stream Objects to Functions 673

12.4 More Detailed Error Testing 675

12.5 Member Functions for Reading and Writing Files 678

12.6 Focus on Software Engineering: Working with Multiple


Files 686
12.7 Binary Files 688

12.8 Creating Records with Structures 693

12.9 Random-Access Files 697

12.10 Opening a File for Both Input and Output 705


Review Questions and Exercises 710

Programming Challenges 713

Chapter 13 Introduction to Classes 719


13.1 Procedural and Object-Oriented Programming 719

13.2 Introduction to Classes 726

13.3 Defining an Instance of a Class 731

13.4 Why Have Private Members? 744

13.5 Focus on Software Engineering: Separating Class


Specification from Implementation 745

13.6 Inline Member Functions 751

13.7 Constructors 754

13.8 Passing Arguments to Constructors 759

13.9 Destructors 767

13.10 Overloading Constructors 771

13.11 Private Member Functions 775

13.12 Arrays of Objects 777


13.13 Focus on Problem Solving and Program Design: An
OOP Case Study 781

13.14 Focus on Object-Oriented Programming: Simulating


Dice with Objects 788

13.15 Focus on Object-Oriented Design: The Unified Modeling


Language (UML) 792

13.16 Focus on Object-Oriented Design: Finding the Classes


and Their Responsibilities 794
Review Questions and Exercises 803

Programming Challenges 808

Chapter 14 More about Classes 817


14.1 Instance and Static Members 817

14.2 Friends of Classes 825

14.3 Memberwise Assignment 830

14.4 Copy Constructors 831

14.5 Operator Overloading 837

14.6 Object Conversion 864

14.7 Aggregation 866

14.8 Focus on Object-Oriented Design: Class Collaborations


871

14.9 Focus on Object-Oriented Programming: Simulating the


Game of Cho-Han 876
14.10 Rvalue References and Move Semantics 886
Review Questions and Exercises 895

Programming Challenges 900

Chapter 15 Inheritance, Polymorphism, and Virtual Functions 907


15.1 What Is Inheritance? 907

15.2 Protected Members and Class Access 916

15.3 Constructors and Destructors in Base and Derived


Classes 922

15.4 Redefining Base Class Functions 936

15.5 Class Hierarchies 941

15.6 Polymorphism and Virtual Member Functions 947

15.7 Abstract Base Classes and Pure Virtual Functions 963

15.8 Multiple Inheritance 970

Review Questions and Exercises 977

Programming Challenges 981

Chapter 16 Exceptions and Templates 989


16.1 Exceptions 989

16.2 Function Templates 1008

16.3 Focus on Software Engineering: Where to Start When


Defining Templates 1014
16.4 Class Templates 1014
Review Questions and Exercises 1024

Programming Challenges 1026

Chapter 17 The Standard Template Library 1029


17.1 Introduction to the Standard Template Library 1029

17.2 STL Container and Iterator Fundamentals 1029

17.3 The vector Class 1040

17.4 The map, multimap , and unordered_map Classes 1054

17.5 The set, multiset , and unordered_set Classes 1079

17.6 Algorithms 1086

17.7 Introduction to Function Objects and Lambda


Expressions 1107

Review Questions and Exercises 1114

Programming Challenges 1118

Chapter 18 Linked Lists 1123


18.1 Introduction to the Linked List ADT 1123

18.2 Linked List Operations 1125

18.3 A Linked List Template 1141

18.4 Variations of the Linked List 1153

18.5 The STL list and forward_list Containers 1154


Review Questions and Exercises 1158

Programming Challenges 1161

Chapter 19 Stacks and Queues 1165


19.1 Introduction to the Stack ADT 1165

19.2 Dynamic Stacks 1182

19.3 The STL stack Container 1193

19.4 Introduction to the Queue ADT 1195

19.5 Dynamic Queues 1207

19.6 The STL deque and queue Containers 1214

Review Questions and Exercises 1217

Programming Challenges 1219

Chapter 20 Recursion 1223


20.1 Introduction to Recursion 1223

20.2 Solving Problems with Recursion 1227

20.3 Focus on Problem Solving and Program Design: The


Recursive gcd Function 1235

20.4 Focus on Problem Solving and Program Design: Solving


Recursively Defined Problems 1236

20.5 Focus on Problem Solving and Program Design:


Recursive Linked List Operations 1237
20.6 Focus on Problem Solving and Program Design: A
Recursive Binary Search Function 1241

20.7 The Towers of Hanoi 1243

20.8 Focus on Problem Solving and Program Design: The


QuickSort Algorithm 1246

20.9 Exhaustive Algorithms 1250

20.10 Focus on Software Engineering: Recursion versus


Iteration 1253
Review Questions and Exercises 1253

Programming Challenges 1255

Chapter 21 Binary Trees 1257


21.1 Definition and Applications of Binary Trees 1257

21.2 Binary Search Tree Operations 1260

21.3 Template Considerations for Binary Search Trees 1277

Review Questions and Exercises 1283

Programming Challenges 1284


Appendix A: The ASCII Character Set 1287

Appendix B: Operator Precedence and Associativity 1289

Quick References 1291

Index 1293

Credit 1311
Online The following appendices are available at
www.pearsonhighered.com/gaddis.
Appendix C: Introduction to Flowcharting

Appendix D: Using UML in Class Design

Appendix E: Namespaces

Appendix F: Passing Command Line Arguments

Appendix G: Binary Numbers and Bitwise Operations

Appendix H: STL Algorithms

Appendix I: Multi-Source File Programs

Appendix J: Stream Member Functions for Formatting

Appendix K: Unions

Appendix L: Answers to Checkpoints

Appendix M: Answers to Odd Numbered Review Questions

Case Study 1: String Manipulation

Case Study 2: High Adventure Travel Agency—Part 1

Case Study 3: Loan Amortization

Case Study 4: Creating a String Class

Case Study 5: High Adventure Travel Agency—Part 2

Case Study 6: High Adventure Travel Agency—Part 3

Case Study 7: Intersection of Sets


Case Study 8: Sales Commission
Preface
Welcome to Starting Out with C++: From Control Structures through
Objects, 9th edition. This book is intended for use in a two-semester
C++ programming sequence, or an accelerated one-semester
course. Students new to programming, as well as those with prior
course work in other languages, will find this text beneficial. The
fundamentals of programming are covered for the novice, while the
details, pitfalls, and nuances of the C++ language are explored in
depth for both the beginner and more experienced student. The book
is written with clear, easy-to-understand language, and it covers all
the necessary topics for an introductory programming course. This
text is rich in example programs that are concise, practical, and real-
world oriented, ensuring that the student not only learns how to
implement the features and constructs of C++, but why and when to
use them.
Changes in the Ninth Edition
This book’s pedagogy, organization, and clear writing style remain
the same as in the previous edition. Many improvements and
updates have been made, which are summarized here:

The material on the Standard Template Library (STL) has been


completely rewritten and expanded into its own chapter.
Previously, Chapter 16 covered exceptions, templates, and
gave brief coverage to the STL. In this edition, Chapter 16
covers exceptions and templates, and Chapter 17 is a new
chapter dedicated to the STL. The new chapter covers the
following topics:
The array and vector classes
The various types of iterators
Emplacement versus insertion
The map , multimap , and unordered_map Classes
The set , multiset , and unordered_set Classes
Sorting and searching algorithms
Permutation algorithms
Set algorithms
Using function pointers with STL algorithms
Function objects, or functors
Lambda expressions
Chapter 2 now includes a discussion of alternative forms of
variable initialization, including functional notation, and brace
notation (also known as uniform initialization).
Chapter 3 now mentions the round function, introduced in
C++ 11.
Chapter 7 now introduces array initialization much earlier.
In Chapter 8 , the bubble sort algorithm has been rewritten and
improved.
A new example of sorting and searching a vector of strings has
been added to Chapter 8 .
In Chapter 9 , the section on smart pointers now gives an
overview of shared_ptr s and weak_ptr s, in addition to the
existing coverage of unique_ptr s.
In Chapter 10 , a new In the Spotlight section on string
tokenizing has been added.
Chapter 10 now covers the string -to-number conversion
functions that were introduced in C++ 11.
The material on unions that previously appeared in Chapter 11
has been moved to Appendix K, available on the book’s
companion Website.
Chapter 13 has new sections covering:
Member initialization lists.
In-place initialization.
Constructor delegation.
Several new topics were added to Chapter 14 , including:
Rvalue references and move semantics.
Checking for self-assignment when overloading the =
operator.
Using member initialization lists in aggregate classes.
Chapter 15 includes a new section on constructor inheritance.
Several new programming problems have been added
throughout the book.

Organization of the Text


This text teaches C++ in a step-by-step fashion. Each chapter
covers a major set of topics and builds knowledge as the student
progresses through the book. Although the chapters can be easily
taught in their existing sequence, some flexibility is provided. The
diagram shown in Figure P-1 suggests possible sequences of
instruction.
Figure P-1 Chapter dependency chart
Chapter 1 covers fundamental hardware, software, and
programming concepts. You may choose to skip this chapter if the
class is already familiar with those topics. Chapters 2 through 7
cover basic C++ syntax, data types, expressions, selection
structures, repetition structures, functions, and arrays. Each of these
chapters builds on the previous chapter and should be covered in
the order presented.

After Chapter 7 has been covered, you may proceed to Chapter


8 , or jump to Chapter 9 .

After Chapter 9 has been covered, Chapter 10 , 11 12 or


13 may be covered. (If you jump to Chapter 12 at this point,
you will need to postpone Sections 12.8 , 12.9 , and 12.10
until Chapter 11 has been covered.) After Chapter 13 , you may
cover Chapters 14 through 18 in sequence. Next, you can
proceed to either Chapter 19 or Chapter 20 . Finally, Chapter
21 may be covered.

This text’s approach starts with a firm foundation in structured,


procedural programming before delving fully into object-oriented
programming and advanced data structures.

Brief Overview of Each Chapter


Chapter 1: Introduction to Computers
and Programming
This chapter provides an introduction to the field of computer science
and covers the fundamentals of programming, problem solving, and
software design. The components of programs, such as key words,
variables, operators, and punctuation, are covered. The tools of the
trade, such as pseudocode, flow charts, and hierarchy charts, are
also presented.
Chapter 2: Introduction to C++
This chapter gets the student started in C++ by introducing data
types, identifiers, variable declarations, constants, comments,
program output, simple arithmetic operations, and C-strings.
Programming style conventions are introduced and good
programming style is modeled here, as it is throughout the text.
Chapter 3: Expressions and Interactivity
In this chapter, the student learns to write programs that input and
handle numeric, character, and string data. The use of arithmetic
operators and the creation of mathematical expressions are covered
in greater detail, with emphasis on operator precedence. Debugging
is introduced, with a section on hand tracing a program. Sections are
also included on simple output formatting, on data type conversion
and type casting, and on using library functions that work with
numbers.
Chapter 4: Making Decisions
Here, the student learns about relational operators, relational
expressions, and how to control the flow of a program with the if ,
if/else , and if/else if statements. The conditional operator and
the switch statement are also covered. Crucial applications of these
constructs are covered, such as menu-driven programs and the
validation of input.
Exploring the Variety of Random
Documents with Different Content
kantamuksensa maahan, kumarsi, — johon toinen vastasi — ja
selitti:

— Minä tulen Viidentaulunvuoren luostarista ja tuon kirjeen


päämieheltäni Tshi Tshinilta teidän luostarinne johtajalle, herra
Tsingille, pyynnöllä toimittaa minulle paikka.

— Siinä tapauksessa, — sanoi sairaanhoitaja, — on paras, että


menemme suorastaan luostarinjohtajan asuntoon.

Kun he olivat saapuneet sinne, Lo Syvähenki avasi myttynsä, otti


kirjeen esille ja piti sitä kädessä valmiina antaakseen sen
luostarinjohtajalle. Nyt kysyi sairaanhoitaja ihmetellen:

— Ettekö te, hyvä mies, tunne meidän tapojamme ja


määräyksiämme. Luostarinjohtaja on tuossa tuokiossa täällä.
Pankaa siis miekkanne pois ja ottakaa esille seitsemän
suitsutuspuikkoa voidaksenne osottaa luostarinjohtajalle kunniaa.

— Miksette sitä ennemmin sanonut? — virkkoi Syvähenki, avasi


taas matkamyttynsä ja otti suitsutuspuikot. Mutta hän ei näkynyt
tietävän, mitä niillä piti tehdä. Sairaanhoitaja auttoi häntä ja puki
myös puhtaan munkinkauhtanan hänen ylleen.

Kun luostarin päämies astui sisään, sanoi sairaanhoitaja:

— Tämä munkki on saapunut meille Viidentaulunvuoren


luostarista, mukanaan kirje herra Tshinilta.

— Vai niin. Enpä ole pitkään aikaan kuullut mitään vanhemmasta


veljestäni, — puhui luostarinjohtaja.
Sairaanhoitaja käski Syvähenkeä toimimaan ripeästi
suitsutuspuikkoineen ja osottamaan luostarin päämiehelle tälle
kuuluvaa kunniaa. Mutta Syvähengellä ei ollut aavistustakaan, minne
suitsutuslaite oli pantava ja piti sitä sentähden lujasti kädessään.
Sairaanhoitajan oli vaikea pidättäytyä naurusta, kun hän sytytti
Syvähengen suitsutuspuikot lieden luona palamaan ja vei hänet
sitten johtajan eteen käskien kumartamaan kolme kertaa. Sen
tehtyään Syvähenki antoi kirjeen.

Kun luostarinjohtaja oli lukenut kirjeen, jossa mainittiin syyt, miksi


Syvähenki oli munkiksi ruvennut ja miksi hänet lähetettiin pois
Viidentaulunvuoren luostarista sekä pyydettiin toimittamaan hänelle
paikka, koska hän on »kantava hyviä hedelmiä», virkkoi johtaja:

— Te olette tullut kaukaa. Menkää nyt munkkien makuusuojaan


lepäämään matkasta, niin sitten saatte syödä.

Syvähenki kiitti johtajaa, sammutti suitsutustulet lieden luona,


vaikka hänen olisi pitänyt jättää ne palamaan, otti myttynsä,
miekkansa ja sauvansa ja seurasi opastaan huoneesta ulos.

Mutta johtaja kutsui luostarin virkailijat kokoon ja lausui:

— Kuulkaahan kuinka järjetön minun vanhempi veljeni Tshi Tshin


on. Tämä munkki, joka tänään saapui luostariimme, on entinen
sotaväen kapteeni, joka on tappanut miehen ja sentähden ruvennut
munkiksi Viidentaulunvuoren luostariin. Mutta pian senjälkeen hän
pari kertaa rikkoi pahasti luostarin järjestystä vastaan ja kiihotti
munkkejakin sopimattomalla käytöksellään, ja tästä syystä hänet
sitten lähetettiin luostarista pois juuri meidän luoksemme. Minä
puolestani en tahtoisi suostua ottamaan häntä luoksemme, mutta
minun veljeni pyytää niin hartaasti. Jos me hänen ottoonsa
suostumme, niin hän luonnollisesti tulee rikkomaan meidänkin hyvää
järjestystämme, kuten siellä teki. Mitä meidän siis on tekeminen?

— Todellakin, — sanoi sairaanhoitaja, — kun minä ensiksi näin


sen miehen, arvelin, ettei hän ainakaan ole munkin näköinen. Kuinka
voisimmekaan ottaa hänet luostariimme?

— Sain äsken kuulla, — ilmotti kyökkimestari, — että luostarin


vihannestarhaa ovat sotaväki ja kuljeskelevat pahantekijät
hävittäneet ja voronneet. Mikään tavallinen munkki ei voi sitä estää.
Mutta emmekö lähetä tuota raavasta miestä vartioimaan
vihannestarhaamme?

— Teidän ehdotuksenne on hyvä, — sanoi johtaja ja kutsutti Lo


Syvähengen sisään.

Tämän tultua luostarinjohtaja lausui:

— Koska minun veljeni teidän tuomassa kirjeessänne pyytää


hankkimaan teille paikan, niin olemme päättäneet uskoa luostarin
vihannestarhan hoidon ja vartioimisen teidän huostaanne. Se
sijaitsee portin ulkopuolella ja ulottuu yhtä kauaksi kuin temppelin
muurit Viidentaulunvuorella. Teidän tulee siis pitää silmällä
puutarhureita ja huolehtia siitä, että nämä joka päivä tuovat luostariin
kymmenen koria vihanneksia. Mikä siitä jää yli, on teidän
omaisuuttanne.

— Minun päämieheni Tshin, — vastasi Lo Syvähenki, — lähetti


minut teidän kunnianarvoisaan luostariinne, jotta minä täällä saisin
munkin paikan. Mitenkä on ymmärrettävissä, että te panette minut
vartioimaan vihannestarhaa, joka on ulkopuolella luostaria, sen
sijaan että tekisitte minusta kyökkimestarin, lukkarin tai jonkun muun
sellaisen virkamiehen?

— Hyvä mies, — selitti luostarinjohtaja, — te arvostelette


asemaanne väärin. Te olette juuri tullut luostariin ettekä omaa vielä
mitään ansioita, joitten perusteella voisimme antaa teille
etuoikeuksia. Kuinka saatatte toivoakaan, että teistä heti tehtäisiin
esim. kyökkimestari? Vihannestarhan hoito ja vartioiminen on sekin
hyvin tärkeä tehtävä.

— Mutta minä en vaan ota pitääkseni huolta vihannestarhasta, —


tiuskasi
Syvähenki. — Hitto vieköön, minä tahdon ainakin kyökkimestariksi!

— Kuulkaahan toki, mitä sanon, — alkoi sairaanhoitaja. — Kuten


tiedätte, on luostareissa eri talousosastoja, joista kullakin on oma
esimiehensä. Minulle esimerkiksi kuuluu sairaiden hoito ja kaikki
mikä on jossakin yhteydessä vieraan tulon ja lähdön kanssa. Mitä
tulee luostarin johtajaan, hänen apulaiseensa ja muihin sellaisiin, niin
nämä ovat korkeita virkoja, joita on vaikea saada. Lukkari ja
kyökkimestari ovat vastuunalaiset heitä ylemmille virkamiehille
luostarin varoista ja tiluksista. Mitenkä voitte siis heti vaatia näin
vastuunalaista virkaa? Sitten on virkamiehiä, jotka pitävät huolta eri
rakennuksista. Se, jonka huostassa varastot ovat, on nimeltään
varastomestari, se, joka pitää silmällä temppelejä, on
temppelinvartia, käytävien ja teiden kunnossapito kuuluu
tietarkastajalle, järjestys ja puhtaus kylpyhuoneissa on kylpymestarin
asia, ja niin edelleen. Nämä viimeksimainitut virat ovat toisluokkaisia.
Sitten on vielä sellaisia virkamiehiä, jotka pitävät huolta
jokapäiväisestä kulutuksesta, kuten hiilenhankkija, riisinhankkija,
teenhankkija ja vihannestenhankkija, jolle vihannestarhan hoito
kuuluu. Viimeksi mainittu tehtävä on nyt uskottu teidän huostaanne.
Tämä virka on tosin vaatimaton, mutta olettakaamme, että te
hoidatte sitä yhden vuoden, niin sittenhän voitte jo tulla nimitetyksi
hiilenhankkijaksi. Kun sitten taas olette vuoden ajan hoitanut tätä
virkaa, niin saatatte tulla kylpymestariksi, sitten taas vuoden kuluttua
lukkariksi, kyökkimestariksi j.n.e.

— No siinä tapauksessa, — arveli Syvähenki, — olisi syytä ruveta


vihannestarhan päämieheksi… Minä otan huomenna tuon viran
haltuuni.

Kun luostarinjohtaja kuuli Syvähengen suostuvan vihannestarhan


vartiaksi, hän kutsui hänet luokseen kestitykselle. Vihannestarhan
pienen vahtimajan seinään naulattiin ilmotus, että tarhan hoito tästä
lähtien kuuluu Syvähengelle, joka seuraavana päivänä astuu
virkaansa, ja ettei maankulkijain ole lupa astua tarhaan ja ottaa sen
hedelmiä. Seuraavana aamuna sai Syvähenki vastaanottaa
lakituolissa istuvan luostarinjohtajan kädestä virkamääräyksensä ja
hän muutti omaan asuntoonsa vihannestarhaan.

Noin parin-, kolmenkymmenen joutilaan maankulkurin oli tapana


tuontuostakin pistäytyä tarhaan vihanneksia ja hedelmiä
varastamaan. Kun nämä lukivat tuon ilmotuksen Syvähengen
uudesta toimesta, he neuvottelivat, miten voisivat kukistaa tuon
tulokkaan munkin ja saada hänet valtaansa.

Eräs heistä ehdotti, että he olevinaan tulisivat onnittelemaan häntä


uuden viran johdosta, polvistuisivat sitten likahaudan luona häneen
eteensä, tarttuisivat yhtäkkiä häntä jalkoihin ja viskaisivat hautaan.
Tämä olisi aluksi hänelle aimo opetukseksi. Ehdotusta pidettiinkin
mainiona.
Kun Lo Syvähenki oli laskenut sauvansa ja matkamyttynsä uuteen
tupaansa ja munkit, jotka häntä sinne saattoivat, palanneet
esimiestensä mukana takaisin luostariin, hän meni ulos majansa
edustalle katselemaan miltä ympäristö näyttää. Eipä kestänyt kauaa,
kun ilmestyi maankulkureita, jotka lahjoja tuoden tulivat häntä
onnittelemaan. He jäivät nauraa kihittäen seisomaan jonkun matkan
päähän ja ilmottivat äänekkäästi:

— Kunnianarvoisa isä, kun me eilen saimme tietää, että teidät on


nimitetty tämän vihannestarhan hoitajaksi, niin me naapurit
päätimme tulla tervehtimään teitä ja tuomaan teille nöyrimmät
onnentoivotuksemme.

Syvähenki ei huomannut petosta, vaan astui aivan lähelle


likahautaa ottaakseen vastaan heitä ja pyytääkseen heitä astumaan
sisään. Kaksi noista maankulkureista, nimeltä Katurotta ja
Ruohokäärme, erosi muista lähestyen Syvähenkeä ja polvistuivat
maahan toivossa, että hän tulisi auttamaan heitä ylös, jolloin he
tarttuivat hänen jalkoihinsa. Mutta Syvähengen mieleen juolahti
epäilys, että noilla on paha nahassa, ja hän tuumi itsekseen: — Siinä
on sitten omituista joukkoa! He eivät ole sitä eivätkä tätä.
Aikovatkohan nuo lurjukset karata kiinni jalkoihini ja viskata minut
ehkä tuohon kuoppaan, koska noin kauan tuossa kontillaan
könöttävät? Jos he tahtovat silittää tiikerin partaa, niin annanpa
heidän tuta myöskin sen käpäliä.

Hän astui nyt lähelle noita kahta maankulkijaa, jotka ojensivat


kätensä häntä kohti sanoen: »Teidän nöyrät palvelijanne ovat tulleet
ilmaisemaan teille kuuliaisuuttaan.» Mutta samassa tarttui toinen
heistä Syvähengen oikeaan toinen vasempaan jalkaan. Ennenkuin
he ennättivät nostaa hänet ylös ja viskata kuoppaan, riuhtaisi
Syvähenki oikean jalkansa irti ja lennätti Ruohokäärmeen
likahautaan. Ja kun Katurotta päästi vasemman jalan pötkiäkseen
pakoon, hän sai sellaisen potkun, että lensi toverinsa perään.

Muut maankulkijat ihan kangistuivat hämmästyksestä ja seisoivat


mykkinä suut selällään. Kun he sitten yrittivät pakoon, Lo Syvähenki
huusi heitä jäämään:

— Joka liikahtaa paikaltaan, sen käy samoin kuin noiden kahden!

He pelkäsivät hievahtaa paikaltaan ja katselivat vavisten noita


kahta kapinoitsijatoveriaan, jotka nyt siellä liassa rypesivät. Kuoppa
oli näet suuri ja syvä ja täynnä perkeitä ja lokaa ja he olivat
suistuneet sinne suin päin. Päästyään vihdoin jaloilleen ja
toinnuttuaan ensi säikähdyksestään he huusivat hartaasti pyytäen:

— Kunnianarvoisa, pyhä isä, olkaa meille armollinen!

— Tulkaa tänne, lurjukset, — tiuskaisi Syvähenki, — ja auttakaa


noita kahta vaivaista tuolta kuopasta! Ja korjatkaa sitten luunne mitä
pikimmin!

He auttoivat molemmat onnettomat toverinsa kuopasta ja taluttivat


heidät kurpitsa-aitauksen luo. Mutta kun he olivat niin likaiset, että oli
ilettävää lähestyä heitä, komensi Syvähenki nauraa hirnuen:

— Mars, pässinpäät, tuohon vesilammikkoon peseytymään, ja kun


te olette puhtaat, tahdon puhua kanssanne!

Kun nuo molemmat juonittelijat olivat lammikossa pesseet itsensä,


he saivat toisilta puhdasta vaatetta ylleen. Sitten käski Syvähenki:
— Tulkaa nyt minun asuntooni, ja antakaa minun kuulla, mitä teillä
on kerrottavaa puolustukseksenne.

Kun kaikki olivat koolla Syvähengen asunnossa, hän jatkoi:

— Muistakaa, te lurjukset, ettette toista kertaa pidä minua


narrinanne. Mutta sanokaahan, keitä ja mistä te olette ja mikä sai
teitä sellaiseen roskaiseen juoneen ryhtymään?

Kaikki maankuljeksijat lankesivat maahan hänen eteensä ja


selittivät:

— Me olemme tästä ympäristöstä ja elämme mistä sattuu. Tästä


vihannestarhasta olemme tottuneet ottamaan hedelmiä, vaikka
luostari on kyllä koettanut estää meitä siitä lupaamalla meille
palkintoja. Mutta mikäs autti? Entä mistä te, kunnianarvoisa isä,
olette kotoisin ja mitenkä on luostarinjohtaja tavannut teidät? Eihän
ole teitä ennen näillä mailla näkynyt. Me vakuutamme tästä päivästä
saakka olevamme teidän nöyriä palvelijoitanne.

Syvähenki kertoi heille omista seikkailuistaan ja lisäsi sitten:

— Minä ryntäisin vaikka sotajoukon läpi, miksi puhunkaan siis


sellaisista raukoista kuin te!

— Se on totta! Se on totta! — huusivat kaikki ja läksivät pois


kiitettyään häntä ensin, että oli niin vähällä heidät vapaaksi laskenut.

Seuraavana päivänä päättivät miehet ostaa ruokia ja juomia ja


kestitä Syvähenkeä hänen omassa tuvassaan. Mutta kun he
saapuivat hänen luokseen, Lo Syvähenki virkkoi:
— Mitä joutavia! Se nyt oli aivan tarpeetonta, että te minun tähteni
ryhdyitte sellaisiin uhrauksiin!

— Me pidämme sitä suurena onnena, kunnianarvoisa isä, että


tapasimme henkilön, joka meistäkin huolehtisi, — vastasivat he.

Lo Syvähenki oli siitä kovin iloissaan ja söi ja joi heidän kanssaan,


että tulivat hauskalle tuulelle. He mekastivat ja kertoivat
seikkailujaan, paukahuttelivat käsillään ja naureskelivat. Hauskoja,
huolettomia poikia näyttivät olevan.

Yht'äkkiä kuului ulkoa pelto varisten äänekästä rääkkymistä ja kun


he astuivat ulos puutarhaan, eräs työmiehistä osotti uuden
variksenpesän eräässä raidassa.

Jotkut ehdottivat, että pitää noutaa tikapuut ja ottaa pesä alas,


mutta
Ruohokäärme lupasi kiivetä puuhun ja tuoda pesän ilman tikapuita.

Nyt silmäili Syvähenki puuta hetken aikaa, ikäänkuin olisi sitä


katseellaan mitannut, astui sitten puun luo ja heitti päällysviittansa
yltään. Sen jälkeen hän kiersi oikean kätensä puun rungon ympäri
aivan läheltä tyveä, otti vasemmalla kädellään ylempää kiinni, asettui
tukevaan asentoon ja ponnistaen itsensä suoraksi repäisi yhdellä
tempauksella puun juurineen päivineen maasta.

Kun tyhjäntoimittajat hänen ympärillään huutaen tahtoivat onnitella


Lo Syvähenkeä tämän yliluonnollisen jättiläisteon johdosta, hän
arveli rauhallisesti, niinkuin ei mitään erinomaista olisi tapahtunut:

— Eihän tuossa mitään sen kummempaa. Huomenna saatte


nähdä, että minä osaan aseitakin käyttää.
Senjälkeen erosi tuo elämöivä seurue yöksi aikoen seuraavana
aamuna jälleen kokoontua.

Kun nuo maankuleksijat huomasivat, että Syvähenki oli


taipuvainen huvitteluun, he tulivat joka päivä hänen luokseen, ja kun
he olivat aikansa syöneet ja juoneet, esitti Syvähenki heille
puutarhassa voimatemppuja.

Eräänä päivänä hän oli kutsunut heidät kaikki luokseen ja kun he


olivat kyllikseen mässänneet, lausui joku joukosta isännälle:

— Mutta te ette olekaan vielä näyttänyt meille, mitenkä te tuota


rautaista sauvaa käsittelette.

Syvähenki otti esiin viisi jalkaa pitkän ja kuusikymmentä naulaa


painavan sauvansa. Toiset hämmästyivät kovasti sen nähdessään ja
sanoivat, että sillä, joka sitä käyttää, pitää olla puhvelihärän voima.
Mutta Syvähenki nosti sen vaivatta ylös ja viskasi kuin korren ilmaan
ja vaikka hän teki sillä vielä kaikellaisia muita temppuja, ei sen paino
näyttänyt häntä lainkaan häiritsevän eikä väsyttävän.

— Mainiota! — ärjyivät vetelehtijät.

— Erinomaista! — huusi outo ääni tarhamuurin takaa. — Se oli


loistava näytös!

Kun Syvähenki kuuli huudon, hän katsoi muurin yli ja näki siellä
sotilaspukuisen miehen viuhka kädessä. Hänen silmänsä olivat
suuret ja pyöreät, parta kuin pantterilla ja vartalonsa ainakin
seitsemän jalkaa pitkä; iältään hän saattoi olla lähes
neljäkymmentävuotias.
— Siinäpä vasta merkillinen munkki, — jatkoi sotilaspukujen mies.
— Hän näkyy totta tosiaan tietävän, kuinka aseita on käytettävä!

— Hän mahtoi tehdä temppunsa taitavasti, — arvelivat


maankuleksijat, — koska sotaväen harjotusmestarikin noin
ihmettelee.

— Vai on hän harjotusmestari. Mikä on hänen nimensä sitten? —


kysyi
Syvähenki.

— Liu Tshung. Hän palvelee keisarillisessa armeijassa, —


vastattiin.

— Olisipa hauskaa tutustua häneen.

Tämän kuultuaan Liu Tshung hyppäsi muurin yli, astui Lo


Syvähengen luo ja kysyi:

— Hyvä isä, saanko kysyä mistä olette kotoisin ja mikä on


nimenne?

Syvähenki sanoi nimensä ja lisäsi:

— Poikana kävin pääkaupungissa, jossa tulin tuntemaan teidän


isänne, kapteeni Liun.

Liu Tshung iloitsi sitäkin enemmän ja he solmivat heti läheisen


ystävyyden.

Mutta kun Liu Tshung kertoi, kuinka hän oli vaimonsa kanssa tullut
Suuren saarnaajan luostariin ja nähdessään munkin vaikeat temput
jäänyt ihmettelemään, vaikka vaimonsa oli mennyt palvelijattarensa
kanssa luostarin temppeliin, tuli viimeksimainittu juosten Liu
Tshungin luo ja ilmotti hätääntyneenä:

— Tulkaa pian! Joku puhuttelee teidän rouvaanne temppelissä.

— Mitä tämä on?! — huudahti Liu Tshung.

— Kun rouva astui temppeliin, — selitti palvelijatar, — hän kohtasi


miehen, joka ensin ei ollut häntä huomaavinaankaan, mutta sitten ei
antanut hänen liikkua rauhassa.

— Suokaa anteeksi, minä hetkeksi… — sanoi harjotusmestari,


joka jo riensi vaimonsa avuksi.

Saavuttuaan temppeliin hän näki porraskaiteen luona joukon


miehiä erilaisine soittokoneineen ja käytävän yläpäässä erään
miehen, joka näytti sulkevan rouva Liulta tien.

— No mutta kuulkaahan nyt, — esteli nuori mies, — minulla olisi


teille asiaa.

— Kuinka te kehtaatte, — sanoi siihen nuori vaimo punastuen


häpeästä ja harmista, — loukata minua tällä lailla keskellä päivää ja
vielä tällaisessa tilaisuudessa?

Samassa riensi Liu Tshung nuoren miehen luo, tarttui häntä


hartioihin ja oli juuri aikeessa lyödä häntä, kun hän tunsi tuon nuoren
miehen kenraali Kon ottopojaksi. Tämä kenraali nautti suurta
suosiota keisarin puolelta ja oli sitäpaitsi kovin väkivaltainen mies. Ja
hänen ottopoikansa Ko Ja Nai oli kaltoin kasvatettu ja aivan piloille
hemmoteltu eikä osannut muuta kuin elää huikentelevasti. Jokainen
pääkaupungin nainen oli siis vaarassa joutua hänen kanssaan
tekemisiin.
Kun Liu Tshung tunsi tämän vastustajansa, hänen käsivartensa
vaipuivat voimattomina alas. Ko Ja Nai, joka ei ensin tiennyt, kuka
tuo nainen oli, kysyi Liu Tshungilta, mitä tämä tahtoi. Miehet, jotka
olivat seisoneet porraskaiteen luona, tulivat siihen ja koettivat
tyynnyttää Liu Tshungia selittäen, ettei Ko Ja Nai tiennyt, kuka
nainen oli. Vaikka Liu Tshung vapisi vihasta, hän antoi Ko Ja Nain
kuitenkin poistua rauhassa.

Tämä oli tuskin ennättänyt nousta hevosensa selkään ja ajaa


karahuttaa pois, kun Lo Syvähenki sauva ojossa ryntäsi temppeliin ja
hänen kintereillään joukko maankuleksijoita.

— No minne nyt? — kysyi Liu Tshung.

— Minä vaan olisin tarjonnut teille käsivarteni apua, jos se olisi


tarpeen ollut, — vastasi Syvähenki.

Se oli Ko Ja Nai, kenraali Kon ottopoika, — selitti Liu Tshung. —


Hän käyttäytyi sopimattomasti minun vaimoani kohtaan, kun ei tätä
tuntenut. Aioinpa piestä sen lurjuksen pahanpäiväiseksi, mutta sitten
pidin kuitenkin kenraaliin nähden viisaampana antaa hänen
ottopoikansa mennä rauhassa matkoihinsa.

— Te pelkäätte kenraali Kota, — huomautti Lo Ta, — mutta minä


en sitä tee. Kun minä sen vietävän ottopojan vasta tapaan, niin
annanpa hänen selkäänsä satamalla sataa.

Kun Liu Tshung huomasi, että Lo Syvähenki oli hiukan tuulessa,


hän myönsi:

— Aivan oikein, pyhä isä, aivan oikein! Minä totta puhuen annoin
vetää itseäni nenästä, kun päästin sen vietävän menemään.
— Niin, puheli Lo Ta, — jos te vastedes tarvitsette asetoveria, niin
ilmottakaa vaan minulle. Minä lähden kanssanne, minne ikänä
tahdottekin enkä silloin turhia pelkää.

Ja nostaen sauvansa olkapäälle Lo Syvähenki marssi temppelistä


maankuleksijoineen.

Lo Ta auttaa erään ystävänsä pulasta.

Senjälkeen Lo Syvähenki ja Liu Tshung tapasivat toisensa


useammasti.

Mutta eräänä päivänä tehtiin Liu Tshungia vastaan väärä ilmianto


ja hänet tuomittiin ruoskittavaksi, häpeällisellä rikollisen poltinmerkillä
leimattavaksi ja karkotettavaksi Tsang Tshouhun lähellä Tien Tsinin
kaupunkia. Tämä katala ilmianto oli kaikesta päättäen tehty Ko Ja
Nain alotteesta, joka kaikin tavoin koetti saada Liu Tshungin vaimoa
valtaansa. Mutta Liu oli ryhtynyt varovaisuustoimenpiteisiin ja
uskonut vaimonsa tämän isän huostaan, joka oli vaikutusvaltainen
henkilö ja saattoi siis suojella tytärtään. Aviopuolisoiden ero oli
tuskallinen; he itkivät molemmat katkerasti.

Liu Tshung sai rautaisen »kauluksen» ja häntä lähdettiin kahden


miehen vartioimana viemään uuteen karkotuspaikkaansa. Vartiat,
Tung ja Sii, saivat päivää ennen lähtöä kutsun saapua erääseen
ravintolaan, jossa heidän oli määrä tavata muuan herrasmies, joka
— hän ei sanonut nimeään — näkyi olevan hallituksen virkamies.
Tämä kestitsi vartioita ja lupasi heille kymmenen taelia hopeata, jos
he jossakin syrjäisessä seudussa toimittaisivat Liu Tshungin toiseen
maailmaan. Miehet antoivatkin puhujan vaikuttaa mielipiteeseensä,
kun he huomasivat tuon virkamiehen saaneen tehtäväkseen kenraali
Kon tahdon perille ajamisen, vakuuttivatpa he täyttävänsä tuon
toivomuksen jossakin metsässä tien varrella noin kolmen, neljän
päivän matkan päässä Hai Fungista, josta he nyt läksivät Liu
Tshungia viemään.

Ensimäisenä päivänä he katkaisivat kymmenen penikulmaa pitkän


taipaleen ja viettivät yön majatalossa, jossa heille — kuten laki
tällaisissa tapauksissa määrää — annettiin ylläpito ilmaiseksi.
Seuraavan päivän aamuna lähdettiin jo varhain liikkeelle ja jota
ylemmäksi päivä yleni sitä paahtavammin helotti aurinko. Alkoipa Liu
Tshungin ruoskahaavoja, jotka matkalle lähtiessä eivät olleet
lainkaan rasittaneet, nyt kirveliä kovasti. Kolmantena matkapäivänä
kävi hänen asemansa paljoon kävelemiseen ja »rautakaulukseen»
tottumattomana yhä tukalammaksi ja matka alkoi hänen tähtensä
kulua hitaasti.

— Astele nopeammin, sinä pässinpää, — huusi Sii, — sillä matkaa


on vielä viisisataa penikulmaa ja jos me tällä tavalla kuljemme, niin
emme pääse ikinä perille.

— Minua niin väsyttää vankeudessa-olon johdosta, joka heikonsi


kovasti voimiani. Sitäpaitsi ovat raipparangaistuksesta saamani
haavat ruvenneet tässä helteessä niin vihoittelemaan, että tuskin
jaksan enää paikaltani liikkua.

— Älä pane pahaksesi, — virkkoi Tung, toinen vartioista, — äläkä


piittaa hänestä.

Tung oli taipuvainen säälimään Liu Tshungia ja vitkastelemaan


murhaan nähden, mutta Sii pysyi armottomana ja
järkähtämättömänä.

Kun he saman päivän iltana pysähtyivät yöksi majataloon, Liu


Tshung osti omalla rahallaan hyvää ruokaa ja juomaa tarjoten
matkakumppaneilleen. Hänen ystävyydenosotukseensa
vastatakseen nämä tilasivat vielä enemmän väkevää juomaa ja
pakottivat häntä juomaan, kunnes hän juopuneena lysähti raskaine
»rautakauluksineen» lattialle.

Sillä välin Sii oli pistäytynyt ulos ja palasi nyt tuoden suuren
vadillisen kiehuvan kuumaa vettä.

— Herra harjotusmestari Liu Tshung, — sanoi hän, — ettekö pese


jalkojanne ennenkuin käytte levolle?

— En missään tapauksessa!

— Matkustaja ei saa käyttäytyä siivottomasti, — väitti Sii.

Liu Tshung ei aavistanut mitään pahaa, vaan nosti jalkansa ylös ja


Sii upotti ne kuumaan veteen.

Kuului parahdus ja Liu Tshung nosti jalkansa ilmaan; mutta ne


olivat jo pahasti palaneet.

— Antakaa minun olla rauhassa, — huusi hän.

— Kas vaan tuota! — hohotti Sii. — Luulisinpä, että minun pitäisi


saada olla rauhassa, että vangin pitäisi palvella vartiaansa eikä
päinvastoin. Kaikesta huolimatta pelkään, etten voi olla mieliksenne,
koskei näinkään lämmin vesi vielä ole riittävän lämmintä!
Tähän tapaan kiusattiin ja pilkattiin Liu Tshungia pitkin iltaa eikä
hän mahtanut sille mitään, makasi vain nurkassaan ja kärsi
rauhallisesti tuskat. Vihdoin molemmat vartiat pesivät jalkansa ja
kävivät levolle.

Seuraavana aamuna nousi Sii muita varemmin levolta ja valmisti


aamiaisen. Liu Tshung ei voinut syödä ensinkään ja näytti siltä kuin
hän ei jaksaisi käydäkään. Sii sysäsi häntä kepillä kylkeen
saadakseen hänet nousemaan makuulta ja Tung, josta sääli vankia
kohtaan oli kadonnut, toi parin karkeita ruokosandaaleja, jotka
varmaan tulisivat aiheuttamaan kipua jalkapohjissa, ja pakotti Liu
Tshungin vetämään ne jalkaansa.

He läksivät varhain matkalle. Mutta ennenkuin he olivat edes


penikulman täyteen kulkeneet, olivat Liu Tshungin jalat hiertyneet
niin pahasti rikki, että alkoivat vuotaa verta, ja hänen täytyi lopulta
voihkia tuskasta joka askeleella. Sii morkkasi häntä siitä ja uhkasi
sauvallansa. Mutta Liu Tshung vakuutteli, ettei se ollut
uppiniskaisuutta, vaan että hänen oli suorastaan mahdoton kävellä
nopeammin.

— Tule, — virkkoi Tung tarttuen häntä käsivarteen, — minä autan


sinua eteenpäin.

Tällä tavalla kuljettiin sitten penikulma, jopa toistakin, kunnes he


tulivat synkkään villikasvuiseen metsään. Paikkaa sanottiin
Metsäsianvuoreksi ja se oli kaikkein vaivalloisin ja rasittavin kohta
koko matkalla Hai Fungista Tsang Tshouhun.

Liu Tshung pyysi nyt, että he pysähtyisivät hetkeksi metsään


levähtämään. Vartiat suostuivatkin, istahtivat maahan ja heittyivät
pian pitkälleen. Mutta he nousivat kohta taas jalkeille ja sanoivat
etteivät voi nukahtaa pelosta, että Liu Tshung karkaisi; heidän täytyi
siis sitoa hänet puuhun kiinni.

Liu Tshung selitti olevansa rehellinen mies eikä milloinkaan


elämässään vielä karanneensa. Mutta vartiat sitoivat kun sitoivatkin
hänet kiinni. Kun se oli tehty, otti kumpainenkin sauvansa ja he
ilmottivat Liu Tshungille täyttävänsä vain kenraali Kon käskyn, jos nyt
tappaisivat hänet tähän paikkaan ja veisivät hänen polttomerkkinsä
takaisin todistukseksi kuuliaisuudestaan. Voisivathan he lykätä teon
jonkun päivän tuonnemmaksi, mutta sehän pidentäisi vain turhaan
tuota vaivalloista matkaa. He pyysivät siis, ettei Liu Tshung heille
suuttuisi, jos he nyt täyttäisivät kenraalin tahdon.

— Tulevana vuonna tähän aikaan voisitte te sitten viettää


vuosipäivää elämänne merkkitapauksen johdosta, — lopettivat he.
— Me olemme tämän jo keskenämme päättäneet, sillä meidän
täytyy rientää takaisin.

Kun Liu Tshung tämän kuuli, hän rupesi itkemään ja sanoi:

— Minä en ole koskaan käyttäytynyt vihamielisesti enkä kantanut


vihan kaunaa teitä kumpaakaan kohtaan. Oi, ettekö voisi armahtaa
minua?! Minä en unohtaisi sitä koskaan, en ikinä!

— Tuo on joutavaa puhetta, — virkkoi Tung. — Me emme mahda


sille mitään.

Sii nosti jo painavan sauvansa iskeäkseen sillä onnetonta päähän.


Tuossa tuokiossa olisi Liu Tshung jättänyt tämän maailman, ellei
samassa silmänräpäyksessä olisi tapahtunut jotakin odottamatonta.
Yhtäkkiä jyrähti nimittäin voimakas mörähuuto ukkosena puitten
takaa ja suuri rautainen sauva pisti esiin kohti kohotettua käsivartta
lennättäen siitä aseen korkealle ylös ilmaan. Sitten syöksyi tanakka
munkkipukuinen mies päin vartioita huutaen:

— Kyllä minä kuulin, mitä te sanoitte, roistot!

Kun Liu Tshung nosti päänsä, hän tunsi tuon miehen Lo


Syvähengeksi ja huusi hilliten:

— Odottakaa! Kuulkaa, mitä sanon!

Syvähenki laski sauvansa maahan, mutta nuo kaksi vartiaa


seisoivat kuin salaman lyöminä paikallaan, kun Liu Tshung jatkoi:

— Nämä molemmat miehet eivät ole syyllisiä. He toimivat kenraali


Kon käskyn mukaisesti. Jos te heidät tapatte, niin teette väärin.

Syvähenki veti miekkansa esiin ja katkaisi sillä köydet, joilla Liu


Tshung oli sidottu, mursi sitten hänen »rautakauluksensa» auki ja
viskasi sen pois alkaen kertoa:

— Kun minä viimeksi olin teistä eronnut, minä pian sen jälkeen
sain surukseni kuulla, että onnettomuus oli teitä kohdannut. Mutta
minulla ei ollut tilaisuutta auttaa teitä. Kun sitten olin saanut kuulla
teidän karkotustuomiostanne Tsang Tshouhun, riensin oikeuteen
saadakseni tarkemman tiedon kohtalostanne; minulle sanottiin, että
te olette paraikaa vankeudessa. Sitten sain vihiä, milloin teidät
lähetettiin vartioituna karkotuspaikkaanne, mutta kun pelkäsin, että
nuo vartiat voisivat tehdä teille matkalla pahaa, päätin salaa seurata
jälessänne. Minä kuulin kyllä, että nämä lurjukset kiusasivat teitä
viimeisessä yöpaikassanne ja aioin jo ryntää sisään tappaakseni
nämä roistomaiset kiusaajanne, mutta toiset varottivat minua siitä
sanoen sillä sellaisessa paikassa vain pilaavan asian. Ja niin päätin
seurata pitemmälle. Lahdin tänään jo teitä varemmin liikkeelle ja
pysähdyin tähän vuoristoon vakuutettuna, että minä täällä vihdoinkin
surmaan molemmat pahanilkiset vartianne. He olivat juuri aikeessa
murhata teidät! Parasta on, että käännän heidän julman aikeensa
heidän itsensä surmaksi!

— Ei, ei! Tyytykää siihen, että olette pelastanut minut, älkääkä


pidelkö pahoin näitä miehiä!

— Kuulkaa, te kaksi raukkaa! — sanoi Syvähenki lujasti. — Jollei


tämä ystäväni nyt puolustaisi teitä, niin kautta kunniani, minä
survoisin teidät palasiksi. Ainoastaan hänen tähtensä minä suostun
siihen, että te saatte palata täältä hengissä.

Lo Syvähenki kohotti sauvansa ja komensi:

— Auttakaa ystävääni, jotta hän voisi seurata minua!

Vartiat tunsivat, että heidän oli kiittäminen Liu Tshungia


elämästään, astuivat kuuliaisesti hänen luokseen ja alkoivat kantaa
häntä samaa tietä pitkin eteenpäin Lo Syvähengen astellessa heidän
edellään sauva kädessä.

Näin kulkivat he noin neljä penikulmaa ja saapuivat tien varrella


sijaitsevaan majataloon. Astuivat sisään, kävivät levähtämään ja
tilasivat ruokaa ja juomaa; Liu Tshungille Syvähenki käski
valmistamaan erikoisen hyvän aterian ja komensi vartiat häntä
palvelemaan.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookmass.com

You might also like