0% found this document useful (0 votes)
2K views

Programming Fundamentals

The document discusses programming fundamentals including different types of programming languages, basic procedures in a program, and the importance of variables. It covers machine languages, assembly languages, high-level languages as well as procedural and object-oriented languages.

Uploaded by

rajan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2K views

Programming Fundamentals

The document discusses programming fundamentals including different types of programming languages, basic procedures in a program, and the importance of variables. It covers machine languages, assembly languages, high-level languages as well as procedural and object-oriented languages.

Uploaded by

rajan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 114

• If you have programming experience (in any language

other than C)
• click here to skip the Programming Fundamentals part.

• If you are new to programming…


• continue reading.

U1.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal
‹#›

1
P
Programming
i F Fundamentals
d t l

U1.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal
‹#›

2
Objectives
• Understand the different types of programming languages.

• Understand the basic procedures in a program as input,


processing and output.

• Understand the importance of variables.

• Understand a basic map of the program development cycle.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

3
Computer Components

• CPU Central Processing Unit


• RAM (Random Access Memory)
• Mass storage devices
• Input
p devices
• Output Devices

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

4
Software
Software is comprised of instructions that get a
computer to perform a task.
Application Software System Software
 Word Processors  Operating Systems
 Spreadsheets Windows
 Painting programs Macintosh
Macintosh OS
 Web browsers, email Unix
programs Linux
 Drivers

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

5
Programming Languages
• Programming languages allow programmers to code
software.

• The three major families of languages are:


 Machine languages
 Assembly languages
 High-Level
g e e languages
a guages

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

6
Machine Languages
• Comprised of 1s and 0s

• The “native” language of a computer

• Diffi
Difficult
lt tto program – one misplaced
i l d 1 or 0 will
ill cause th
the
program to fail.

• Example of code:
1110100010101 111010101110
10111010110100 10100011110111

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

7
Assembly Languages
• A step towards easier programming.

• Comprised of a set of elemental commands


 tied to a specific processor.

• A
Assembly
bl language
l code
d needs
d to
t be
b translated
t l t d to
t machine
hi
language before the computer processes it.

• Example:
E l
ADD 1001010, 1011010

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

8
High-Level Languages
• High-level languages represent a giant leap towards easier
programming.

• The syntax of HL languages is similar to English.

• Historically, we divide HL languages into two groups:


 Procedural
ocedu a languages
a guages
 Object-Oriented languages (OOP)

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

9
Procedural Languages
• Procedural languages
 The focus of such languages is on sequence of activities
t be
to b carried
i d out.
t

 Based on specifying the steps the program must take to


reach the desired state.

 Examples include C, COBOL, Fortran, LISP, Perl, HTML,


VBScript

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

10
Object-Oriented Languages
• Object-oriented languages:

 Focus
F on modeling
d li data.
d t

 Programmers
g code using
g “blueprints”
p of data models
called classes.

 Examples of OOP languages include C++,


C++ Visual
Basic.NET and Java.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

11
Compiling
• All HL programs need to be translated to machine code
 so that a computer can process the program.

• Programs may be translated using


 a compiler:
translated all at once
 An interpreter
translated line by line

• Compiled programs typically execute more quickly than


interpreted programs, but have a slower translation speed.

• On the other hand, interpreted programs generally translate


quicker than compiled programs, but have a slower execution
speed.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

12
Programming Example
• Simple programming problem: Convert a length from feet
into meters.

• Pseudocode:
Input the length of an item, LengthInFeet, in feet and Compute
the length of the item in meters:

Write “Enter the length in feet”


Input LengthInFeet
Set LengthInMeters = LengthInFeet * .3048
Write LengthInMeters

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

13
Programming Example
Partial Code in C:

float LengthInFeet;
L
LengthInMeters
thI M t = L
LengthInFeet
thI F t * .3048;
3048
printf (“%f”, LengthInMeters);

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

14
Input & Variables
• Input operations get data into the programs

• A user is
i prompted
t d to
t enter
t data:
d t
 Write “Enter the length in feet”
 Input
p LengthInFeet
g

• Computer programs store data in named sections of


memory called variables.
variables

• In the example p above,, the variables are named


LengthInFeet & LengthInMeters.
 The value of a variable can, and often does, change
throughout the program.
program

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

15
Variables
• Needed because we might want the program to run using
different values:

 E.g. we might want to calculate LengthInMeters for


different values of LengthInFeet

 Each value for which computation is to be carried out will


be stored in the variable LengthInFeet one-by-one

 R
Referring
f i to t the
th variable
i bl LengthInFeet
L thI F t by
b its
it name gives
i
the value stored in it.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

16
Constants
• Many a time we need to used fixed values for certain
computations.

• E.g. in the program given above


 the conversion from miles to meters requires the length in
miles to be multiplied by .3048
 a value that doesn’t (need to) change
 Such values are constants

• We may also give names to constants: such constants are


called named constants

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

17
Types of Data
• Numeric Data
 Integer data
data, II.e.,
e whole numbers
numbers, 10 25 -4545 0
 Floating point data – have a decimal point 23.0, -5.0

• Character data (alphanumeric)


 All the characters you can type at the keyboard
 Letters & numbers not used in calculations

• B
Boolean
l d
data
t
 TRUE/FALSE

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

18
Data Processing and Output
• LengthInMeters = .3048 * LengthInFeet
 The above statement is a processing statement.
 Take
T k the
th value
l iin th
the variable
i bl LengthInFeet,
L thI F t
 Multiply by .3048, and
 Set the value of the variable LengthInMeters
g to the
result of the multiplication.
Also stated as assign the result of multiplication to the
variable LengthInMeters

• Write LengthInMeters
 Output
O t t the
th value
l ini LengthInMeters
h t the
to th monitor.
it

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

19
Assignment Statements
• If the variable being assigned to already contains a data
value,
 the
th previously
i l stored
t d value
l is
i overwritten
itt

 E.g.
E g the following statements:
Age= 12;
Age=15;
ge 5;
Have an effect of storing 15 in the variable Age.

 Reason: The value 12 (stored as an effect of the first


assignment statement) gets overwritten after the
execution of the second statement.
statement

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

20
Assignment Statements
• The statement
Age = Age + 1
Changes the value of the variable Age in such a way that
the new value is one greater than the previous value.

• Working: Take the value of Age, add 1, and store the result
back in the same variable.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

21
Operations on Data
• Operator is a symbol that is used to perform certain operations

• Data values on which operation is performed are termed as


operands

• Operators generally work on many types of variables or constants,


constants
 though some are restricted to work on certain types.
 some may even exhibit different behaviors with different data
types

• Operators in C may be:


 Unary: Work on single operand
 Binary: Work on two operands
 Ternary: Work on three operands

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

22
Operators
• C, like most programming languages, supports operators to
carry out various kinds of operations

• We have operators for:


 Arithmetic operations
 Type Conversions
 Performing
e o g Co
Comparisons
pa so s
 Performing Logical Operations
 Working on individual bits of data
 And many more…

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

23
Precedence of Operators
• Operator precedence:
 A set of rules decide the order of operations in an
expression
i

 Like BODMAS rule in mathematics

 Operator
p Precedence clarifies unambiguously,
g y, which
operations should be performed first in a given
expression.

 Parentheses i.e. () can always be used to improve clarity

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

24
Associativity of Operators
• Operator Associativity:

• Rule used for two operators of equal precedence (i.e. same


importance)

• Associativity may be either of the following


 left to right:
g left operator
p is evaluated first
 right to left: right operator is evaluated first

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

25
Structured Programming
• A method for designing and coding programs in a
systematic, organized manner.

• It combines
 the principles of top-down
top down design,
design
 modularity and
 the
e use o
of the
e three
ee accep
accepted
ed co
control
o sstructures
uc u es o
of
sequence,
repetition and
selection.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

26
Control Structures
• Sequence –in sequential order.
 The simplest of control structures –
start at the beginning and continue in sequential order.

• S
Selection
l ti – selectively
l ti l execute t statements
t t t
 Called a branch,
 it requires a condition to determine when to execute
statements.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

27
Control Structures
Repetition – repeat statements more than once
 Called a loop,
p,

 It needs a stop condition,


I.e, the program will continue to loop (repeatedly
execute a set of statements) until some condition
is met.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

28
Counter-Controlled Loop: (Definite Repetition)

• If it is known in advance exactly how many times a loop


will execute,
execute the repetition is said to be counter
counter-
controlled

• Counter-controlled
Counter controlled loop:
 Execute a set of statements repeatedly a specified
number of times

 The counter may be advanced according to


programmers
p g requirements
q .

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

29
Event-Controlled Loop: (Indefinite Repetition)

• If it is NOT known in advance exactly how many times a


loop will execute, the loop is said to be event-controlled.

• An event-controlled loop
 Terminates when some event occurs.
occurs

 The event may be based upon:


User input
Results of calculation
And many more….

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

30
Steps in Developing a Program

Developing a Program:
1. Analyze the problem
2 Design
2. D i th the program
3. Code the program
4 Test the program
4.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

31
Step-1 Analyze the Problem
Brewster’s Thousands
 The problem: Brewster wants to invest money at a local
bank. There are many options such as interest rates,
terms of deposit, compounding frequencies. He needs a
program to compute, for any given initial investment, the
final maturity (value) of the deposit.

What are the inputs? (given data)


What are the outputs? (required data)
How will we calculate the required outputs from the given
inputs?

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

32
Step-2 Design the Program
• Create an outline of the program

• An algorithm – a step by step procedure that will


provide the required results from the given inputs.

• Algorithm
g Examples:
p Instructions on how to make
a cake, use the bank’s ATM, etc.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

33
Step-3 Code the Program
• Once the design is completed, write the program
code.

• Code is written in some programming language


such as BASIC, Pascal, C++, Java, etc.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

34
Errors in Development
• While writing a program, certain errors may get induced in the
code.

• Errors may be categorized as :


 Syntactical Errors – Incorrect Syntax (wrong grammar), i.e.,
b ki the
breaking th rules
l off how
h t write
to it the
th language
l
Forgetting punctuation, misspelling keyword
The p
program
g will not run at all with syntax
y errors

 Semantic Errors: Incorrect Logic:


Using an incorrect formula,
formula incorrect sequence of
statements, etc.
The program runs, but does not produce the expected
results.
l

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

35
Step-4 Testing the program
• Purpose:
P L
Locate
t any errors (bugs)
(b ) / problems
bl

• Most of the work should be done before the phase begins –


creating of a testing document – telling what to test & how.
how

• Two types of testing:


 Testing
T ti for f errors
 Quality testing

• Testing
T ti is i done
d th
throughout
h t the
th development
d l t cycle
l

• Desk-checking, or code walkthrough is performed to locate


errors in
i the
th code.
d
 Pretend you are the computer and execute your own code.

• Ulti
Ultimate
t test
t t is
i to
t run the
th program to
t see if the
th outputs
t t are correctt
for the given inputs.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

36
Good Programming Practice
• It is best not to take the “big bang” approach to coding.

• U
Use an incremental
i l approachh by
b writing
ii your code
d in
i
incomplete, yet working, pieces.

• For example, for your projects,


 Don’t write the whole program at once.
 Just
J t write
it enough h to
t display
di l th user promptt on the
the th
screen.
 Get that ppart workingg first ((compile
p and run).
)
 Next, write the part that gets the value from the user,
and then just print it out.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

37
Modular Programming
• Determine the major tasks that the program must
accomplish.
 Each of these tasks will be a module.

• Some modules will be complex themselves, and


they will be broken into sub-modules,
 and those sub-modules may also be broken into even
smaller modules.

• This is called top-down design

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

38
Code Modules
• A module is an independent, self-contained section of code
that performs a single task.

• The main module is the module that drives the application.


 It “controls”
controls all other modules.
modules

 Typically,
yp ca y, the
e main
a module
odu e cacalls
soother
e modules
odu es in o
order
de to
o
have them perform certain tasks.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

39
Program Control & Modules

• When the main module calls another module,module


program control transfers to the called module.

• Program control cedes back to the main module


when the called module finishes.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

40
Structure Chart
• A structure chart shows what modules exist and how they
are related.

• A structure chart is a top-down modular design tool

• It is used in structured programming to arrange program


modules into a tree

• It’s a good idea to keep modules short – about 1 page per


module.
d l

• We will have very small modules while getting comfortable


with programming.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

41
Documentation
• Internal Documentation
 Comments explain to the reader the logic and decision
processes off the
th programmer.
 Comments are ignored by an interpreter or compiler.

• External Documentation
 External
e a docudocumentation
e a o includes
c udes a use
user’s
s gu
guide
de a and,
d,
typically, a more technical system administrator’s guide.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

42
Over to C Fundamentals…

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

43
CF
Fundamentals
d t l

U1.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal
‹#›

44
Objectives

• History of C
• Characteristics of C
• Convertingg a C Program
g to Executable
• Dissecting a simple C Program
• g Variables in C
Defining
• Printing Out and Inputting Variables
• Constants & Literals

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

45
History of C
• Developed by Brian Kernighan and Dennis Ritchie of
AT&T Bell Labs in 1972

• In 1983 the American National Standards Institute began


the standardization process
p

• In 1989 the International Standards Organization


continued the standardization process

• In 1990 a standard was finalized, known simply


p y as
“Standard C”

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

46
Features of C
• C can be thought of as a “high level assembler”

• M
Most popular
l programming
i l
language f writing
for ii system
software

• Focus on the procedural programming paradigm, with


facilities for programming in a structured style

• Low-level unchecked access to computer memory via the


use of pointers

• And many more…

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

47
Writing C Programs
• A programmer uses a text editor to create or modify files
g C code.
containing

• Code is also known as source code.

• A file containing
g source code is called a source file.

• After a C source file has been created,, the p


programmer
g
must invoke the C compiler before the program can be
executed (run)

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

48
Getting an executable program
• The process of conversion from source code to machine
executable code is a multi step process.

• If there are no errors in the source code, the processes


called compilation & linking produce an executable file

• To execute the program, at the prompt, type


<executable file name>

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

49
Conversion from .C to executable

1
1. Preprocessing

2. Compilation
p

3. Linking

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

50
Stage 1: Preprocessing
Performed by a program called the preprocessor

 Modifies the source code (in RAM) according to


preprocessor directives (preprocessor commands)
embedded
b dd d in
i the
h source code
d

 Strips comments and white space from the code

 The source code as stored on disk is not modified

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

51
Stage 2: Compilation
 Performed by a program called the compiler.

 Checks for syntax errors and warnings

 Translates the preprocessor-modified source code into object


code (machine code).
code)

 Saves the object code to a disk file

 If any compiler errors are received, no object code file will be


generated.

 An object code file will be generated if only warnings, not


errors,, are received.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

52
Stage 3: Linking
• Combines the program object code with other object code to
produce the executable file.
p

• The other object code can come from the


– Run-Time
R Ti Lib
Library
– other libraries
– or object files that you have created.

• Saves the executable code to a disk file.

• If any linker errors are received, no executable file is


generated.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

53
Developing a C Program
Editor
Source File pgm.c

Preprocessor
Modified Source Code in RAM

Compiler
Program Object Code File

Linker

Executable File

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

54
A Simple C Program
/* Filename: hello.c
Author: --------
Date written: --/--/----
Description: This program prints the greeting
“Hello,
, World!”
*/
#include <stdio.h>
int main ( void )
{
printf ( “Hello,
Hello, World!\n”
World!\n ) ;
return 0 ;
}

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

55
Structure of a C Program

program header comment

preprocessor directives (if any)

int main ( )
{
statement(s)
return 0 ;
}

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

56
Explanation

tells compiler about standard input and output functions (i.e.


(i e printf + others)

#include <stdio.h> /* comment */


main function
int main(void)
{
printf("Hello\n");
“b i ”
“begin” printf("Welcome
i tf("W l to
t the
th Course!\n");
C !\ ")

return 0;
}
flag success Hello
to operating Welcome to the Course!
“end”
system

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

57
Tokens
• The smallest element in the C language is the
token.
token

• It may be a single character or a sequence of


characters to form a single item.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

58
Tokens can be any of:
• Numeric Literals
• Character Literals
• String Literals
• Keywords
• Names (identifiers)
• Punctuation
• Operators

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

59
Numeric Literals
• Numeric literals are an uninterrupted sequence of
digits
• May contain
 A period,
 A leading
g + or – sign
g
 A scientific format number
 A character to indicate data type
• Examples:
E l
 123
 98.6
 1000000

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

60
Character Literals
• Singular!
• One character defined character set.
• Surrounded on the single quotation mark.
• Examples:
 ‘A’
 ‘a’
 ‘$’
$
 ‘4’

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

61
String Literals
• A sequence characters surrounded by double quotation
marks.
• Considered a single item.
item
• Examples:
 “UMBC”
 “I like ice cream.”
 “123”
 “CAR”
CAR
 “car”

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

62
Keywords
• Sometimes called reserved words.
• Are defined as a p
part of the C language.
g g
• Can not be used for anything else!
• Examples:
 int
 while
 for

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

63
Reserved Words (Keywords) in C

• auto • break • int • long


• case • char • register • return
• const • continue • short • signed
• default • do • sizeof • static
• double • else • struct • switch
• enum • extern • typedef • union
• float • for • unsigned • void
• goto • if • volatile • while

All the C keywords are in small case


© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

64
Names / Identifiers
• Variables must be declared before use and immediately
after “{”

• Can be of anything length, but only the first 31 are


significant (A very long name is as bad as a very short, un-
descriptive name).

• Are case sensitive: abc is different from ABC

• Must begin with a letter and the rest can be letters, digits,
and
d underscores.
d

• Cannot be a reserved word.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

65
Which Are Legal Identifiers?

AREA area_under_the_curve
3D num45
Last-Chance #values
x_yt3 pi
num$$ %done
%
lucky*** continue
Float integer

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

66
Punctuation

• Semicolons, colons, commas, apostrophes,


quotation marks, brackets, and parentheses.

• ; : , ‘ “{ } ( )

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

67
Things to remember
• Statements are terminated with semicolons

• Indentation is ignored by the compiler

• C is case sensitive - all keywords and Standard


Library functions are lowercase

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

68
Variables and Constants in C

U1.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal
‹#›

69
Topics

• Variables
 Naming
 Declaring
g
 Using
• The Assignment Statement
• Constants
• Data Input & Output

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

70
Naming Conventions
• Begin variable names with lowercase letters

• Use meaningful names

• Separate “words” within identifiers with underscores or mixed upper and


lower case.

• Use all uppercase for symbolic constants (used in #define


preprocessor directives).
directives)
Note: symbolic constants are not variables,
• Be consistent! but make the program easier to read.

In addition to the conventions one must follow all the naming rules
as discussed in previous sessions.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

71
Declaring Variables
• All variables need to be declared before they are used.

• The declaration statement includes (apart from other


information) the data type of the variable.

• Examples of variable declarations:


int meatballs ;
float area ;

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

72
Declaring Variables
When we declare a variable
 Space is set aside in memory to hold a value of the specified
data type

 That space is associated with


the variable name
a unique address

Visualization of the declaration


age
int age ;
garbage
b
It is required to declare variables before using
as compiler needs this information FE07 int
P
Purpose!!!!!!

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

73
More About Variables

Basic data types available in C are:


 char: stores single character

 int: stores whole numbers

 float: store floating point numbers

 double: store floating point numbers with higher precision

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

74
Integer Types in C
• C supports different kinds of integers, like
 signed int
 unsigned int
 long int
 short int
 And more…

• Li
Limits
it depend
d d upon size
i i bytes
in b t which
hi h in
i turn
t d
depends
d
upon environment
 maxima and minima defined in “limits.h”

• We can work with different bases as well (octal,


hexadecimal)
hexadecimal).

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

75
The int Data Type (Contd.)
Use
scanf ((“%i”
%i , &ch) ;
to read a single integer into the variable ch.

Use
printf(“%i”,
i tf(“%i” ch)
h) ;
to display the value of an integer variable.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

76
The char Data Type
• The char data type holds a single character.
char ch;

• Example assignments:

char grade, symbol;


grade = ‘B’;
g
symbol = ‘$’;

• Th
The char
h isi held
h ld as a one-byte
b t integer
i t i memory. The
in Th
ASCII code is what is actually stored, so we can use
them as characters or integers, depending on our need.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

77
The char Data Type (Contd.)

Use
scanf (“%c”, &ch) ;
t read
to d a single
i l character
h t into
i t the
th variable
i bl ch.
h

Use
printf(“%c”, ch) ;
to display the value of a character variable.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

78
char I/O
#include <stdio.h>
int main ( )
{
char ch ;

printf (“Enter a character: “) ;


scanf (“%c”, &ch) ;
printf (
p (“The value of %c\n.”,
\ , ch)
) ;
return 0 ;
}

Input: A
Output : The value of A is 65
65.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

79
Real Types In C

C supports different kinds of reals


maxima and minima are defined in “float.h”

type format minimum maximum


float %f %e %g FLT_MIN FLT_MAX
d bl
double %lf %le
%l %lg
%l DBL MIN
DBL_MIN DBL MAX
DBL_MAX
long double %Lf %Le %Lg LDBL_MIN LDBL_MAX

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

80
Notes About Variables
• You must not use a variable until you somehow give it a
value.

• You can not assume that the variable will have a value
b f
before you give
i it one.
 Some compilers do, others do not! This is the
source of many errors that are difficult to find.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

81
Operators in C

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

82
Arithmetic Operators and their Usage
Name Operator Example

Addition + num1 + num2


Subtraction - initial - spent
Multiplication * fathoms * 6
Quotient of Division / sum / count
Remainder of Division % m%n

% can not be used with reals

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

83
Relational Operators
< less than
> greater than
<= less than or equal to
>= greater than or equal to
== is equal
q to
!= is not equal to

Relational
R l ti l expressions
i evaluate
l t tto the
th integer
i t
values:
 1 (true) on success
 0 (false) on failure

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

84
Logical Operators
• At times we need to test multiple conditions in order to
make a decision.
• Logical operators combine simple conditions to make
complex conditions.
• Result into a 0 (false) or 1 (true)

&& AND if ( x > 5 && y < 6 )

|| OR if ( z == 0 || x > 10 )

! NOT if (! (age > 42) )

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

85
Truth Table for &&

Expression1 Expression2 Expression1 && Expression2

0 0 0
0 nonzero 0
nonzero 0 0
nonzero nonzero 1

Exp1 && Exp2 && … && Expn will evaluate to 1 (true)


only
y if ALL sub-conditions are true.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

86
Truth Table for ||
Expression1 Expression2 Expression1 || Expression2
0 0 0
0 nonzero 1
nonzero 0 1
nonzero nonzero 1

Exp1 || Exp2 || … || Expn will evaluate to 1 (true) if any one of


the sub-conditions is true.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

87
Truth Table for !

Expression ! Expression
0 1
nonzero 0

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

88
Precedence/Associativity Table
Operator Associativity
() [] -> . left to right
! ~ ++ -- - + (cast) * & sizeof right to left + - : unary
* / % left to right
+ - left to right
<< >> left to right
< <= >= > left to right
== != left to right
& left to right
| left to right
^ left to right
&& left to right
|| left to right
?: right to left
= += -= *= /= %= etc right to left
, left to right
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

89
U
User IInteraction
t ti ini C

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

90
Functions
• Functions are named code blocks that make reusability of
code possible.

• These are parts of programs that


 Perform a well defined task.
task
 At times, expect some information in order to complete
the task.
 The information is provided in form of parameters
(arguments)
 Can
C return
t a value
l tot convey result
lt / status
t t off execution
ti

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

91
I/O Example

create two integer


#include <stdio.h>
variables, “a” and “b”
int main(void)
{
int a, b;
read two integer
numbers into “a” printf("Enter two numbers: ");
and “b” scanf("%i
f("%i %i",
%i" &a, &b);
b)

printf("%i - %i = %i\n", a, b, a - b);

write “a”, “b” and “a-b” return 0;


in the format specified }
Enter two numbers: 21 17
21 - 17 = 4

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

92
Displaying Variables
• A Function that allows us to display formatted data:
 printf( ).
)

• Needs two pieces of information to display things.


 How to display it
 What to display

• printf( “%f\n”, diameter );

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

93
printf( “%f\n”, diameter );
• The name of the function is “printf”.

• Inside the parentheses are two comma separated


parameters:
 Format specifier: indicates the format in which the
output will be produced
%f =>> a floating point value
\n => a new-line character (escape sequence)

 The expression diameter whose value is to be


displayed.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

94
scanf (“%f”, &meters) ;
• This function is used to
 read values from the standard input; and
 Store them in memory.
memory

• The scanf( ) function also needs two items:


 The
Th input
i t specification
ifi ti “%f”
“%f”.
 The address of the memory location where the information
is to be stored.

• We can input more than one item at a time if we wish, as long


as we specify it correctly!!!

• Notice the “&” in front of the variable name. Can you


p
explain its significance!
g

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

95
Format Specifiers
• Format specifiers are normal strings with embedded
“conversion
conversion specifications
specifications” which are placeholders for
arguments

• Conversion specifications are a ‘%’ and a letter with an


optional set of arguments in between the ‘%’ and letter.

Why are these required!!!

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

96
Selection: the if statement
if ( condition )
{
( )
statement(s) /* body
/ y of the if statement */
/
}

• The braces are not required if the body contains only a single
statement.
• However, they
H th are a good
d idea
id and
d are required
i d by
b the
th C Coding
C di
Standards.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

97
Examples
if ( age >= 18 )
{
printf(“Vote!\n”) ;
}

if ( value == 0 )
{
printf (“The value you entered was zero.\n”);
printf (
p (“Please try
y again.\n”)
g \ ) ;
}

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

98
Some Control Constructs in C

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

99
Selection: the if-else statement
if ( condition )
{
statement(s) /* the if clause */
}
else
{
statement(s) /* the else clause */
}

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

100
Example
if ( age >= 18 )
{
printf(“Vote!\n”) ;
}
else
{
printf(“Maybe next time!\n”) ;
}

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

101
Repetition Structure
• There are three repetition structures in C: -
 the while loop
 the
th for
f loop
l
 the do-while loop.

• Either of these structures may be used for counter-


controlled / event-controlled logic, but

• The syntax of for loop makes it more suitable for counter-


controlled repetition

• And, The syntax of while / do-while loops makes them more


suitable for event
event-controlled
controlled repetition

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

102
The while Repetition Structure
while ( condition )
{
statement(s)
}

• The braces are not required if the loop body contains


only
l a single
i l statement.
t t t

• However, they are a good idea and are required by


th C Coding
the C di Standards.
St d d

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

103
while Loop
• The simplest C loop is the while
• Parentheses must surround the condition
• Condition could be based on user input or some calculation
• Braces must be added if more statements are to be executed

total= 0;
while (
(number != -1)
) {
total = total + number;
printf(“Enter another number: “) ;
scanf(“%d”
scanf( %d , &number) ;
}

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

104
The for Loop Repetition Structure
• The for loop handles details of the counter-controlled loop
“automatically”.

• The following are handled within the for loop structure


 initialization of the the loop control variable,
 the termination condition test, and
 control variable modification.

for ( i = 1; i < 101; i = i + 1)


{

}
initialization test modification

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

105
A for Loop That Counts From 0 to 9

for ( i = 0; i < 10; i = i + 1 )


{
printf (“%d\n”
( %d\n , i) ;
}

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

106
We Can Count Backwards, Too

for ( i = 9; i >
>= 0; i = i - 1 )
{
printf (“%d\n”,
( %d\n , i) ;
}

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

107
Count By 2’s or 7’s or Whatever

for ( i = 0; i < 10; i = i + 2 )


{
printf (“%d\n”
( %d\n , i) ;
}

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

108
The do-while Repetition Structure
do
{
statement(s)
t t t( )
} while ( condition ) ;

• The body of a do-while is ALWAYS executed at least once.


• Is this true of a while loop?
• What about a for loop?

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

109
Example
do
{
printf (“Enter a number, 0 to terminate: “);
scanf (“%d”, &number) ;
if (number == 1)
printf (“\n Do Something\n”) ;
else if (number == 2)
printf (“\n Do Something Else\n”) ;
} while ( num != 0 );

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

110
An Equivalent while Loop
printf (“Enter a number, 0 to terminate:“) ;
scanf (“%d”, &number) ;
while ( number != 0 )
{
if (number == 1)
printf
i tf (“\
(“\n Do
D S thi \ ”) ;
Something\n”)
else if (number == 2)
printf (“\n Do Something Else\n”) ;
printf
i f (“
(“Enter a number
b “) ;
, 0 to terminate:“)
i
scanf (“%d”, &number) ;
}

Notice that using a while loop in this case requires a priming


read.
© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

111
An Equivalent for Loop
printf (“Enter a positive number, 0 to terminate: “) ;
scanf (“%d”, &number) ;

for ( ; number != 0; )
{
if (number == 1)
printf (“\n Do Something\n”) ;
else if (number == 2)
printf (
p (“\n Do Something
g Else\n”)
) ;
printf (“Enter a number , 0 to terminate:“) ;
scanf (“%d”, &number) ;
}

A for loop is a very awkward choice here because the


loop is event-controlled.
event controlled.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

112
So, Which Type of Loop Should One Use?

• Use a for loop for counter-controlled repetition.

• Use a while or do-while loop for event-controlled


repetition.
titi
 Use a do-while loop when the loop must execute at
least one time.
 Use a while loop when it is possible that the loop may
never execute.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

113
That s all for now
That’s now…
We are ready for writing a simple C program.

© Bharati Vidyapeeth’s Institute of Computer Applications and Management, New Delhi-63, by Shalini Singh Jaspal U1.
‹#›

114

You might also like