C的应用:入门和提高(英文影印版)
基本信息
- 原书名: Applied C:An Introduction and More
- 原出版社: McGraw-Hill
内容简介回到顶部↑
书籍
计算机书籍
本书共分五大部分:第一部分引入了计算机和系统,程序和程序设计以及基本的程序设计概念;第二部分引入了对象,类型和表达式以及如何建立数和库,循环和决策;第三部分介绍基本数据类型;第四部分引入数据类型;第五部分引入高级技术如:动态数组、迭代、实时栈等。
本书是迄今为止第一本对C语言应用加以全面介绍的书籍,材料相当丰富,其中第五部分的高级技术在其他C语言书籍中很少提到。
本书作者既是机械工程系教授,又是计算机科学技术系教授,具有丰富的教学经验。在内容安排方面,作者非常注意由易到难,由浅入深,呈螺旋式上升;既考虑初学者的要求,又照顾到深造者的需要。本书无论是计算机专业还是非计算机专业的学生均是一本理想的教材。
计算机书籍
本书共分五大部分:第一部分引入了计算机和系统,程序和程序设计以及基本的程序设计概念;第二部分引入了对象,类型和表达式以及如何建立数和库,循环和决策;第三部分介绍基本数据类型;第四部分引入数据类型;第五部分引入高级技术如:动态数组、迭代、实时栈等。
本书是迄今为止第一本对C语言应用加以全面介绍的书籍,材料相当丰富,其中第五部分的高级技术在其他C语言书籍中很少提到。
本书作者既是机械工程系教授,又是计算机科学技术系教授,具有丰富的教学经验。在内容安排方面,作者非常注意由易到难,由浅入深,呈螺旋式上升;既考虑初学者的要求,又照顾到深造者的需要。本书无论是计算机专业还是非计算机专业的学生均是一本理想的教材。
目录回到顶部↑
i introoucnon
l computers and systems
l.l the physical computer
l.2 the operating system
i.3 languages
l.4 what you should remember
l.5 exercises
2 programs and pregramming
2.1 what is a program?
2.2 problem specification and analysis
2.3 the development environment
2.4 program constnlction
2.5 program execution and testing
2.6 what you should remember
2.7 exercises
3 fundamental contepts
3.l parts of a program
3.2 the simplest program
3.3 variables, input, output, and sequencing
3.4 simple calculations
l computers and systems
l.l the physical computer
l.2 the operating system
i.3 languages
l.4 what you should remember
l.5 exercises
2 programs and pregramming
2.1 what is a program?
2.2 problem specification and analysis
2.3 the development environment
2.4 program constnlction
2.5 program execution and testing
2.6 what you should remember
2.7 exercises
3 fundamental contepts
3.l parts of a program
3.2 the simplest program
3.3 variables, input, output, and sequencing
3.4 simple calculations
前言回到顶部↑
HOW it all began. This book arose from our need to teach C programming to beginners at the University of New Haven, and from what we perceived as the lack of any appropriate elementary text to do this. Applied C is the brainchild of Stephen Ross and Alice Fischer, the two original authors, who are professors of mechanical engineering and computer science. respectively. David Eggert, an assistant professor of computer science, joined them midway through the project.
The blending of our talents has produced a book that is technically correct(well, nobody is perfect) and comprehensive (due mostly to David's thoroughness). It contains explanations that can be understood by a beginner (Alice has taught a lot of new programmers), and at the same time reflects the soul of an engineer (Steve's that is), with its emphasis on precise specification, careful testing, complete examples, highly varied applications, diagrams and visual aids of all sorts.
This text takes a "hands-on" approach: students are encouraged to learn from example and to begin programming immediately in a subset of the language. Simple programming skills are presented both by exposition and through many complete examples from the fields of mathematics, science and engineering. Familiarity with the core of the C language is developed through reading and writing basic programs. Following this, each topic is revisited and information is presented in depth. This approach leads to greater understanding.
Why C and net C++? Many universities are now teaching their first programming courses in C++, while we focus on C. There are many reasons why we believe C is more appropriate than C++ for an inuoduction to programming. One of these is evident in the names of the languages. C++ is C plus constracts for handling large-scale complexity. One problem beginning students have is how to handle the wealth of information that is being thrown at them. While it is true that C++ has several advantages over C, many of these do not become evident until a program becomes larger and more complex. Then the object-oriented paradigm functions as a powerful organizational tool.
Ultimately, most computer science and engineering students need to be fluent in both C and C++. It therefore seems more natural to teach them C first,and build upon this knowledge when introducing C++. By then, they will have a better foundation for understanding abstract data types. And yet, even though we are teaching in C, the programming style developed in the later chapters leads gradually but consistently into the object-oriented paradigm.
In addition to these larger issues, there are smaller advantages of beginning in C. While it is tnle that some of the I/O in C++ (e.g., integers) is simpler than in C, other data types such as strings and fioating-point values can actually be formatted more easily in C. Another imponant factor for beginners is the set of enor and warning messages provided by a compiler during program development.
While most of today's systems compile both C and C++ code, the quality of the error comments is usually worse for C++. They are often vague or just not understandable without greater knowledge. (The emor comments in C are not perfect, either, but they are simpler.)
Should you use this book? Applied C is intended as an introduction to C programming for students who have not previously programmed. The text is also eminently suitable for those already familiar with other programming languages such as FORTRAN, Pascal, and Java. It has been in use at the University of New Haven since 1995 with students from the engineering, math and computer science fields, and the occasional student from other scientific disciplines.
While it is not necessary for a student to be familiar with comprenters before using this book, he or she should have a mind-set that is receptive to the programming process. (We have foand that stndents who have strong math skills do best).Many parallels can be drawn between the process of solving a word problem in a math text and devising a computer program to solve a problem. Since many of the examples used are drawn from the engineering and mathematics fields,having a background which includes algebra, geometry and uigonometry can be very helpful. Of course, instructors can choose to supplement this material with other less sophisticated examples for audiences with lesser math backgrounds.
Scope end e readmap. The text is quite comprehensive and contains enough material for two quarters of instruction. Topics in Parts l through 3 can be covered in one quarter or a trimester and are the most important for students entering technical careers. A semester course can also cover most of Part 4. A second quarter or trimester course would allow one to cover Parts 4 and 5 entirely.
The nature of these parts is as follows.
Part 1: Introducfion.
Chapters l and 2 cover computers. algorithms, program specifications, test plans, and the programming process. The first chapter on computers can be omitted easily if the instructor is pressed for time or the students already have this background. Chapter 3 is a progressive series of annotated programs that introduces variables, the types double and int, simple input and output. arithmetic, the if . . . else conditional statement and the while loop. Emphasis is on learning by doing. By the end of Chapter 3, the student should be able to write a simple program that takes interactive input, validates it, performs a computation, and produces output.
Parf 2: Computation.
The next three chapters cover declarations, expressions, functions of zero and one parameter, using libraries, and the remaining control statements (for, do. . .while, ewitch, break, and continne). Emphasis is on safe programming practices and generating modular code. In Chapter 5, we introduce the tools library, a small package of functions we have found useful when teaching this material. It serves as a vehicle for demonstrating many different aspects of programming throughout the text. By the end of Chapter 6, the student should be able to write a program specification and a test plan, as well as write and debug a program that includes calls on library and programmer-defined functions.
Part 3: Basic Data Types.
Chapters 7, 8, and 11 complete the coverage ofprimitive data types in C. Types rloat, short int, long int, and char are introduced,along with their UO formats, specialized operators, library functions, and examples of appropriate usage. Several important issues are discussed, inclading numeric overfiow, approximate representation of real values,and type conversions.
Chapter 9 extends the coverage of functions to include an arbitrary number ofparameters ofany combination oftypes. It introduces a method for modular program development that is designed to minimize the tenor a student feels when confronted by a blank page and a "story problem".
Stages of analysis are prescribed, starting with an informal specification and testing plan. Then the student is asked to write down the familiar and routine pans of a program, defeoing parts that seem complicated at first. Gradually attention is focused on each defemed section, which is always simpler when considered in isolation. Imponant issues discussed include function call charts, stub testing, scope and lifetime of variables,the proper use of parameters and local declarations and the bad effects of global variables.
Chapters 1O and 12 introduce the nse of arrays, subscripts, and pointers. Issues include array parameters, simple anay processing techniques, parallel aITays, walking on memory, and call-by-address parameters. These chapters complete the coverage of the fundamental aspects
The blending of our talents has produced a book that is technically correct(well, nobody is perfect) and comprehensive (due mostly to David's thoroughness). It contains explanations that can be understood by a beginner (Alice has taught a lot of new programmers), and at the same time reflects the soul of an engineer (Steve's that is), with its emphasis on precise specification, careful testing, complete examples, highly varied applications, diagrams and visual aids of all sorts.
This text takes a "hands-on" approach: students are encouraged to learn from example and to begin programming immediately in a subset of the language. Simple programming skills are presented both by exposition and through many complete examples from the fields of mathematics, science and engineering. Familiarity with the core of the C language is developed through reading and writing basic programs. Following this, each topic is revisited and information is presented in depth. This approach leads to greater understanding.
Why C and net C++? Many universities are now teaching their first programming courses in C++, while we focus on C. There are many reasons why we believe C is more appropriate than C++ for an inuoduction to programming. One of these is evident in the names of the languages. C++ is C plus constracts for handling large-scale complexity. One problem beginning students have is how to handle the wealth of information that is being thrown at them. While it is true that C++ has several advantages over C, many of these do not become evident until a program becomes larger and more complex. Then the object-oriented paradigm functions as a powerful organizational tool.
Ultimately, most computer science and engineering students need to be fluent in both C and C++. It therefore seems more natural to teach them C first,and build upon this knowledge when introducing C++. By then, they will have a better foundation for understanding abstract data types. And yet, even though we are teaching in C, the programming style developed in the later chapters leads gradually but consistently into the object-oriented paradigm.
In addition to these larger issues, there are smaller advantages of beginning in C. While it is tnle that some of the I/O in C++ (e.g., integers) is simpler than in C, other data types such as strings and fioating-point values can actually be formatted more easily in C. Another imponant factor for beginners is the set of enor and warning messages provided by a compiler during program development.
While most of today's systems compile both C and C++ code, the quality of the error comments is usually worse for C++. They are often vague or just not understandable without greater knowledge. (The emor comments in C are not perfect, either, but they are simpler.)
Should you use this book? Applied C is intended as an introduction to C programming for students who have not previously programmed. The text is also eminently suitable for those already familiar with other programming languages such as FORTRAN, Pascal, and Java. It has been in use at the University of New Haven since 1995 with students from the engineering, math and computer science fields, and the occasional student from other scientific disciplines.
While it is not necessary for a student to be familiar with comprenters before using this book, he or she should have a mind-set that is receptive to the programming process. (We have foand that stndents who have strong math skills do best).Many parallels can be drawn between the process of solving a word problem in a math text and devising a computer program to solve a problem. Since many of the examples used are drawn from the engineering and mathematics fields,having a background which includes algebra, geometry and uigonometry can be very helpful. Of course, instructors can choose to supplement this material with other less sophisticated examples for audiences with lesser math backgrounds.
Scope end e readmap. The text is quite comprehensive and contains enough material for two quarters of instruction. Topics in Parts l through 3 can be covered in one quarter or a trimester and are the most important for students entering technical careers. A semester course can also cover most of Part 4. A second quarter or trimester course would allow one to cover Parts 4 and 5 entirely.
The nature of these parts is as follows.
Part 1: Introducfion.
Chapters l and 2 cover computers. algorithms, program specifications, test plans, and the programming process. The first chapter on computers can be omitted easily if the instructor is pressed for time or the students already have this background. Chapter 3 is a progressive series of annotated programs that introduces variables, the types double and int, simple input and output. arithmetic, the if . . . else conditional statement and the while loop. Emphasis is on learning by doing. By the end of Chapter 3, the student should be able to write a simple program that takes interactive input, validates it, performs a computation, and produces output.
Parf 2: Computation.
The next three chapters cover declarations, expressions, functions of zero and one parameter, using libraries, and the remaining control statements (for, do. . .while, ewitch, break, and continne). Emphasis is on safe programming practices and generating modular code. In Chapter 5, we introduce the tools library, a small package of functions we have found useful when teaching this material. It serves as a vehicle for demonstrating many different aspects of programming throughout the text. By the end of Chapter 6, the student should be able to write a program specification and a test plan, as well as write and debug a program that includes calls on library and programmer-defined functions.
Part 3: Basic Data Types.
Chapters 7, 8, and 11 complete the coverage ofprimitive data types in C. Types rloat, short int, long int, and char are introduced,along with their UO formats, specialized operators, library functions, and examples of appropriate usage. Several important issues are discussed, inclading numeric overfiow, approximate representation of real values,and type conversions.
Chapter 9 extends the coverage of functions to include an arbitrary number ofparameters ofany combination oftypes. It introduces a method for modular program development that is designed to minimize the tenor a student feels when confronted by a blank page and a "story problem".
Stages of analysis are prescribed, starting with an informal specification and testing plan. Then the student is asked to write down the familiar and routine pans of a program, defeoing parts that seem complicated at first. Gradually attention is focused on each defemed section, which is always simpler when considered in isolation. Imponant issues discussed include function call charts, stub testing, scope and lifetime of variables,the proper use of parameters and local declarations and the bad effects of global variables.
Chapters 1O and 12 introduce the nse of arrays, subscripts, and pointers. Issues include array parameters, simple anay processing techniques, parallel aITays, walking on memory, and call-by-address parameters. These chapters complete the coverage of the fundamental aspects







点击看大图


加载中...

