programming and data structure cs13002 pabitra mitra dept. of computer science & engineering...
TRANSCRIPT
![Page 1: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/1.jpg)
Programming and Data StructureCS13002
Pabitra Mitra
Dept. of Computer Science & Engineering
Room No: 310
![Page 2: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/2.jpg)
Objective of the Course
• To learn programming – The logic– Style– Method
• C Language is being chosen and used just as a medium of expression
![Page 3: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/3.jpg)
About the Course• L-T-P rating of 3-1-0.
• There is a separate laboratory 0-0-3
• Individual practice and performance is required – the laboratory will complement the theory classes
• Class attendance is mandatory
• Random checks – may lead to deregistration from the course
• Evaluation in the theory course:– Mid-semester (30 %) – 25% + 5 % (regularity and
performance)– End-semester (50%) – 45% + 5 % (regularity and performance)– Two class tests (20%)
![Page 4: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/4.jpg)
Course Materials
• The course materials are available as PowerPoint slides.
• How to get them?1. A copy will be kept at the xerox centre so it will be available
to all the students. You may choose to bring the handouts to the class and take notes on them
2. For students having access to Internet, the slides would be available on-line at http://facweb.iitkgp.ernet.in/~pds
![Page 5: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/5.jpg)
Reference Books
• Programming With C– B.S. Gottfried, Schaum’s Outline Series, Tata
McGraw-Hill.
• The C Programming Language, – B. W. Kernighan & D. M. Ritchie, Prentice Hall
• A Book on C– Al Kelley & Ira Pohl, 4th Edition, Pearson
Education, Asia
![Page 6: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/6.jpg)
What is a computer ?
• A computer is a machine which can accept data, process the data and supply results.
Computer
In
Out
![Page 7: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/7.jpg)
A computer
Central Processing
Unit (CPU)
StoragePeripherals
OutputPeripherals
InputPeripherals
MainMemory
![Page 8: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/8.jpg)
Input Devices
• Keyboard• Mouse• Joystick• Scanners (OCR)• Bar code readers• Microphones / Sound
digitizers• Voice recognition
devices
Output Devices• VDU / Monitor
• Printers
• Plotters
• Sound cards
• Film and video
• Robot arms
![Page 9: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/9.jpg)
Storage Peripherals• Magnetic Tape
– Data stored sequentially (back ups)
• Magnetic Disks– Direct (random) access possible– Types
• Hard Disks• Floppy Disks
• Optical Disks– CDROM– CD-RW
• Flash memory – Pen Drives
![Page 10: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/10.jpg)
Typical Configuration of a PC
• CPU: Pentium 4, 2.8GHz• Main Memory: 256 MB• Hard Disk: 40 GB• Floppy Disk: 1.44 MB• CDROM: 52X• Input Device: Keyboard, Mouse• Output Device: Color Monitor (17 inch)
![Page 11: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/11.jpg)
How does a computer work?
• Stored program• A program is a coded form of an Algorithm• A program is a set of instructions for
carrying out a specific task.• Programs are stored in secondary memory,
when created.• Programs are in main memory during
execution.
![Page 12: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/12.jpg)
CPU
• Central Processing Unit (CPU) is where computing takes place in order for a computer to perform tasks.
• CPU’s have large number of registers which temporarily store data and programs (instructions).
• The CPU receives stored instructions, interprets them and acts upon them.
![Page 13: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/13.jpg)
Computer Program
• A program is ultimately– a sequence of numeric codes stored in memory which is
converted into simple operations (instructions for the CPU).
This type of code is known as machine code.
• The instructions are retrieved from – consecutive (memory) locations
unless the current instruction tells it otherwise (branch / jump instructions).
![Page 14: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/14.jpg)
Programming Languages
• Machine language• Assembly Language
– Mnemonics (opcodes)
• Higher level languages– Compiled languages:
• C, C++, Pascal, Fortran• Converted to machine code using compilers
– Interpreted Languages: • Basic, • Lisp
![Page 15: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/15.jpg)
Instruction Set
Start Read M Write M Load Data, M Copy M1, M2 Add M1, M2, M3 Sub M1, M2, M3 Compare M1, M2, M3 Jump L J_Zero M, L Halt
0: Start
1: Read 10
2: Read 11
3: Add 10, 11, 12
4: Write 12
5: Halt
Program
![Page 16: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/16.jpg)
Examples of Software
• Read an integer and determine if it is a prime number.
• A Palindrome recognizer• Read in airline route
information as a matrix and determine the shortest time journey between two airports
• Telephone pole placement problem
• Patriot Missile Control
• A Word-processor• A C language Compiler • Windows 2000 operating
system• Finger-print recognition• Chess Player• Speech Recognition• Language Recognition• Discovering New Laws in
Mathematics• Automatic drug discovery
![Page 17: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/17.jpg)
Programming Languages
• Machine language– Only the machine understands.
– Varies from one class of computers to another.
– Not portable.
• High-level language– Easier for the user to understand.
– Fortran, C, C++, Java, Cobol, Lisp, etc.
– Standardization makes these languages portable.• For example, C is available for DOS, Windows, UNIX, Linux,
MAC platforms.
![Page 18: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/18.jpg)
Operating Systems
• Makes the computer easy to use.– Basically the computer is very difficult to use.– Understands only machine language.
• Categories of operating systems:– Single user– Multi user
• Time sharing
• Multitasking
• Real time
![Page 19: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/19.jpg)
• DOS is a single-user operating system.• Windows 95 is a single-user multitasking
operating system.• Unix is a multi-user operating system.
– Linux is a version of Unix
• Question– How multiple users can work on the same
computer?
![Page 20: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/20.jpg)
• Computers are often connected in a network.
• Many users may work on a computer.– Over the network.– At the same time.– CPU and other resources are shared among the
different programs.
![Page 21: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/21.jpg)
Multi-user environment
Computer Computer Computer Computer Computer Computer
User 1 User 2 User 3 User 4 User 5
Printer
![Page 22: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/22.jpg)
Contd.
• Assembly Language– Mnemonic form of machine language.– Easier to use as compared to machine language.
• For example, use “ADD” instead of “10110100”.
– Not portable (like machine language).– Requires a translator program called assembler.
Assembler
Assembly language program
Machine language program
![Page 23: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/23.jpg)
Contd.
• Assembly language is also difficult to use in writing programs.– Requires many instructions to solve a problem.
• Example: Find the average of three numbers.MOV A,X ; A = X
ADD A,Y ; A = A + Y
ADD A,Z ; A = A + Z
DIV A,3 ; A = A / 3
MOV RES,A ; RES = A
In C,
RES = (X + Y + Z) / 3
![Page 24: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/24.jpg)
High-Level Language• Machine language and assembly language
are called low-level languages.– They are closer to the machine.– Difficult to use.
• High-level languages are easier to use.– They are closer to the programmer.– Examples:
• Fortran, Cobol, C, C++, Java.
– Requires an elaborate process of translation.• Using a software called compiler.
![Page 25: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/25.jpg)
Contd.
Compiler Object code Linker
Library
HLL program
Executable code
![Page 26: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/26.jpg)
Role of Operating System
• Accept command
• Initiate relevant system programs if the command is valid
![Page 27: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/27.jpg)
Command Interpreter
vi myprog.c
Valid command
vi editor program
Invalid command
Save
cc myprog.c
C Compiler
successful
unsuccessful
![Page 28: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/28.jpg)
Lab Environment
![Page 29: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/29.jpg)
Number System Basics
![Page 30: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/30.jpg)
Number System :: The Basics
• We are accustomed to using the so-called decimal number system.– Ten digits :: 0,1,2,3,4,5,6,7,8,9– Every digit position has a weight which is a power
of 10.
• Example:234 = 2 x 102 + 3 x 101 + 4 x 100
250.67 = 2 x 102 + 5 x 101 + 0 x 100 +
6 x 10-1+ 7 x 10-2
![Page 31: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/31.jpg)
• A digital computer is built out of tiny electronic switches.– From the viewpoint of ease of manufacturing
and reliability, such switches can be in one of two states, ON and OFF.
– A switch can represent a digit in the so-called binary number system, 0 and 1.
• A computer works based on the binary number system.
![Page 32: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/32.jpg)
Digital Information
• Computers store all information digitally:– Numbers– Text– Graphics and images– Audio– Video– Program instructions
• In some way, all information is digitized – broken down into pieces and represented as numbers
![Page 33: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/33.jpg)
Binary Numbers
• Once information is digitized, it is represented and stored in memory using the binary number system
• A single binary digit (0 or 1) is called a bit.• A collection of 8 bits is called a byte.
– 00110010
• Word: Depends on the computer– 4 bytes– 8 bytes
![Page 34: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/34.jpg)
• An k-bit decimal number– Can express unsigned integers in the range 0 to 10k – 1– For k=3, from 0 to 999.
• An k-bit binary number– Can express unsigned integers in the range 0 to 2k – 1
![Page 35: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/35.jpg)
Variables, Constants, Memory
![Page 36: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/36.jpg)
Variables and constants
• All temporary variables are stored in variables and constants.– The value of a variable can be changed.– The value of a constant does not change.
• Variables and constants are stored in main memory.
![Page 37: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/37.jpg)
Memory
• How does memory look like ?– A list of storage locations, each having a unique
address– Variables and constants are stored in these
storage locations.– A variable is like a house. The name of the
variable is the address of the house.
![Page 38: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/38.jpg)
Address and Values
![Page 39: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/39.jpg)
Memory Map
Every variable ismapped to aparticular memory address
00000001
800080018002
C
32
![Page 40: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/40.jpg)
Variables in Memory
Instruction executed Memory location allocated to a variable X
Ti
me
X = 10
10X = 20
X = X +1
X = X*5
![Page 41: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/41.jpg)
Variables in Memory
Instruction executedMemory location allocated
to a variable X
Ti
me
X = 10
20X = 20
X = X +1
X = X*5
![Page 42: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/42.jpg)
Variables in Memory
Instruction executedMemory location allocated
to a variable X
Ti
me
X = 10
21X = 20
X = X +1
X = X*5
![Page 43: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/43.jpg)
Variables in Memory
Instruction executedMemory location allocated
to a variable X
Ti
me
X = 10
105X = 20
X = X +1
X = X*5
![Page 44: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/44.jpg)
Variables (contd.)
20
?
X
Y
X = 20
Y=15
X = Y+3
Y=x/6
![Page 45: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/45.jpg)
Variables (contd.)
20
15
X
Y
X = 20
Y=15
X = Y+3
Y=x/6
![Page 46: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/46.jpg)
Variables (contd.)
18
15
X
Y
X = 20
Y=15
X = Y+3
Y=x/6
![Page 47: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/47.jpg)
Variables (contd.)
18
3
X
Y
X = 20
Y=15
X = Y+3
Y=X/6
![Page 48: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/48.jpg)
High-Level Programs0: Start1: Read 202: Read 213: Compare 20, 21, 224: J_Zero 22, 75: Write 206: Jump 87: Write 218: Halt
Variables x, y;BeginRead (x);Read (y);If (x >y) then Write (x) else Write (y);End.
![Page 49: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/49.jpg)
Multiplying two integers
11
12
13
14
15
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 147: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 50: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/50.jpg)
Multiplying two integers
11
12 5
13
14
15
16
0: Start 1: Read 12
2: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 147: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 51: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/51.jpg)
Multiplying two integers
11
12 5
13 6
14
15
16
0: Start1: Read 12
2: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 147: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 52: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/52.jpg)
Multiplying two integers
11
12 5
13 6
14 0
15
16
0: Start1: Read 122: Read 13
3: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 147: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 53: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/53.jpg)
Multiplying two integers
11
12 5
13 6
14 0
15 1
16
0: Start1: Read 122: Read 133: Load 0, 14
4: Load 1, 155: J_Zero 13, 96: Add 12, 14, 147: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 54: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/54.jpg)
Multiplying two integers
11
12 5
13 6
14 0
15 1
16
0: Start1: Read 122: Read 133: Load 0, 14
4: Load 1, 15 5: J_Zero 13, 9
6: Add 12, 14, 147: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 55: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/55.jpg)
Multiplying two integers
11
12 5
13 6
14 5
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 9
6: Add 12, 14, 147: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 56: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/56.jpg)
Multiplying two integers
11
12 5
13 5
14 5
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 57: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/57.jpg)
Multiplying two integers
11
12 5
13 5
14 5
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 13 8: Jump 5
9: Write 1410: Halt
![Page 58: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/58.jpg)
Multiplying two integers
11
12 5
13 5
14 5
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 15
5: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 13 8: Jump 5
9: Write 1410: Halt
![Page 59: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/59.jpg)
Multiplying two integers
11
12 5
13 5
14 10
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 9
6: Add 12, 14, 147: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 60: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/60.jpg)
Multiplying two integers
11
12 5
13 4
14 10
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 61: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/61.jpg)
Multiplying two integers
11
12 5
13 4
14 10
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 13 8: Jump 5
9: Write 1410: Halt
![Page 62: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/62.jpg)
Multiplying two integers
11
12 5
13 4
14 10
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 15
5: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 13 8: Jump 5
9: Write 1410: Halt
![Page 63: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/63.jpg)
Multiplying two integers
11
12 5
13 4
14 15
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 9
6: Add 12, 14, 147: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 64: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/64.jpg)
Multiplying two integers
11
12 5
13 3
14 15
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 65: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/65.jpg)
Multiplying two integers
11
12 5
13 3
14 15
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 147: Sub 13, 15, 13
8: Jump 59: Write 1410: Halt
![Page 66: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/66.jpg)
Multiplying two integers
11
12 5
13 3
14 15
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 15
5: J_Zero 13, 96: Add 12, 14, 147: Sub 13, 15, 13
8: Jump 59: Write 1410: Halt
![Page 67: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/67.jpg)
Multiplying two integers
11
12 5
13 3
14 20
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 9
6: Add 12, 14, 147: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 68: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/68.jpg)
Multiplying two integers
11
12 5
13 2
14 20
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 69: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/69.jpg)
Multiplying two integers
11
12 5
13 2
14 20
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 147: Sub 13, 15, 13
8: Jump 59: Write 1410: Halt
![Page 70: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/70.jpg)
Multiplying two integers
11
12 5
13 2
14 20
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 15
5: J_Zero 13, 96: Add 12, 14, 147: Sub 13, 15, 13
8: Jump 59: Write 1410: Halt
![Page 71: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/71.jpg)
Multiplying two integers
11
12 5
13 2
14 25
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 9
6: Add 12, 14, 147: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 72: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/72.jpg)
Multiplying two integers
11
12 5
13 1
14 25
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 73: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/73.jpg)
Multiplying two integers
11
12 5
13 1
14 25
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 13 8: Jump 5
9: Write 1410: Halt
![Page 74: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/74.jpg)
Multiplying two integers
11
12 5
13 1
14 25
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 15
5: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 13 8: Jump 5
9: Write 1410: Halt
![Page 75: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/75.jpg)
Multiplying two integers
11
12 5
13 1
14 30
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 9
6: Add 12, 14, 147: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 76: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/76.jpg)
Multiplying two integers
11
12 5
13 0
14 30
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 138: Jump 59: Write 1410: Halt
![Page 77: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/77.jpg)
Multiplying two integers
11
12 5
13 0
14 30
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 155: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 13 8: Jump 5
9: Write 1410: Halt
![Page 78: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/78.jpg)
Multiplying two integers
11
12 5
13 0
14 30
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 15
5: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 13 8: Jump 5
9: Write 1410: Halt
![Page 79: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/79.jpg)
Multiplying two integers
11
12 5
13 0
14 30
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 15
5: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 13 8: Jump 5 9: Write 14
10: Halt
![Page 80: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/80.jpg)
Multiplying two integers
11
12 5
13 0
14 30
15 1
16
0: Start1: Read 122: Read 133: Load 0, 144: Load 1, 15
5: J_Zero 13, 96: Add 12, 14, 14
7: Sub 13, 15, 13 8: Jump 5
9: Write 14 10: Halt
![Page 81: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/81.jpg)
The C Programming Language
![Page 82: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/82.jpg)
Why learn C ?
• "Least common denominator" - good building block for learning other languages– Subset of C++– Similar to JAVA
• Closeness to machine allows one to learn about system-level details
• Portable - compilers available for most platforms• Very fast
![Page 83: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/83.jpg)
/* Program Name : countdown Description : This program prompts the user to type in a positive number and counts down from that number to 0, displaying each number */#include <stdio.h>#define STOP 0main (){ int counter ; /* Holds intermediate count value */ int startPoint ; /* Starting point for countdown */ /* Prompt the user for input */ printf ("Enter a positive number : ") ; scanf ("%d", &startPoint) ; for (counter=startPoint; counter >=STOP;counter--) printf ("%d\n", counter) ;}
![Page 84: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/84.jpg)
$ cc t1.c$ ./a.outEnter a positive number : 66543210$
![Page 85: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/85.jpg)
The first C program
#include <stdio.h>void main (){
printf ("Hello, World! \n") ;
}All programs run from the main functionprintf is a function in the library stdio.hTo include any library use #include
![Page 86: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/86.jpg)
Second C program
#include <stdio.h>void main(){ int x = 1, y; int sum; y = 3; sum = x + y; /* adds x to y, places value in variable sum */ printf( “%d plus %d is %d\n”, x, y, sum );}
![Page 87: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/87.jpg)
Comments
• Any string of symbols placed between the delimiters /* and */.
• Can span multiple lines
• Can’not be nested! Be careful.
• /* /* /* Hi */ is an example of a comment.
• /* Hi */ */ is going to generate a parse error
![Page 88: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/88.jpg)
Keywords
Reserved words that cannot be used as variable names
OK within comments . . .
Examples: break, if, else, do, for, while, int, void
Exhaustive list in any C book
![Page 89: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/89.jpg)
Identifiers A token (word) composed of a sequence of letters,
digits, and underscore (_) character. (NO spaces.)– First character cannot be a digit– C is case sensitive, so beware (e.g. printf
Printf) Identifiers such as printf normally would not be
redefined; be careful Used to give names to variables, functions, etc. Only the first 31 characters matter
![Page 90: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/90.jpg)
Constants
0, 77, 3.14 examples.Strings: double quotes. “Hello”Characters: single quotes. ‘a’ , ‘z’ Have types implicitly associated with them1234567890999 too large for most machines
![Page 91: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/91.jpg)
91
Simple Data Types
VoidInteger types (signed or unsigned): char, short int, int, long int
char is an 8 bit (=1 byte) number
Floating-point types: float, double, long doubleNo boolean types
Use 0=False and anything else(usually 1)=True
![Page 92: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/92.jpg)
Input and Output
• printf : performs output to the standard output device (typically defined to be the monitor)– It requires a format string to which we can provide
• The text to print out
• Specifications on how to print the values
printf ("The number is %d.\n", num) ;
The format specification %d causes the value listed after the format string to be embedded in the output as a decimal number in place of %d.
![Page 93: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/93.jpg)
Input
• scanf : performs input from the standard input device, which is the keyboard by default.
– It requires a format string and a list of variables into which the value received from the input device will be stored.
• scanf ("%d", &size) ;• scanf ("%c", &nextchar) ;• scanf ("%f", &length) ;
![Page 94: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/94.jpg)
Variables
• Variables hold the values upon which a program acts. They are the symbolic reference to values.
• The following declares a variable that will contain an integer value.int num_of_students ;
The compiler reserves an integer's worth of memory for num_of_students
In C, all variables must be declared before they can be used.
![Page 95: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/95.jpg)
• A variable declaration conveys three pieces of information– the variable's identifier– its type– its scope - the region of the program in which the
variable is accessible.(implicitly specified by the place in the code where the declaration occurs.)
![Page 96: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/96.jpg)
• #include <stdio.h>main (){ int num_of_students ; scanf ("%d", &num_of_students) ; printf ("%d \n", num_of_students) ;}
C Program # 3
![Page 97: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/97.jpg)
Sample C program #4
#include <stdio.h>#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); }
float myfunc (float r) { float a; a = PI * r * r; /* return result */ return (a); }
![Page 98: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/98.jpg)
Operators and Expressions
![Page 99: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/99.jpg)
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 ;
![Page 100: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/100.jpg)
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 { }
![Page 101: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/101.jpg)
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.
![Page 102: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/102.jpg)
Arithmetic operators
+ : addition
- : subtraction
* : multiplication
/ : division
% : modulus operator
• distance = rate * time ;
• netIncome = income - tax ;
• speed = distance / time ;
• area = PI * radius * radius
• y = a * x * x + b*x + c;
• quotient = dividend/divisor;
• remainder=dividend %divisor;
![Page 103: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/103.jpg)
C Program # 5
/* FIND THE LARGEST OF THREE NUMBERS */
main(){ int a, b, c; scanf (“%d %d %d”, &a, &b, &c); if ((a>b) && (a>c)) /* Composite condition check*/ printf (“\n Largest is %d”, a); else if (b>c) /* return result */
printf (“\n Largest is %d”, b); else printf (“\n Largest is %d”, c); }
![Page 104: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/104.jpg)
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.
![Page 105: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/105.jpg)
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.
![Page 106: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/106.jpg)
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.
![Page 107: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/107.jpg)
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 ‘*/’.
![Page 108: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/108.jpg)
Compound Statement (or block)
{
definitions-and-declarations (optional)
statement-list
}
Used for grouping, as function body, and to restrict identifier visibility
![Page 109: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/109.jpg)
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’
![Page 110: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/110.jpg)
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.
![Page 111: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/111.jpg)
Program indentation
• Use proper indentation.
• C has standard indentation conventions.– Followed by any book on C– Followed in the class
![Page 112: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/112.jpg)
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.
![Page 113: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/113.jpg)
– 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
![Page 114: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/114.jpg)
Keywords
– Reserved words that have standard, predefined meanings in C.
– Cannot be used as identifiers.– OK within comments.– Standard C keywords:
else
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
![Page 115: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/115.jpg)
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 ;
![Page 116: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/116.jpg)
Variations of these types
• short int, longed int, unsigned intshort int age;
long int worldPopulation;
unsigned int numberOfDays;
• long doublelong double particlesInUniverse;
![Page 117: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/117.jpg)
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”
![Page 118: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/118.jpg)
Constants
• integer constants:– 0, 1, 648, 9999
• floating point constants:– 0.2, 12.3, 1.67E+8, 1.12E-12
• character constants:
– ‘C’, ‘x’, ‘ ‘, • string constants:
– “Welcome aboard”, “Rs. 89.95”, “Bye \n”
![Page 119: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/119.jpg)
Ascii value Character000 NUL032 blank036 $038 &043 +048 0049 1057 9065 A 066 B090 Z097 a098 b122 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
![Page 120: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/120.jpg)
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.
![Page 121: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/121.jpg)
int a, b, c ;
char d;
a = 3;
b = 5;
c = a+b;
d = ‘a’ ;
a = 4;
b = 2;
c = a-b;
d = ‘D’ ;
a b c d
3
? ? ? ?
58
97
4
2
2
68
? ? ?
3 ? ?3 5 ?3 5 8
5 8 974 8 97
4 2 97
4 2 2
![Page 122: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/122.jpg)
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 willhold.
![Page 123: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/123.jpg)
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.
![Page 124: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/124.jpg)
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);
![Page 125: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/125.jpg)
An Example#include <stdio.h>main(){ float speed, time, distance;
scanf (“%f %f”, &speed, &time); distance = speed * time; printf (“\n The distance traversed is: \n”,distance); }
![Page 126: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/126.jpg)
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;
![Page 127: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/127.jpg)
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;
![Page 128: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/128.jpg)
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;
![Page 129: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/129.jpg)
Operators in Expressions
Operators
ArithmeticOperators
RelationalOperators
LogicalOperators
![Page 130: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/130.jpg)
Operator Precedence
• In decreasing order of priority1. Parentheses :: ( )2. Unary minus :: -53. Multiplication, Division, and Modulus4. 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.
![Page 131: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/131.jpg)
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)
![Page 132: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/132.jpg)
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.
![Page 133: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/133.jpg)
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.
![Page 134: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/134.jpg)
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.
![Page 135: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/135.jpg)
Relational Operators
• Used to compare two quantities.
< is less than
> is greater than
<= is less than or equal to
>= is greater than or equal to
== is equal to
!= is not equal to
![Page 136: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/136.jpg)
Examples
• 10 > 20 is false• 25 < 35.5 is true• 12 > (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 > c – d is the same as (a+b) > (c+d)
![Page 137: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/137.jpg)
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 >= lo_bound) && (n <= upper_bound) – ! (num > 100)
![Page 138: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/138.jpg)
Example: Logical Operatorsint main () { int i, j; for (i=0; i<2; i++) {
for (j=0; j<2; j++) printf (“%d AND %d = %d,
%d OR %d=%d\n”,i,j,i&&j, i,j, i||j) ;
}}
![Page 139: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/139.jpg)
$ ./a.out0 AND 0 = 0 0 OR 0 = 00 AND 1 = 0 0 OR 1 = 11 AND 0 = 0 1 OR 0 = 11 AND 1 = 1 1 OR 1 = 1$
![Page 140: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/140.jpg)
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);}
![Page 141: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/141.jpg)
C’s 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.
![Page 142: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/142.jpg)
x = 4;
y = x++;
x = 4;y = ++x ;
y=4, x=5 after evaluation y=5, x=5 after evaluation
x += 5 equivalent to x = x + 5 h %= f equivalent to h = h%f product *= num equivalent to product = product * num
![Page 143: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/143.jpg)
void main ()
{
int x = 10;
printf (“ x = %d\n”, ++x) ;
printf (“x = %d\n”, x++) ;
}
Question : What will get printed ?
![Page 144: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/144.jpg)
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.
![Page 145: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/145.jpg)
Control Constructs
![Page 146: Programming and Data Structure CS13002 Pabitra Mitra Dept. of Computer Science & Engineering pabitra@cse.iitkgp.ernet.in Room No: 310](https://reader030.vdocuments.site/reader030/viewer/2022032605/56649e855503460f94b880ab/html5/thumbnails/146.jpg)
Control Structures: conditional constructs
if (x <= 10) y = x * x + 5;
if (x <= 10) { y = x * x + 5; z = (2 * y)/4 ;} if (x <= 10)
y = x * x + 5; z = (2 * y)/4 ;
if (condition) action ;
condition
action