Programming and Data Structure - PowerPoint PPT Presentation

1 / 49
About This Presentation
Title:

Programming and Data Structure

Description:

... and the underscore ( _') character, with no space in between. ... A given variable can be assigned different data items at different places within the program. ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 50
Provided by: facwebIit
Category:

less

Transcript and Presenter's Notes

Title: Programming and Data Structure


1
Programming and Data Structure
  • Sudeshna Sarkar

Lecture 4
2
Sample C program 4
float myfunc (float r) float
a a PI r r / return
result / return (a)
include ltstdio.hgt define PI 3.1415926 /
Compute the area of a circle / main()
float radius, area float myfunc
(float radius) scanf (f, radius)
area myfunc (radius) printf
(\n Area is f \n, area)
3
Operators
  • Operators are used to manipulate variables.
  • They perform
  • arithmetic
  • logic functions
  • comparisons between values
  • int x 6
  • int y 9
  • int z, w
  • z x y w x y

4
Expressions and statements
  • Expressions combine constants and variables
    with operators
  • x y
  • Expressions can be grouped to form statements
  • z x y
  • Semicolons terminate statements
  • One or more simple sentences can be grouped to
    form a compound sentence or a block by enclosing
    within

5
Assignment operator
  • int x 4
  • x x 9
  • 1. The right hand side is evaluated.
  • 2. The left hand side is set to the value of the
    right hand side.
  • All expressions evaluate to a value of a
    particular type.
  • x 9 evaluates to the integer value of 13.

6
Arithmetic operators
  • distance rate time
  • netIncome income - tax
  • speed distance / time
  • area PI radius radius
  • y a x x bx c
  • quotient dividens/divisor
  • remainderdividend divisor
  • addition
  • - subtraction
  • multiplication
  • / division
  • modulus operator

7
C Program 5
  • / FIND THE LARGEST OF THREE NUMBERS /
  • main()
  • int a, b, c
  • scanf (d d d, a, b, c)
  • if ((agtb) (agtc)) / Composite
    condition check/
  • printf (\n Largest is d, a)
  • else
  • if (bgtc) / return result /
  • printf (\n Largest is d, b)
  • else
  • printf (\n Largest is d, c)

8
Structure of a C program
  • Every C program consists of one or more
    functions.
  • One of the functions must be called main.
  • The program will always begin by executing the
    main function.

9
Function
  • Each function must contain
  • A function heading, which consists of the
    function name, followed by an optional list of
    arguments enclosed in parentheses.
  • A list of argument declarations.
  • A compound statement, which comprises the
    remainder of the function.

10
Function
  • Each function must contain
  • A function heading, which consists of the
    function name, followed by an optional list of
    arguments enclosed in parentheses.
  • A list of argument declarations.
  • A compound statement, which comprises the
    remainder of the function.

11
Compound Statement
  • Each compound statement is enclosed within a pair
    of braces ( and ).
  • The braces may contain combinations of elementary
    statements and other compound statements.
  • Comments may appear anywhere in a program,
    enclosed within delimiters
  • / and /.

12
Compound Statement (or block)
  • definitions-and-declarations (optional)
  • statement-list
  • Used for grouping, as function body, and to
    restrict identifier visibility

13
Desirable programming style
  • Clarity
  • The program should be clearly written.
  • It should be easy to follow the program logic.
  • Meaningful variable names
  • Make variable/constant names meaningful to
    enhance program clarity.
  • area instead of a
  • radius instead of r

14
Program Documentation
  • Insert comments in the program to make it easy to
    understand.
  • Put a comment for each function.
  • Put comments for the important variables.
  • Do not give too many comments.

15
Program indentation
  • Use proper indentation.
  • C has standard indentation conventions.
  • Followed by any book on C
  • Followed in the class

16
Identifiers
  • Identifiers
  • Names given to various program elements
    (variables, constants, functions, etc.)
  • May consist of letters, digits and the underscore
    (_) character, with no space in between.

17
  • First character must be a letter.
  • An identifier can be arbitrary long.
  • Some C compilers recognize only the first few
    characters of the name (16 or 31).
  • Case sensitive
  • area, AREA and Area are all different
  • Examples number, simple_interest, List
  • Non-examples 1stnum, simple interest,
    no-of-students

18
Keywords
  • Reserved words that have standard, predefined
    meanings in C.
  • Cannot be used as identifiers.
  • OK within comments.
  • Standard C keywords

auto break case char const
continue default do double
else enum extern float for
goto if int long
register return short signed
sizeof static struct switch typedef
union unsigned void volatile
while
else
19
Data Types in C
  • int signed integer, typically 2 / 4 bytes
  • int numberOfStudents
  • char character, typically 1 byte
  • char lock char key Q
  • float floating point number (4 bytes)
  • float averageTemp
  • double double precision floating point (8 bytes)
  • double electrondPerSecond

20
Variations of these types
  • short int, longed int, unsigned int
  • short int age
  • long int worldPopulation
  • unsigned int numberOfDays
  • long double
  • long double particlesInUniverse

21
Values of Data Types
  • 2 byte int
  • -32768 to 32767 (-215 to 215-1)
  • 4 byte int
  • -2147483648 to 2147483647
  • 2 byte unsigned int
  • 0 to 65535 (216-1)
  • char 0 to 255
  • a, A, , , ......
  • float -2.34, 0.0037, 23.0, 1.234e-5

E or e means 10 to the power of
22
Constants
  • integer constants
  • 0, 1, 648, 9999
  • floating point constants
  • 0.2, 12.3, 1.67E8, 1.12E-12
  • character constants
  • C, x, ,
  • string constants
  • Welcome aboard, Rs. 89.95, Bye \n

23
Ascii value Character 000 NUL 032
blank 036 038
043 048 0 049
1 057 9 065
A 066 B 090
Z 097 a 098 b 122
z
Escape Sequences Certain non- printing
characters can be ex- pressed in terms of escape
sequences \n
new line \t horizontal
tab \v vertical tab \\
backslash \ double quote \0
null
24
Variables
  • It is an identifier
  • used to represent a specified type of information
  • within a designated portion of the program
  • The data item must be assigned to the variable at
    some point of the program
  • It can be accessed later by referring to the
    variable name
  • A given variable can be assigned different data
    items at different places within the program.

25
  • int a, b, c
  • char d
  • a 3
  • b 5
  • c ab
  • d a
  • a 4
  • b 2
  • c a-b
  • d D

a
b
c
d
?
?
?
?
?
?
?
3
5
3
?
?
?
8
5
3
3
5
8
97
5
8
4
97
8
97
4
2
97
4
2
2
4
68
2
2
26
Declaration of Variables
  • data-type variable-list
  • int a, b, c
  • float root1, root2
  • char flag, response

Declaration 1. specifies the
name of the variable 2. Specifies
what type of data the variable will hold.

27
A First Look at Pointers
  • A variable is assigned a specific memory
    location.
  • For example, a variable speed is assigned memory
    location 1350.
  • Also assume that the memory location contains the
    data value 100.
  • When we use the name speed in an expression, it
    refers to the value 100 stored in the memory
    location.
  • distance speed time
  • Thus every variable has an address (in memory),
    and its contents.

28
Contd.
  • In C terminology, in an expression
  • speed refers to the contents of the memory
    location.
  • speed refers to the address of the memory
    location.
  • Examples
  • printf (f f f, speed, time, distance)
  • scanf (f f, speed, time)

29
An Example
include ltstdio.hgt main() float speed,
time, distance scanf (f f, speed,
time) distance speed time
printf (\n The distance traversed is
\n,distance)
30
Assignment Statement
  • Used to assign values to variables, using the
    assignment operator ().
  • General syntax
  • variable_name expression
  • Examples
  • velocity 20
  • b 15 temp 12.5 / Multiple assign on
    same line /
  • A A 10
  • v u f t
  • s u t 0.5 f t t

31
Contd.
  • A value can be assigned to a variable at the time
    the variable is declared.
  • int speed 30
  • char flag y
  • Several variables can be assigned the same value
    using multiple assignment operators.
  • a b c 5
  • flag1 flag2 y
  • speed flow 0.0

32
Assignment Statement
  • Used to assign values to variables, using the
    assignment operator ().
  • General syntax
  • variable_name expression
  • Examples
  • velocity 20.5
  • b 15 temp 12 / Multiple assign on same
    line/
  • A A 10
  • v u f t
  • s u t 0.5 f t t

33
Operators in Expressions
Operators
Relational Operators
Arithmetic Operators
Logical Operators
34
Operator Precedence
  • In decreasing order of priority
  • Parentheses ( )
  • Unary minus -5
  • Multiplication, Division, and Modulus
  • Addition and Subtraction
  • For operators of the same priority, evaluation is
    from left to right as they appear.
  • Parenthesis may be used to change the precedence
    of operator evaluation.

35
Examples Arithmetic expressions
  • a b c d / e ? a (b c) (d / e)
  • a -b d e f ? a (-b) (d e) f
  • a b c d ? (((a b) c) d)
  • x y z ? ((x y) z)
  • a b c d e ? (a b) ((c d) e)

36
Integer Arithmetic
  • When the operands in an arithmetic expression are
    integers, the expression is called integer
    expression, and the operation is called integer
    arithmetic.
  • Integer arithmetic always yields integer values.

37
Real Arithmetic
  • Arithmetic operations involving only real or
    floating-point operands.
  • Since floating-point values are rounded to the
    number of significant digits permissible, the
    final value is an approximation of the final
    result.
  • 1.0 / 3.0 3.0 will have the value 0.99999 and
    not 1.0
  • The modulus operator cannot be used with real
    operands.

38
Mixed-mode Arithmetic
  • When one of the operands is integer and the other
    is real, the expression is called a mixed-mode
    arithmetic expression.
  • If either operand is of the real type, then only
    real arithmetic is performed, and the result is a
    real number.
  • 25 / 10 ? 2
  • 25 / 10.0 ? 2.5
  • Some more issues will be considered later.

39
Relational Operators
  • Used to compare two quantities.
  • lt is less than
  • gt is greater than
  • lt is less than or equal to
  • gt is greater than or equal to
  • is equal to
  • ! is not equal to

40
Examples
  • 10 gt 20 is false
  • 25 lt 35.5 is true
  • 12 gt (7 5) is false
  • When arithmetic expressions are used on either
    side of a relational operator, the arithmetic
    expressions will be evaluated first and then the
    results compared.
  • a b gt c d is the same as (ab) gt (cd)

41
Logical Operators
  • Logical operators act upon logical expressions
  • and (true if both operands are true)
  • or (true if either or both operands
    true
  • ! negates the value of the logical
    expression
  • Example
  • (n gt lo_bound) (n lt upper_bound)
  • ! (num gt 100)

42
Example Logical Operators
  • int main ()
  • int i, j
  • for (i0 ilt2 i)
  • for (j0 jlt2 j)
  • printf (d AND d d,
  • d OR dd\n,
  • i,j,ij, i,j, ij)

43
himalay ./a.out 0 AND 0 0 0 OR 0 0 0 AND
1 0 0 OR 1 1 1 AND 0 0 1 OR 0 1 1 AND 1
1 1 OR 1 1 himalay
44
int main () int amount / The no of bytes
to be transferred / int rate / The
average network transfer rate / int time
/ The time, in seconds, for the transfer
/ int hours, minutes, seconds / The no of
hrs,mins,secs for the transfer/ printf (How
many bytes of data to be transferred ?\n)
scanf (d, amount) printf (What is the
average transfer rate in bytes/sec ?\n) scanf
(d, rate) time amount / rate hours
time / 3600 minutes (time 3600) / 60
seconds ((time 3600) 60) /60 printf
(The expected time is dh dm ds\n,
hours,minutes,seconds)
45
Cs special operators
  • and -- a trademark of C programming
  • increments a variable
  • -- decrements a variable
  • x
  • In an expression, value of this expression is the
    value of x prior to increment
  • x
  • In an expression, value of this expression is the
    value of x after the increment.

46
  • x 4
  • y x
  • x 4
  • y x

y5, x5 after avaluation
y4, x5 after evaluation
x 5 equivalent to x
x 5 h f equivalent to
h hf product num equivalent to
product product num

47
  • void main ()
  • int x 10
  • printf ( x d\n, x)
  • primtf (x d\n, x)
  • Question What will get printed ?

48
Exercise
  • Suppose your program contains two integer
    variables, x and y which have values 3 and 4
    respectively, Write C statements that will
    exchange the values in x and y such that after
    the statements are executed, x is equal to 4 and
    y is equal to 3.
  • First, write this routine using a temporary
    variable for storage.
  • Now re-write this routine without using a
    temporary variable for storage.

49
Control Structures conditional constructs
if (x lt 10) y x x 5
z (2 y)/4
if (x lt 10) y x x 5
if (x lt 10) y x x 5
z (2 y)/4
condition
if (condition) action
action
Write a Comment
User Comments (0)
About PowerShow.com