Вы находитесь на странице: 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

Вам также может понравиться