Docstoc

t02 AFirst CProgram

Document Sample
t02 AFirst CProgram Powered By Docstoc
					Department of Computer and Information Science,
School of Science, IUPUI




  A First C Program


         Dale Roberts, Lecturer
         Computer Science, IUPUI
         E-mail: droberts@cs.iupui.edu




                                                  Dale Roberts
                  Try Your First C Program
           #include <stdio.h>                /* I/O header file */                         comment
                                         header file – contains I/O routines
               pre-processor directive
            main()                                    main must be present in each C program
Indicates a {
program
                               one statement
building             printf(“Hello world ”);                                   statement terminator
block called         printf(“Welcome to CSCI230\n“);
function
                     printf(“I am John Smith\n”);
           }
       A C program contains one or more functions
       main() is the function name of your main (root) program
       { }: braces (left & right) to construct a block containing the statements of a
       function
       Every statement must end with a ;
        \ is called an escape character
        \n is an example of an escape sequence which indicates newline
       Other escape sequences are: \t \r \a \\ \”
     Exercise: Use any editor to type and then save your first program as main.c
       % gcc main.c
       % a.out               and observe its result.
                                                                                               Dale Roberts
                         Identifiers
Variable identifiers
  Begin with a letter or underscore: A-Z, a-z, _
  The rest of the name can be letters, underscore, or digits
  Guarantee that east least the first 8 characters are significant (those
  come after the 8th character will be ignored) while most of C compiler
  allows 32 significant characters.
    Example:
        _abc      ABC      Time   time     _a1       abcdefgh
        abcdefghi (may be the same as abcdefgh)
  Case sensitive
  Keywords: reserved names (lexical tokens)
  auto    double if    static break          else   int    struct
  case    entry long   switch char           extern register
  typedef float return union do              go     sizeof continue
    …


                                                               Dale Roberts
                   Fundamental Data Type
   Four Data Types (assume 2’s complement, byte machine)
            Data Type            Abbreviation     Size              Range
                                                 (byte)
 char      char                                    1              -128 ~ 127
           unsigned char                           1               0 ~ 255
           int                                   2 or 4   -215 ~ 215-1 or -231 ~ 231-1
           unsigned int         unsigned         2 or 4    0 ~ 65535 or 0 ~ 232-1
  int      short int            short              2           -32768 ~ 32767
           unsigned short int   unsigned short     2              0 ~ 65535
           long int             long               4             -231 ~ 231-1
           unsigned long int    unsigned long      4               0 ~ 232-1
        float                                      4
        double                                     8
Note:      27 = 128, 215 =32768, 231 = 2147483648
           Complex and double complex are not available



                                                                           Dale Roberts
           Variable Declarations


type v1,v2,v3, …, vn
Example:
   int i;
   int j;
   float k;
   char c;
   short int x;
   long int y;
   unsigned int z;
   int a1, a2, a3, a4, a5;


                                   Dale Roberts
      Numeric, Char, String Literals
Literal
  Numeric literal
     fixed-point
          octal                        O32 (= 24D) (covered later)
          hexadecimal                  OxFE or Oxfe (=254D) (covered later)
          decimal int                  32
          long (explicit)              32L or 32l
     an ordinary integer literal that is too long to fit in an int is also too
     long for long
     floating-point
         No single precision is used; always use double for literal
       Example:
       1.23
       123.456e-7
       0.12E


                                                                      Dale Roberts
         Numeric, Char, String Literals
• Character literal (covered later)
    • American Standard Code for Information Interchange (ASCII)
    • Printable:     single space    32
                        ‘0’ - ‘9’         48 - 57
                        ‘A’ - ‘Z’         65 - 90
                        ‘a’ - ‘z’         97 - 122
    • Nonprintable and special meaning chars
      ‘\n’    new line              10    ‘\t’       tab                9
      ‘\\’    back slash            9     ‘\’’       single quote      39
      ‘\0’    null                   0    ‘\b’       back space         8
      ‘\f’    formfeed              12    ’\r’       carriage return   13
      ‘\”’    double quote          34

      ‘\ddd’ arbitrary bit pattern using 1-3 octal digits
      ‘\Xdd’ for Hexadecimal mode
      ‘\017’ or ‘\17’           Shift-Ins, ^O
      ‘\04’ or ‘\4’ or ‘\004’             EOT (^D)
      ‘\033’ or ‘\X1B’          <esc>



                                                                            Dale Roberts
    Numeric, Char, String Literals
String Literal
  will be covered in Array section
  String is a array of chars but ended by ‘\0’
  String literal is allocated in a continuous memory space of
  Data Segment, so it can not be rewritten
   Example:            “ABCD”
                   A   B   C   D   ‘\0’   ...
              4 chars but takes 5 byte spaces in memory

    Question: “I am a string” takes ? Bytes

                                       Ans: 13+1 = 14 bytes



                                                              Dale Roberts
   Numeric, Char, String Literals
• Character literals & ASCII codes:
      char x;
      x=‘a’;        /* x = 97*/
  Notes:
  – ‘a’ and “a” are different; why?
    ‘a’ is the literal 97
    “a” is an array of character literals, { ‘a’, ‘\0’} or {97, 0}
  – “a” + “b” +”c” is invalid but ‘a’+’b’+’c’ = ? (hint: ‘a’ = 97 in ASCII)
    ‘a’ + ‘b’ + ‘c’ = 97 + 98 + 99 = 294 = 256 + 38

    in the memory

                           1     38
  – if the code used is not ASCII code, one should check out each
    value of character


                                                                    Dale Roberts
               Initialization
If a variable is not initialized, the value of
variable may be either 0 or garbage depending
on the storage class of the variable.
     int i=5;
     float x=1.23;
     char c=‘A’;
     int i=1, j,k=5;
     char c1 = ‘A’, c2 = 97;
     float x=1.23, y=0.1;




                                         Dale Roberts
                Memory Concepts
Each variable has a name, address, type, and
value
1) int x;
2) scanf(“%d”, &x);

3)   user inputs 10
4)   x = 200;
     After the execution of (1)   x
     After the execution of (2)   x
     After the execution of (3)   x   10

     After the execution of (4)   x   200

Previous value of x was overwritten

                                            Dale Roberts
                 Sample Problem
Write a program to take two numbers as input data and
print their sum, their difference, their product and their
quotient.
  Problem Inputs
   float x, y;          /* two items */
  problem Output
   float sum;           /*   sum of x and y */
   float difference;    /*   difference of x and y */
   float product;       /*   product of x and y */
   float quotient;      /*   quotient of x divided by y */




                                                   Dale Roberts
          Sample Problem (cont.)
Pseudo Code:
  Declare variables of x and y;
  Prompt user to input the value of x and y;
  Print the sum of x and y;
  Print the difference of x and y;
  Print the product of x and y;
  If y not equal to zero, print the quotient of x divided by y




                                                      Dale Roberts
                    Example Program
#include <stdio.h>    function
int main(void)           • name
{                        • list of argument along with their types
   float x,y;            • return value and its type
                         • Body
   float sum;
   printf(“Enter the value of x:”);
   scanf(“%f”, &x);
   printf(“\nEnter the value of y:”);
   scanf(“%f”, &y);
   sum = x + y;
   printf(“\nthe sum of x and y is:%f”,sum);
   printf(“\nthe sum of x and y is:%f”,x+y);
   printf(“\nthe difference of x and y is:%f”,x-y);
   printf(“\nthe product of x and y is:%f”,x*y);
   if (y != 0)                                                     inequality operator
        printf(“\nthe quotient of x divided by y is:%f”,x/y);
   else
        printf(“\nquotient of x divided by y does not
   exist!\n”);
   return(0);
}
                                                                              Dale Roberts

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:2
posted:5/29/2012
language:
pages:14
waheed anjum waheed anjum http://
About