100% found this document useful (3 votes)
97 views

Get C++ Programming: From Problem Analysis to Program Design 8th Edition Edition D.S. Malik free all chapters

Malik

Uploaded by

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

Get C++ Programming: From Problem Analysis to Program Design 8th Edition Edition D.S. Malik free all chapters

Malik

Uploaded by

yakoopakile
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

C++ Programming: From Problem Analysis to Program


Design 8th Edition Edition D.S. Malik

https://ebookmass.com/product/c-programming-from-problem-
analysis-to-program-design-8th-edition-edition-d-s-malik/

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...

C++ Programming. Program Design including Data Structures


8th Edition D.S. Malik

https://ebookmass.com/product/c-programming-program-design-including-
data-structures-8th-edition-d-s-malik/

ebookmass.com

C++ Programming: From Problem Analysis to Program Design


(MindTap Course List) 8th Edition, (Ebook PDF)

https://ebookmass.com/product/c-programming-from-problem-analysis-to-
program-design-mindtap-course-list-8th-edition-ebook-pdf/

ebookmass.com

eTextbook 978-1285856872 C# Programming: From Problem


Analysis to Program Design

https://ebookmass.com/product/etextbook-978-1285856872-c-programming-
from-problem-analysis-to-program-design/

ebookmass.com

Memory Loss, Alzheimer's Disease and Dementia: A Practical


Guide for Clinicians 3rd Edition Andrew E. Budson Md

https://ebookmass.com/product/memory-loss-alzheimers-disease-and-
dementia-a-practical-guide-for-clinicians-3rd-edition-andrew-e-budson-
md/
ebookmass.com
Parker's Forbidden Mate: MM Wolf Shifter Romance (Ombra
Pack Chronicles Book 1) Blake R. Wolfe

https://ebookmass.com/product/parkers-forbidden-mate-mm-wolf-shifter-
romance-ombra-pack-chronicles-book-1-blake-r-wolfe/

ebookmass.com

Just About Perfect: A Funny and Sexy Contemporary Romance


(Welcome to Derryville Book 1) Leslie Kelly

https://ebookmass.com/product/just-about-perfect-a-funny-and-sexy-
contemporary-romance-welcome-to-derryville-book-1-leslie-kelly/

ebookmass.com

Basic Guide to Orthodontic Dental Nursing 2nd Edition


Fiona Grist

https://ebookmass.com/product/basic-guide-to-orthodontic-dental-
nursing-2nd-edition-fiona-grist/

ebookmass.com

Nietzsche's Immoralism: Politics as First Philosophy


Donovan Miyasaki

https://ebookmass.com/product/nietzsches-immoralism-politics-as-first-
philosophy-donovan-miyasaki/

ebookmass.com

Equity and Full Participation for Individuals with Severe


Disabilities: A Vision for the Future – Ebook PDF Version

https://ebookmass.com/product/equity-and-full-participation-for-
individuals-with-severe-disabilities-a-vision-for-the-future-ebook-
pdf-version/
ebookmass.com
Philosophy and Neuroscience: A Methodological Analysis
Steven S. Gouveia

https://ebookmass.com/product/philosophy-and-neuroscience-a-
methodological-analysis-steven-s-gouveia/

ebookmass.com
C++ Programming:
From Problem Analysis to Program Design

Eighth Edition

D.S. Malik

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
C++ Programming: From Problem Analysis to Pro- © 2018, 2015, 2013 Cengage Learning®
gram Design, Eighth Edition ALL RIGHTS RESERVED. No part of this work covered by the ­copyright
D.S. Malik herein may be reproduced or distributed in any form or by any means, ex-
cept as permitted by U.S. copyright law, without the prior written permis-
Senior Product Director: Kathleen McMahon sion of the copyright owner.
Product Team Leader: Kristin McNary
Associate Product Manager: Kate Mason For product information and technology assistance, contact us at
Associate Content Development ­Manager: Cengage Learning Customer & Sales Support, 1-800-354-9706
Alyssa Pratt
For permission to use material from this text or product,
Production Director: Patty Stephan
submit all requests online at www.cengage.com/permissions.
Senior Content Project Manager: Jennifer Further permissions questions can be emailed to
Feltri-George [email protected].
Manufacturing Planner: Julio Esperas
Art Director/Cover Design: Diana Graham Library of Congress Control Number: 2016960054
Production Service/Composition:
ISBN: 978-1-337-10208-7
SPi Global
Cover Photo: Cebas/Shutterstock.com Cengage Learning
20 Channel Center Street
Boston, MA 02210
USA

Unless otherwise noted all items © Cengage Learning.


Unless otherwise noted, all screenshots are ©Microsoft.

Cengage Learning is a leading provider of customized learning ­solutions


with employees residing in nearly 40 different countries and sales in more
than 125 countries around the world. Find your local representative at
www.cengage.com.

Cengage Learning products are represented in Canada by Nelson


Education, Ltd.

To learn more about Cengage Learning Solutions, visit


www.cengage.com.

Purchase any of our products at your local college store or at our preferred
online store www.cengagebrain.com.
Any fictional data related to persons or companies or URLs used throughout
this book is intended for instructional purposes only. At the time this book
was printed, any such data was fictional and not belonging to any real
persons or companies.
The programs in this book are for instructional purposes only. They have
been tested with care, but are not guaranteed for any particular intent
beyond educational purposes. The author and the publisher do not offer any
warranties or representations, nor do they accept any liabilities with respect
to the programs.

Printed in the United States of America


Print Number: 01 Print Year: 2017

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
TO
My Daughter

Shelly Malik

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
e Hunlhomas/Shutterstock.oom

PREFACE xxxi ii
1. An Overview of Computers and Programming Languages
2. Basic Elements of c++ 27
3. Input/Output 123
4. Control Structures I (Selection) 187
5. Control Structures II (Repetition) 265
6. User-Defined Functions 347
7. User-Defined Simple Data Types, Namespaces,
and the string Type 467
8. Arrays and Strings 521
9. Records (structs) 611
10. Classes and Data Abstraction 651
11. Inheritance and Composition 743
12. Pointers, Classes, Vi rtua I Functions, and Abstract Classes 817
13. Overloading and Templates 893
14. Exception Handling 991
15. Recursion 1035
16. Searching, Sorting, and the vector Type 1069
17. Linked Lists 1115
18. Stacks and Queues 1209
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
viii | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

APPENDIX A   Reserved Words 1309

APPENDIX B   Operator Precedence 1311

APPENDIX C   Character Sets 1313

APPENDIX D   Operator Overloading 1317

APPENDIX E    Additional C11 Topics ONLINE

APPENDIX F    Header Files 1319

APPENDIX G    Memory Size on a System 1329

APPENDIX H    Standard Template Library (STL)  1331

APPENDIX I      Answers to Odd-Numbered Exercises 1369

INDEX 1413

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
e Hunlhomas/Shutterstock.oom

Preface xxxiii

II AN OVERVIEW Of COMPUTERS
AND PROGRAMMING LANGUAGES
Introduction
1

A Brief Overview of the History of Computers 2

Elements of a Computer System 4


Hardware 4
Central Processing Unit and Main Memory 4
Input/Output Devices 5
Software 5

The Language of a Computer 6

The Evolution of Programming Languages 7

Processing a c++ Program 9

Programming with the Problem


Analysis-Coding-Execution Cycle 11

Programming Methodologies 20
Structured Programming 20
Object-Oriented Programming 20
ANSI/ISO Standard C++ 22

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
x | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

Quick Review 22

Exercises 24

BASIC ELEMENTS OF C11 27


2
A Quick Look at a C11 Program 28

The Basics of a C11 Program 33


Comments 34
Special Symbols 35
Reserved Words (Keywords) 35
Identifiers 36
Whitespaces 37

Data Types 37
Simple Data Types 38
Floating-Point Data Types 40

Data Types, Variables, and Assignment


Statements 42

Arithmetic Operators, Operator Precedence, and Expressions 43


Order of Precedence 45
Expressions 47
Mixed Expressions 48

Type Conversion (Casting) 50

string Type 53

Variables, Assignment Statements,


and Input Statements 54
Allocating Memory with Constants and Variables 54
Putting Data into Variables 57

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Table of Contents | xi

Assignment Statement 57
Saving and Using the Value of an Expression 60
Declaring and Initializing Variables 61
Input (Read) Statement 62
Variable Initialization 65

Increment and Decrement Operators 69

Output 71

Preprocessor Directives 78
namespace and Using cin and cout in a Program 79
Using the string Data Type in a Program 80

Creating a C11 Program 80

Debugging: Understanding and Fixing


Syntax Errors 84

Program Style and Form 87


Syntax 87
Use of Blanks 88
Use of Semicolons, Brackets, and Commas 88
Semantics 88
Naming Identifiers 89
Prompt Lines 89
Documentation 90
Form and Style 90

More on Assignment Statements 92

Programming Example: Convert Length 94

Programming Example: Make Change 98

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xii | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

Quick Review 102

Exercises 104

Programming Exercises 114

INPUT/OUTPUT 123
3
I/O Streams and Standard I/O Devices 124
cin and the Extraction Operator >> 125

Using Predefined Functions in a Program 130


cin and the get Function 133
cin and the ignore Function 134
The putback and peek Functions 136
The Dot Notation between I/O Stream Variables
and I/O Functions: A Precaution 139

Input Failure 139


The clear Function 142

Output and Formatting Output 143


setprecision Manipulator 144
fixed Manipulator 145
showpoint Manipulator 146
C1114 Digit Separator 149
setw 150

Additional Output Formatting Tools 152


setfill Manipulator 152
left and right Manipulators 154

Input/Output and the string Type 156

Debugging: Understanding Logic Errors


and Debugging with cout Statements 157

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Table of Contents | xiii

File Input/Output 160

Programming Example: Movie Tickets


Sale and Donation to Charity 164

Programming Example: Student Grade 170

Quick Review 173

Exercises 175

Programming Exercises 181

CONTROL STRUCTURES I
4 (SELECTION) 187
Control Structures 188
SELECTION: if AND if . . . else 189
Relational Operators and Simple Data Types 189
Comparing Characters 190
One-Way Selection 191
Two-Way Selection 194
int Data Type and Logical (Boolean) Expressions 198
bool Data Type and Logical (Boolean) Expressions 198
Logical (Boolean) Operators and Logical Expressions 199
Order of Precedence 201

Relational Operators and the string Type 205


Compound (Block of) Statements 207
Multiple Selections: Nested if 207
Comparing if . . . else Statements with a Series of if Statements 210
Short-Circuit Evaluation 211
Comparing Floating-Point Numbers for Equality: A Precaution 212
Associativity of Relational Operators: A Precaution 213

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xiv | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

Avoiding Bugs by Avoiding Partially Understood


Concepts and Techniques 215
Input Failure and the if Statement 218
Confusion between the Equality Operator (==)
and the Assignment Operator (=) 221
Conditional Operator (?:) 223
Program Style and Form (Revisited): Indentation 224

Using Pseudocode to Develop, Test, and Debug a Program 224

switch Structures 227


Avoiding Bugs by Avoiding Partially Understood
Concepts and Techniques (Revisited) 234

Terminating a Program with the assert Function 236

Programming Example: Cable Company Billing 238

Quick Review 244

Exercises 245

Programming Exercises 257

CONTROL STRUCTURES II (REPETITION) 265


5
Why Is Repetition Needed? 266

while Looping (Repetition) Structure 269


Designing while Loops 273
Case 1: Counter-Controlled while Loops 274
Case 2: Sentinel-Controlled while Loops 277
Case 3: Flag-Controlled while Loops 283
Case 4: EOF-Controlled while Loops 286
eof Function 287
More on Expressions in while Statements 292

Programming Example: Fibonacci Number 293

for Looping (Repetition) Structure 297

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Table of Contents | xv

Programming Example: Classifying Numbers 305

do. . .while Looping (Repetition) Structure 309


Divisibility Test by 3 and 9 311
Choosing the Right Looping Structure 313

break and continue Statements 313

Nested Control Structures 315

Avoiding Bugs by Avoiding Patches 321

Debugging Loops 324

Quick Review 324

Exercises326

Programming Exercises 340

USER-DEFINED FUNCTIONS 347


6
Predefined Functions 348

User-Defined Functions 352

Value-Returning Functions 353


Syntax: Value-Returning Function 355
Syntax: Formal Parameter List 355
Function Call 355
Syntax: Actual Parameter List 356
return Statement 356
Syntax: return Statement 356
Function Prototype 360
Syntax: Function Prototype 361
Value-Returning Functions: Some Peculiarities 362
More Examples of Value-Returning Functions 364
Flow of Compilation and Execution 375

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xvi | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

Programming Example: Largest Number 376

Void Functions 378

Value Parameters 384

Reference Variables as Parameters 386


Calculate Grade 387

Value and Reference Parameters and Memory Allocation 390

Reference Parameters and Value-Returning Functions 399

Scope of an Identifier 399

Global Variables, Named Constants,


and Side Effects 403

Static and Automatic Variables 411

Debugging: Using Drivers and Stubs 413

Function Overloading: An Introduction 415

Functions with Default Parameters 417

Programming Example: Classify Numbers 420

Programming Example: Data Comparison 425

Quick Review 435

Exercises 438

Programming Exercises 453

USER-DEFINED SIMPLE DATA TYPES, NAMESPACES,


7 AND THE STRING TYPE 467
Enumeration Type 468
Declaring Variables 470
Assignment 470
Operations on Enumeration Types 471
Relational Operators 471

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Table of Contents | xvii

Input /Output of Enumeration Types 472


Functions and Enumeration Types 475
Declaring Variables When Defining the Enumeration Type 476
Anonymous Data Types 477
typedef Statement 477

Programming Example: The Game of Rock, Paper, and Scissors 478

Namespaces 487

string Type 492


Additional string Operations 496

Programming Example: Pig Latin Strings 505

Quick Review 510

Exercises 512

Programming Exercises 517

ARRAYS AND STRINGS 521


8
Arrays 523
Accessing Array Components 525
Processing One-Dimensional Arrays 527
Array Index Out of Bounds 531
Array Initialization during Declaration 532
Partial Initialization of Arrays during Declaration 532
Some Restrictions on Array Processing 533
Arrays as Parameters to Functions 534
Constant Arrays as Formal Parameters 535
Base Address of an Array and Array in Computer Memory 537
Functions Cannot Return a Value of the Type Array 540
Integral Data Type and Array Indices 543
Other Ways to Declare Arrays 544

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xviii | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

Searching an Array for a Specific Item 544


Sorting 547

Auto Declaration and Range-Based For Loops 551

C-Strings (Character Arrays) 552


String Comparison 555
Reading and Writing Strings 556
String Input 556
String Output 558
Specifying Input/Output Files at Execution Time 559
string Type and Input/Output Files 559

Parallel Arrays 560

Two- and Multidimensional Arrays 561


Accessing Array Components 563
Two-Dimensional Array Initialization during Declaration 564
Two-Dimensional Arrays and Enumeration Types 564
Initialization 567
Print 568
Input 568
Sum by Row 568
Sum by Column 568
Largest Element in Each Row and Each Column 569
Passing Two-Dimensional Arrays as Parameters to Functions 570
Arrays of Strings 573
Arrays of Strings and the string Type 573
Arrays of Strings and C-Strings (Character Arrays) 573
Another Way to Declare a Two-Dimensional Array 574
Multidimensional Arrays 575

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Table of Contents | xix

Programming Example: Code Detection 577

Programming Example: Text Processing 583

Quick Review 590

Exercises 592

Programming Exercises 604

RECORDS (STRUCTS) 611


9 Records (structs) 612
Accessing struct Members 614
Assignment 617
Comparison (Relational Operators) 618
Input/Output 618
struct Variables and Functions 619
Arrays versus structs 620
Arrays in structs 620
structs in Arrays 623
structs within a struct 624

Programming Example: Sales Data Analysis 628

Quick Review 642

Exercises 643

Programming Exercises 648

CLASSES AND DATA ABSTRACTION 651


10
Classes 652
Unified Modeling Language Class Diagrams 656
Variable (Object) Declaration 656
Accessing Class Members 657

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xx | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

Built-in Operations on Classes 659


Assignment Operator and Classes 659
Class Scope 660
Functions and Classes 660
Reference Parameters and Class Objects (Variables) 660
Implementation of Member Functions 661
Accessor and Mutator Functions 666
Order of public and private Members of a Class 670
Constructors 671
Invoking a Constructor 673
Invoking the Default Constructor 673
Invoking a Constructor with Parameters 674
Constructors and Default Parameters 677
Classes and Constructors: A Precaution 677
In-Class Initialization of Data Members and the Default Constructor 678
Arrays of Class Objects (Variables) and Constructors 679
Destructors 681

Data Abstraction, Classes, and Abstract Data Types 682


A struct versus a class 684

Information Hiding 685

Executable Code 689

More Examples of Classes 691

Inline Functions 700

Static Members of a Class 701

Programming Example: Juice Machine 707

Quick Review 722

Exercises 724

Programming Exercises 736


Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Table of Contents | xxi

INHERITANCE AND COMPOSITION 743


11
Inheritance 744
Redefining (Overriding) Member Functions of the Base Class 747
Constructors of Derived and Base Classes 754
Destructors in a Derived Class 763
Multiple Inclusions of a Header File 764
C11 Stream Classes 768
Protected Members of a Class 769
Inheritance as public, protected, or private 769
(Accessing protected Members in the Derived Class) 770

Composition (Aggregation) 773

Object-Oriented Design (OOD) and


Object-Oriented Programming (OOP) 778
Identifying Classes, Objects, and Operations 780

Programming Example: Grade Report 781

Quick Review 802

Exercises 802

Programming Exercises 811

POINTERS, CLASSES, VIRTUAL FUNCTIONS, AND ABSTRACT CLASSES 817


12
Pointer Data Type and Pointer Variables 818
Declaring Pointer Variables 818

Address of Operator (&) 820

Dereferencing Operator (*) 821

Classes, Structs, and Pointer Variables 826

Initializing Pointer Variables 829


Initializing Pointer Variables Using nullptr 829

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xxii | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

Dynamic Variables 830


Operator new 830
Operator delete 831

Operations on Pointer Variables 835

Dynamic Arrays 837


Arrays and Range-Based for Loops (Revisited) 840
Functions and Pointers 841
Pointers and Function Return Values 842
Dynamic Two-Dimensional Arrays 842

Shallow versus Deep Copy and Pointers 845

Classes and Pointers: Some Peculiarities 847


Destructor 848
Assignment Operator 849
Copy Constructor 851

Inheritance, Pointers, and Virtual Functions 858


Classes and Virtual Destructors 865

Abstract Classes and Pure Virtual Functions 866

Address of Operator and Classes 874

Quick Review 876

Exercises 879

Programming Exercises 890

OVERLOADING AND TEMPLATES 893


13
Why Operator Overloading Is Needed 894

Operator Overloading 895


Syntax for Operator Functions 896
Overloading an Operator: Some Restrictions 896
Pointer this 899
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Table of Contents | xxiii

Friend Functions of Classes 904


Operator Functions as Member Functions
and Nonmember Functions 907
Overloading Binary Operators 910
Overloading the Stream Insertion (<<) and Extraction (>>) Operators 916
Overloading the Assignment Operator (=) 921
Overloading Unary Operators 929
Operator Overloading: Member versus Nonmember 935
Classes and Pointer Member Variables (Revisited) 936
Operator Overloading: One Final Word 936

Programming Example: clockType 936

Programming Example: Complex Numbers 945

Overloading the Array Index (Subscript) Operator ([]) 950

Programming Example: newString 952

Function Overloading 959

Templates 959
Function Templates 959
Class Templates 961

C1111 Random Number Generator 969

Quick Review 971

Exercises 973

Programming Exercises 981

EXCEPTION HANDLING 991


14
Handling Exceptions within a Program 992
C11 Mechanisms of Exception Handling 996
try/catch Block 996
Using C11 Exception Classes 1003

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xxiv | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

Creating Your Own Exception Classes 1007


Rethrowing and Throwing an Exception 1016

Exception-Handling Techniques 1020


Terminate the Program 1020
Fix the Error and Continue 1020
Log the Error and Continue 1021

Stack Unwinding 1022

Quick Review 1025

Exercises 1027

Programming Exercises 1033

RECURSION 1035
15
Recursive Definitions 1036
Direct and Indirect Recursion 1038
Infinite Recursion 1038

Problem Solving Using Recursion 1039


Tower of Hanoi: Analysis 1049

Recursion or Iteration? 1049

Programming Example: Converting a Number from


Binary to Decimal 1051

Programming Example: Converting a Number from Decimal to Binary 1055

Quick Review 1058

Exercises 1059

Programming Exercises 1064

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Table of Contents | xxv

SEARCHING, SORTING,
16 AND THE VECTOR TYPE 1069
List Processing 1070
Searching 1070
Bubble Sort 1071
Insertion Sort 1075
Binary Search 1079
Performance of Binary Search 1082

vector Type (class) 1083


Vectors and Range-Based for Loops 1088
Initializing vector Objects during Declaration 1090

Programming Example: Election Results 1091

Quick Review 1105

Exercises 1106

Programming Exercises 1111

LINKED LISTS 1115


17
Linked Lists 1116
Linked Lists: Some Properties 1117
Deletion 1123
Building a Linked List 1124

Linked List as an ADT 1129


Structure of Linked List Nodes 1130
Member Variables of the class linkedListType 1130
Linked List Iterators 1131
Print the List 1137
Length of a List 1138

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xxvi | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

Retrieve the Data of the First Node 1138


Retrieve the Data of the Last Node 1138
Begin and End 1138
Copy the List 1139
Destructor 1140
Copy Constructor 1140
Overloading the Assignment Operator 1141

Unordered Linked Lists 1141


Search the List 1142
Insert the First Node 1143
Insert the Last Node 1144
Header File of the Unordered Linked List 1149

Ordered Linked Lists 1150


Search the List 1151
Insert a Node 1152
Insert First and Insert Last 1156
Delete a Node 1157
Header File of the Ordered Linked List 1158

Print a Linked List in Reverse Order


(Recursion Revisited) 1161
printListReverse 1163

Doubly Linked Lists 1164


Default Constructor 1167
isEmptyList 1167
Destroy the List 1167
Initialize the List 1168
Length of the List 1168
Print the List 1168
Reverse Print the List 1168
Search the List 1169
First and Last Elements 1169
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Table of Contents | xxvii

Circular Linked Lists 1175

Programming Example: DVD Store 1176

Quick Review 1196

Exercises 1196

Programming Exercises 1203

STACKS AND QUEUES 1209


18
Stacks 1210
Stack Operations 1212

Implementation of Stacks as Arrays 1214


Initialize Stack 1217
Empty Stack 1218
Full Stack 1218
Push 1218
Return the Top Element 1220
Pop 1220
Copy Stack 1222
Constructor and Destructor 1222
Copy Constructor 1223
Overloading the Assignment Operator (=) 1223
Stack Header File 1224

Programming Example: Highest GPA 1228

Linked Implementation of Stacks 1232


Default Constructor 1235
Empty Stack and Full Stack 1235
Initialize Stack 1236
Push 1236
Return the Top Element 1238

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xxviii | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

Pop 1238
Copy Stack 1240
Constructors and Destructors 1241
Overloading the Assignment Operator (=) 1241
Stack as Derived from the class unorderedLinkedList 1244

Application of Stacks: Postfix Expressions Calculator 1245


Main Algorithm 1248
Function evaluateExpression 1248
Function evaluateOpr 1250
Function discardExp 1252
Function printResult 1252

Removing Recursion: Nonrecursive Algorithm


to Print a Linked List Backward 1255

Queues 1259
Queue Operations 1260
Implementation of Queues as Arrays 1262
Linked Implementation of Queues 1271
Queue Derived from the class unorderedLinkedListType 1276

Application of Queues: Simulation 1277


Designing a Queuing System 1278
Customer 1279
Server 1282
Server List 1285
Waiting Customers Queue 1289
Main Program 1291

Quick Review 1295

Exercises 1296

Programming Exercises 1305

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Table of Contents | xxix

APPENDIX A: RESERVED WORDS 1309

APPENDIX B: OPERATOR PRECEDENCE 1311

APPENDIX C: CHARACTER SETS 1313


ASCII (American Standard Code for Information Interchange) 1313

EBCDIC (Extended Binary Coded Decimal Interchange Code) 1314

APPENDIX D: OPERATOR OVERLOADING 1317

APPENDIX E: ADDITIONAL C11 TOPICS ONLINE


Binary (Base 2) Representation of a Nonnegative Integer E-1
Converting a Base 10 Number to a Binary Number (Base 2) E-1
Converting a Binary Number (Base 2) to Base 10 E-3
Converting a Binary Number (Base 2) to Octal (Base 8)
and Hexadecimal (Base 16) E-4

More on File Input/Output E-6


Binary Files E-6
Random File Access E-12

Naming Conventions of Header Files in


ANSI/ISO Standard C11 and Standard C11 E-20

APPENDIX F: HEADER FILES 1319

Header File cassert (assert.h) 1319

Header File cctype (ctype.h) 1320

Header File cfloat (float.h) 1321

Header File climits (limits.h) 1322

Header File cmath (math.h) 1324


Header File cstddef (stddef.h) 1325
Header File cstring (string.h) 1325
HEADER FILE string 1326

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xxx | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

APPENDIX G: MEMORY SIZE ON A SYSTEM 1329

APPENDIX H: STANDARD TEMPLATE LIBRARY (STL) 1331


Components of the STL 1331

Container Types 1332


Sequence Containers 1332
Sequence Container: Vectors 1332
Member Functions Common to All Containers 1340
Member Functions Common to Sequence Containers 1342
copy Algorithm 1342
Sequence Container: deque 1346
Sequence Container: list 1349

Iterators 1354
IOStream Iterators 1354
Container Adapters 1355

Algorithms 1358
STL Algorithm Classification 1358
STL Algorithms 1360
Functions fill and fill_n 1361
Functions find and find_if 1362
Functions remove and replace 1363
Functions search, sort, and binary_search 1365

APPENDIX I: ANSWERS TO ODD-NUMBERED EXERCISES 1369

Chapter 1 1369

Chapter 2 1372

Chapter 3 1376

Chapter 4 1377

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Table of Contents | xxxi

Chapter 5 1380

Chapter 6 1382

Chapter 7 1385

Chapter 8 1387

Chapter 9 1389

Chapter 10 1391

Chapter 11 1395

Chapter 12 1398

Chapter 13 1400

Chapter 14 1402

Chapter 15 1405

Chapter 16 1406

Chapter 17 1407

Chapter 18 1409

INDEX 1413

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xxxiv | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

Traditionally, a C++ programming neophyte needed a working knowledge of another


programming language. This book assumes no prior programming experience.
­However, some adequate mathematics background, such as college algebra, is required.

Changes in the Eighth Edition


The eighth edition contains more than 250 new and updated exercises, requiring new
solutions, and more than 20 new programming exercises.
This edition also introduces C++14 digit separator (Chapter 3), C++11 class inline
functions (Chapter 10), updated C++11 class data members initialization during
declaration (Chapter 10), and C++11 random generators (Chapter 13). The C-string
functions such as strcpy, strcmp, and strcat have been deprecated, and might give
warning messages when used in a program. Furthermore, the functions strncpy and
strncmp might not be implemented in all versions of C++ Therefore, in Chapter 13,
we have modified the Programming Example newString to reflect these changes by
including functions to copy a character array.

Approach
The programming language C++, which evolved from C, is no longer considered an
industry-only language. Numerous colleges and universities use C++ for their first
programming language course. C++ is a combination of structured programming
and object-oriented programming, and this book addresses both types.
This book can be easily divided into two parts: structured programming and object-
oriented programming. The first 9 chapters form the structured programming part;
Chapters 10 through 14, 17, and 18 form the object-oriented part. However, only the
first six chapters are essential to move on to the object-oriented portion.
In July 1998, ANSI/ISO Standard C++ was officially approved. This book focuses on
ANSI/ ISO Standard C++. Even though the syntax of Standard C++ and ANSI/ISO
Standard C++ is very similar, Chapter 7 discusses some of the features of ANSI/ISO
Standard C++ that are not available in Standard C++.
Chapter 1 briefly reviews the history of computers and programming languages. The
reader can quickly skim through this chapter and become familiar with some of the
hardware components and the software parts of the computer. This chapter contains
a section on processing a C++ program. This chapter also describes structured and
object-oriented programming.
Chapter 2 discusses the basic elements of C++ After completing this chapter, ­students
become familiar with the basics of C++ and are ready to write programs that are

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Preface | xxxv

complicated enough to do some computations. Input/output is fundamental to any


programming language. It is introduced early, in Chapter 3, and is covered in detail.
Chapters 4 and 5 introduce control structures to alter the sequential flow of execu-
tion. Chapter 6 studies user-defined functions. It is recommended that readers with
no prior programming background spend extra time on Chapter 6. Several examples
are provided to help readers understand the concepts of parameter passing and the
scope of an identifier.
Chapter 7 discusses the user-defined simple data type (enumeration type), the
namespace mechanism of ANSI/ISO Standard C++ and the string type. The earlier
versions of C did not include the enumeration type. Enumeration types have very lim-
ited use; their main purpose is to make the program readable. This book is organized
such that readers can skip the section on enumeration types during the first reading
without experiencing any discontinuity, and then later go through this section.
Chapter 8 discusses arrays in detail. This chapter also discusses range-based for
loops, a feature of C++11 Standard, and explains how to use them to process the ele-
ments of an array. Limitations of ranged-based for loops on arrays passed as param-
eters to functions are also discussed. Chapter 8 also discusses a sequential search
algorithm and a selection sort algorithm. Chapter 9 introduces records (structs).
The introduction of structs in this book is similar to C structs. This chapter is
optional; it is not a prerequisite for any of the remaining chapters.
Chapter 10 begins the study of object-oriented programming (OOP) and introduces
classes. The first half of this chapter shows how classes are defined and used in a
program. The second half of the chapter introduces abstract data types (ADTs). The
inline functions of a classes are introduced in this chapter. Also, the section “In-Class
Initialization of Data Members and the Default Constructor” has been updated.
­Furthermore, this chapter shows how classes in C++ are a natural way to implement
ADTs. Chapter 11 continues with the fundamentals of object-oriented design (OOD)
and OOP and discusses inheritance and composition. It explains how classes in C++
provide a natural mechanism for OOD and how C++ supports OOP. Chapter 11 also
discusses how to find the objects in a given problem.
Chapter 12 studies pointers in detail. After introducing pointers and how to use them
in a program, this chapter highlights the peculiarities of classes with pointer data
members and how to avoid them. Moreover, this chapter discusses how to create and
work with dynamic two-dimensional arrays, and also explains why ranged-based for
loops cannot be used on dynamic arrays. Chapter 12 also discusses abstract classes
and a type of polymorphism accomplished via virtual functions.
Chapter 13 continues the study of OOD and OOP. In particular, it studies polymorphism
in C++ The chapter specifically discusses two types of polymorphism—overloading

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
xxxvi | C++ Programming: From Problem Analysis to Program Design, Eighth Edition

and templates. Moreover, C++11 random number generators are introduced in this
chapter.
Chapter 14 discusses exception handling in detail. Chapter 15 introduces and dis-
cusses recursion. Moreover, this is a stand-alone chapter, so it can be studied anytime
after Chapter 9. Chapter 16 describes various searching and sorting algorithms as
well as an introduction to the vector class.
Chapters 17 and 18 are devoted to the study of data structures. Discussed in detail
are linked lists in Chapter 17 and stacks and queues in Chapter 18. The programming
code developed in these chapters is generic. These chapters effectively use the funda-
mentals of OOD.
Appendix A lists the reserved words in C++. Appendix B shows the precedence and
associativity of the C++ operators. Appendix C lists the ASCII (American Standard
Code for Information Interchange) and EBCDIC (Extended Binary Coded Decimal
Interchange Code) character sets. Appendix D lists the C++ operators that can be
overloaded.
Appendix E, provided online, has three objectives. First, we discuss how to convert
a number from ­decimal to binary and binary to decimal. We then discuss binary
and random access files in detail. Finally, we describe the naming conventions of
the header files in both ANSI/ISO Standard C++ and Standard C++. Appendix
F discusses some of the most widely used library routines, and includes the names
of the standard C++ header files. The programs in Appendix G show how to print
the memory size for the built-in data types on your system. Appendix H gives an
­introduction to the Standard Template Library, and Appendix I provides the answers
to odd-numbered exercises in the book.

How to Use the Book


This book can be used in various ways. Figure 1 shows the dependency of the chapters.
In Figure 1, dotted lines mean that the preceding chapter is used in one of the sections
of the chapter and is not necessarily a prerequisite for the next chapter. For example,
Chapter 8 covers arrays in detail. In Chapters 9 and 10, we show the relationship
between arrays and structs and arrays and classes, respectively. However, if Chapter 10
is studied before Chapter 8, then the section dealing with arrays in Chapter 10 can
be skipped without any discontinuation. This particular section can be studied after
studying Chapter 8.
It is recommended that the first six chapters be covered sequentially. After covering
the first six chapters, if the reader is interested in learning OOD and OOP early, then
Chapter 10 can be studied right after Chapter 6. Chapter 7 can be studied anytime
after Chapter 6.

Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN 02-200-203
Another Random Document on
Scribd Without Any Related Topics
— Katerina Ivanovna ymmärtää kaiken, — lausui äkkiä Aljoša
juhlallisesti, — ymmärtää kaiken tämän murheen koko syvyyden ja
sopii. Hän on erittäin älykäs ja hän näkee itse, että ei voi olla
onnettomampi kuin sinä.

— Ei hän tyydy kaikkeen, — hymähti Mitja. — Tässä on, veliseni,


semmoista, mitä ei yksikään nainen voi antaa anteeksi. Mutta
tiedätkö, mitä olisi paras tehdä?

— Mitä?

— Antaa hänelle takaisin kolmetuhatta.

— Mutta mistä ne otetaan? Kuule, minulla on kaksituhatta, Ivan


antaa lisäksi tuhat, siinä on kolmetuhatta, ota ja maksa pois.

— Mutta milloin ne saadaan, nuo sinun kolmetuhattasi? Sinä olet


vielä kaiken lisäksi alaikäinenkin, mutta on tarpeen välttämättömästi,
välttämättömästi, että sinä jo tänään käyt hänen luonaan, rahojen
kanssa tai ilman rahoja, sillä pitemmälle en voi asiaa venyttää, asia
on nyt sillä asteella. Huomenna on jo myöhäistä. Minä lähetän sinut
isän luo.

— Isän luo?

— Niin, isän luo, ennenkuin menet hänen luokseen. Pyydä isältä


kolmeatuhatta.

— Mutta eihän hän anna, Mitja.

— Kuinka hän antaisi, minä tiedän, että hän ei anna. Tiedätkö


sinä,
Aleksei, mitä on epätoivo?
— Tiedän.

— Kuule: juridisesti hän ei ole minulle mitään velkaa. Olen ottanut


häneltä kaikki, aivan kaikki, tiedän sen. Mutta moraalisesti hän on
minulle velkaa, eikö niin? Hänhän aloitti äidin
kahdeksallakolmattatuhannella ja ansaitsi satatuhatta. Antakoon hän
minulle vain kolmetuhatta kahdeksastakolmattatuhannesta, niin hän
pelastaa sieluni helvetistä ja se korvaa monet hänen syntinsä! Minä
puolestani, vakuutan sen sinulle juhlallisesti, lopetan kaiken noihin
kolmeentuhanteen, eikä hän sen koommin kuule minusta mitään.
Annan hänelle viimeisen kerran tilaisuuden olla isänä. Sano hänelle,
että Jumala itse on lähettänyt hänelle tämän tilaisuuden.

— Mitja, ei hän anna missään tapauksessa.

— Tiedän, että ei anna, tiedän täydelleen. Ja varsinkaan nyt.


Tiedänpä lisäksi vielä seuraavaakin: nyt näinä päivinä, kenties vasta
eilen, hän on saanut tietää vakavasti (alleviivaa sana vakavasti), että
Grušenjka todellakaan ehkä ei laske leikkiä, vaan tahtoo laittautua
naimisiin kanssani. Hän tuntee tuon luonteen, tuntee tuon kissan.
No, tokkohan hän kaiken lisäksi vielä antaa minulle rahaakin
edistääkseen tämmöistä asiaa, kun hän itse on aivan hullaantunut
Grušenjkaan? Mutta ei vielä siinä kyllin, voin mainita sinulle
enemmänkin: tiedän, että hänellä jo noin viisi päivää on ollut
esilleotettuna kolmetuhatta ruplaa, vaihdettuina sadan ruplan
seteleihin ja niputettuina isoon kääröön, viidellä sinetillä suljettuun,
joka on päältä sidottu ristiin punaisella nauhalla. Näetkö, miten
yksityiskohtaiset tiedot minulla on! Kääröön on kirjoitettu: »Enkelilleni
Grušenjkalle, jos hän tahtoo tulla», itse hän on sen kaikessa
hiljaisuudessa ja salaisuudessa raapustanut, eikä kukaan tiedä, että
hänen hallussaan on nämä rahat, paitsi lakeija Smerdjakov, jonka
rehellisyyteen hän luottaa niinkuin itseensä. Jo kolme tai neljä päivää
hän on nyt odottanut Grušenjkaa, toivoo hänen tulevan hakemaan
kääröä, niin on hän hänelle ilmoittanut, ja Grušenjka puolestaan on
lähettänyt sanan, että »ehkäpä tulenkin». Jos hän siis tulee ukon luo,
niin voinko silloin mennä hänen kanssaan naimisiin? Ymmärrätkö
nyt, miksi minä siis istun täällä salaa ja mitä minä nimenomaan
vahdin?

— Grušenjkaa?

— Häntä. Näitten homssujen, tämän talon emäntien asunnosta on


vuokrannut itselleen kopukan Foma. Foma on meidän
seuduiltamme, meidän entisiä sotamiehiämme. Hän on heidän
palveluksessaan, vartioi yöllä ja käy päivällä teiriä ampumassa, se
on hänen elinkeinonsa. Tänne hänen luokseen olen nyt asettunut.
Sekä hän että emännät tuntevat salaisuuden, nimittäin että minä
olen täällä vahdissa.

— Smerdjakov yksinkö tietää?

— Hän yksin. Hän myös minulle ilmoittaa, jos Grušenjka tulee


ukon luo.

— Hänkö sinulle kertoi kääröstä?

— Hän. Se on hyvin suuri salaisuus. Ei edes Ivan tiedä rahoista


eikä mistään. Mutta ukko lähettää Ivanin ajelemaan Tšermašnjaan
pariksi kolmeksi päiväksi: on ilmaantunut lehdon ostaja, tahtoisi
hakkauttaa sen maksamalla kahdeksantuhatta, niinpä ukko pyytelee
Ivania: »Autahan minua, käy itse katsomassa, kysymyksessä on pari
kolme päivää.» Hän tahtoo, että Grušenjka tulisi Ivanin
poissaollessa.
—- Hän siis odottaa tänäänkin Grušenjkaa.

— Ei, tänään Grušenjka ei tule, merkit viittaavat siihen suuntaan.


Ihan varmaan ei tule! — huudahti Mitja äkkiä. — Niin luulee
Smerdjakovkin. Isä juopottelee nyt, istuu pöydässä veli Ivanin
kanssa. Käy, Aleksei, pyytämässä häneltä nuo kolmetuhatta…

— Rakas Mitja, mikä sinun on! — huudahti Aljoša hypäten


paikaltaan ja katsellen tarkasti raivostunutta Dmitri Fjodorovitšia.
Hetken ajan hän luuli tämän menettäneen järkensä.

— Mitä sinä? En minä ole menettänyt järkeäni, — lausui Dmitri


Fjodorovitš katsellen häntä kiinteästi ja omituisen juhlallisesti. —
Älä pelkää, minä lähetän sinut isän luo ja tiedän mitä puhun: minä
uskon ihmeeseen.

— Ihmeeseen?

— Jumalan Kaitselmuksen ihmeeseen. Jumala tietää sydämeni.


Hän näkee kaiken epätoivoni. Hän näkee koko tämän kuvan. Salliiko
hän kauhean asian tapahtua? Aljoša, minä uskon ihmeeseen, mene!

— Minä menen. Sano, odotatko sinä täällä?

— Odotan. Minä ymmärrän, ettei se käy pian, ettei voi tulla noin
vain ja mennä oikopäätä asiaan. Hän on nyt humalassa. Minä
odotan kolme tuntia taikka neljä taikka viisi taikka kuusi taikka
seitsemän, mutta tiedäkin, että tänään, vaikkapa sydänyöllä, menet
Katerina Ivanovnan luo rahojen kanssa tai ilman rahoja ja sanot:
käski sanoa teille terveisiä. Tahdon nimenomaan, että sanot tämän
lauselman: »Käski näet sanoa terveisiä.»
— Mitja! Entä jos yht'äkkiä Grušenjka tulee tänään… tai jos ei
tänään, niin huomenna tai ylihuomenna?

— Grušenjka? Pidän silmällä, hyökkään esille ja estän…

— Entä jos…

— Jos niin, niin tapan. Näin en voi elää.

— Kenet sinä tapat?

— Ukon. Grušenjkaa en tapa.

— Veli, mitä sinä puhut!

— Enhän tiedä, en tiedä… Kenties en tapa, kenties tapan.


Pelkään, että hänen kasvonsa käyvät äkkiä minulle vastenmielisiksi
sillä hetkellä. Minä vihaan hänen aataminpalaansa, hänen
nenäänsä, hänen silmiään, hänen häpeämätöntä pilkkaansa.
Tunnen persoonallista inhoa. Juuri sitä pelkään. Saattaa käydä niin,
että en voi hillitä itseäni…

— Minä menen, Mitja. Minä uskon Jumalan järjestävän niinkuin


hän parhaaksi näkee, ettei tapahtuisi kauheata.

— Ja minä istun ja odotan ihmettä. Mutta jos ei tapahdu, niin…

Aljoša lähti mietteissään isän luo.

6.

Smerdjakov
Hän tapasi isänsä todellakin vielä pöydässä. Pöytä oli, kuten aina,
katettu saliin, vaikka talossa oli myös varsinainen ruokasali. Tämä
sali oli talon suurin huone ja vanhanaikaisen komeasti kalustettu.
Kalusto oli hyvin vanha, valkoinen, ja sen vanha, punainen päällys
oli puolisilkkinen. Seinille ikkunoitten väliin oli asetettu kuvastimia,
joitten koreat kehykset oli koristettu vanhanaikaisilla leikkauksilla.
Nekin olivat valkeat ja kullalla koristetut. Seiniä peittivät valkoiset,
monin paikoin jo halkeilleet seinäpaperit, ja niitä koristi kaksi isoa
muotokuvaa. Toinen esitti jotakuta ruhtinasta, joka
kolmisenkymmentä vuotta sitten oli ollut sen seudun
kenraalikuvernöörinä, toinen jotakuta niinikään jo aikoja sitten
kuollutta piispaa. Etunurkassa oli muutamia pyhimyskuvia, joitten
eteen yöksi sytytettiin lamppu… ei niin paljon hartaudesta kuin sen
vuoksi, että huone olisi yöllä valaistu. Fjodor Pavlovitš kävi
tavallisesti kovin myöhään yöllä makaamaan, kello kolme tai neljä
aamulla, ja siihen asti hän tavallisesti kaiken aikaa käveli huoneessa
tai istui nojatuolissa mietiskellen. Se oli tullut hänelle tavaksi. Hän
vietti yönsä usein aivan yksin talossa ja lähetti palvelijat
sivurakennukseen, mutta enimmäkseen hänen luokseen yöksi jäi
palvelija Smerdjakov, joka nukkui eteisessä laatikkopenkillä. Aljošan
tullessa sisälle oli päivällinen jo lopussa ja pöytään oli tuotu hilloa ja
kahvia. Fjodor Pavlovitš nautti mielellään päivällisen jälkeen jotakin
imelää konjakin kanssa. Ivan Fjodorovitš oli myös pöydän ääressä ja
joi kahvia. Palvelijat, Grigori ja Smerdjakov, seisoivat pöydän luona.
Sekä herrat että palvelijat olivat selvästi erittäin hyvällä tuulella.
Fjodor Pavlovitš nauraa hohotti kovalla äänellä. Aljoša kuuli jo
eteiseen hänen vinkuvan, ennestään niin tutun naurunsa ja päätteli
heti naurun sävystä, että isä ei vielä ollut sanottavasti humalassa,
vaan toistaiseksi vain hellällä mielellä.
— Kas siinä on hänkin, siinä on hänkin! — uikutti Fjodor Pavlovitš
ilostuen yht'äkkiä suuresti Aljošan tulosta. — Yhdy joukkoomme, käy
istumaan, ota kahvia, — sehän on paastoruokaa, mutta kuumaa ja
hyvää! Konjakkia en tarjoa, sillä sinä paastoat, mutta ehkäpä tahdot?
Et, minä annan mieluummin sinulle likööriä, sinä oiva poika! —
Smerdjakov, käy kaapilla, toisella hyllyllä oikealla, tässä ovat
avaimet, pian!

Aljoša alkoi selitellä, että hän ei tahdo likööriä.

— Tuokoon joka tapauksessa, jos ei sinulle, niin meille, — puheli


Fjodor Pavlovitš säteilevänä. — Mutta maltahan, oletko syönyt
päivällisen vai etkö?

— Olen syönyt, — vastasi Aljoša, joka itse asiassa oli syönyt vain
palan leipää ja juonut lasin kaljaa igumenin keittiössä. — Kuumaa
kahvia minä juon mielelläni.

— Armas! Kelpo poika! Hän juo kahvia. Eikö sitä pitäisi


kuumentaa? Eihän, sehän on kiehuvaa. Mainiota kahvia,
Smerdjakovin tekemää. Tuossa on kahvia ja tuossa on piiraita.
Smerdjakov on taiteilija ja varsinkin kalakeiton laittamisessa, se on
totinen tosi. Tulehan joskus syömään kalakeittoa, ilmoita
edeltäpäin… Mutta kuulehan, kuulehan, minähän käskin äsken sinua
muuttamaan tänne jo tänään patjoinesi ja tyynyinesi? Toitko patjan
tullessasi? Hehehe!…

— En, en tuonut, — hymähti Aljošakin.

— Ahaa, pelästyit, pelästyitpä äsken, pelästyit? Voi sinua,


kyyhkyseni, minäkö voisin pahoittaa mieltäsi! Kuule, Ivan, minä en
voi nähdä hänen katsovan tuolla tavoin silmiin ja nauravan, en voi.
Kaikki sisälmykseni alkavat nauraa hänelle, minä rakastan häntä!
Aljoška, annahan kun siunaan sinua isän siunauksella.

Aljoša nousi seisomaan, mutta Fjodor Pavlovitš oli jo ennättänyt


muuttaa mieltään.

— Ei, ei, nyt teen ylitsesi ainoastaan ristinmerkin, kas näin,


istuudu. No, nyt saat hauskaa ja nimenomaan omasta aiheestasi.
Saat nauraa tarpeeksesi. Meillä on Bileamin aasintamma ruvennut
puhumaan, ja sepä vasta puhuu, sepä vasta puhuu!

Selville kävi, että Bileamin aasintamma oli palvelija Smerdjakov.


Hän oli vielä nuori mies, vain kahdenkymmenenneljän vuoden
ikäinen, mutta hirveän ihmisarka ja vaitelias. Ei niin, että hän olisi
ollut ujo tai hävennyt jotakin, ei, hän oli luonteeltaan päinvastoin
ylpeä ja tavallaan halveksi kaikkia. Mutta eipä voi olla mainitsematta
hänestä vaikkapa lyhyesti, ja se on tehtävä juuri nyt. Marfa
Ignatjevna ja Grigori Vasiljevitš kasvattivat häntä, mutta poika kasvoi
»ilman mitään kiitollisuutta», kuten Grigori hänestä lausui, ujoksi
pojaksi ja katsellen maailmaa nurkasta. Lapsena hän hyvin
mielellään hirtti kissoja ja sitten hautasi ne juhlamenoin. Hän pani
silloin ylleen lakanan, joka oli olevinaan jonkinmoinen papin viitta,
lauloi ja oli suitsuttavinaan pyhää savua. Tämän hän teki aina
kaikessa hiljaisuudessa, mitä suurimmassa salaisuudessa. Grigori
sai hänet kerran kiinni tämmöisestä hommasta ja antoi hänelle
vitsaa, niin että se teki kipeätä. Poika meni nurkkaan ja katseli sieltä
kulmiensa alta viikon verran. — Hän ei rakasta meitä, tuo peto, —
sanoi Grigori Marfa Ignatjevnalle, — eikä hän rakasta ketään. Oletko
sinä mikään ihminen, — kääntyi hän äkkiä suoraan Smerdjakovin
puoleen, — sinä et ole ihminen, sinä olet syntynyt saunan
märkyydestä, semmoinen sinä olet… — Smerdjakov ei, kuten
myöhemmin kävi selville, voinut koskaan antaa hänelle anteeksi
näitä sanoja. Grigori opetti hänet lukemaan ja hänen tultuaan
kahdentoista vuoden ikään alkoi opettaa hänelle raamatun historiaa.
Mutta asia päättyi kohta viemättä tuloksiin. Kerran, jo toisella tai
kolmannella oppitunnilla, poika äkkiä naurahti.

— Mitä sinä? — kysyi Grigori katsoen häneen ankarasti


silmälasiensa alta.

— En mitään. Maailman Herra Jumala loi ensimmäisenä päivänä,


mutta auringon, kuun ja tähdet neljäntenä päivänä. Mistä valo sitten
loisti ensimmäisenä päivänä?

Grigori hämmästyi. Poika katseli ivallisesti opettajaansa. Hänen


katseessaan oli jotakin ylimielistäkin. Grigori ei jaksanut hillitä
itseään. — Täältä se loisti! — huudahti hän ja löi vimmoissaan
oppilasta korvalle. Poika kesti korvapuustin sanaakaan sanomatta,
mutta painautui taas nurkkaan muutamaksi päiväksi. Sattui niin, että
viikon kuluttua hänessä ilmeni kaatuvatauti ensimmäisen kerran,
eikä se sittemmin jättänyt häntä koko elämän aikana. Tästä
kuultuaan Fjodor Pavlovitš näytti ikäänkuin muuttaneen mieltä
poikaan nähden. Ennen hän oli katsellut poikaa jokseenkin
välinpitämättömästi, vaikkakaan ei koskaan torunut häntä, ja
kohdatessaan hän oli aina antanut pojalle kopeekan. Hellällä päällä
ollessaan hän oli toisinaan lähettänyt pojalle pöydästään jotakin
makeata. Mutta nyt, saatuaan tiedon taudista, hän alkoi todenteolla
huolehtia pojasta, kutsutti lääkärin ja hankki hoitoa, mutta tauti
osoittautui mahdottomaksi parantaa. Kohtauksia sattui keskimäärin
kerran kuussa ja eri aikoina. Ne olivat myös erivoimaisia, — toiset
lieviä, toiset erittäin ankaria. Fjodor Pavlovitš kielsi hyvin ankarasti
Grigoria antamasta pojalle ruumiillista rangaistusta ja alkoi päästää
häntä luokseen ylös. Niinikään hän kielsi toistaiseksi antamasta
pojalle minkäänlaista opetusta. Mutta kerran, kun poika jo oli
viidentoista vuoden ikäinen, Fjodor Pavlovitš huomasi hänen
liikuskelevan kirjakaapin luona ja lukevan lasin läpi kirjojen nimiä.
Fjodor Pavlovitšilla oli koko joukko kirjoja, toista sataa nidettä, mutta
häntä itseään ei kukaan ollut nähnyt kirjan ääressä. Hän antoi heti
kirjakaapin avaimen Smerdjakoville: — No, lue sitten, saat ruveta
kirjaston hoitajaksi. Sen sijaan, että vetelehdit pihalla, istu ja lue. Lue
tämä, — ja Fjodor Pavlovitš antoi hänelle kaapista Illat maatalossa
Dikanjkan luona.

Poika luki kirjan, mutta oli tyytymätön, ei naurahtanut kertaakaan,


vaan päinvastoin loppuun päästyään rypisti kulmiaan.

— Mitä? Eikö se naurata? — kysyi Fjodor Pavlovitš.

Smerdjakov oli vaiti.

— Vastaa, hölmö.

— Se on kaikki valetta, — mutisi Smerdjakov hymyillen.

— Mene hiiteen, sinä olet alhainen sielu. Seis, tässä on


Smaragdovin Yleinen historia, siinä on kaikki totta, lue se.

Mutta Smerdjakov ei lukenut Smaragdovia kymmentä sivuakaan,


sillä se tuntui ikävältä. Niinpä kirjakaappi taas sulkeutui. Pian Marfa
ja Grigori ilmoittivat Fjodor Pavlovitšille, että Smerdjakoviin oli
vähitellen ilmaantunut jonkinmoinen kauhea nirsous: hän istuu
liemiastian ääressä, ottaa lusikan ja etsii etsimistään jotakin
liemestä, kumartuu, tirkistelee, ottaa lusikkaan ja nostaa valoa
vastaan.
Torakkako siellä on vai mikä? — kysyy Grigori.

— Kenties kärpänen, — huomauttaa Marfa.

Puhtautta rakastava nuorukainen ei koskaan vastannut, mutta


leivälle ja lihalle ja kaikille ruoille hän teki samoin: nosti palasen
haarukalla valoa kohti, tarkasteli kuin mikroskoopilla, tavallisesti
pitkän ajan, vihdoin viimein katsoi voivansa pistää suuhunsa. »Kas
vain, millainen herra tänne on ilmestynyt», mutisi Grigori häntä
katsellessaan. Kuultuaan Smerdjakovin uudesta ominaisuudesta
Fjodor Pavlovitš päätti heti, että miehestä on tehtävä kokki, ja lähetti
hänet oppiin Moskovaan. Opissa hän oli muutamia vuosia ja
palatessaan hän oli suuresti muuttunut kasvoiltaan. Hän oli äkkiä
luonnottomasti vanhentunut, niin että se ei ollenkaan ollut
sopusoinnussa hänen ikänsä kanssa, oli tullut ryppyiseksi,
keltaiseksi, kuohilaan näköiseksi. Moraalisesti hän oli palatessaan
melkein samanlainen kuin ennen Moskovaan lähtöään: hän oli
edelleen yhtä ihmisarka eikä tuntenut pienintäkään tarvetta etsiä
kenenkään seuraa. Hän oli Moskovassakin, kuten myöhemmin
kerrottiin, aina ollut vaiti. Itse Moskova näytti perin vähässä
määrässä kiinnostaneen häntä, niin että hän tunsi siitä vain joitakin
asioita, mutta mihinkään muuhun hän ei ollut edes kiinnittänyt
huomiota. Kerran hän oli ollut teatterissakin, mutta palannut sieltä
äänettömänä ja tyytymättömänä. Sen sijaan hän oli Moskovasta
luoksemme palatessaan hyvin puettu, hänellä oli puhdas takki ja
puhtaat liinavaatteet, hän puhdisti itse harjalla hyvin huolellisesti
pukunsa säännöllisesti kaksi kertaa päivässä ja hän puhdisti
vasikannahkaisia, komeita saappaitaan hyvin mielellään
erikoislaatuisella englantilaisella vahalla, niin että ne kiilsivät kuin
peili. Hän osoittautui erinomaisen hyväksi kokiksi. Fjodor Pavlovitš
määräsi hänelle palkan, ja tämän palkkansa Smerdjakov käytti miltei
kokonaan vaatteisiin, hiusvoiteeseen, hajuvesiin j.n.e. Mutta
naisväkeä hän näytti halveksivan aivan yhtä paljon kuin miehiäkin,
esiintyi naisten seurassa arvokkaasti, miltei luoksepääsemättömänä.
Fjodor Pavlovitš alkoi katsella häntä eräältä toiseltakin näkökannalta.
Seikka oli semmoinen, että Smerdjakovin kaatuvataudin kohtaukset
olivat tulleet ankarammiksi, ja semmoisina päivinä valmisti ruoan
Marfa Ignatjevna, mikä ei ollenkaan ollut mieluisaa Fjodor
Pavlovitšista.

— Miksi sinulla on kohtauksia useammin? — sanoi hän toisinaan


nyrpeästi uudelle kokilleen katsoen häntä kasvoihin. — Jospa
menisit naimisiin jonkun kanssa, tahdotko, että naitan?…

Nämä puheet saivat Smerdjakovin vain kalpenemaan harmista,


mutta hän ei vastannut mitään. Fjodor Pavlovitš viittasi kädellään ja
meni tiehensä. Pääasia oli, että hän oli kerta kaikkiaan vakuutettu
Smerdjakovin rehellisyydestä, siitä, että tämä ei mitään ota eikä
varasta. Tapahtui kerran, että Fjodor Pavlovitš juovuksissa pudotti
omalle pihalleen lokaan kolme sadan ruplan seteliä, jotka hän juuri
oli saanut, ja kaipasi niitä vasta seuraavana päivänä. Juuri kun hän
oli alkanut etsiä niitä taskuistaan, hän huomasikin, että kaikki kolme
seteliä olivat pöydällä. Mistä? Smerdjakov oli löytänyt ne maasta ja
tuonut jo eilen. — No, veikkoseni, tuommoisia kuin sinä en ole
nähnytkään, — lausahti silloin Fjodor Pavlovitš ja lahjoitti hänelle
kymmenen ruplaa. On lisättävä, ettei hän vain ollut vakuutettu
Smerdjakovin rehellisyydestä, vaan jostakin syystä myös piti
hänestä, vaikka nuorukainen katseli häntäkin kulmiensa alta niinkuin
muitakin eikä koskaan puhunut. Vain harvoin hän sanoi jotakin. Jos
tuohon aikaan jonkun päähän olisi pistänyt häntä katsellessaan
kysyä: mikä herättää tuossa nuoressa miehessä mielenkiintoa ja
mitä hänellä on useimmin mielessä, niin todellakin olisi ollut
mahdotonta saada siitä selvää katsomalla häntä. Ja kuitenkin hän
toisinaan kotona tai myös pihalla ja kadulla pysähtyi, vaipui
mietteisiinsä ja seisoi näin kymmenkunta minuuttiakin. Fysionomisti
olisi häntä katsellessaan sanonut, että tässä ei ole mitään mietteitä
eikä ajatuksia, vaan jonkinmoista itseensä vaipumista. Maalari
Kramskoi on maalannut huomattavan taulun, jonka nimi on Itseensä
vaipunut: siinä on kuvattu talvinen metsä, ja metsässä seisoo tiellä
risaisessa nutussa ja tallukoissa aivan yksinään kokonaan erillään
muusta maailmasta syrjään poikennut talonpoika. Seisoo ja on
ikäänkuin mietteissään, mutta ei ajattele, vaan on »vaipunut
itseensä». Jos häntä nykäisisi, niin hän hätkähtäisi ja katsoisi aivan
kuin heräten, mutta mitään ymmärtämättä. Tosin hän kohta tajuaisi
kaiken, mutta jos häneltä kysyttäisiin, mitä hän siinä seisoessaan
ajatteli, niin hän varmaankaan ei muistaisi mitään, mutta sen sijaan
hän varmaankin kätkisi mieleensä sen vaikutelman, jonka alaisena
hän oli ollessaan itseensä syventyneenä. Nämä vaikutelmat ovat
hänelle kalliita, ja varmaankin hän niitä kokoaa, huomaamattaan ja
tiedottomasti, — mitä varten ja miksi, sitä hän ei tietysti itsekään
tiedä: kenties hän äkkiä, koottuaan monien vuosien vaikutelmat,
jättää kaikki ja menee pyhiinvaellukselle Jerusalemiin etsimään
sielulleen pelastusta, tai kenties yht'äkkiä polttaa poroksi kotikylänsä,
saattaapa samalla kertaa tehdä kumpiakin. Itseensä-vaipujia on
kansassa melkoinen määrä. Yksi noita itseensä-vaipujia on
luultavasti myös Smerdjakov, ja luultavasti hänkin kokosi
vaikutelmiaan ahneesti tietämättä juuri itsekään, miksi teki niin.

7.

Kiista
Mutta Bileamin aasintamma oli äkkiä alkanut puhua. Sattui
omituinen aihe: ollessaan aamulla kauppias Lukjanovin puodissa
ostoksilla kuuli Grigori tältä kertomuksen eräästä venäläisestä
sotamiehestä, joka jossakin kaukana rajalla joutui aasialaisten
vangiksi ja jota nämä pakottivat uhkaamalla kidutusta ja kuolemaa
luopumaan kristinuskosta ja kääntymään islamiin, mutta joka ei
suostunut luopumaan uskostaan, vaan antautui kärsimyksiin, antoi
nylkeä itseltään nahan ja kuoli kiittäen ja ylistäen Kristusta. Tästä
urotyöstä oli kerrottu juuri sinä päivänä saapuneessa
sanomalehdessä. Grigori rupesi puhumaan siitä pöydässä. Fjodor
Pavlovitš oli ennenkin joka kerta aterioituaan ja jälkiruokaa
nauttiessaan mielellään naureskellut ja puhellut, jos ei muiden, niin
vaikkapa Grigorin kanssa. Tällä kertaa hän oli kevyellä ja hauskasti
vilkkaalla mielellä. Maistellessaan konjakkiaan hän kuultuaan
kertomuksen huomautti, että sellaisesta sotamiehestä pitäisi heti
tehdä pyhimys ja nyljetty nahka olisi vietävä johonkin luostariin:
»Sinnepä vasta tulvisi väkeä ja rahaa.» Grigori rypisti kulmiaan
huomatessaan, ettei Fjodor Pavlovitš ollut ollenkaan tullut
liikutetuksi, vaan alkoi ainaisen tapansa mukaisesti pilkata. Silloin
äkkiä oven luona seisova Smerdjakov naurahti. Smerdjakovin oli
sangen usein ennenkin sallittu seisoa pöydän läheisyydessä
päivällisen lopulla. Siitä asti kuin Ivan Fjodorovitš oli saapunut
kaupunkiimme, oli Smerdjakov alkanut tulla päivälliselle melkein joka
kerta.

— Mitäs sinä? — kysyi Fjodor Pavlovitš, joka oli heti huomannut


naurahduksen ja ymmärtänyt, että se tietysti tarkoitti Grigoria.

— Sitähän minä, — alkoi äkkiä Smerdjakov aivan odottamatta


puhua kovalla äänellä, — että vaikka tuon kiitosta ansaitsevan
sotamiehen sankarityö olikin sangen suuri, niin ei kuitenkaan minun
mielestäni olisi siinä ollut mitään syntiä, jos hän tässä tapauksessa
olisikin kieltänyt esimerkiksi Kristuksen nimen ja luopunut
kasteestaan pelastaakseen sillä tavoin henkensä hyviä töitä varten,
joilla hän vuosien kuluessa sitten olisi sovittanut pelkuruutensa.

— Kuinka ei olisi ollut synti? Puhut joutavia, sentähden joudutkin


suoraan helvettiin ja siellä sinua käristetään kuin lampaanlihaa, —
tokaisi Fjodor Pavlovitš.

Juuri silloin Aljoša astui sisälle. Fjodor Pavlovitš, kuten olemme


nähneet, ilostui suuresti Aljošan tulosta.

— Sinun aiheestasi, sinun aiheestasi! — nauraa hihitti hän iloisesti


käskiessään Aljošaa istumaan ja kuuntelemaan.

— Mitä sanoitte lampaanlihasta, niin se ei ole sillä tavoin eikä


siellä siitä mitään tule eikä pidäkään tulla sellaista oikeuden ja
kohtuuden mukaan, — huomautti Smerdjakov lujasti.

— Kuinka niin oikeuden ja kohtuuden mukaan, — huudahti Fjodor


Pavlovitš vielä iloisemmin ja töytäisi Aljošaa polvellaan.

— Konna hän on, se hän on! — lausui äkkiä Grigori. Hän katsoi
vihaisesti Smerdjakovia suoraan silmiin.

— Mitä konnaan tulee, niin malttakaahan mielenne, Grigori


Vasiljevitš, — lausui Smerdjakov tyynesti ja hillitysti. — Ajatelkaa
mieluummin itse, että jos minä olen joutunut kristittyjen ihmisten
kiduttajain vangiksi ja he vaativat minua kiroamaan Jumalan nimen
sekä luopumaan pyhästä kasteesta, niin minulle antaa siihen täyden
valtuuden oma järkeni, sillä mitään syntiä siitä ei tule.
— Johan sinä olet sen sanonut, älä kuvaile, vaan todista! — huusi
Fjodor Pavlovitš.

— Senkin liemenkeittäjä! — kuiskasi Grigori halveksivasti.

— Mitä tulee liemenkeittäjään, niin malttakaa siihenkin nähden


mielenne, Grigori Vasiljevitš, älkääkä haukkuko, vaan ajatelkaa itse.
Sillä heti kun sanon kiduttajille: »Ei, minä en ole kristitty ja minä
kiroan totisen Jumalan», niin samassa minusta Jumalan korkeimman
tuomion kautta tulee heti ja erityisesti anateema kirottu ja pyhästä
kirkosta erotettu, aivan kuin muukalaispakana, vieläpä niin, että
samalla hetkellä kuin sen lausun, tai oikeastaan kun vain aionkin sen
lausua, joten siinä ei kulu neljännessekuntiakaan, niin olen jo
erotettu, onko niin vai eikö, Grigori Vasiljevitš?

Hän kääntyi ilmeisellä mielihyvällä Grigorin puoleen, vaikka itse


asiassa vastasi vain Fjodor Pavlovitšin kysymyksiin ja varsin hyvin
ymmärsi sen, puhuen tahallaan niinkuin nämä kysymykset olisi
hänelle tehnyt Grigori.

— Ivan! — huudahti äkkiä Fjodor Pavlovitš. — Taivuta pääsi aivan


korvani luo. Hän on kaiken tämän keksinyt sinun takiasi, tahtoo, että
sinä häntä kehuisit. Kehu!

Ivan Fjodorovitš kuunteli aivan vakavana isänsä innostunutta


puhetta.

— Seis, Smerdjakov, ole vaiti vähän aikaa, — huudahti taas


Fjodor
Pavlovitš. — Ivan, kallista taas pääsi aivan lähelleni.
Ivan Fjodorovitš taivutti uudelleen päätään hyvin totisen
näköisenä.

— Minä rakastan sinua samoin kuin Aljoškaakin. Älä luule, että en


rakasta sinua. Saako olla konjakkia?

— Antakaa. »Näytpä itse jo olevan aikalailla pätkässä», — ajatteli


Ivan Fjodorovitš katsellen tarkasti isäänsä. Smerdjakovia taas hän
tarkasteli erittäin uteliaana.

— Sinä olet jo nytkin anateema kirottu, — puhkesi Grigori äkkiä


puhumaan, — ja kuinka sinä, konna, sen jälkeen uskallat arvostella,
jos…

— Älä toru, Grigori, älä toru! — keskeytti Fjodor Pavlovitš.

— Odottakaa te, Grigori Vasiljevitš, vaikkapa vain hyvin vähän


aikaa, ja kuunnelkaa jatkoa, sillä minä en ole vielä puhunut kaikkea
loppuun. Samassa kuin Jumala on minut viipymättä kironnut, sinä
samana korkeana hetkenä minusta on näet tullut aivan kuin
muukalaispakana, ja kasteeni on minusta otettu pois ja muuttunut
mitättömäksi, — onko edes tämä oikein puhuttu?

— Puhu pian loppuun, veliseni, puhu loppuun, — hoputti Fjodor


Pavlovitš ottaen mielihyvällä kulauksen ryyppylasistaan.

— Jos kerran en enää ole kristitty, niin siis en valehdellut


kiduttajille, kun he kysyivät: »Olenko kristitty vai enkö», sillä itse
Jumala on poistanut minusta kristillisyyden jo pelkän aikeeni
perusteella ja ennenkuin olen ennättänyt lausua sanaakaan
kiduttajille. Mutta jos minut jo on joukosta erotettu, niin kuinka ja millä
oikeudella minulta kysytään toisessa maailmassa aivan kuin
kristityltä, miksi olen luopunut Kristuksesta, kun jo pelkän
aikomuksen tähden, ennenkuin mitään luopumista olikaan, minut
erotettiin kasteestani? Jos kerran en ole kristitty, niin en myöskään
voi luopua Kristuksesta, sillä eihän minulla silloin ole, mistä
luopuisin. Kuka vaatii edesvastuuseen pakanan tataarilaisen, Grigori
Vasiljevitš, vaikkapa taivaassakin, siitä, että hän ei syntynyt
kristityksi, ja kuka häntä siitä rankaisee, jos nimittäin ajatellaan, että
yhdestä härästä ei nyljetä kahta nahkaa. Ja jos itse Jumala
Kaikkivaltias vaatii tataarilaisen tilille tämän kuoltua, niin luullakseni
hän määrää jonkin kaikkein pienimmistä rangaistuksista (sillä eihän
häntä voi jättää kokonaan rankaisematta) ottaen huomioon, että
eihän ole hänen syynsä, jos hän on tullut pakanallisista
vanhemmista pakanana maailmaan. Eihän Herra Jumala voi ottaa
väkisin tataarilaista ja sanoa hänestä, että hänkin oli kristitty? Sehän
merkitsisi, että Jumala Kaikkivaltias puhuisi silkkaa valhetta. Mutta
voiko Jumala, taivaan ja maan valtias, lausua valheen, vaikkapa vain
yhdessä sanassa?

Grigori oli kuin jähmettynyt ja katseli puhujaa silmät selällään.


Vaikka hän ei hyvin ymmärtänytkään mitä puhuttiin, niin jotakin tästä
sekasotkusta hän yht'äkkiä kuitenkin käsitti ja jäi seisomaan sen
näköisenä kuin mies, joka äkkiarvaamatta on lyönyt otsansa
seinään. Fjodor Pavlovitš joi lasinsa pohjaan ja alkoi nauraa
vinkuvaa nauruaan.

— Aljoška, Aljoška, mitäs arvelet! Voi sinua, senkin kasuisti! Hän


on ollut jesuiittain opissa jossakin, Ivan. Voi sinua, löyhkäävä
jesuiitta, kuka sinua on opettanut? Mutta sinä puhut roskaa, kasuisti,
roskaa, paljasta roskaa. Älä itke, Grigori, tuossa paikassa me
iskemme hänet tomuksi ja tuhaksi. Sanopa minulle tämä, sinä
aasintamma: olkoonpa, että olet kiduttajien edessä oikeassa, mutta
itsesi edessähän sinä kuitenkin olet luopunut uskostasi ja sanot
itsekin, että olit sillä hetkellä anateema kirottu, mutta jos kerran olet
anateema, niin eipä tämän anateeman vuoksi silitetä päätäsi
helvetissä. Mitä sinä tästä ajattelet, oiva jesuiittani?

— Ei ole epäilemistäkään, etten olisi itseni edessä luopunut, mutta


ei siinä kuitenkaan ollut mitään erikoissyntiä, vaan jos minkä verran
syntiä oli, niin se oli kaikkein tavallisinta laatua!

— Millä tavoin kaikkein tavallisinta laatua!

— Valehtelet, kirottu lurjus, — sähisi Grigori.

— Ajatelkaahan itse, Grigori Vasiljevitš, — jatkoi Smerdjakov


tasaisesti ja arvokkaasti, tuntien olevansa voiton puolella, mutta
ikäänkuin osoittaen jalomielisyyttä nujerrettua vastustajaa kohtaan,
— ajatelkaahan itse, Grigori Vasiljevitš: onhan Sanassa sanottu, että
jos teillä on uskoa vaikkapa kaikkein pienimmän siemenen verran ja
te sanotte tälle vuorelle, että se siirtyisi mereen, niin se siirtyy
vähääkään viipymättä heti käskettyänne. Mitäs, Grigori Vasiljevitš,
jos minä olen epäuskoinen, mutta te olette niin uskovainen, että
lakkaamatta torutte minuakin, niin koettakaahan itse sanoa tälle
vuorelle, että se siirtyisi ei mereen (sillä mereen on täältä pitkä
matka), vaan vaikkapa haisevaan jokeemme, joka virtaa tuossa
puutarhamme takana, niin saattepa nähdä itse sillä samalla hetkellä,
että mikään ei siirrykään, vaan kaikki jää entiseen kuntoon ja
eheäksi, huutakaapa miten paljon tahansa. Mutta tämä merkitsee
sitä, että tekään ette usko, Grigori Vasiljevitš, oikealla tavalla, vaan
haukutte ainoastaan muita siitä kaikin tavoin. Jos taasen otamme
lukuun sen, ettei kukaan meidän aikanamme, ette vain te, vaan ei
kerrassaan kukaan, alkaen kaikkein korkeimmista henkilöistä aina
viimeiseen talonpoikaan asti, voi siirtää vuoria mereen, paitsi ehkä
yksi ainoa mies koko maan päällä tai enintään kaksi, ja nämäkin
kenties ovat jossakin Egyptin erämaassa kaikessa salaisuudessa
sieluansa pelastamassa, niin että heitä ei ollenkaan voi löytää, — jos
on näin, jos kaikki muut siis ovat epäuskoisia, niin tokkohan Jumala
kiroaa kaikki nuo muut, toisin sanoen koko maan asujaimiston,
lukuunottamatta noita paria erakkoa, eikä armossansa, joka on
kaikille tunnettu, anna kenellekään heistä anteeksi? Senpä vuoksi
minä luotankin siihen, että jos kerran olen epäillyt, niin minulle
annetaan anteeksi, kun vuodatan katumuksen kyyneliä.

— Seis! — vikisi Fjodor Pavlovitš, ja hänen ihastuksensa kohosi


huippuunsa. — Sinä siis kuitenkin otaksut, että on olemassa pari
sellaista, jotka voivat siirtää vuoria? Ivan, vedä risti seinään, kirjoita
muistiin: tuossa ilmeni venäläinen ihminen kokonaisuudessaan!

— Huomautitte aivan oikein, että tämä on kansallinen piirre


uskossa, — myönsi Ivan Fjodorovitš hymyillen hyväksyvästi.

— Sinä myönnät! Siis se on niin, kun kerran sinäkin olet samaa


mieltä!
Aljoša, onhan se totta? Sehän on täysin venäläistä uskoa?

— Ei, Smerdjakovin usko ei ole ollenkaan venäläistä, — lausui


Aljoša vakavasti ja lujasti.

— En minä puhu hänen uskostaan, vaan tuosta piirteestä, noista


kahdesta erakosta, vain tuosta yhdestä piirteestä: sehän on
venäläistä, venäläistä?

— Niin, se piirre on aivan venäläinen, — hymähti Aljoša.


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