Transcript lecture1

Lecture 2: Introduction to
C Programming
OBJECTIVES
In this lecture you will learn:
 To use simple input and output statements.





The fundamental data types.
Computer memory concepts.
To use arithmetic operators.
The precedence of arithmetic operators.
To write simple decision-making statements.
Example
Problem: Determine if a user-entered number is
odd.
Questions:
How to enter a number?
Where to store the number?
Under what condition is a number is odd?
/*
Determine if a user-entered number is odd.
*/
#include <stdio.h>
/* function main begins program execution */
int main( void )
{
int integer1; /* the number to be input by user */
Definition of variable
scanf obtains a value from the
user and assigns it to integer1
printf( "Enter an integer number:\n" ); /* prompt */
scanf( "%d", &integer1 );
/* read an integer */
/* determine if the number is odd using the modulus operator */
if ( integer1 % 2 == 1 )
printf( "The entered number %d is odd.\n", integer1 );
return 0; /* indicate that program ended successfully */
} /* end function main */
Checked if integer1 is odd
/*
Determine if a user-entered number is odd.
*/
#include <stdio.h>
/* function main begins program execution */
int main( void )
{
int integer1; /* the number to be input by user */
printf( "Enter an integer number:\n" ); /* prompt */
scanf( "%d", &integer1 );
/* read an integer */
/* determine if the number is odd using the modulus operator */
if ( integer1 % 2 == 1 )
printf( "The entered number %d is odd.\n", integer1 );
return 0; /* indicate that program ended successfully */
} /* end function main */
Comments: Used to describe program
#include <stdio.h>: <stdio.h> allows standard
input/output operations
int main()
C programs contain one or more functions, exactly one of which
must be main
int means that main "returns" an integer value
The execution of any C program starts from main
/*
Determine if a user-entered number is odd.
*/
#include <stdio.h>
/* function main begins program execution */
int main( void )
{
int integer1; /* the number to be input by user */
printf( "Enter an integer number:\n" ); /* prompt */
scanf( "%d", &integer1 );
/* read an integer */
/* determine if the number is odd using the modulus operator */
if ( integer1 % 2 == 1 )
printf( "The entered number %d is odd.\n", integer1 );
return 0; /* indicate that program ended successfully */
} /* end function main */
int integer1;
Definition of a variable: location in memory where a value can be stored.
int means the variable can hold an integer
Variable name (identifier)
integer1
Identifier: consist of letters, digits (cannot begin with a digit) and
underscores( _ )
Case sensitive
Definitions appear before executable statements
/*
Determine if a user-entered number is odd.
*/
#include <stdio.h>
/* function main begins program execution */
int main( void )
{
int integer1; /* the number to be input by user */
printf( "Enter an integer number:\n" ); /* prompt */
scanf( "%d", &integer1 );
/* read an integer */
/* determine if the number is odd using the modulus operator */
if ( integer1 % 2 == 1 )
printf( "The entered number %d is odd.\n", integer1 );
return 0; /* indicate that program ended successfully */
} /* end function main */
scanf( "%d", &integer1 );
Obtains a value from the user -- uses standard input (usually keyboard)
Two arguments
%d - conversion specifier: data should be a decimal integer (“%d” is
the format control string)
&integer1 - location in memory to store variable
When executing the program the user responds to the scanf statement by
typing in a number, then pressing the enter (return) key
/*
Determine if a user-entered number is odd.
*/
#include <stdio.h>
/* function main begins program execution */
int main( void )
{
int integer1; /* the number to be input by user */
printf( "Enter an integer number:\n" ); /* prompt */
scanf( "%d", &integer1 );
/* read an integer */
/* determine if the number is odd using the modulus operator */
if ( integer1 % 2 == 1 )
printf( "The entered number %d is odd.\n", integer1 );
return 0; /* indicate that program ended successfully */
} /* end function main */
if ( integer1 % 2 == 1 )
printf( "The entered number %d is odd.\n", integer1 );
Simple version of the if statement, more detail next lecture
If a condition is true, then the body of the if statement executed
0 is false, non-zero is true.
Control always resumes after the if structure
/*
Determine if a user-entered number is odd.
*/
#include <stdio.h>
/* function main begins program execution */
int main( void )
{
int integer1; /* the number to be input by user */
printf( "Enter an integer number:\n" ); /* prompt */
scanf( "%d", &integer1 );
/* read an integer */
/* determine if the number is odd using the modulus operator */
if ( integer1 % 2 == 1 )
printf( "The entered number %d is odd.\n", integer1 );
return 0; /* indicate that program ended successfully */
} /* end function main */
printf( "The entered number %d is odd.\n",
integer1 );
Similar to scanf
"The entered number %d is odd.\n” - printf format control
string.
%d - conversion specifier: means decimal integer will be
printed
Memory Concepts
Variable
Variable names correspond to
locations in the computer's memory
Every variable has a name, a type,
and a value
Whenever a new value is placed into
a variable (through scanf, for
example), it replaces (and destroys)
the previous value
Reading variables from memory
does not change them
RAM
integer1
2000
sum
2500
integer2
500
Arithmetic
Arithmetic calculations
Use * for multiplication and / for division
Integer division truncates remainder
e.g. 9 / 5 evaluates to 1.
Modulus operator (%) returns the remainder
e.g. 9 % 5 evaluates to 4.
Operator precedence
Used to decide which of two operators should be processed
first.
 Parentheses ()
 Multiplication/Division/Remainder
 Addition/Subtraction
Use parenthesis when needed
E.g.: Find the average of three variables a, b, and c
using (a + b + c)/3, not a + b + c/3
Arithmetic
Operator associativity
used to decide which of two operators should be
processed when both operators have same
precedence.
 Multiplication/Division: Left to Right
 Addition/Subtraction: Left to Right
Examples:
a - b + c = ((a - b) + c)
a * b % c = ((a * b) % c)
a^b^c = (a^(b^c))
Some Arithmetic Operators
C opetration
Arithmetic Algebraic
C expression
expression
operator
Addition
+
f+7
f + 7
Subtraction
–
p–c
p - c
Multiplication
*
bm
b * m
Division
/
Remainder
%
x y or
x
or x ÷ y
x / y
y
r mod s
r % s
Some Arithmetic Operators
Operator(s) Operation(s) Order of evaluation (precedence)
( )
Parentheses
Evaluated first. If the parentheses are
nested, the expression in the innermost pair is
evaluated first. If there are several pairs of
parentheses “on the same level” (i.e., not nested),
they are evaluated left to right.
*
/
%
Multiplication
Division
Remainder
Evaluated second. If there are several, they are
evaluated left to right.
+
-
Addition
Subtraction
Evaluated last. If there are several, they are
evaluated left to right.
Equality and Relational Operators
Standard algebraic
equality operator or
relational operator
C equality or
relational
operator
Example of
C condition
Meaning of C condition

==
x == y
x is equal to y

!=
x != y
x is not equal to y

>
x > y
x is greater than y

<
x < y
x is less than y
≥
>=
x >= y
x is greater than or equal to y
≤
<=
x <= y
x is less than or equal to y
Equality operators
Relational operators
Keywords
Special words reserved for C
Cannot be used as identifiers or variable names
Keywords
auto
double
int
struct
break
else
long
switch
case
enum
register
typedef
char
extern
return
union
const
float
short
unsigned
continue
for
signed
void
default
goto
sizeof
volatile
do
if
static
while