1、1,Chapter 1 Introduction to Computers and C+ Programming,Outline 1.1 Introduction 1.2 What is a Computer? 1.3 Computer Organization 1.4 Evolution of Operating Systems 1.5 Personal Computing, Distributed Computing and Client/Server Computing 1.6 Machine Languages, Assembly Languages, and High-Level L
2、anguages 1.7 History of C and C+ 1.8 C+ Standard Library 1.9 Java 1.10 Visual Basic, Visual C+ and C# 1.11 Other High-Level Languages 1.12 Structured Programming 1.13 The Key Software Trend: Object Technology 1.14 Basics of a Typical C+ Environment 1.15 Hardware Trends,2,Chapter 1 Introduction to Co
3、mputers and C+ Programming,Outline 1.16 History of the Internet 1.17 History of the World Wide Web 1.18 World Wide Web Consortium (W3C) 1.19 General Notes About C+ and This Book 1.20 Introduction to C+ Programming 1.21 A Simple Program: Printing a Line of Text 1.22 Another Simple Program: Adding Two
4、 Integers 1.23 Memory Concepts 1.24 Arithmetic 1.25 Decision Making: Equality and Relational Operators 1.26 Thinking About Objects: Introduction to Object Technology and the Unified Modeling Language,3,1.1 Introduction,Software Instructions to command computer to perform actions and make decisions H
5、ardware Standardized version of C+ United States American National Standards Institute (ANSI) Worldwide International Organization for Standardization (ISO) Structured programming Object-oriented programming,4,1.2 What is a Computer?,Computer Device capable of performing computations and making logi
6、cal decisions Computer programs Sets of instructions that control computers processing of data Hardware Various devices comprising computer Keyboard, screen, mouse, disks, memory, CD-ROM, processing units, Software Programs that run on computer,5,1.3 Computer Organization,Six logical units of comput
7、er Input unit “Receiving” section Obtains information from input devices Keyboard, mouse, microphone, scanner, networks, Output unit “Shipping” section Takes information processed by computer Places information on output devices Screen, printer, networks, Information used to control other devices,6,
8、1.3 Computer Organization,Six logical units of computer Memory unit Rapid access, relatively low capacity “warehouse” section Retains information from input unit Immediately available for processing Retains processed information Until placed on output devices Memory, primary memory Arithmetic and lo
9、gic unit (ALU) “Manufacturing” section Performs arithmetic calculations and logic decisions,7,1.3 Computer Organization,Six logical units of computer Central processing unit (CPU) “Administrative” section Supervises and coordinates other sections of computer Secondary storage unit Long-term, high-ca
10、pacity “warehouse” section Storage Inactive programs or data Secondary storage devices Disks Longer to access than primary memory Less expensive per unit than primary memory,8,1.4 Evolution of Operating Systems,Early computers Single-user batch processing Only one job or task at a time Process data
11、in groups (batches) Decks of punched cards Operating systems Software systems Manage transitions between jobs Increased throughput Amount of work computers process,9,1.4 Evolution of Operating Systems,Multiprogramming Many jobs or tasks sharing computers resources “Simultaneous” operation of many jo
12、bs Timesharing 1960s Special case of multiprogramming Users access computer through terminals Devices with keyboards and screens Dozens, even hundreds of users Perform small portion of one users job, then moves on to service next user Advantage: User receives almost immediate responses to requests,1
13、0,1.5 Personal Computing, Distributed Computing, and Client/Server Computing,Personal computers 1977: Apple Computer Economical enough for individual 1981: IBM Personal Computer “Standalone” units Computer networks Over telephone lines Local area networks (LANs) Distributed computing Organizations c
14、omputing distributed over networks,11,1.5 Personal Computing, Distributed Computing, and Client/Server Computing,Workstations Provide enormous capabilities Information shared across networks Client/server computing File servers Offer common store of programs and data Client computers Access file ser
15、vers across network UNIX, Linux, Microsofts Window-based systems,12,1.6 Machine Languages, Assembly Languages, and High-level Languages,Three types of computer languages Machine language Only language computer directly understands “Natural language” of computer Defined by hardware design Machine-dep
16、endent Generally consist of strings of numbers Ultimately 0s and 1s Instruct computers to perform elementary operations One at a time Cumbersome for humans Example:+1300042774 +1400593419 +1200274027,13,1.6 Machine Languages, Assembly Languages, and High-level Languages,Three types of computer langu
17、ages Assembly language English-like abbreviations representing elementary computer operations Clearer to humans Incomprehensible to computers Translator programs (assemblers) Convert to machine language Example: LOAD BASEPAY ADD OVERPAY STORE GROSSPAY,14,1.6 Machine Languages, Assembly Languages, an
18、d High-level Languages,Three types of computer languages High-level languages Similar to everyday English, use common mathematical notations Single statements accomplish substantial tasks Assembly language requires many instructions to accomplish simple tasks Translator programs (compilers) Convert
19、to machine language Interpreter programs Directly execute high-level language programs Example:grossPay = basePay + overTimePay,15,1.7 History of C and C+,History of C Evolved from two other programming languages BCPL and B “Typeless” languages Dennis Ritchie (Bell Laboratories) Added data typing, o
20、ther features Development language of UNIX Hardware independent Portable programs 1989: ANSI standard 1990: ANSI and ISO standard published ANSI/ISO 9899: 1990,16,1.7 History of C and C+,History of C+ Extension of C Early 1980s: Bjarne Stroustrup (Bell Laboratories) “Spruces up” C Provides capabilit
21、ies for object-oriented programming Objects: reusable software components Model items in real world Object-oriented programs Easy to understand, correct and modify Hybrid language C-like style Object-oriented style Both,17,1.8 C+ Standard Library,C+ programs Built from pieces called classes and func
22、tions C+ standard library Rich collections of existing classes and functions “Building block approach” to creating programs “Software reuse”,18,1.9 Java,Java 1991: Sun Microsystems Green project 1995: Sun Microsystems Formally announced Java at trade show Web pages with dynamic and interactive conte
23、nt Develop large-scale enterprise applications Enhance functionality of web servers Provide applications for consumer devices Cell phones, pagers, personal digital assistants, ,19,1.10 Visual Basic, Visual C+ and C#,BASIC Beginners All-Purpose Symbolic Instruction Code Mid-1960s: Prof. John Kemeny a
24、nd Thomas Kurtz (Dartmouth College) Visual Basic 1991 Result of Microsoft Windows graphical user interface (GUI) Developed late 1980s, early 1990s Powerful features GUI, event handling, access to Win32 API, object-oriented programming, error handling Visual Basic .NET,20,1.10 Visual Basic, Visual C+
25、 and C#,Visual C+ Microsofts implementation of C+ Includes extensions Microsoft Foundation Classes (MFC) Common library GUI, graphics, networking, multithreading, Shared among Visual Basic, Visual C+, C# .NET platform Web-based applications Distributed to great variety of devices Cell phones, deskto
26、p computers Applications in disparate languages can communicate,21,1.10 Visual Basic, Visual C+ and C#,C# Anders Hejlsberg and Scott Wiltamuth (Microsoft) Designed specifically for .NET platform Roots in C, C+ and Java Easy migration to .NET Event-driven, fully object-oriented, visual programming la
27、nguage Integrated Development Environment (IDE) Create, run, test and debug C# programs Rapid Application Development (RAD) Language interoperability,22,1.11 Other High-level Languages,FORTRAN FORmula TRANslator 1954-1957: IBM Complex mathematical computations Scientific and engineering applications
28、 COBOL COmmon Business Oriented Language 1959: computer manufacturers, government and industrial computer users Precise and efficient manipulation of large amounts of data Commercial applications,23,1.11 Other High-level Languages,Pascal Prof. Niklaus Wirth Academic use,24,1.12 Structured Programmin
29、g,Structured programming (1960s) Disciplined approach to writing programs Clear, easy to test and debug, and easy to modify Pascal 1971: Niklaus Wirth Ada 1970s - early 1980s: US Department of Defense (DoD) Multitasking Programmer can specify many activities to run in parallel,25,1.13 The Key Softwa
30、re Trend: Object Technology,Objects Reusable software components that model real world items Meaningful software units Date objects, time objects, paycheck objects, invoice objects, audio objects, video objects, file objects, record objects, etc. Any noun can be represented as an object More underst
31、andable, better organized and easier to maintain than procedural programming Favor modularity Software reuse Libraries MFC (Microsoft Foundation Classes) Rogue Wave,26,1.14 Basics of a Typical C+ Environment,C+ systems Program-development environment Language C+ Standard Library,27,1.14 Basics of a
32、Typical C+ Environment,Phases of C+ Programs: Edit Preprocess Compile Link Load Execute,28,1.14 Basics of a Typical C+ Environment,Input/output cin Standard input stream Normally keyboard cout Standard output stream Normally computer screen cerr Standard error stream Display error messages,29,1.15 H
33、ardware Trends,Capacities of computers Approximately double every year or two Memory used to execute programs Amount of secondary storage Disk storage Hold programs and data over long term Processor speeds Speed at which computers execute programs,30,1.16 History of the Internet,Late 1960s: ARPA Adv
34、anced Research Projects Agency Department of Defense ARPAnet Electronic mail (e-mail) Packet switching Transfer digital data via small packets Allow multiple users to send/receive data simultaneously over same communication paths No centralized control If one part of network fails, other parts can s
35、till operate,31,1.16 History of the Internet,TCP/IP Transmission Control Protocol (TCP) Messages routed properly Messages arrived intact Internet Protocol (IP) Communication among variety of networking hardware and software Current architecture of Internet Bandwidth Carrying capacity of communicatio
36、ns lines,32,1.17 History of the World Wide Web,World Wide Web 1990: Tim Berners-Lee (CERN) Locate and view multimedia-based documents Information instantly and conveniently accessible worldwide Possible worldwide exposure Individuals and small businesses Changing way business done,33,1.18 World Wide
37、 Web Consortium (W3C),World Wide Web Consortium (W3C) 1994: Tim Berners-Lee Develop nonproprietary, interoperable technologies Standardization organization Three hosts Massachusetts Institute of Technology (MIT) Frances INRIA (Institut National de Recherche en Informatique et Automatique) Keio Unive
38、rsity of Japan Over 400 members Primary financing Strategic direction,34,1.18 World Wide Web Consortium (W3C),Recommendations 3 phases Working Draft Specifies evolving draft Candidate Recommendation Stable version that industry can begin to implement Proposed Recommendation Considerably mature Candi
39、date Recommendation,35,1.19 General Notes About C+ and This Book,Book geared toward novice programmers Stress programming clarity C and C+ are portable languages Portability C and C+ programs can run on many different computers Compatibility Many features of current versions of C+ not compatible wit
40、h older implementations,36,1.20 Introduction to C+ Programming,C+ language Facilitates structured and disciplined approach to computer program design Following several examples Illustrate many important features of C+ Each analyzed one statement at a time Structured programming Object-oriented progr
41、amming,37,1.21 A Simple Program: Printing a Line of Text,Comments Document programs Improve program readability Ignored by compiler Single-line comment Begin with / Preprocessor directives Processed by preprocessor before compiling Begin with #,38,fig01_02.cpp (1 of 1) fig01_02.cpp output (1 of 1),1
42、 / Fig. 1.2: fig01_02.cpp 2 / A first program in C+. 3 #include 4 5 / function main begins program execution 6 int main() 7 8 std:cout “Welcome to C+!n“; 9 10 return 0; / indicate that program ended successfully 11 12 / end function main,Welcome to C+!,39,1.21 A Simple Program: Printing a Line of Te
43、xt,Standard output stream object std:cout “Connected” to screen Stream insertion operator Value to right (right operand) inserted into output stream Namespace std: specifies using name that belongs to “namespace” std std: removed through use of using statements Escape characters Indicates “special”
44、character output,40,1.21 A Simple Program: Printing a Line of Text,41,fig01_04.cpp (1 of 1) fig01_04.cpp output (1 of 1),1 / Fig. 1.4: fig01_04.cpp 2 / Printing a line with multiple statements. 3 #include 4 5 / function main begins program execution 6 int main() 7 8 std:cout “Welcome “; 9 std:cout “
45、to C+!n“; 10 11 return 0; / indicate that program ended successfully 12 13 / end function main,Welcome to C+!,42,fig01_05.cpp (1 of 1) fig01_05.cpp output (1 of 1),1 / Fig. 1.5: fig01_05.cpp 2 / Printing multiple lines with a single statement 3 #include 4 5 / function main begins program execution 6
46、 int main() 7 8 std:cout “WelcomentonnC+!n“; 9 10 return 0; / indicate that program ended successfully 11 12 / end function main,Welcome toC+!,43,1.22 Another Simple Program: Adding Two Integers,Variables Location in memory where value can be stored Common data types int - integer numbers char - cha
47、racters double - floating point numbers Declare variables with name and data type before use int integer1; int integer2; int sum; Can declare several variables of same type in one declaration Comma-separated list int integer1, integer2, sum;,44,1.22 Another Simple Program: Adding Two Integers,Variab
48、les Variable names Valid identifier Series of characters (letters, digits, underscores) Cannot begin with digit Case sensitive,45,1.22 Another Simple Program: Adding Two Integers,Input stream object (stream extraction operator) Used with std:cin Waits for user to input value, then press Enter (Retur
49、n) key Stores value in variable to right of operator Converts value to variable data type = (assignment operator) Assigns value to variable Binary operator (two operands) Example: sum = variable1 + variable2;,46,fig01_06.cpp (1 of 1),1 / Fig. 1.6: fig01_06.cpp 2 / Addition program. 3 #include 4 5 /
50、function main begins program execution 6 int main() 7 8 int integer1; / first number to be input by user 9 int integer2; / second number to be input by user 10 int sum; / variable in which sum will be stored 11 12 std:cout integer1; / read an integer 14 15 std:cout integer2; / read an integer 17 18 sum = integer1 + integer2; / assign result to sum 19 20 std:cout “Sum is “ sum std:endl; / print sum 21 22 return 0; / indicate that program ended successfully 23 24 / end function main,