overview of c. c—a high-level programming language developed in 1972 by dennis ritchie at at&t...

54
Overview of C

Upload: jesse-holt

Post on 17-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

Overview of C

Page 2: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories.

• We will discuss:– the elements of a C program

– the types of data that can be processed by C.

– C statements for – performing computations,

– for entering data, and

– for displaying results.

Topics to Be Covered

Page 3: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

An algorithm

An algorithm that is implemented in C language

Page 4: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• What is the program about?

• There are two parts in the code:– Preprocessor

– Function main

1. C language elements

Page 5: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 6: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Are commands that give instructions to C preprocessor , whose job is to modify the text of a C program before it is compiled.

• Begins with a number symbol (#)

• Two most common directives : – #include

– #define

• C language explicitly defines only a small number of operations. Many actions that are necessary in a computer program are not defined directly by C.

• Instead, every C implementation contains collections of useful functions and symbols called libraries library_name.h

Preprocessor directives

Page 7: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• #include directive gives a program access to a library.

• This directive causes the preprocessor to insert definitions from a standard header file into a program before compilation.

• The directive

notifies the preprocessor that some names used in the program (such as scanf and printf ) are found in the standard header file <stdio.h> .

#include

Page 8: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• This directive instructs the preprocessor to replace each occurrence of KMS_PER_MILE by 1.609 before compilation begins.– Associates the constant macro KMS_PER_MILE with the meaning

1.609.

– constant macro a name that is replaced by a particular constant value before the program is sent to the compiler.

– An executing C program cannot change the value of a name defined as a constant macro.

#define

Page 9: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• The text on the right of each preprocessor directive, starting with /* and ending with */ , is a comment .

• Comments provide supplementary information making it easier for us to understand the program, but comments are ignored by the C preprocessor and compiler.

Comments

Page 10: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

Syntax: #include

Page 11: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

Syntax: #define

Page 12: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Every C program has a main function.

Function main

• marks the beginning of

the main function where

program execution begins.

• The remaining lines of the

program – form the body of

the function is enclosed in braces { }.

Page 13: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

Function main

Page 14: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Some example of reserved words in C:

• Reserved words are identifiers from standard libraries, and names for memory cells.

• All the reserved words appear in lowercase; they have special meaning in C and cannot be used for other purposes.

• A complete list of ANSI C reserved words is found in Appendix E . Table 2.1 describes the reserved words in Fig 2.1.

Reserved Words

Page 15: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 16: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

Notice that main is not a reserved word. However, this is a fairly technical

distinction, and for practical purposes you are advised to treat , main as if it were reserved as well.

Page 17: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Other words in Fig. 2.1 are identifiers that come in two varieties: – standard

– user-defined.

• Standard identifiers have special meaning in C. – In Fig. 2.1 , the standard identifiers printf and scanf are names of

operations defined in the standard input/output library.

• User-defined identifiers – We choose our own identifiers to name memory cells that will hold

data and program results and to name operations.

– Example: KMS_PER_MILE , is the name of a constant macro.

Identifiers

Page 18: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• You have some freedom in selecting identifiers. The syntax rules and some valid identifiers follow. 1. must consist only of letters, digits, and underscores.

2. cannot begin with a digit.

3. Cannot use C reserved words as an identifier.

4. An identifier defined in a C standard library should not be redefined.

• Example of valid identifiers:letter_1, letter_2, inches, cent, CENT_PER_INCH, Hello, variable

Page 19: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Table 2.2 shows some invalid identifiers.

Page 20: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 21: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Case sensitive -- C compiler considers uppercase and lowercase letters as different identifiers.

• Adopting a consistent pattern in the way you use uppercase and lowercase letters is helpful to the readers of your programs. – All reserved words in C and names of all standard library functions use

only lowercase letters.

– One style that has been widely adopted in industry uses all uppercase letters in the names of constant macros.

– For other identifiers we use all lowercase letters.

Uppercase and lowercaseletters

Page 22: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• A program that “looks good” is easier to read and understand than one that is sloppy.

• Most programs will be examined or studied by someone other than the original programmers.

• In industry, programmers spend considerably more time on program maintenance (that is, updating and modifying the program) than they do on its original design or coding.

• A program that is neatly stated and whose meaning is clear makes everyone’s job simpler.

Page 23: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Meaningful name for a user-defined identifier,– Example: salary better than s or sal.

• If an identifier consists of two or more words, placing the underscore character ( _ ) between words will improve the readability of the name – Example: dollars_per_hour better than dollarsperhour .

• Pick long enough identifier to convey your meaning, but avoid excessively long names (it will more likely make a typing error)– Example: lbs_per_sq_in better than pounds_per_square_inch.

• Avoid two names that are different only in their use of uppercase and lowercase letters. – Example: LARGE and large

• Not to use two names that differ only in the presence or absence of an underscore – Example: xcoord and x_coord.

Page 24: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 25: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

2. Variable Declarations and Data Types

Page 26: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• a name associated with a memory cell whose value can change, used to store a program’s input data and its computational results.

• variable declarations in a C program communicate to the C compiler – the names of all variables used in a program

– what kind of information will be stored in each variable and

– how that information will be represented in memory.

• Example of variable declarations:

Variable and variable declaration

Page 27: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• give the names of two variables ( miles , kms ) – used to store real numbers.

– Note: C ignores the comments on the right of each line describing the usage of each variable.

• C requires you to declare every variable used in a program

Page 28: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 29: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• A data type of an item specifies operations on that item.– Example: C uses standard data types

– double as abstractions for real numbers

– int as integers.

Data type

Page 30: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• int data type is used to represent integers (whole numbers) in C.

• Because of the finite size of a memory cell, not all integers can be represented by type int .

• ANSI C specifies range of int: −32767 through 32767 .

• You can – store an integer in a type int variable

– perform common arithmetic operations (add, subtract, multiply, and divide), and compare two integers.

Data Type int

Page 31: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• A real number has an integral part and a fractional part that are separated by a decimal point.

• In C, the data type double is used to represent real numbers (for example, 3.14159 , 0.0005 , 150.0 ).

• You can – store a real number in a type double variable,

– perform common arithmetic operations (add, subtract, multiply, and divide), and compare them.

• In normal scientific notation, real number 1.23x105 is equivalent to 123000.0 – In C scientific notation, we write this number as 1.23e5 or 1.23E5.

Data Type double

Page 32: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 33: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Operations involving integers are faster than those involving numbers of type double.

• Less storage space is needed to store type int values.

• Also, operations with integers are always precise, whereas some loss of accuracy or round-off error may occur when dealing with type double numbers.

why having more than one numeric type is necessary?

Page 34: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• represents an individual character value — a letter, a digit, or a special symbol.

• Each type char value is enclosed in apostrophes (single quotes) as shown here.

'A' 'z' '2' '9' '*' ':' ' '

• A character is represented in memory as an integer. – The value stored is determined by the code used by your C compiler.

– ASCII code (American Standard Code for Information Interchange) is the most common.

Data type char

Page 35: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 36: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 37: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 38: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• An assignment statement stores a value or a computational result in a variable,and is used to perform most arithmetic operations in a program.

• In C, = is the assignment operator.

• Example: kms = KMS_PER_MILE * miles;– This instruction assigns a value to the variable kms.

3. Executable statementsAssignment statement

Page 39: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• sum = sum + item;

• new_x = x;– copies the value of variable x into variable new_x

• new_x = -x;

– get the value of x , negate that value, and store the result in new_x.

• next_letter = 'A';

Examples:

Page 40: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Input operation is data transfer from the outside world into memory.

• Output operation is displaying program results to the program user.

• All input/output operations in C are performed by special program units called input/output functions supplied as part of the C standard input/output library to which we gain access through the preprocessor directive

#include <stdio.h>

3. Executable statementsInput/Output Operations and Functions

Page 41: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Output function printf displays a line of program output.

• A function call consists of two parts: the function name and the function arguments , enclosed in parentheses. – The arguments for printf consist of a format string (in quotes) and a

print list (the variable kms ).

Output function printf

Page 42: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• %f is a placeholder, marks the display position for a type double variable.

• Other data type placeholders.

Page 43: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 44: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• prompt (prompting message) a message displayed to indicate what data to enter and in what form.

Displaying Prompts

Page 45: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• copy data into the variable miles.

• & operator tells the scanf function where to find each variable into which it is to store a new value.

• Example: scanf("%c%c%c", &letter_1, &letter_2, &letter_3);

Input function scanf

Page 46: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 47: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Transfers control from your program to the operating system.

• Value in parentheses, 0, is considered the result of function main ’s execution, and it indicates that your program executed without error.

The return Statement

Page 48: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 49: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a
Page 50: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

One possible solution

/*C program for area of circle*/

#include <stdio.h>#define PI 3.141

int main(){  double radius,area;  printf("Radius: ");  scanf("%lf", &radius);  area = PI * radius * radius;  printf(“Area of the circle is %f\n", area);  return (0);}

Note, variable declarations are

inside the function main

Page 51: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Program Style – Spaces in Programs

– Comments in Programs, describe

– purpose of the program,

– use of identifiers,

– purpose of each program step.

Comments are part of the program documentation.

4. General form of a C program

Page 52: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Self check

Page 53: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Formatting values of type integers– simply add a number between % and the d of the %d placeholder in

the printf format string.

– This number specifies the field width —the number of columns to use for the display of the value.

– Example:

5. Formatting numbers in program output

Page 54: Overview of C. C—a high-level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories. We will discuss: –the elements of a

• Formatting values of type double– we must indicate both total field width needed and the number of

decimal places desired.

5. Formatting numbers in program output