100% found this document useful (3 votes)
86 views49 pages

Instant Access To (Ebook PDF) Fundamentals of C# Programming For Information Systems 2nd Edition Ebook Full Chapters

Fundamentals

Uploaded by

rajawgreksa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
86 views49 pages

Instant Access To (Ebook PDF) Fundamentals of C# Programming For Information Systems 2nd Edition Ebook Full Chapters

Fundamentals

Uploaded by

rajawgreksa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 49

Download the full version of the ebook now at ebooksecure.

com

(eBook PDF) Fundamentals of C# Programming


for Information Systems 2nd Edition

https://ebooksecure.com/product/ebook-pdf-
fundamentals-of-c-programming-for-information-
systems-2nd-edition-2/

Explore and download more ebook at https://ebooksecure.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

(eBook PDF) Fundamentals of C# Programming for Information


Systems 2nd Edition

https://ebooksecure.com/product/ebook-pdf-fundamentals-of-c-
programming-for-information-systems-2nd-edition-2/

ebooksecure.com

(eBook PDF) Fundamentals of Information Systems 9th


Edition

https://ebooksecure.com/product/ebook-pdf-fundamentals-of-information-
systems-9th-edition/

ebooksecure.com

(eBook PDF) Fundamentals of Information Systems 8th


Edition

https://ebooksecure.com/product/ebook-pdf-fundamentals-of-information-
systems-8th-edition/

ebooksecure.com

(eBook PDF) Chronic Liver Disease From Molecular Biology


to Therapy

https://ebooksecure.com/product/ebook-pdf-chronic-liver-disease-from-
molecular-biology-to-therapy/

ebooksecure.com
(eBook PDF) Strategy: An International Perspective, 7th
Edition

https://ebooksecure.com/product/ebook-pdf-strategy-an-international-
perspective-7th-edition-2/

ebooksecure.com

The Newborn Lung: Neonatology Questions and Controversies


3rd Edition Eduardo Bancalari - eBook PDF

https://ebooksecure.com/download/the-newborn-lung-neonatology-
questions-and-controversies-ebook-pdf/

ebooksecure.com

Emerging nanotechnologies in food science 1st Edition


Busquets - eBook PDF

https://ebooksecure.com/download/emerging-nanotechnologies-in-food-
science-ebook-pdf/

ebooksecure.com

ASTRO 3: Introductory Astronomy 3rd Edition Michael A.


Seeds - eBook PDF

https://ebooksecure.com/download/astro-3-introductory-astronomy-ebook-
pdf-2/

ebooksecure.com

(eBook PDF) Communication Research Statistics

https://ebooksecure.com/product/ebook-pdf-communication-research-
statistics/

ebooksecure.com
Kuby Immunology 7th Edition by Judy Owen (eBook PDF)

https://ebooksecure.com/product/kuby-immunology-7th-edition-by-judy-
owen-ebook-pdf/

ebooksecure.com
6.5 Getting User Input from Controls ................................................................................................... 183
6.6 Working with ComboBoxes............................................................................................................ 186
6.7 Working with ListBoxes ................................................................................................................. 196
6.8 Windows Presentation Foundation (WPF) ..................................................................................... 201
Exercises ............................................................................................................................................... 203
Chapter 7: Arrays ................................................................................................205
7.1 Introduction to One-Dimensional Arrays ....................................................................................... 205
Tutorial 1: Working with 1-D Arrays: Test Scores Application ........................................................... 208
7.2 Assigning a Value to an Element of an Array................................................................................. 211
7.3 Accessing Elements of an Array Using the Index .......................................................................... 212
7.4 Accessing Elements of an Array Using the foreach Loop .............................................................. 215
7.5 Copying an Array............................................................................................................................ 217
7.6 Looking Up Values in an Array ...................................................................................................... 221
Tutorial 2: Lookup Units Sold Using 1-D Arrays................................................................................. 222
Exercises ............................................................................................................................................... 224
Chapter 8: Sequential Files and Arrays.............................................................226
8.1 Introduction to Text Files................................................................................................................ 226
Tutorial 1: Reading Text Files .............................................................................................................. 229
8.2 Splitting a Row: Split Method ........................................................................................................ 231
8.3 Reading Data from Files into Arrays .............................................................................................. 234
8.4 Additional Methods of Arrays ........................................................................................................ 241
Tutorial 2: Looking Up Phone Numbers Using Arrays ........................................................................ 242
Tutorial 3: Using a ComboBox to Select the Search Name .................................................................. 246
8.5 Writing to Text Files ....................................................................................................................... 248
Tutorial 4: Writing Scores to Text File ................................................................................................. 248
8.6 SaveFileDialog Control .................................................................................................................. 255
8.7 Passing Arrays to Methods ............................................................................................................. 259
Tutorial 5: Passing Arrays to Compute Average .................................................................................. 259
8.8 Two-Dimensional (2-D) Arrays ...................................................................................................... 263
Tutorial 6: 2-D Array to Find the Sales for a Product........................................................................... 267
Exercises ............................................................................................................................................... 271
Rentals Assignment 2 ........................................................................................................................... 272
Help Desk Assignment 2 ...................................................................................................................... 274
Chapter 9: Collections .........................................................................................276
9.1 Introduction to Collections.............................................................................................................. 276
9.2 List<T> Collection .......................................................................................................................... 278
Tutorial 1: Looking Up Sales Data Using a List ................................................................................... 279
9.3 Dictionary<TKey, TValue> Collection .......................................................................................... 285
Tutorial 2: Dictionary with Product# as Key and Price as Value ......................................................... 287
Tutorial 3: Dictionary with Product# as Key and Sales Array as Value ............................................... 293
Exercises ............................................................................................................................................... 297
Chapter 10: Graphical User Interface: Additional Controls...........................298
10.1 ListView: Features ........................................................................................................................ 298
10.2 Adding Items to ListView ............................................................................................................. 299
Tutorial 1: Selecting a Show from a ListView ..................................................................................... 302
10.3 Accessing Data from a ListView .................................................................................................. 302
10.4 Forms with Tab Pages ................................................................................................................... 308
Tutorial 2: Multipage Form with TabControl ....................................................................................... 308
Exercises ............................................................................................................................................... 310
Chapter 11: Multi-form Applications and Menus ............................................312
11.1 Introduction ................................................................................................................................... 312
11.2 Accessing an Existing Form from Another................................................................................... 313
Tutorial 1: Multi-form Financial Planning Application ........................................................................ 315
11.3 Sharing a Method between Multiple Forms .................................................................................. 318
Tutorial 2: Sharing the LoadDictionary Method between Forms ......................................................... 319
11.4 Closing a Parent Form .................................................................................................................. 325
11.5 Menus............................................................................................................................................ 328
11.6 ToolStrips...................................................................................................................................... 332
Exercises ............................................................................................................................................... 334
Chapter 12: Databases .........................................................................................335
12.1 Introduction ................................................................................................................................... 336
12.2 Creating Database Objects ............................................................................................................ 336
Tutorial 1: Display Employee Records Using the Wizard .................................................................... 337
12.3 Displaying Data in a DataGridView ............................................................................................. 340
12.4 Accessing Data Items from a DataGridView ................................................................................ 346
12.5 Displaying Data in Details View .................................................................................................. 349
12.6 Finding the Record for a Selected Key ......................................................................................... 351
Tutorial 2: Find Employee Records Using the Wizard ......................................................................... 352
12.7 Selecting a Group of Records Using the Binding Source ............................................................. 356
12.8 Selecting Records Using the Table Adapter ................................................................................. 362
Tutorial 3: Parameter Query to Select Records..................................................................................... 363
12.9 Untyped Datasets: Displaying Records......................................................................................... 365
Tutorial 4: Display Records Using Untyped Datasets .......................................................................... 366
12.10 Untyped Datasets: Selecting Records ......................................................................................... 375
Tutorial 5: Select Records Using Untyped Datasets ............................................................................. 377
12.11 Untyped Datasets: Add/Edit/Delete Records .............................................................................. 384
Tutorial 6: Add/Edit/Delete Using Untyped Datasets........................................................................... 385
12.12 Command Object and DataReader .............................................................................................. 394
Tutorial 7: SqlCommand and SqlDataReader to Work with Tables ..................................................... 396
Exercises ............................................................................................................................................... 405
Rentals Assignment 3 ........................................................................................................................... 407
Help Desk Assignment 3 ...................................................................................................................... 407
Chapter 13: Object-Oriented Programming .....................................................414
13.1 Introduction to Objects and Classes .............................................................................................. 415
13.2 Classes versus Objects .................................................................................................................. 415
13.3 Information Hiding (Encapsulation) ............................................................................................. 417
Tutorial 1: Create an Employee Class................................................................................................... 419
13.4 Properties ...................................................................................................................................... 423
Tutorial 2: User Interface and Properties .............................................................................................. 426
13.5 Calling Methods (Sending Messages to Objects) ......................................................................... 434
Tutorial 3: Calling Methods and Passing Data between Forms ............................................................ 435
Exercises ............................................................................................................................................... 448
Chapter 14: Inheritance ......................................................................................450
14.1 Introduction to Inheritance ............................................................................................................ 451
14.2 Implementing Inheritance ............................................................................................................. 452
Tutorial 1: Creating Subclasses ............................................................................................................ 454
14.3 Using Subclasses and Super Classes............................................................................................. 458
14.4 Overriding Methods ...................................................................................................................... 459
Tutorial 2: Implementing the GrossPay Method................................................................................... 462
14.5 Polymorphism ............................................................................................................................... 467
Tutorial 3: Dynamic Dispatch and the ToString Method...................................................................... 468
14.6 Abstract Classes and Interfaces..................................................................................................... 472
Tutorial 4: Interfaces ............................................................................................................................. 473
14.7 Using Interfaces to Sort Collections ............................................................................................. 480
Tutorial 5: Sorting Employees .............................................................................................................. 483
14.8 Access Modifiers in C# ................................................................................................................. 486
Exercises ............................................................................................................................................... 488
Chapter 15: Introduction to Web Applications Development .........................491
15.1 Introduction to Web Applications ................................................................................................. 491
15.2 Creating a Single-Page ASP.NET Website................................................................................... 496
Tutorial 1: Developing a Simple Web Page: Ice Cream Cost ............................................................... 496
15.3 Introduction to HTML .................................................................................................................. 502
15.4 Working with Web Server Controls.............................................................................................. 506
15.5 Validating Data Using Validation Controls .................................................................................. 517
Exercises ............................................................................................................................................... 522
Chapter 16: Web Development: Multipage and Database Applications.......523
16.1 Accessing Databases from Web Forms ........................................................................................ 523
Tutorial 1: Accessing a Database: Theater Tickets Application ........................................................... 524
16.2 Preserving Data during Postbacks Using View State ................................................................... 538
16.3: Multipage Websites and Session State ........................................................................................ 543
16.4 Setting a Page to Its Previous State ............................................................................................... 551
Exercises ............................................................................................................................................... 557
Appendix A: Binary Files ....................................................................................559
A.1 Writing to Binary Files .................................................................................................................. 559
Tutorial: Working with Binary Files ..................................................................................................... 559
A.2 Reading Binary Files ...................................................................................................................... 560
Appendix B: Creating a Database ......................................................................562
Tutorial: Creating HR Database............................................................................................................ 562
Appendix C: Answers to Review Questions ......................................................564
Appendix D: HTML Elements ............................................................................584
Index ......................................................................................................................586
Preface
Mission of the Text
Welcome to Fundamentals of C# Programming for Information Systems. This book teaches the
fundamentals of programming in C# to provide a solid foundation to build business and other real-world
applications. Programming concepts are discussed in the context of familiar practical applications that use
graphical interfaces.

New to This Edition


A key goal of the new edition was to add significant content so that the book could be used in a two-
course sequence in programming. Four new chapters have been added: Two chapters that provide a
comprehensive introduction to web applications development, and two other chapters on the concepts and
practice of object-oriented programming, including inheritance.
Several other updates were made based on feedback from instructors: a second set of three comprehensive
assignments (in chapters 3, 8, and 12), additional end-of-chapter exercises, and learning objectives for
each chapter.

Target Audience
This book is designed for introductory programming courses in IS/MIS, CIS and IT. This book also
would fit into a computer science curriculum with an introductory course that uses a GUI-based
application-oriented approach to teach programming concepts. The breadth and depth of coverage makes
this book suitable for a two-course sequence, particularly when students come to the first course with no
programming background and a slower pace is desired. An approach in a two-course sequence would be
to do in-depth coverage of topics like collections, databases, object-oriented programming, web
development, and others presented in later chapters only in the second course.

Key Features
A key feature of the book is that programming concepts are introduced in small chunks through examples
and illustrations accompanied by hands-on tutorials. The tutorials, which are interspersed with the
concepts, help students apply and explore what they learn immediately. Additionally, review questions
and exercises within the chapters enhance student interest and learning.
Although the book is written for beginners, it is thorough and concise. Graphical illustrations and
screenshots are used throughout the book to enhance learning for both beginners and experienced
students.
Windows forms are used from the beginning to provide GUI-based as opposed to console-based interface.
This book builds graphical user interfaces and code in the .Net environment using Visual Studio. You are
encouraged to use the current free version, Visual Studio Community 2017. Earlier versions, including
Visual Studio 2015, Visual Studio Express and Visual Studio 2013, generally work well, except that you
won’t be able to run a few programs that use certain features available only in C# version 7.1 or greater.
ii

Supplements
For Students: Tutorial_Starts.zip file that contains
o Partially completed projects for tutorials
o Data files/databases used in projects

You may download the Tutorial_Starts.zip file from


http://www.prospectpressvt.com/titles/c-sharp-programming/student-resources/

For Instructors: Instructor resources include


o Completed tutorials
o PowerPoint slides for all chapters
o Test bank
o Partially completed projects for tutorials
o Data files/databases used in projects

To access instructor resources, please complete the request form at


http://www.prospectpressvt.com/faculty-resources/instructors-material/

Installing Visual Studio


You may download Visual Studio Community 2017 from the following website:
https://www.visualstudio.com/downloads/

To install Visual Studio, open the downloaded .exe file and run it.

Overview of the Content and Organization


Every possible sequence of topics seems to put constraints on the quality of illustrative examples and
applications that can be used in a chapter. The organization of chapters in this book attempts to minimize
such problems and to enhance the ability to build on prior chapters. However, except for the foundational
Chapters 1–5, there is significant flexibility in choosing specific topics and the depth of coverage. As
suggested by the dependencies summarized below, there is some flexibility in the sequencing too.
Chapters 1–5 cover the Visual Studio environment and introductory programming concepts, including
methods. These chapters, which provide the foundational knowledge, should be covered in sequence
before other chapters, though certain topics like working with dates and times (section 2.4) may be
postponed or skipped.
Chapter 6 presents the application of the GUI controls ScrollBars, RadioButtons, CheckBoxes,
ComboBoxes and ListBoxes.
Chapter 7 provides a detailed presentation of one-dimensional arrays, and Chapter 8 presents accessing
sequential files and using arrays in combination with files. Chapter 6 is not a prerequisite for Chapters 7
or 8. GUI is presented early on in Chapter 6 to motivate students with more interesting graphical
interfaces. It should be noted that the comprehensive assignment (Assignment 2) specified at the end of
Chapter 8 requires the use of several GUI controls.
Chapter 9 introduces collections, and discusses the List and Dictionary collections in more detail. Chapter
8 (“Sequential Files and Arrays”) is a prerequisite for this chapter. Because of the close relationship
iii

between collections and arrays, collections are presented in this book immediately following Chapter 8 on
arrays.
Chapter 10 discusses the application of ListView and TabControl. The dependency of this chapter on
Chapter 9 (“Collections”) is very low. The prerequisite for this chapter includes Chapters 6 and 8.
Chapter 11 presents multiform applications, Menus and ToolStrips. This chapter has some dependency on
previous chapters, except Chapter 10.
Chapter 12 provides in-depth coverage of accessing databases from C# programs. Chapter 6 is a
prerequisite for this chapter. In addition, the ListView control presented in Chapter 10 is used in an
example in the last part of this chapter, and it is required in the third comprehensive assignment
(Assignment 3) at the end of this chapter. Assignment 3 also requires the use of MainMenu control
discussed in Chapter 11. Other than that, the dependence of Chapter 12 on Chapters 7–11 is relatively
low.
Chapter 13 provides an introduction to object-oriented programming (OOP) principles and techniques.
The initial part of this chapter may be used for an introduction to OOP early in the semester.
Chapter 14 describes the concept of inheritance, implementation of inheritance, subclasses and super
classes, overriding methods and polymorphism. Chapter 13 is a prerequisite for this chapter, and it also
relies on collections from Chapter 9.
Chapter 15 presents the concepts of web applications development, and develops simple web applications
using the ASP.Net platform in the Visual Studio environment. Only the basic programming knowledge
presented in Chapters 1–3 is required for this chapter.
Chaper 16 describes how to access SQL Server databases and develop multipage web projects. Basic
programming concepts presented in Chapters 1–6, the concept of collections from Chapter 9, and basic
database concepts including binding controls to a database and filtering records (Chapter 12) are used in
building the application.
iv

Acknowledgments
I am thankful for the valuable assistance provided by many people in the preparation of this book. I wish
to thank Dr. Jakob Iversen, The University of Wisconsin–Oshkosh, for authoring Chapters 13 and 14 on
Object-Oriented Programming.
I was fortunate to work with Beth Lang Golub, editor and president of Prospect Press, who was flexible
and supportive of my goal to offer a good quality programming textbook at a reasonable price. Special
thanks go to Susan Hegedus, Kathy Bond Borie and Rachel Paul for their painstaking attention to detail in
editing this book, and to Annie Clark for the cover design.
I wish to acknowledge the contributions of the following reviewers for their valuable guidance in
improving the presentation and contents of this book:
Janet Bailey, University of Arkansas at Little Rock
Wei Kian Chen, Champlain College
Clinton Daniel, University of South Florida
Silvana Faja, University of Central Missouri
Joni L. Jones, University of South Florida
David Pumphrey, Colorado Mesa University
Manonita M. Ratwatte, University of Oklahoma (Retired)
Theadora Ross, University of Arkansas at Little Rock
David M. Weber, Northern Arizona University
Thanks are also due to the instructors who provided valuable feedback on the first edition of this book
through user surveys:
Janet Bailey, University of Arkansas, Little Rock
Jeff Dickson, Oregon Institute of Technology
Ruth Lamprecht, Virginia Union University
Panos Linos, Butler University
Ziping Liu, Southeast Missouri State University
Robert Pilgrim, Murray State University
Kris Rosenberg, Oregon Institute of Technology
Doug Titus, University of North Florida

About the Author


Dr. George Philip is Professor Emeritus of Information Systems at the College of Business, The
University of Wisconsin–Oshkosh. He has more than twenty-five years of teaching and consulting
experience in the information systems field, including computer programming in multiple languages. He
also served as chair of the Information Systems Team, and director of the M.S. in Information Systems
program. He has published numerous articles in this field.
Chapter 1

Introduction to Visual Studio and Programming

Welcome to programming in C# language. In this chapter, you will learn to develop simple programs in
the Visual Studio development environment, and to work with different types of data.
Learning Objectives
After studying this chapter, you should be able to:
 Identify the inputs, processes and outputs of a software system.
 Describe the steps involved in developing a computer program.
 Describe the terms: syntax, logic and runtime errors, machine language, low-level language, high-
level language, compiler and interpreter.
 Develop a simple form in Visual Studio to accept user input, do calculations and display
formatted output.
 Work with Label, TextBox, Button, ListBox and MessageBox.
 Develop simple programs that use constants, variables and expressions.
 Use try-catch method to catch errors.

Topics

1.1 Introduction to Programming 1.8 Working with Variables


1.2 Introduction to Visual Studio 1.9 Doing Calculations
1.3 Visual Studio Environment 1.10 Formatting and Displaying Output in a Label
1.4 Adding Controls to a Form 1.11 Additional Concepts: Constants, Scope of
1.5 The Code Editor Window Variables and ListBox
1.6 Introductory Programming Concepts 1.12 Exception Handling: Catching Errors
1.7 Data Types

1.1 Introduction to Programming


Programming is the process of developing computer programs. If a computer program seems like a
mystery to you, it is just a set of instructions telling the computer how to do a task, like looking up the
price of an item or finding the Chinese restaurants in a city.
Unfortunately, computers cannot understand normal English. So, programs have to be written using
special commands and statements according to strict rules. A key aspect of programming is breaking
down what you want the computer to do, into detailed instructions. Like the directions that a GPS gives
you to get to a place, the instructions in a program need to be precise.

Fundamentals of C# Programming for


Information Systems
Visit https://testbankfan.com
now to explore a rich
collection of testbank or
solution manual and enjoy
exciting offers!
2 1.1 Introduction to Programming

Typically, a program uses one or more data items to produce some results. For example, a program that
processes an order might use the item number and order quantity to compute the subtotal, sales tax and
total cost, as represented in Figure 1-1.

Figure 1-1: Inputs, process and outputs of a program

Subtotal
Item# Process
Sales tax
Quantity Order
Total cost

The program, represented by the block “Process Order,” may include multiple subtasks like look up the
unit price, check inventory and compute results.
The data that are used by a program are called the input to the program, and the results produced are
called the output of the program. In addition to processing input data to produce the output, a program
might write data to and read data from storage devices like a flash drive or a hard drive, as represented in
Figure 1-2.

Figure 1-2: A general representation of a software system

How Do I Go About Developing a Program?


To understand the process of developing a program, let’s use a simplified order-processing system as an
example. To develop good programs and do so efficiently, follow these steps:
1. Define the purpose, and identify the input, process and output of the program.
2. Design and develop the graphical user interface (GUI).
3. Identify the components and logic of the program.
4. Design and develop files/databases, if any.
5. Write and test the code.
Let’s look at these steps in more detail.

1. Define the purpose, and identify input/process/output


Before you can write the program, you need to lay some groundwork. In this step, you identify what the
user wants the program to do, including the input, process and output of the program.
Depending on the size and complexity of the program, this could involve extensive analysis of the
requirements, including interviews with users; examination of current forms, reports and transactions; and
identifying processes like checking inventory and looking up price in an order.

Fundamentals of C# Programming for


Information Systems
Chapter 1: Introduction to Visual Studio and Programming 3

Here is an example of a simplified statement of the purpose of the order processing program:
Purpose: Compute and display the subtotal, sales tax and total cost for an order
The output of the program often follows from the purpose. For this example, the output would be
Output: subtotal, sales tax, total cost
The process specifies not only what the program should do (e.g., compute total cost) but also how it
should be done (e.g., how to compute total cost), as follows:
Process: (What?) Look up unit price, look up sales tax rate,
compute subtotal, sales tax and total cost
(How?) subtotal: unit price * order quantity
sales tax: subtotal * sales tax rate
total cost: subtotal + sales tax

Specifying the process also would include identifying the sources of data, like the product file to get the
unit price and sales tax file to get the sales tax rate.
The input specifies the data items that are needed to carry out the process to produce the output. The
input for this order-processing system would be
Input: item number, order quantity
Note that unit price and sales tax rate are not included in the input because the program looks them up. A
real-world system would be a lot more complex. Typically, the process would include additional subtasks
like handling orders when inventory is insufficient, and output may include various reports. In such
systems, graphical methods like Data Flow Diagrams and UML diagrams are used to represent the
processes and the data accessed by them.

2. Design and develop the graphical user interface (GUI)


After identifying the input, process and output of a program, you design and create the user interface—
that is, how the user would interact with the program, and how the program would communicate with the
user. This is the fun part where you bring in your creativity.
Typically, you use forms to interact with the program. As you will learn in the next section, forms have
various types of objects, called controls, such as Button, TextBox and Label. In this step, you identify the
type of controls to be used, specify their names and captions as appropriate, and design the layout. Figure
1-3 shows an example of the GUI for a simplified order-processing system where the user doesn’t provide
the unit price and sales tax rate.

Fundamentals of C# Programming for


Information Systems
4 1.1 Introduction to Programming

Figure 1-3: GUI for an order-processing system

3. Identify the components and logic of the program


This step identifies the major subtasks of the program. For example, in order to process an order, the
program needs to do the following subtasks:
Get Item# and quantity
Look up unit price and tax rate
Compute subtotal, sales tax and total cost
Display subtotal, sales tax and total cost

Again, a real-world program may have to do additional subtasks, like checking the inventory to make sure
there is sufficient quantity on stock.
For relatively simpler programs, after identifying the subtasks, you may go directly to writing the
program for each subtask. However, for tasks involving more complex logic, it might help to develop an
outline of the logic of performing the subtasks. The representation of the logic of a program in plain
English is called pseudo code. You also may represent the logic graphically using a flowchart, as
discussed in Chapter 3.

4. Design and develop files/databases


If data is read from or written to files and/or databases, these are designed and developed prior to writing
the program. Depending on the application, this step may have to be done in parallel with previous steps.

5. Write and test the code


The final step is to write and test the code. You can program in a variety of languages. C#, Java, Visual
Basic, Python and PHP are among the popular languages. You will use C#, which is a popular language
for developing desktop and web applications.
Programing may involve iteratively developing an application by going through the above steps multiple
times.

Syntax, Logic and Runtime Errors


The programming statements you write have to follow strict rules of the language, called the syntax. The
program wouldn’t compile if it had any syntax error, like a missing semicolon at the end of a statement
or a misspelled key word. Compiling is the process of translating the program you write, called the

Fundamentals of C# Programming for


Information Systems
Chapter 1: Introduction to Visual Studio and Programming 5

source code, to another language before running a program, as described in the next section. So, your
first task is to make sure that there are no syntax errors. The good news is that Visual Studio provides a
lot of help in identifying syntax errors.
After the syntax errors are eliminated, the program may run. But, it’s still too early to celebrate because
the results could be incorrect due to errors in the program logic, just like you can write a grammatically
correct sentence that doesn’t convey the intended message. Errors that cause a program to produce
incorrect or unintended results are called logic errors. A tax-filing software using the wrong tax rate and
a billing software overcharging a customer are examples of logic errors.
There are errors other than logic errors that can occur at runtime. These are called runtime errors.
Runtime errors cause the program to crash (unless the program catches and handles such errors) because
the program asks the computer to do something it is unable to do, like accessing a file with an invalid path
or dividing a number by zero.
The process of identifying errors (bugs) is called debugging. Testing programs to identify and eliminate
errors is an extremely important part of developing software.

Review Questions
1.1 Consider Google as a software system. What would be the input, process and output for Google?
1.2 Consider a software system that enrolls students into classes. Identify some key inputs that the
system needs every time a student enrolls in a class, and the subtasks (process) that need to be
performed. What are some outputs the system should produce for students and instructors?
1.3 List the major steps in developing a program.
1.4 Incorrect punctuation in a program is an example of what type of error?
1.5 A payroll program uses the wrong formula to compute overtime pay. What type of error is it?
1.6 True or false: A program that doesn’t have any syntax errors should produce the correct results.

1.2 Introduction to Visual Studio


In this section, you will learn how to use Visual Studio (VS) to create the user interface and write C#
programs. Visual Studio is an integrated development environment (IDE) for developing applications in a
variety of languages, including C#, Visual Basic, C++, Python and HTML/JavaScript. VS supports
development of desktop and web applications for Windows, Android and iOS. A major strength of Visual
Studio is that it provides a user-friendly environment for developing applications.

Installing Visual Studio


You may download Visual Studio Community 2017 from the following website:
https://www.visualstudio.com/downloads/
To install Visual Studio, open the downloaded vs_community.exe file. The installation software will
guide you through the process. The first time you start Visual Studio, you will be asked to choose the
Development Settings and a Color Theme. Choose Visual C# for settings. You may change these settings
later, as described in Tutorial 1.

Fundamentals of C# Programming for


Information Systems
6 1.2 Introduction to Visual Studio

Components of Visual Studio


Though you have the choice to write programs in a variety of languages, the CPU can understand only
Machine Language, which is extremely difficult for humans to understand. Machine Language requires
detailed instructions that consist of patterns of bits (0 and 1), like 10001010, and are dependent on the
machine (the specific type of computer). Because of the need to write detailed machine-dependent
instructions, Machine Language is called a low-level language.
Except in special cases, programs are written in high-level languages, like C#, which require fewer
statements, are less dependent on the hardware and are easier to understand because they use words rather
than patterns of bits.
Programs written in high-level languages are translated to Machine Language before they are run.
Different languages use different methods to translate and run programs. Many languages use a special
software called a compiler to translate the source code to Machine Language. The compiler typically
produces a separate executable Machine Language program that can be run any number of times without
having to compile every time it is run.
Some programming languages use an interpreter that translates each statement to Machine Language
and runs it without producing an executable program. So, every time the program is run, it needs to be
translated to Machine Language.
Visual Studio uses a compiler, but it translates the source code to an intermediate language, which is
translated to Machine Language and run using another software, as described later in this section. Thus,
Visual Studio translates your statements to Machine Language in two steps:
First, a compiler converts the source code into a language called Microsoft Intermediate Language (IL).
The compiled code, along with references to prebuilt programs (called classes), is stored in an executable
file called Microsoft Intermediate Language (IL) Assembly. Such files have the extension .exe or .dll.
Next, another software called Common Language Runtime (CLR) translates the assemblies from
Intermediate Language to Machine Language and executes the programs. The process of translating and
running the source code may be represented as follows:

The products that support developing and running programs within the Visual Studio family include the
following:
1. An Integrated Development Environment (IDE)
An IDE provides an environment to develop programs, which includes code editors for Visual
C#, Visual Basic, Visual J#, Visual C++, HTML and XML, and designers for Windows forms
and web forms.
In Visual Studio, a software application typically is organized into Projects that may contain one
or more forms.
Forms provide the user interface that allows users to input data for the program, to interact with
the program and to display results.

2. A compiler that translates the source code into Microsoft Intermediate Language (MSIL)

Fundamentals of C# Programming for


Information Systems
Exploring the Variety of Random
Documents with Different Content
aus Sparta, Papyrus aus Hermupolis, vgl. Milne, Journ. hell. stud.
28 (1908) p. 121 nr. 1; Annual of the brit. school of Athens XII
476; Wessely, Studien zur Paläogr. und Papyruskunde II (1902) p.
XLV nr. 2; Ziebarth, Aus der antiken Schule², Kleine Texte Nr. 65,
Bonn 1913 S. 1 ff.
[56] Über Anklänge an gewisse Bräuche beim
Verwandtschaftsschließen in diesem Kapitel Adolf Jacoby, Archiv
für Religionswissenschaft 13 (1910) S. 549 ff.
[57] Der sich m. E. am besten erklärt, wenn man ihn mit
dem Kommentar von Hitzig darauf bezieht, daß in einem Krieg ein
siegreicher Feind durch das Geschrei von Säuglingen sich zur
Milde hatte stimmen lassen, vgl. etwa 1 Sam. 30, 2.
[58] Migne PL 131, 851: Quid autem per alphabetum nisi
initia et rudimenta doctrinae sacrae intelligi convenit? offenbar in
Anlehnung an den Hebräerbrief 5, 12: τὰ στοιχεῖα τῆς ἀρχῆς τῶν
λογίων τοῦ ϑεοῦ. Diese Erklärung ist übernommen von de Rossi,
Bullettino di archeologia cristiana 1881 p. 135 und von Leclerq bei
Cabrol, Dictionnaire d’archéologie chrétienne et de liturgie, Paris
1907 s. v. Abécédaire Sp. 56.
[59] Aelius Spartian, vita Didii Iuliani VII 10. Über
ϰατοπτρομαντία Bouché-Leclercq, Histoire de la divination, Paris
1879, I 185. Wünsch, Hess. Blätter für Volkskunde 3 (1904) 154
ff. Reitzenstein, Historia monachorum, Göttingen 1916, S. 244 ff.
[60] Abbott, Macedonian Folklore, Cambridge 1903 S. 362.
Pradel, Griechische Gebete usw. Religionsgesch. Versuche u.
Vorarbeiten III, Gießen 1907 S. 381; Jacoby, Archiv für
Religionswissenschaft 13 (1910) 529.
II. DIE VERSCHIEDENEN GEBIETE
DER BUCHSTABENMYSTIK
§ 1. SPEKULATIONEN ÜBER EINZELNE
BUCHSTABEN
Wir sahen, daß die alten Pythagoreer kraft der ganzen Haltung
ihres Denkens dazu neigten, in den Buchstaben Übergrammatisches
zu sehen. In welcher Richtung, das zeigt eine seltsame Notiz in den
Scholien zu Dionysius Thrax (p. 183, 30): Ἀπολλώνιος ὁ Μεσσήνιος
ἐν τῷ περὶ τῶν ἀρχαίων γραμμάτων φησί τινας λέγειν, ὅτι
Πυϑαγόρας αὐτῶν τοῦ ϰάλλους ἐπεμελήϑη, ἐϰ τῆς ϰατὰ γεωμετρίαν
γραμμῆς ῥυϑμίσας αὐτὰ γωνίαις ϰαὶ περιφερείαις ϰαὶ εὐϑείαις. Man
hat also in pythagoreischen Kreisen — auf Pythagoras’ Person wird
niemand trotz der bestimmten Bezeugung bestehen wollen — in der
Form der einzelnen Buchstaben Symbolisches gesucht und
gefunden. Dafür gibt es noch manchen Beleg im Einzelnen.
Delta bedeutet noch heute in der Medizin τὸ γυναιϰεῖον αἰδοῖον.
Das ist eine uralte Bezeichnung, s. Aristophanes Lysistr. 151: γυμναὶ
παρίοιμεν, δέλτα παρατετιλμέναι. Der Pythagoreer sah im Delta das
Dreieck. So wird das Dreieck nach pythagoreischer Lehre zur ἀρχὴ
γενέσεως ϰαὶ τῆς τῶν γενητῶν εἰδοποιίας (Procl. in Euclid. 166, 14
Friedlein), vgl. die Porphyrios-Stelle bei Euseb. praep. ev. III 7, 4 p.
98: ϰῶνον μὲν ἡλίῳ γῇ δὲ ϰύλινδρον, σπορᾷ τε ϰαὶ γενέσει φάλητα
ϰαὶ τὸ τρίγωνον σχῆμα διὰ τὸ μόριον τῆς ϑηλείας.[61] Eine
Auseinandersetzung von 14 Seiten über das Δ steht in dem koptisch
erhaltenen Buch „Über die Mysterien der griechischen Buchstaben“,
das dem großen palästinensischen Klostergründer Sabas aus Talas (†
532) zugeschrieben wird, S. 112–129 der Publikation von
Hebbelynck, Muséon N. S. I [1900]. Δ bedeutet die Schöpfung, es ist
das στοιχεῖον ὁλόϰληρον, die ὁμάς[62] des Kosmos; es weist mit
seinen drei Ecken auf die Dreieinigkeit und die sechs
Schöpfungstage, und ist als der vierte Buchstabe ein Symbol der vier
Elemente und anderer Tetraden.[63]
Über das Ε als Abbildung der Wage steht folgendes in den
Theologumena arithmetica p. 30 Ast (vgl. Lobeck, Aglaophamus S.
1341, 1345) — unter anderen Spekulationen darüber, daß 5 die Mitte
von 9 ist —: ϰαὶ τῷ σχήματι δὲ οἱ τοὺς τῶν γραμμάτων χαραϰτῆρας
προτυπώσαντες. ἐπεὶ τὸ Θ τοῦ ἐννέα σημαντιϰὸν ὑπάρχει, μεσότης
δὲ αὐτοῦ ὡς τετραγώνου τὸ Ε, τὸ δὲ μέσον ἐν ἑϰάστῳ σχεδὸν ϰατὰ
τὸ ἥμισυ ὁρᾶται, ἥμισυ τοῦ Θ γράμματος τυποῦσϑαι τὸ Ε ἐπενόησαν,
ὡς διχοτόμημα τοῦ Θ, ϰαϑὰ ϰαὶ τὸ τοῦ Ο. Τούτῳ δὴ τῷ τρόπῳ τῆς
διϰαιοσύνης τῷ Ε ἀριϑμῷ διϰαιότατα ἐνοφϑείσης ϰαὶ τῆς τοῦ στίχου
ἀριϑμητιϰῆς εἰϰόνος ζυγῷ τινι οὐϰ ἀπιϑάνως εἰϰασϑείσης, τὸ
παράγγελμα τοῖς γνωρίμοις ὲν συμβόλου σχήματι ὁ Πυϑαγόρας
ἐνεποιήσατο ‘ζυγὸν μὴ παραβαίνειν’ τουτέστι διϰαιοσύνην. Anderes
über das Ε aus Theodoros v. Asine bei Proklos in Tim. 225 b II 274
Diehl, über das Ζ ebenda p. 275 unten. — Das berühmte Ε in Delphi,
über das Plutarch einen Dialog geschrieben hat, kommt hier nicht
weiter in Betracht, da es ursprünglich wahrscheinlich kein Buchstabe
gewesen ist, sondern ein „andersartiges ἀνάϑημα, vermutlich eine
ϰλεὶς ϰρυπτή, die zunächst als eine Erfindung geweiht, dann
symbolisch gefaßt und endlich als Ε gedeutet wurde. Denn der
Balanosschlüssel sieht einem archaischen Ε sehr ähnlich“. Diels,
Vorsokr. II² 520 Anm. 5; Parmenides, Berlin 1897, S. 143; Norden,
Agnostos Theos, Leipzig 1913 S. 231 f. Es ist übrigens recht
merkwürdig, daß in dem plutarchischen Dialog nichts von
Buchstabenmystik vorkommt.
Das Θ (= 9) war zunächst einmal ein Symbol der großen
ägyptischen Enneas. Ferner schien seine kreisförmige Gestalt die
Welt abzubilden. Bei Philon von Byblos fr. 9 FHG III p. 572 aus
Euseb. praep. ev. I 10 = Johannes Lydus de mensibus IV 161 p. 177
Wünsch steht: ἔτι μὲν οἱ Αἰγύπτιοι τῆς αὐτῆς ἐννοίας τὸν ϰόσμον
γράφοντες περιφερῆ ϰύϰλον ἀεροειδῆ ϰαὶ πυρωτόν χαράσσουσι ϰαὶ
μέσον τεταμένον ὄφιν ἱεραϰόμορφον [οἱονεὶ συνεϰτιϰὸν ἀγαϑὸν
δαίμονα] (ϰαὶ ἐστι τὸ πᾶν σχῆμα ὡς τὸ παρ’ ἡμῖν Θ) τὸν μὲν ϰύϰλον
ϰόσμον μηνύοντες, τὸν δὲ μέσον ὄφιν συνεϰτιϰὸν τούτου ἀγαϑὸν
δαίμονα σημαίνοντες. — Das ist rein astronomisch gewendet im
schol. in Dionys. Thrac. p. 321, 37 und 488 Hilgard: Θῆτα ὅτι τοῦ
παντὸς ϑέσιν μιμεῖται· ἡ δὲ τοῦ παντὸς ϑέσις ἐστίν ὁ οὐρανός, ὃς τό
τε ϰυϰλοτερὲς ἔχει ϰαὶ τὸν διὰ μέσου ἄξονα τῇ ϰατὰ μέσον
χαραϰτηρισϑέντα μαϰρᾷ· und übernommen im Etymologicum
Magnum p. 441.[64] Weil man bei alleinstehendem Θ leicht daran
dachte, daß das Wort ϑάνατος damit anfängt, so wird dieses Unglück
bedeutende nigrum theta (Persius 4, 13) ängstlich gemieden, z. B. in
den Jahreszahlen der Alexandriner und den Münzbuchstaben des
Gallienus.[65]
Das Ι war wohl geborgen durch das Wort Iesu, Mt. 5, 18: οὺ μῂ
παρέλϑῃ ἰῶτα ἐν. Auch der Name des Heilands beginnt damit. So
spielt es im Mittelalter eine ziemliche Rolle auf Münzen; und Ps.-
Joachim von Floris, De seminibus scripturarum (13. Jahrhundert)
schreibt darüber Littera minima in forma sed maxima in sacramento.
[66]

Das Τ glich dem Kreuz (σταυρός), wie auch Heiden bemerkten,


vgl. Lukian, Δίϰη φωνηέντων 61. Die Methoden, die die Christen
fanden, um das Τ in noch engere Beziehung zu Jesus zu bringen,
sollen unten in dem Abschnitt über den Gnostiker Markos behandelt
werden.
Das Υ ist das γράμμα φιλόσοφον schlechthin (Proklos in Plat.
Tim. III 225). Es wird an zahlreichen Stellen als Illustration des
Gleichnisses von den beiden Wegen der Tugend und des Lasters
aufgefaßt, das seit Hesiod in griechischer und jüdischer Moralistik
sehr beliebt gewesen ist.[67] Pythagoras selbst soll diesen Sinn des Υ
aufgezeigt haben.[68] Neuerdings hat Brinkmann auch „ein Denkmal
des Neupythagoreismus“ (Rhein. Museum 66 [1911] S. 616 ff.)
richtig gedeutet, auf welchem ein großes Υ den Mittelpunkt einer
bildlichen Darstellung des Kebesschen Πίναξ bildet.
Α und Ω war in christlichen Kreisen durch das ΑΩ der
Offenbarung des Johannes geheiligt (darüber s. unten einen
besonderen Abschnitt). Aber ganz pythagoreisch schreibt Theodosius
von Alexandria, περὶ γραμματιϰῆς p. 4 Groettling, Zeile 12, Α bestehe
aus drei Strichen, stelle also die ἀρχὴ πλήϑους dar[69], ebenso
Paulinus von Nola, carmen 29, 645 ff.:

645 Alpha crucem circumstat et Ѡ, tribus utraque virgis


littera diversam trina ratione figuram
perficiens, quia perfectum est mens una, triplex vis.

Ebenso deutet noch Clemens Brentano, Romanzen vom


Rosenkranz X 80 f. die Dreieinigkeit in das Α hinein:

„Ich will dich nun belehren,


Wie das Aleph ist geformet.
Aus drei Strichen es bestehet,
Wie auch steht die Einheit Gottes,
Dieses Aleph alles Lebens,
In drei göttlichen Personen.“

Und über das Ω schrieb der Alchimist Zosimus (Berthelot,


Collection des alchymistes grecs II 228): τὸ Ω στοιχεῖον <τὸ>
στρογγύλον, τὸ διμερές, τὸ ἀνῆϰον τῇ ἑβδόμῃ Κρόνου ζώνῃ ϰατὰ
τὴν ἔνσωμον φράσιν—ϰατὰ γὰρ τὴν ἀσώματον ἄλλο τί ἐστιν
ἀνερμηνεύτητον, ὂ μόνος Νιϰόϑεος <ὁ> ϰεϰρύμμενος οἶδεν, ϰατὰ δὲ
τὴν ἔνσωμον, τὸ λεγόμενον ‘ὠϰεανος ϑεῶν’, φησίν ‘πάντων γένεσις
ϰαὶ σπορά’, vgl. Reitzenstein, Poimandres S. 267. Historia
monachorum, Göttingen 1916 p. 150. Ähnliches über Ω steht im
Etymologicum Magnum p. 294, 29. Die rätselhafte Bemerkung
Isidors von Sevilla, Etymologiae I 3, fünf Buchstaben seien mystisch,
nämlich Α Θ Τ Υ Ω ist jetzt klar.
Die byzantinischen Lexikographen haben diese Dinge gerne
aufgenommen (vgl. Fuhr, Berl. phil. Wochenschr. 31 [1911] S.
1176[70], ebenso wie die griechisch-byzantinischen Gesprächbücher.
[71] Grübeleien über einzelne Buchstaben müssen also im
oströmischen Schulunterricht einen gewissen Raum eingenommen
haben. Ein Beispiel: Γ παρὰ τὸ ἀμᾶν, τὸ ϑερίζειν· δρεπανώδης γὰρ ό
τύπος αὐτοῦ. Die Verwendung der alphabetischen Akrostichis bei
allerhand Lernsprüchen leistete dem wohl noch Vorschub, s. unten
den Abschnitt über Akrostichis.
Zu solchen Spekulationen fand sich in Ostrom noch ein weiterer
Anlaß. In byzantinischer Zeit hat sich bei der Feier der Brumalia, die
damals vom 24. November bis zum 17. oder 18. Dezember dauerten,
die Sitte herausgebildet, diese 24 oder 23 Tage mit den Buchstaben
des griechischen Alphabets zu benennen. Jedes Mitglied der guten
Gesellschaft gab dann an dem Tag ein Fest, der mit dem
Anfangsbuchstaben seines Namens bezeichnet wurde, τὰ ὑπὲρ τῶν
ὀνομάτων συμπόσια (Agathias hist. V 3 p. 140 Bonn). Bei diesen
Festen durfte natürlich der Festredner nicht fehlen. Wir haben noch
einen Panegyrikos des Sophisten Chorikios aus Gaza εἰς τὰ τοῦ
βασιλέως Ὶουστινιανοῦ Βρουμάλια[72], in dem die Initiale Ι des
Kaisers zu grotesken Sehmeicheleien Veranlassung gibt: Die gerade
Form des Ι versinnbildlicht die Gerechtigkeit und Wahrheit Seiner
Majestät. Ι zu schreiben kommen in gleicher Weise Greise, Kinder
und Jünglinge in die Lage: Beweis, daß der Herrscher kein
Lebensalter ungerecht bevorzugt u. dgl.
Der Vater des Klosterwesens, der Kopte Pachomius, numerierte
die von ihm gebildeten Mönchsklassen mit griechischen Buchstaben;
im einzelnen gibt er darüber folgende Vorschriften, Palladios, hist.
Lausiaca 38 bei Migne, PG 34 p. 1100 = cap. 32 p. 90 Butler:
ἐϰέλευσεν εἰϰοσιτέσσαρα τάγματα εἶναι τῶν ἀδελφῶν, ϰατὰ τὸν
ἀριϑμὸν τῶν εἰϰοσιτεσσάρων γραμμάτων. Καὶ προσέταξεν ἑϰάστῳ
τάγματι τὸ ὄνομα τεϑῆναι στοιχεῖον Ἑλληνιϰόν, ἀπὸ τοῦ ἄλφα ϰαὶ
βῆτα ϰαὶ τῶν ϰαϑεξῆς ἕως τοῦ ω μεγάλου· ἴνα ἐν τῷ ἐρωτᾶν ϰαὶ
φιλοπραγμονεῖν τὸν ἀρχιμανδρίτην περί τινος εἰς τοσοῦτον πλῆϑος,
ἐρωτᾷ τὸν δεύτερον ἑαυτοῦ, πῶς ἔχει τοῦ ἄλφα τὸ τάγμα, ἢ πῶς
ἔχει τὸ βῆτα· πάλιν ἀσπάσαι τὸ ῥῶ· ἰδίῳ τινὶ σημείῳ ὀνόματος
γραμμάτων ἀϰολουϑοῦντος. Καὶ τοῖς μὲν ἁπλουστέροις ϰαὶ
ἀϰεραιοτέροις ἐπιϑήσεις τὸ ἰῶτα· τοῖς δὲ δυσχερεστέροις ϰαὶ
σϰολιωτέροις προστάξεις τὸ ξ. Καὶ οὕτως ϰατ’ ἀναλογίαν τῆς
ϰαταστάσεως τῶν προαιρέσεων ϰαὶ τῶν τρόπων ϰαὶ τῶν βίων
ἑϰάστῳ τάγματι τὸ στοιχεῖν τοῦ γράμματος ἐφαρμόσεις, μόνων τῶν
πνευματιϰῶν εἰδότων τὰ σημαινόμενα. Dasselbe steht bei
Sozomenos III 14 Migne PG 67, 1072. Der letzte Teil dieser Stelle,
der in 2. Person geschrieben ist, stammt anscheinend aus einem
Brief des Pachomius, s. unten in dem Abschnitt über Abc-Denkmäler.
Die bisher erwähnten pythagoreisch gehaltenen Erklärungen
betonen vor allem die Bedeutsamkeit, die der F o r m der einzelnen
Buchstaben innewohnt. Demgegenüber weist man auf christlich-
jüdischer Seite darauf hin, daß die N a m e n der Buchstaben nicht
gleichgültig sind. Diese Namen waren ja uralt, älter, also richtiger, als
alle griechische Weisheit.[73] Mit Befriedigung führt der große
Kirchenhistoriker Eusebios von Caesarea in seiner Praeparatio
evangelica X 5[74] den Nachweis, daß die Griechen ihre
Bezeichnungen von den Hebräern übernommen haben. Denn jedes
hebräische Schulkind könne über die Bedeutung der
Buchstabennamen Auskunft geben, während unter den Griechen
selbst Platon nicht dazu imstande wäre, gesetzt den Fall, daß er
Ἄλφα, Βῆτα usw. für griechische Wörter hielte. Bei den
Kirchenvätern und später finden sich dann mehrmals etymologisch-
erbauliche Deutungen der Buchstabennamen im Anschluß an die
unten gesondert zu besprechenden alphabetisch akrostichischen
Stücke in den Psalmen und Klageliedern Jeremias. Schon Origenes
von Alexandria in einem Kommentar zu Psalm 126 und in einem „Fe
literae tractatus“ hatte Derartiges besprochen (Hieronymus, epistola
XXXIV ad Marcellam de aliquot locis Psalmi CXXVI p. 260 Hilberg).
Der älteste erhaltene Kommentar dieser Art ist die expositio in
Psalmum CXVIII des Ambrosius vom Jahr 387[75] (vol. V ed.
Petschenig 1913, Migne PL XV col. 1198–1526). Es folgt Hieronymus
mit Brief 30 (p. 246 Hilberg), de nominibus hebraicis 71 (Migne PL
23, 827; Lagarde, Onomastica sacra, ²Göttingen 1887 S. 79) und
dem Kommentar zu den Threnoi des Jeremia (Migne PL 25, 787–
791). Den hier gesammelten Stoff übernahmen dann im 9.
Jahrhundert der Abt Paschasius Radbertus von Corbie in seiner
expositio in lamentationes Ieremiae (Migne PL 120, 1059–1256),
Hrabanus Maurus, expositio super Ieremiam XVIII 1 (Migne PL 111,
1183 ff.), Remigius von Auxerre, enarrationes in psalmos (Migne PL
131 col. 145 und 732 ff.), Joseppus, memorialis liber 26 (Migne PG
106 p. 32 f). Eine kleine altenglische Abhandlung ähnlicher Art
veröffentlichte Bonnard, Revue des études juives 4 (1882) p. 255 ff.,
ein hebräischer Alphabet-Midrasch, die „Othijoth des Rabbi Akiba“ ist
übersetzt „Aus Israels Lehrhallen“ von A. Wünsche 1909, IV S. 199–
269.
Als Beispiel diene das Α. Bei Suidas s. v. Ἀβραάμ steht, Abraham
habe die Buchstaben erfunden. Καὶ τούτου μαρτύριον ἡ τοῦ Ἄλφα
φονὴ τοῦ πρώτον στοιχείου ϰαὶ ἄρχοντος, ἀπὸ τοῦ Ἄλεφ Ἑβραιϰοῦ
λαβόντος τὴν ἐπίϰλησιν τοῦ μαϰαρίου ϰαὶ πρώτον ϰαὶ ἀϑανάτου
ὀνόματος. Dieser herrliche Name ist „die Erkenntnis“. Denn Aleph
wird nicht immer gedeutet als Ochsenschädel, sondern oft als alliph
= μαϑέ, vgl. Euseb. praep. ev. V 5 p. 474 b und XI 6 p. 519 c,
Theodosios von Alexandria, περὶ γραμματιϰῆς p. 1 Goettling. An der
letzteren Stelle heißt es weiter: Gott öffnete dem Menschen den
Mund zur Sprache mit dem Laut, der das weiteste Öffnen erheischt.
Auch das ΑΩ der Johannesapokalypse wird mitwirken. Ferner war
sicher jeder, der aus irgendeinem Grund in den Buchstaben etwas
Transzendentes sah, versucht, beim Α anzufangen. So der apokryphe
Jesusknabe der Markosier, der, als er in der Schule die Buchstaben
lernen soll, seinen Lehrer darüber zur Rede stellt, ob er wisse, was
das Α sei.[76] Ebenso macht sich Johannes Chrysost homil. IX in
epist. ad Hebr. Migne PG 63 col. 77 seine Gedanken zunächst über
das Α: ὥσπερ γὰρ ἐπὶ τῶν στοιχείων τὸ πᾶν ἄλφα συνέχει, ϰαὶ ὁ
ϑεμέλιος τὴν πᾶσαν οἰϰοδομήν, οὕτω ϰαὶ τοῦ βίου τὴν ϰαϑαρότητα ἡ
περὶ τὴν πίστιν πληροφορία. Ταύτης δὲ ἄνευ οὐϰ ἔστιν εἶναι
Χριστιανόν· ὥσπερ οὐδὲ ϑεμελίων ἄνευ οἰϰοδομήν, οὐδὲ στοιχείων
χωρὶς ἔμπειρον γραμμάτων εἶναι.
Von der antiken Schule her kommen Gedichte wie Ausonius, De
litteris monosyllabis Graecis et Latinis S. 166 Peiper. Scotus, versus
de alphabeto bei PLM ed. Baehrens V p. 375 mit dem Kommentar
Expositio prescripti alphabeti ed. Omont, Bibl. des hautes études,
Paris 1881, p. 429. Cabrol Dictionnaire p. 61. Besonders wichtig
scheint eine Schrift des 13. Jahrhunderts, De semine — oder
seminibus — scripturarum, zu sein, die mit Unrecht dem berühmten
Apokalyptiker Abt Joachim von Floris in Calabrien ( † 1202)
zugeschrieben wird. Friedensburg, Symbolik der Mittelaltermünzen S.
90 ff. druckt ein bezeichnendes Stück daraus ab.
In einem Dit de l’ABC (440 Verse) von Hue de Cambrai (um
1250) „werden die Buchstaben des Alphabets mit geläufigen
Wörtern in Verbindung gebracht, die mit ihnen anheben (z. B. crois,
con bei C, dieu bei D, Eve bei E, lettres, langue bei L, Marie bei M
usw.) oder es wird ihnen nach ihrer Form ein gewollter Sinn (wie bei
PQ) untergelegt, nicht ohne daß bei Gelegenheit satirische Hiebe auf
die verderbte Zeit fallen“ (Groeber, Grundriß der romanischen
Philologie II 837).
An der oben erwähnten Stelle Hieronymus de nominibus
Hebraicis 71 stehen nur kurze, rein etymologisch-grammatische
Angaben über die Bedeutung der Buchstabennamen im Hebräischen.
Irgendwelche mystische oder erbauliche Ausdeutung wird nicht
daran geknüpft. Laut Angabe des ersten Satzes Migne PL 23 col. 771
ist dieses Onomastikon die Bearbeitung einer Schrift des Philon von
Alexandria. Für Philon ist also irgendwelche Buchstabenmystik
dadurch nicht bezeugt. Sie ist es auch sonst nicht. Trotzdem hat D.
H. Müller in den Sitzungsberichten d. k. Akademie Wien, philos.-
histor. Kl. 167. Bd. 2. Abh., Wien 1911 auf Grund dieses
Tatbestandes und gestützt auf Vergleichung der Deutungen des
Ambrosius und Hieronymus einerseits und spätjüdischer Midraschim
andrerseits gemeint, die „verlorene Schrift Philos über die
Etymologie und Symbolik der Buchstaben“[77] teilweise
rekonstruieren zu können. Es liegt auf der Hand, wie willkürlich es
ist, auf diesem Wege Spekulationen des 4. Jahrhunderts in das 1.
zurückzudatieren.
Anhangsweise möchte ich für Leser, die hier derartiges wohl
suchen werden, einiges zusammenstellen über Buchstabensymbolik
nicht magischer und religiöser Art, Buchstabenspielereien u. dgl.
Wie im Altertum nicht anders zu erwarten, fehlt das obszöne
Element nicht. Es handelt sich aber in den Fällen, die uns hier
angehen, nicht um das primitive Jenseits von aller Scham, was eng
mit der Religiosität des Naturvolkes zusammenhängt, sondern um
einfache Cochonerien. Für den primitiven Menschen ist das Obszöne,
das heilige Geheimnis der Zeugung, Tabu, es wird als solches
gesucht und gescheut, verehrt und als verblüffendes Schutzmittel
gegen die Dämonen in Dienst genommen. Aber auch schon da muß
man, wie Albrecht Dieterich oft sagte, nicht so tun wollen, als hätte
das den Leuten nebenbei keinen Spaß gemacht. Bei den
Buchstabenzoten fällt alles Sakrale durchaus weg, es sind παίγνια,
Belege für das nichts verschonende Argot der Griechen und Römer
oder unpassende Schulwitze.
Das Älteste in dieser Art wird Aristoph. Eccl. 920 sein: δοϰεῖς δέ
μοι ϰαὶ λάβδα ϰατὰ τοὺς Λεσβίους.[78] Dann steht als Priapeum 54
ein Rätsel:
CD si scribas temonemque insuper addas,
qui medium te vult scindere, pictus erit
Lösung: testiculae + mentula φ. Das Stärkste ist das Epigramm
87 von Ausonius S. 344 Peiper: „Ad Eunum ligurritorem
paedagogum.“[79] Das Rätsel vom διπλοῦν γράμμα Συρηϰοσίων
gehört jedoch nicht hierher: Anthol. Pal. V 191 Μελεάγρου· εἰς
Καλλίστιον.
Γυμνὴν ἢν ἐσίδῃς Καλλίστιον, ὦ ξένε, φήσεις·
‘Ἤλλαϰται διπλοῦν γράμμα Συρηϰοσίων.’
Die Lösung ist harmlos. Doppelt kommt in dem Wort Συρηϰόσιοι
der Laut συ : σι vor. Umgestellt ergibt das ὗς.[80] Derartige
Anagramme müssen hier außer Betracht bleiben, sonst müßte ein
gutes Teil aller antiken Rätsel und, wenn die neuere Zeit
mitberücksichtigt werden sollte, die Unterhaltungsecke sämtlicher
Zeitungen und Zeitschriften aufgearbeitet werden. Das antike
Material ist gesammelt bei Ohlert, Rätsel und Rätselspiele der alten
Griechen² (1912) S. 211–241. Wolfgang Schultz, PW s. v. Rätsel Sp.
109 f.
Buchstaben dienen ferner als Namen oder Beinamen von
Personen. Recht lustig ist der Name, den der Korinthier Amphion
seiner lahmen Tochter gab, die später Mutter des Tyrannen Kypselos
wurde. Er nannte sie Labda[81]; natürlich ist das archaische
gemeint, das die ungleiche Beinlänge gut wiedergibt. Sonst gibt es
noch allerhand Schulwitze. Den großen Gelehrten Eratosthenes
nannten sie Βῆτα[82], den Aristarcheer Satyros Ζῆτα, den
Astronomen und Mathematiker Apollonios von Perge Ε[83], typische
Schulspitznamen, wie sie wohl heute noch auf jedem Gymnasium
vorkommen. Sie haben meist eine ganz gleichgültige zufällige
Entstehungsursache, die bald vergessen wird. Später werden dann
irgendwelche Gründe hinzugedichtet. Die unwahrscheinlichen
Anlässe, die Ptolemaeus Hephaestion u. a. überliefern, hat Lehrs a.
a. O. widerlegt. Aber wenn er nun alles auf körperliche Ähnlichkeit
der Benannten mit den betreffenden Buchstaben zurückführen will,
so ist das wieder einseitig. Wir werden uns da etwas bescheiden
müssen.
Bloße Numerierung ist es, wenn Martial II 57 und V 26 einen
Freund alpha paenulatorum und sich selber beta togatorum tituliert.
Anth. Palat. XI 15 ist ein Scherz an einen Arzt, der verschiedene
Leute, deren Namen mit A anfängt, totkuriert hatte. Da der Arzt
demnach anscheinend in alphabetischer Reihenfolge vorzugehen
gedenkt, will der Dichter Ὠριγένης heißen.
Das Sprichwort liebt die Häufung in symmetrischer Form. Da
entwickelt sich entweder die Priamel
Beispiel: Ὑγιαίνειν μὲν ἄριστον ἀνδρὶ ϑνατῷ
δεύτερον δὲ φυὰν ϰαλὸν γενέσϑαι usw.[84]
oder das Zahlensprichwort, das der Orientale so liebt. Beispiel:
Vier Tiere dürfen mit der Halfter angetrieben werden: das Pferd, das
Maultier, das Kamel und der Esel. — Sechs Dinge dienen dem
Menschen, drei sind in seiner Gewalt und drei sind nicht in seiner
Gewalt: das Auge, das Ohr und die Nase sind nicht in seiner Gewalt.
Der Mund, die Hand und der Fuß sind in seiner Gewalt (Talmud.)[85]
Diesen Formen ist nahe verwandt die Spielerei mit mehreren Worten,
die gleiche Anfangsbuchstaben haben. In dem Stabreim, der so
entsteht, kommt der sich wiederholende Buchstabe besonders zu
Ehren und wird als das Wichtigste hervorgehoben. Etwa: τρία ϰάππα
ϰάϰιστα, nämlich Kreter, Kilikier, Kappadokier (Suidas s. v. ϰάππα);
lateinisch: Cornelius Sulla, Cornelius Cinna, Cornelius Lentulus:
Schneidewin-Leutsch, Paroemiogr. II S. 369 (aus Augustinus, de
grammat.). Friedensburg, Die Symbolik der Mittelaltermünzen I,
Berlin 1913 S. 90 verweist auf Gesta Romanorum Kap. 13, 42, 125
und Anhang Kap. 3 der Grässeschen Ausgabe und gibt als Beispiel:
„Vier P soll jeder ehren: patriam, parentes, praeceptorem,
praetorem“ und die drei Regierungsmittel des Rè Bomba Ferdinand
II. von Neapel: farina, forca, festa. Dazu kämen noch die „drei bösen
Weh“, die unter König Friedrich I. das Land Preußen plagten:
Wartenberg, Wittgenstein, Wartensleben.
[61] Johannes Lydus, De mens. II 8 p. 28 Wünsch: οἱ
Πυϑαγορεῖοι τριάδα μὲν ἐν ἀριϑμοῖς ἔν τε σχήμασι τὸ ὀρϑογώνιον
τρίγωνον ὑποτίϑενται στοιχεῖον τῆς τῶν ὅλων γενέσεως, dazu
Lobeck, Aglaophamus 1345. Delatte, BCH 37 (1913) S. 263 ff.
Deltoton als Sternbild bei Aratos 233 und an vielen anderen
Stellen; danach heißt es in einem byzantinischen Gesprächbuch:
Δέλτα ἀπὸ τοῦ δελτωτοῦ ἐξ ἀστέρων συγϰειμένου. Heinrici,
Abhandl. d. sächs. Ges. philos.-histor. Kl. 28 (1911) S. 90, 18.
Wortlaut gebessert von Stählin, Byzantin. Zeitschr. 21 (1913) S.
508.
[62] Zu diesem Ausdruck s. unten in dem Abschnitt über
Onomatomantie.
[63] Es folgt dann dort eine Deutung der einzelnen
Buchstaben auf die Etappen der Schöpfung. Von Π ab gehen die
Zeichen auf Christus (p. 271 ff.). Auf S. 114 steht eine Abbildung,
wo das Delta-Dreieck als Bild des Kosmos in mehrere Stockwerke
eingeteilt ist, die den obersten Himmel, die Wasser des Himmels,
das Firmament, die Erde bezeichnen. Zu diesen Stockwerken gibt
es nach einer Mitteilung von Dr. C. Jaeger-Straßburg auch
äthiopische Belege. In einer Handschrift des Britischen Museums
Orient 503 fol. 1 b steht eine Abhandlung über die Schönheit der
Schöpfung, worin folgende fünf Stockwerke festgestellt werden:
Himmel des Lichtes, das obere Wasser, der Plafond, das untere
Wasser, die Erde. Die Einzeichnung in ein Dreieck findet sich dort
nicht.
[64] Vgl. Lobeck, Aglaophamus 1341.
[65] Friedensburg, Berliner Münzblätter N. F. 4 S. 25. Martial
VII 37, 2.
[66] Friedensburg, Symbolik der Mittelaltermünzen I, Berlin
1913 S. 69 ff.
[67] Albrecht Dieterich, Nekyia S. 182, Kleine Schriften S.
472. Wünsch, Sethianische Verfluchungstafeln S. 98.
[68] Persius III 56 mit Scholien. Lactant. instit. div. VI 3, 6.
Servius zu Aen. 6, 136. Ausonius technop. 12. 13 p. 138 Schenkl;
Maximinus in Anthol. lat. 632 Riese; Martian. Cap. II § 102;
Hieronymus in Eccl. Migne, PL 23, 1091; vgl. Lobeck,
Aglaophamus S. 1341, 1344; Dieterich, Nekyia (1893) S. 192;
Pascal in den Miscellanea Ceriani (1910) p. 64; Wolfgang Schultz,
Philologus 68 (1909) S. 488 ff.
[69] Steinthal, Geschichte der Sprachwissenschaft der
Griechen und Römer² II (1891) S. 366.
[70] Ἐτυμολογία τοῦ ἀλφαβήτου Etym. Gud. Anhang p. 595
Sturz.
[71] Heinrici, Die griechisch-byzantinischen Gesprächbücher,
Abhandl. d. Kgl. sächs. Gesellschaft d. Wissenschaften, histor.-
philol. Klasse, Bd. 28 (1911) S. 90, 14; Nachträgliches zu den
griechisch-byzantinischen Gesprächbüchern, Berichte der Kgl.
sächs. Gesellschaft, histor.-philol. Kl. Bd. 64 (1912) 8. 179 f.: ein
cento grammaticus codex Marcianus VII 38. In der ersten
Heinricischen Abhandlung S. 87, 27, stehen einige Zeilen über
Buchstaben als σφραγῖδες. Ganz Ähnliches findet sich in einer
Handschrift des Briefes Jesu an König Abgar von Edessa, der im
Mittelalter als Palladium diente, s. Dobschütz, Zeitschrift für
wissenschaftliche Theologie 43 (1900) S. 443.
[72] Hrsg. von R. Foerster, Index lectionum Vratislaviensium
1891.
[73] So empfindet noch heute der Orient. Hohes Alter ist das
erste, was man von der Überlieferung verlangt. Und gegen die
Tradition vermögen moderne Errungenschaften nur schwer
aufzukommen.
[74] Dasselbe steht praep. ev. XI 6 p. 519.
[75] Zur Zeitbestimmung J. B. Kellner, Der hl. Ambrosius als
Erklärer des AT, Regensburg 1893 S. 153. Ambrosius versteht es
dabei, einen Zusammenhang der Anfangsbuchstaben mit dem
Inhalt der damit begonnenen Verse nachzuweisen. Der Buchstabe
des Akrostichons erscheint so als Titel. Als Beispiel diene Vers 4:
Daleth bedeutet entweder „Furcht“ oder „Geburt“ (Ambrosius
kann kein Hebräisch). Beides paßt; denn die Geburt ist etwas
Materielles und Hinfälliges, deshalb nicht frei von Furcht.
Vortrefflich bestätigt dies die erste Zeile: „Am Staube hing meine
Seele“; denn Staub ist Erde, und die Erde ist etwas Materielles.
[76] Iren. adv. haeres. I 20. Kindheitsevangelium des
Thomas cap. 6. Dazu Hennecke, Handbuch zu den
neutestamentlichen Apokryphen, Tübingen 1904, 8. 136 ff., bes.
S. 142 eine indische Parallele: jeder Buchstabe ist der Anfang
eines Spruches. Auch den Muslim hat die Geschichte von dem
Jesusknaben gefallen, vgl. Schanawânî Bl. 16 (s. oben S. 5 Anm.
5) bei Goldziher, Zeitschrift d. deutschen morgenl. Gesellschaft 26
(1872) S. 784.
[77] Von deren Existenz wir zudem gar nichts wissen. D. H.
Müllers Ergebnisse abgelehnt auch von Franz Wutz, Onomastica
sacra, Texte und Untersuchungen 41, 1 (1914) S. 216–231.
[78] Dazu Goebel, Ethnica, de Graecorum civitatum
proprietatibus proverbio notatis, Diss. Breslau 1915 S. 80 f.
[79] Der Schulmeister Eunus, ein fellator, der alle Sexualia in
seinem Schuljargon wiedergibt, sieht das membrum muliebre für
ein Rechteck an. Das hat den Vorteil, daß, wenn die eine Seite
zusammengezogen wird, der Buchstabe Δέλτα herauskommt, der
gewöhnliche Name für das γυναιϰεῖον αἰδοῖον s. oben S. 20 f. Die
Rückansicht der Menschen erklärt er für ein Ψ (gebildet von den
drei Linien: Grenze zwischen den Beinen und untere Grenze der
beiden nates). Ubi si Eunus ligurrit, anus patet sicut Λ. Φ litera
Ausonius aut πορδήν imitari mihi videtur, quae paedogogo
ligurrienti sentienda est, aut figuram, quae natibus pueri et lingua
istius paedagogi efficitur. Im letzten Vers wird ihm die Strafe den
Θ(άνατος) gewünscht (s. oben S. 22). Die Verse 10–12 verstehe
ich nicht.
[80] Preisendanz RM 68 (1913) S. 640.
[81] Herodot V 92.
[82] Marcian. Heracl. epit. peripl. Menippei 2.
[83] Phot. bibl. p. 151, 21; Lehrs, Quaestiones epicae,
Königsberg 1837 p. 19 ff.
[84] Euling, Die Priamel bis Hans Rosenplüt, Germanist.
Abhandlungen hrsg. v. Voigt Bd. 25, Breslau 1905.
[85] Wünsche, Die Zahlensprüche im Talmud und Midrasch,
ZDMG 65 (1911) und 66 (1912).
LEBENSLAUF
Ich, Franz Dornseiff, geboren zu Gießen am 20. März 1888, bin
ein Sohn des Landsgerichtsdirektors Karl Dornseiff und seiner
verstorbenen Frau Käthe geb. Baltzer. Ich besuchte zuerst das
Gymnasium zu Gießen, seit 1904 das Neue Gymnasium zu
Darmstadt, das ich Ostern 1906 verließ, um mich dem Studium der
klassischen Philologie und Germanistik zu widmen. Ich war 3
Semester in Heidelberg, 1 in München, 5 in Berlin.
An diesen Universitäten hörte ich Vorlesungen und besuchte
Übungen bei den Herren Professoren: Boll, Brandt, Dieterich † , v.
Domaszewski, v. Duhn, Elsenhans, Petsch, F. A. Schmid, Schoell,
Uhlig †, Windelband † (Heidelberg); Crusius, von der Leyen, Vollmer
(München); Cassirer, Dessau, Diels, von Harnack, Helm, Meister,
Eduard Meyer, Norden, Riehl, Roethe, Sieglin, Simmel, Vahlen † ,
Wentzel, v. Wilamowitz-Moellendorff, Woelfflin (Berlin).
Ihnen allen schulde ich herzlichen Dank. In besonderem Maß
bin ich Herrn Geh. Hofrat Prof. Dr. Boll verpflichtet, der mich zu
dieser Arbeit angeregt und sie ständig mit fördernder Teilnahme
begleitet hat. Er hat mich dadurch zu wirklicher Forschung geführt
und meine Neigung besonders zu dieser Materie vertieft.
*** END OF THE PROJECT GUTENBERG EBOOK
BUCHSTABENMYSTIK ***

Updated editions will replace the previous one—the old editions


will be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States
copyright in these works, so the Foundation (and you!) can copy
and distribute it in the United States without permission and
without paying copyright royalties. Special rules, set forth in the
General Terms of Use part of this license, apply to copying and
distributing Project Gutenberg™ electronic works to protect the
PROJECT GUTENBERG™ concept and trademark. Project
Gutenberg is a registered trademark, and may not be used if
you charge for an eBook, except by following the terms of the
trademark license, including paying royalties for use of the
Project Gutenberg trademark. If you do not charge anything for
copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such
as creation of derivative works, reports, performances and
research. Project Gutenberg eBooks may be modified and
printed and given away—you may do practically ANYTHING in
the United States with eBooks not protected by U.S. copyright
law. Redistribution is subject to the trademark license, especially
commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the


free distribution of electronic works, by using or distributing this
work (or any other work associated in any way with the phrase
“Project Gutenberg”), you agree to comply with all the terms of
the Full Project Gutenberg™ License available with this file or
online at www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand,
agree to and accept all the terms of this license and intellectual
property (trademark/copyright) agreement. If you do not agree
to abide by all the terms of this agreement, you must cease
using and return or destroy all copies of Project Gutenberg™
electronic works in your possession. If you paid a fee for
obtaining a copy of or access to a Project Gutenberg™
electronic work and you do not agree to be bound by the terms
of this agreement, you may obtain a refund from the person or
entity to whom you paid the fee as set forth in paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only


be used on or associated in any way with an electronic work by
people who agree to be bound by the terms of this agreement.
There are a few things that you can do with most Project
Gutenberg™ electronic works even without complying with the
full terms of this agreement. See paragraph 1.C below. There
are a lot of things you can do with Project Gutenberg™
electronic works if you follow the terms of this agreement and
help preserve free future access to Project Gutenberg™
electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright
law in the United States and you are located in the United
States, we do not claim a right to prevent you from copying,
distributing, performing, displaying or creating derivative works
based on the work as long as all references to Project
Gutenberg are removed. Of course, we hope that you will
support the Project Gutenberg™ mission of promoting free
access to electronic works by freely sharing Project Gutenberg™
works in compliance with the terms of this agreement for
keeping the Project Gutenberg™ name associated with the
work. You can easily comply with the terms of this agreement
by keeping this work in the same format with its attached full
Project Gutenberg™ License when you share it without charge
with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside
the United States, check the laws of your country in addition to
the terms of this agreement before downloading, copying,
displaying, performing, distributing or creating derivative works
based on this work or any other Project Gutenberg™ work. The
Foundation makes no representations concerning the copyright
status of any work in any country other than the United States.

1.E. Unless you have removed all references to Project


Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project
Gutenberg™ work (any work on which the phrase “Project
Gutenberg” appears, or with which the phrase “Project
Gutenberg” is associated) is accessed, displayed, performed,
viewed, copied or distributed:

This eBook is for the use of anyone anywhere in the United


States and most other parts of the world at no cost and
with almost no restrictions whatsoever. You may copy it,
give it away or re-use it under the terms of the Project
Gutenberg License included with this eBook or online at
www.gutenberg.org. If you are not located in the United
States, you will have to check the laws of the country
where you are located before using this eBook.

1.E.2. If an individual Project Gutenberg™ electronic work is


derived from texts not protected by U.S. copyright law (does not
contain a notice indicating that it is posted with permission of
the copyright holder), the work can be copied and distributed to
anyone in the United States without paying any fees or charges.
If you are redistributing or providing access to a work with the
phrase “Project Gutenberg” associated with or appearing on the
work, you must comply either with the requirements of
paragraphs 1.E.1 through 1.E.7 or obtain permission for the use
of the work and the Project Gutenberg™ trademark as set forth
in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is


posted with the permission of the copyright holder, your use and
distribution must comply with both paragraphs 1.E.1 through
1.E.7 and any additional terms imposed by the copyright holder.
Additional terms will be linked to the Project Gutenberg™
License for all works posted with the permission of the copyright
holder found at the beginning of this work.

1.E.4. Do not unlink or detach or remove the full Project


Gutenberg™ License terms from this work, or any files
containing a part of this work or any other work associated with
Project Gutenberg™.

1.E.5. Do not copy, display, perform, distribute or redistribute


this electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
with active links or immediate access to the full terms of the
Project Gutenberg™ License.

1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if
you provide access to or distribute copies of a Project
Gutenberg™ work in a format other than “Plain Vanilla ASCII” or
other format used in the official version posted on the official
Project Gutenberg™ website (www.gutenberg.org), you must,
at no additional cost, fee or expense to the user, provide a copy,
a means of exporting a copy, or a means of obtaining a copy
upon request, of the work in its original “Plain Vanilla ASCII” or
other form. Any alternate format must include the full Project
Gutenberg™ License as specified in paragraph 1.E.1.

1.E.7. Do not charge a fee for access to, viewing, displaying,


performing, copying or distributing any Project Gutenberg™
works unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8. You may charge a reasonable fee for copies of or


providing access to or distributing Project Gutenberg™
electronic works provided that:

• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”

• You provide a full refund of any money paid by a user who


notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.

• You provide, in accordance with paragraph 1.F.3, a full refund of


any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.

• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.

1.E.9. If you wish to charge a fee or distribute a Project


Gutenberg™ electronic work or group of works on different
terms than are set forth in this agreement, you must obtain
permission in writing from the Project Gutenberg Literary
Archive Foundation, the manager of the Project Gutenberg™
trademark. Contact the Foundation as set forth in Section 3
below.

1.F.

1.F.1. Project Gutenberg volunteers and employees expend


considerable effort to identify, do copyright research on,
transcribe and proofread works not protected by U.S. copyright
law in creating the Project Gutenberg™ collection. Despite these
efforts, Project Gutenberg™ electronic works, and the medium
on which they may be stored, may contain “Defects,” such as,
but not limited to, incomplete, inaccurate or corrupt data,
transcription errors, a copyright or other intellectual property
infringement, a defective or damaged disk or other medium, a
computer virus, or computer codes that damage or cannot be
read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except


for the “Right of Replacement or Refund” described in
paragraph 1.F.3, the Project Gutenberg Literary Archive
Foundation, the owner of the Project Gutenberg™ trademark,
and any other party distributing a Project Gutenberg™ electronic
work under this agreement, disclaim all liability to you for
damages, costs and expenses, including legal fees. YOU AGREE
THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT
EXCEPT THOSE PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE
THAT THE FOUNDATION, THE TRADEMARK OWNER, AND ANY
DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE LIABLE
TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL,
PUNITIVE OR INCIDENTAL DAMAGES EVEN IF YOU GIVE
NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you


discover a defect in this electronic work within 90 days of
receiving it, you can receive a refund of the money (if any) you
paid for it by sending a written explanation to the person you
received the work from. If you received the work on a physical
medium, you must return the medium with your written
explanation. The person or entity that provided you with the
defective work may elect to provide a replacement copy in lieu
of a refund. If you received the work electronically, the person
or entity providing it to you may choose to give you a second
opportunity to receive the work electronically in lieu of a refund.
If the second copy is also defective, you may demand a refund
in writing without further opportunities to fix the problem.

1.F.4. Except for the limited right of replacement or refund set


forth in paragraph 1.F.3, this work is provided to you ‘AS-IS’,
WITH NO OTHER WARRANTIES OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of
damages. If any disclaimer or limitation set forth in this
agreement violates the law of the state applicable to this
agreement, the agreement shall be interpreted to make the
maximum disclaimer or limitation permitted by the applicable
state law. The invalidity or unenforceability of any provision of
this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the


Foundation, the trademark owner, any agent or employee of the
Foundation, anyone providing copies of Project Gutenberg™
electronic works in accordance with this agreement, and any
volunteers associated with the production, promotion and
distribution of Project Gutenberg™ electronic works, harmless
from all liability, costs and expenses, including legal fees, that
arise directly or indirectly from any of the following which you
do or cause to occur: (a) distribution of this or any Project
Gutenberg™ work, (b) alteration, modification, or additions or
deletions to any Project Gutenberg™ work, and (c) any Defect
you cause.

Section 2. Information about the Mission


of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new
computers. It exists because of the efforts of hundreds of
volunteers and donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the


assistance they need are critical to reaching Project
Gutenberg™’s goals and ensuring that the Project Gutenberg™
collection will remain freely available for generations to come. In
2001, the Project Gutenberg Literary Archive Foundation was
created to provide a secure and permanent future for Project
Gutenberg™ and future generations. To learn more about the
Project Gutenberg Literary Archive Foundation and how your
efforts and donations can help, see Sections 3 and 4 and the
Foundation information page at www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-
profit 501(c)(3) educational corporation organized under the
laws of the state of Mississippi and granted tax exempt status
by the Internal Revenue Service. The Foundation’s EIN or
federal tax identification number is 64-6221541. Contributions
to the Project Gutenberg Literary Archive Foundation are tax
deductible to the full extent permitted by U.S. federal laws and
your state’s laws.

The Foundation’s business office is located at 809 North 1500


West, Salt Lake City, UT 84116, (801) 596-1887. Email contact
links and up to date contact information can be found at the
Foundation’s website and official page at
www.gutenberg.org/contact
Section 4. Information about Donations to
the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission
of increasing the number of public domain and licensed works
that can be freely distributed in machine-readable form
accessible by the widest array of equipment including outdated
equipment. Many small donations ($1 to $5,000) are particularly
important to maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws


regulating charities and charitable donations in all 50 states of
the United States. Compliance requirements are not uniform
and it takes a considerable effort, much paperwork and many
fees to meet and keep up with these requirements. We do not
solicit donations in locations where we have not received written
confirmation of compliance. To SEND DONATIONS or determine
the status of compliance for any particular state visit
www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states


where we have not met the solicitation requirements, we know
of no prohibition against accepting unsolicited donations from
donors in such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot


make any statements concerning tax treatment of donations
received from outside the United States. U.S. laws alone swamp
our small staff.

Please check the Project Gutenberg web pages for current


donation methods and addresses. Donations are accepted in a
number of other ways including checks, online payments and
credit card donations. To donate, please visit:
www.gutenberg.org/donate.

Section 5. General Information About


Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could
be freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose
network of volunteer support.

Project Gutenberg™ eBooks are often created from several


printed editions, all of which are confirmed as not protected by
copyright in the U.S. unless a copyright notice is included. Thus,
we do not necessarily keep eBooks in compliance with any
particular paper edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg
Literary Archive Foundation, how to help produce our new
eBooks, and how to subscribe to our email newsletter to hear
about new eBooks.

You might also like