C_CH3

download C_CH3

of 35

Transcript of C_CH3

  • 8/7/2019 C_CH3

    1/35

    1

    Chapter 3

    Fundamentals of theC Programming Language

  • 8/7/2019 C_CH3

    2/35

    2

    3.1 INTRODUCTION

    This chapter serves as a formal introductionto the C programming language.

    The fundamental elements of the Clanguage.

    Algorithms requires as least five statementtypes; input, output, arithmetic calculations,

    selection, and repetition.

  • 8/7/2019 C_CH3

    3/35

  • 8/7/2019 C_CH3

    4/35

    4

    Analysis

    Input. Gross annual income in dollars.Output. The computed city income tax in

    dollars.

    Formulas. The city income tax is computedusing the formula.

    income_tax = 0.0175 * gross_income

  • 8/7/2019 C_CH3

    5/35

    5

    Design

    print A PROGRAM THAT COMPUTES

    CITY INCOME TAX

    print Enter gross income:

    read gross_income

    compute city_tax = 0.0175 * gross_income

    print city_tax

  • 8/7/2019 C_CH3

    6/35

    6

    Implementation

    A PROGRAM THAT COMPUTES CITY

    INCOME TAX

    Enter gross income : 18657City tax is 326.497500 dollars.

    The five lines that we have just explained areexamples of C statements. Notice that they

    all terminate with a semicolon.

  • 8/7/2019 C_CH3

    7/35

    7

    3.3 LANGUAGE CHARACTER SET AND

    TOKENStypes of tokens

    1. Reserved words (keywords)

    2. Identifiers

    3. Constants

    4. String literals

    5. Punctuators

    6. Operators

  • 8/7/2019 C_CH3

    8/35

    8

    1. Reserved words :

    Identify language entities, they have special

    meanings to the compiler. C reserved words

    must be typed fully in lowercase. Someexamples of reserved words from the

    program are const, double, int, and return.

  • 8/7/2019 C_CH3

    9/35

    9

    2. Identifiers

    programmer-defined words. Needed for programvariables, functions, and other program constructs.

    gross_income and city_tax are examples. Must be

    unique within the same scope

    1. A to Z , a to z , 0 to 9 , and the underscore _

    2. The first character must be a letter or an underscore.

    3. Only the first 32 characters as significant.

    4. There can be no embedded blanks.

    5. Reserved words cannot be used as identifiers.

    6. Identifiers are case sensitive.

  • 8/7/2019 C_CH3

    10/35

    10

    3. Constants

    fixed values CITY_TAX_RATE = 0.0175 is an

    example of a constant.Integer Constants

    commas are not allowed in integer constants.

    Floating-Point Constants

    either in conventional or scientific notation. Forexample, 20.35; 0.2035E+2

    Character Constants and Escape Sequences

    a character enclosed in single quotation marks.

    Precede the single quotation mark by a backslash,printf(%c, \);

    Escape sequence

    causes a new line during printing. \n

  • 8/7/2019 C_CH3

    11/35

    11

    4. String Literals

    characters surrounded by double quotation marks.

    format specifier for output converts the internalrepresentation of data to readable characters.( %f ) forexample,

    City tax is 450.000000 dollars.

    precede it with a backslash as

    Jim \Mac\ MacDonald

    backslash character can be used as a continuationcharacter

    printf(THIS PROGRAM COMPUTES \ CITYINCOME TAX);

  • 8/7/2019 C_CH3

    12/35

    12

    5. Punctuators

    [ ] ( ) { } , ; : * #

    6. Operators

    result in some kind of computation or actioncity_tax = CITY_TAX_TATE * gross_income ;

    operators act on operands.

  • 8/7/2019 C_CH3

    13/35

    13

    3.4 THE STRUCTURE OF A C PROGRAM

    C program consists of followingcomponents:

    1. Program comments

    2. Preprocessor directives

    3. Type declarations

    4. Named constants

    5. Statements

    6. Function declarations (prototypes)7. Function definitions

    8. Function calls

  • 8/7/2019 C_CH3

    14/35

    14

    1. Program Comments

    use /* and */ to surround comments, or // to begin comment lines.

    2. Preprocessor Directives

    Lines that begin with a pound sign, #,

    A preprocessor directive is can instruction to thepreprocessor. Named file inclusion is concerned with adding the

    content of a header file to a source program file. Standard header

    files. For example,

    #include

    #include causes a headerfile to be copied into the code.

    programmer-defined header file surrounded by double quotation

    marks. #include

    to advantage in partitioning large programs into several files.

  • 8/7/2019 C_CH3

    15/35

    15

    3. Data Types and Type Declarations

    double gross_income;double city_tax;

    variables type determines1. How it is stored internally

    2. What operations can be applied to it

    3. How such operations are interpreted

  • 8/7/2019 C_CH3

    16/35

    16

    declare a variable to be of type integer, the compilerallocates a memory location for that variable. The

    size of this memory location depends on the type ofthe compiler.

    int is 2 bytes the range 32768 through 32768designed to perform arithmetic operations and

    assignment operations. Two classes of data types:1. Fundamental data types

    2. Programmer-defined data types

    to classes of built-in data types:

    1. Fundamental data types

    2. Derived data types

    Examples of derived data types are arrays, strings,and structures.

  • 8/7/2019 C_CH3

    17/35

    17

    Data Type int

    Data Type char

    Data Type double

    Data initialization

    be initialized in two ways,

    1. Compile-time initialization

    2. Run-time initialization

    Strings as a Derived Data Type

    A string is a sequence of characters that istreated as a single data item. A string variable is a

    variable that stores a string constant.

  • 8/7/2019 C_CH3

    18/35

    18

    how to declare string variables.

    1. Begin the declaration with the keyword

    char, Char report_header [41]

    2. To initialize a string variable at complietime,

    char report_header [41] = Annual Report

  • 8/7/2019 C_CH3

    19/35

    19

    4. Named Constants

    const double CITY_TAX_RATE = 0.0175;is an identifier whose value is fixed and does not

    change during the execution of a program in

    which it appears.

    In C the declaration of a named constant begins

    with the keyword const.

    During execution, the processor replaces every

    occurrence of the named constant .

  • 8/7/2019 C_CH3

    20/35

    20

    5. Statements

    A statement is a specification of an action tobe taken by the computer as the program

    executes.

    Compound Statements

    is a list of statements enclosed in braces, { }

  • 8/7/2019 C_CH3

    21/35

    21

    3.5 A FIRST LOOK AT FUNCTIONS

    as a block of code that performs a specific task.

    The function main( )

    int main(void) {

    Statement;

    Statement;

    return 0;

    }

  • 8/7/2019 C_CH3

    22/35

    22

    return statement ensures that the constant value

    0, the program status code, is returned to theprogram or the operating system that has

    triggered the execution of this function main.

    Each C program must have one main function.

    The type specifier for functions can be int,double, char, void, and so on, depending on

    the type of data that it returns.

  • 8/7/2019 C_CH3

    23/35

    23

    3.6 BUILDING A MINIMUM LANGUAGE SUBSET

    An expression is a syntactically correct andmeaningful combination of operators and operands.

    city_tax = CITY_TAX_RATE * gross_income

    An expression statement is any expression followed by

    a semicolon.

    city_tax = CITY_TAX_RATE * gross_income

  • 8/7/2019 C_CH3

    24/35

    24

    Example 3.2

    area ? short_side 10.05 long_side 20.00

    area = short_side * long_side

    area 210.00 short_side 10.05 long_side 20.00

  • 8/7/2019 C_CH3

    25/35

    25

    The Standard Output Function printf

    This statement is a function call to the standard

    library function printf. The parentheses ( ) are

    known as the function call operator.

    Following compilation, the linker fetches the

    object code corresponding to printf from thestandard C library and combines it with your

    object program.

  • 8/7/2019 C_CH3

    26/35

    26

    Quantity Type printf Format Specifier

    int %d

    double %f or % lf char %c

    printf(Your year of birth is %d, and in2000 you will be %d years old. ,year_of_birth, 2000 year_of_birth);

  • 8/7/2019 C_CH3

    27/35

    27

    Variable Type scanf Format Specifier

    int %d

    double %lf

    char %c

    printf(Type your weight in pounds: );

    scanf(%d , &weight_in_pounds);

  • 8/7/2019 C_CH3

    28/35

    28

    Input of String Variables

    char string1 [31];scanf(%s , string1);

    The reason is that scanf skips whitespaceduring string input and picks string valuesdelimited by whitespace.

    the input string values that contain

    whitespace, we can use several techniquesin C. We will explain one easy way, whichrequires the use of the gets function.

  • 8/7/2019 C_CH3

    29/35

    29

    3.7 PREPARING C SOURCE PROGRAM

    FILESHere are some style conventions

    1. Insert blank lines between consecutive

    program sections.2. Make liberal use of clear and help comments.

    3. Keep your comments separate from the

    program statements.4. Type each statement or declaration on a

    single line.

  • 8/7/2019 C_CH3

    30/35

    30

    5. Avoid running a statement over multiple

    lines.6. Avoid line splicing.

    7. Indent all lines that form a compound

    statement by the same amount.8. Type the beginning and end braces, { },

    for compound statements

    9. Use whitespace in typing statements.10. Conclude each function by a comment

    to mark its end.

  • 8/7/2019 C_CH3

    31/35

    31

    3.8 EXAMPLE PROGRAM 2 : A C Programthat Converts Height and Weight to MetricUnits

    Enter your first name : Kelly

    Enter your last name : Johnson

    Enter your height in inches : 64

    Enter your weight in pounds : 110

    Kelly Johnson, your height is 162.560000centimeters, and your weight is 49.894900kilograms.

  • 8/7/2019 C_CH3

    32/35

    32

    3.9 PROGRAM DEBUGGING

    1 #include

    2

    3 int main (void) {

    4 double number;5

    6 printf(Enter a number : )

    7 scanf(%lf , &number);

    8 Inverse = 1.0 / number ;

    9 printf(Inverse of %f is %f , number, inverse);

  • 8/7/2019 C_CH3

    33/35

    33

    ---Configuration : debug Win32 Debug ---

    Compiling

    Debug.cD:\cprogs\debug.c(7) : error C2146: cyntax error :

    missing ; before identifier scanf

    D:\cprogs\debug.c(8) : error C2065 inverse :

    undeclared identifier.D:\cprogs\debug.c(8) : warning C4244 : = :

    conversion from const double to int , possibleloss of data.

    D:\cprogs\debug.c(10) : fatal error C1004 :unexpected end of file found

    Error executing c1.exe

    Debug.exe 3 error(s), 1 warning(s)

  • 8/7/2019 C_CH3

    34/35

    34

    Debugging for Warning Diagnostics

    do not force it to stop the compilation.

    Debugging Run-Time Errors

    Enter a number : 0

    Floating point error : Divide by 0 .

    Abnormal program termination .

  • 8/7/2019 C_CH3

    35/35

    35

    if number is equal to zero

    print Zero does not have a finite inverse.

    else

    compute inverse = 1 / number

    end_if