Upload
warren-kelley
View
225
Download
2
Tags:
Embed Size (px)
Citation preview
Chapter 2Overview of C
Part I
J. H. Wang (王正豪 ), Ph. D.
Assistant Professor
Dept. Computer Science and Information Engineering
National Taipei University of Technology
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-2
C Language Elements-- Preprocessor Directives
• Preprocessor directive– a C program line beginning with # that provides
an instruction to the preprocessor
• Preprocessor– a system program that modifies a C program
prior to its compilation
• Library– a collection of useful functions and symbols that
may be accessed by a program
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-3
Figure 2.1 C Language Elements in Miles-to-Kilometers Conversion Program
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-4
C Language Elements-- Preprocessor Directives (Cont’)
• Constant macro– a name that is replaced by a particular constant
value before the program is sent to the compiler
• Comment– text beginning with /* and ending with */ that
provides supplementary information but is ignored by the preprocessor and compiler
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-5
C Language Elements -- Syntax for Preprocessor Directives (Cont’)
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-6
C Language Elements -- Syntax for Preprocessor Directives (Cont’)
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-7
C Language Elements -- Function main
• Declarations– the part of a program that tells the compiler the
names of memory cells in a program
• Statements– program lines that are converted to machine
language instructions and executed by the computer
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-8
C Language Elements -- Function main
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-9
C Language Elements -- Function main
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-10
C Language Elements -- Reserved Words
• Reserved word – a word that has special meaning in C
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-11
C Language Elements -- Standard Identifiers
• Standard identifier – a word having special meaning but one that a
programmer may redefine (but redefinition is not recommended!)
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-12
TABLE 2.1 Reserved Words in Fig. 2.1
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-13
C Language Elements -- User-Defined Identifiers
• User-defined identifiers– used to name memory cells that will hold data and
program results and to name operations that we define
• Valid identifiers:– An identifier must consist only of letters, digits, and
underscores.– An identifier cannot begin with a digit.– A C reserved word cannot be used as an identifier.– An identifier defined in a C standard library should not
be redefined.
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-14
TABLE 2.2 Invalid Identifiers
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-15
TABLE 2.3 Reserved Words and Identifiers in Fig. 2.1
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-16
C Language Elements -- Uppercase and Lowercase Letters
• Uppercase and lowercase letters are viewed by the compiler as different identifiers.
• Adopting a consistent pattern in the way you use uppercase and lowercase letters is helpful to the readers of your programs.
• One style that has been widely adopted in industry uses all uppercase letters in the names of constant macros.
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-17
C Language Elements-- Program Style
• Most programs will be examined or studied by someone other than the original programmers.– pick a meaningful name– placing the underscore character (_) between words– choose identifiers to convey your meaning– avoid excessively long names– do not choose names that are similar to each other
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-18
Variable Declarations and Data Types-- Variable Declarations
• Variable – a name associated with a memory cell whose
value can change
• Variable declarations – statements that communicate to the compiler
the names of variables in the program and the kind of information stored in each variable
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-19
Variable Declarations and Data Types-- Variable Declarations (Cont’)
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-20
Variable Declarations and Data Types-- Data Types
• Data type – a set of values and operations that can be performed on
those values• Data Type “int”
– -10500, 435, +15, -25 32767• Data Type “double”
– 1.23 × 105 is equivalent to 123000.0– 1.23e5 or 1.23E5
• Read the letter e or E as “times 10 to the power”.
• Data Type “char”– 'A' 'z' '2' '9' '*' ':' '"' ' '
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-21
Variable Declarations and Data Types-- Data Types (Cont’)
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-22
Figure 2.2 Memory(a) Before and (b) After Execution of a Program
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-23
Executable Statements-- Assignment Statements
• assignment statement– an instruction that stores a value or a
computational result in a variable – E.g. kms = KMS_PER_MILE * miles;
• Read = as “becomes,” “gets,” or “takes the value of ” rather than “equals” because it is not equivalent to the equal sign of mathematics.
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-24
Figure 2.3 Effect of kms = KMS_PER_MILE * miles;
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-25
Executable Statements-- Assignment Statements
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-26
Figure 2.4 Effect of sum = sum + item;
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-27
Executable Statements-- Input/Output Operations and Functions
• input operation – an instruction that copies data from an input device into
memory
• output operation – an instruction that displays information stored in
memory
• input/output function – a C function that performs an input or output operation
• function call – Calling or activating a function
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-28
Executable Statements-- The printf Function
• function argument – enclosed in parentheses following the function name;
provides information needed by the function
• format string – in a call to printf, a string of characters enclosed in
quotes ("), which specifies the form of the output line
• print list – in a call to printf, the variables or expressions whose
values are displayed
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-29
Executable Statements-- The printf Function (Cont’)
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-30
Executable Statements-- The printf Function (Cont’)
• placeholder a symbol beginning with % in a format string that indicates where to display the ouput value
• newline escape sequence the character sequence \n, which is used in a format string to terminate an output line
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-31
Executable Statements-- The printf Function (Cont’)
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-32
Executable Statements-- The printf Function (Cont’)
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-33
Executable Statements-- The printf Function (Cont’)
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-34
Executable Statements-- The printf Function (Cont’)
• cursor – a moving place marker that indicates the next position
on the screen where information will be displayed – When executing a printf function call, the cursor is
advanced to the start of the next line on the screen if the \n escape sequence is encountered in the format string.
– printf("Here is the first line\n");printf("\nand this is the second.\n");
– Here is the first line
and this is the second.
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-35
Executable Statements-- The printf Function (Cont’)
• prompt (prompting message) – a message displayed to indicate what data to
enter and in what form – printf("Enter the distance in miles> ");
scanf("%lf", &miles);
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-36
Executable Statements-- The scanf Function
• Fig 2.5 Effect of scanf("%lf", &miles);• The name of each variable that is to be given a
value is preceded by the ampersand character (&), the C address-of operator.
• & tells the scanf function where to find each variable into which it is to store a new value.
• Once <return> or <enter> is pressed, the data are processed exactly as typed.
• Fig 2.6 scanf("%c%c%c", &letter_1, &letter_2, &letter_3);
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-37
Figure 2.5 Effect of scanf("%lf", &miles);
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-38
Figure 2.6 Scanning Data Line Bob
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-39
Executable Statements-- The scanf Function (Cont’)
• format placeholder– reflect the type of the variable in which the data will be
stored– one input character is used for a %c– For %lf or %d, the program first skips any spaces and
then scans characters until it reaches a character that cannot be part of the number.
– If you type more data characters on a line than are needed by the current call to scanf, the extra characters will be processed by the next call to scanf.
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-40
Executable Statements-- The scanf Function
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-41
Executable Statements-- The return Statement
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-42
General Form of a C Program
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-43
General Form of a C Program (Cont’)
• C treats most line breaks like spaces so a C statement can extend over more than one line.
• You should not split a statement that extends over more than one line in the middle of an identifier, a reserved word, a constant, or a format string.
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-44
General Form of a C Program -- Program Style Spaces in Programs
• The consistent and careful use of blank spaces can improve the readability and the style of a program.
• Indent the body of the main function and insert blank lines between sections of the program.
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-45
General Form of a C Program-- Comments in Programs
• Use comments to describe the purpose of the program, the use of identifiers, and the purpose of each program step.
• program documentation – information (comments) that enhances the
readability of a program
• E.g.double miles, /* input - distance in miles */kms; /* output - distance in kilometers */
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-46
General Form of a C Program-- Comments in Programs
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-47
General Form of a C Program -- Program Style Using Comments
• Each program should begin with a header section that consists of a series of comments specifying– the programmer’s name– the date of the current version– a brief description of what the program does
• E.g./** Programmer: William Bell Date completed: May 9, 2003* Instructor: Janet Smith Class: CIS61** Calculates and displays the area and circumference of a* circle*/
Copyright ©2004 Pearson Addison-Wesley. All rights reserved. 2-48
General Form of a C Program -- Program Style Using Comments
• Before you implement each step in the initial algorithm, you should write a comment that summarizes the purpose of the algorithm step.
• Comment should describe what the step does rather than simply restate the step in English.
• E.g./* Convert the distance to kilometers. */
kms = KMS_PER_MILE * miles;