C Programming by Mr. Mubiru Abubakari

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 35

1

C PROGRAMMING
LECTURE
by
Mubiru Abubakari
[email protected] | 0700615681

C Course, Programming ,
Recap
2

 C is a high-level language.

 Writing a C code. {editors like gedit, vi}

 Compiling a C code. {gcc –c test.c –o test}

 Executing the object code. {./test}

C Course, Programming
Some more basics
3

 Keywords
 char, static, if , while, return ..................... Total= about 32

 Data Types
 int , char, float ...………..….. Some more later

 Arithmetic Operators
 + (Plus), - (Minus), * (Multiplication), /(Division)

……….……….
Some more later

C Course, Programming
My first C program!
4

#include <stdio.h>
// program prints hello world
int main() {
printf ("Hello world!");
return 0;
}

Output: Hello world!

C Course, Programming
Example 1
5

#include <stdio.h>
// program prints a number of type int
int main() {
int number = 4;
printf (“Number is %d”, number);
return 0;
}

Output: Number is 4

C Course, Programming
Example 2
6

#include <stdio.h>
// program reads and prints the same thing
int main() {
int number ;
printf (“ Enter a Number: ”);
scanf (“%d”, &number);
printf (“Number is %d\n”, number);
return 0;
}

Output : Enter a number: 4


Number is 4
C Course, Programming
more and more
7

#include <stdio.h>

int main() {
/* this program adds
two numbers */
int a = 4; //first number
int b = 5; //second number
int answer = 0; //result
answer = a + b;
}

C Course, Programming
Note
8

Errors
Compilation
Compiler generally gives the line
number at which the error is present.
Run time
C programs are sequential making
the debugging easier.

C Course, Programming
Some more Data Types
9

 Primary : int, float, char


 int (signed/unsigned)(2,4Bytes): used to store integers.
 char (signed/unsigned)(1Byte): used to store
characters
 float, double(4,8Bytes): used to store a decimal number.

 User Defined:
 typedef: used to rename a data type
 typedef int integer; can use integer to declare an int.
 enum, struct, union

C Course, Programming
Some more Arithmetic Operators
10

 Prefix Increment : ++a


 example:
 int a=5;
 b=++a; // value of b=6; a=6;

 Postfix Increment: a++


 example
 int a=5;
 b=a++; //value of b=5; a=6;

C Course, Programming
Contd…
11

 Modulus (remainder): %
 example:
 12%5 = 2;

 Assignment by addition: +=
 example:
 int a=4;
 a+=1; //(means a=a+1) value of a becomes 5

Can use -, /, *, % also

C Course, Programming
Contd…
12

 Comparision Operators: <, > , <=, >= , !=, ==, !,


&&, || .
 example:
 int a=4, b=5;
 a<b returns a true(non zero number) value.

 Bitwise Operators: <<, >>, ~, &, | ,^ .


 example
 int a=8;
 a= a>>1; // value of a becomes 4

C Course, Programming
Operator Precedence
13

 Meaning of a + b * c ?
is it a+(b*c) or (a+b)*c ?
 All operators have precedence over each other
 *, / have more precedence over +, - .
 If both *, / are used, associativity comes into
picture. (more on this later)
 example :
 5+4*3 = 5+12= 17.

C Course, Programming
Precedence Table
14

Highest on top
++ -- (Postfix)
++ -- (Prefix)
* / %
+ -
<< >>
< >
&
|
&&
||

C Course, Programming
Input / Output
15

 printf (); //used to print to console(screen)


 scanf (); //used to take an input from console(user).
 example: printf(“%c”, ’a’); scanf(“%d”, &a);
 More format specifiers
%c The character format specifier.
%d The integer format specifier.
%i The integer format specifier (same as %d).
%f The floating-point format specifier.
%o The unsigned octal format specifier.
%s The string format specifier.
%u The unsigned integer format specifier.
%x The unsigned hexadecimal format specifier.
%% Outputs a percent sign.
C Course, Programming
Some more geek stuff
16

 & in scanf.
 It is used to access the address of the variable used.
 example:
 scanf(%d,&a);
 we are reading into the address of a.

 Data Hierarchy.
 example:
 int value can be assigned to float not vice-versa.
 Type casting.

C Course, Programming club, Fall 2008


Home Work
17

 Meaning of
 Syntax
 Semantics of a programming language
 Find the Output:
 value=value++ + value++;
 Value=++value + ++value;
 value=value++ + ++value;

C Course, Programming
2.2 A Simple C Program:
Printing a Line of Text
Welcome to C!
1 /* Fig. 2.1: fig02_01.c
2 A first program in C */
3 #include <stdio.h>
4
5 int main()
6 {
7 printf( "Welcome to C!\n" );
8
 Comments 9
10 }
return 0;

 Text surrounded by /* and */ is ignored by computer


 Used to describe program
 #include <stdio.h>
 Preprocessor directive
 Tells computer to load contents of a certain file

 <stdio.h> allows standard input/output


18
operations
2.2 A Simple C Program:
Printing a Line of Text
 int main()
 C++ programs contain one or more functions,
exactly one of which must be main
 Parenthesis used to indicate a function
 int means that main "returns" an integer value
 Braces ({ and }) indicate a block
 The bodies of all functions must be contained in braces

19
2.2 A Simple C Program:
Printing a Line of Text
 printf( "Welcome to C!\n" );
 Instructs computer to perform an action
 Specifically, prints the string of characters within quotes
(“ ”)
 Entire line called a statement
 All statements must end with a semicolon (;)

 Escape character (\)


 Indicates that printf should do something out of the
ordinary
 \n is the newline character

20
2.2 A Simple C Program:
Printing a Line of Text
 return 0;
 A way to exit a function
 return 0, in this case, means that the program terminated
normally
 Right brace }
 Indicates end of main has been reached
 Linker
 When a function is called, linker locates it in the library
 Inserts it into object program
 If function name is misspelled, the linker will produce an error
because it will not be able to find function in the library
21
1 /* Fig. 2.5: fig02_05.c
2 Addition program */ Outline
3 #include <stdio.h>
4 1. Initialize
5 int main() variables
22
6 {
7 int integer1, integer2, sum; /* declaration */ 2. Input
8
9 printf( "Enter first integer\n" ); /* prompt */
2.1 Sum
10 scanf( "%d", &integer1 ); /* read an integer */
11 printf( "Enter second integer\n" ); /* prompt */
12 scanf( "%d", &integer2 ); /* read an integer */ 3. Print
13 sum = integer1 + integer2; /* assignment of sum */
14 printf( "Sum is %d\n", sum ); /* print sum */
15
16 return 0; /* indicate that program ended successfully */
17 }

Enter first integer


45 Program Output
Enter second integer
72
2000
Sumis 117 Prentice Hall, Inc. All
2.3 Another Simple C Program:
Adding Two Integers
 As before
 Comments, #include <stdio.h> and main
 int integer1, integer2, sum;
 Declaration of variables
 Variables: locations in memory where a value can be stored
 int means the variables can hold integers (-1, 3, 0, 47)
 Variable names (identifiers)
 integer1, integer2, sum
 Identifiers: consist of letters, digits (cannot begin with a digit) and underscores( _ )
 Case sensitive
 Declarations appear before executable statements
 If an executable statement references and undeclared variable it will produce a
syntax (compiler) error
23
2.3 Another Simple C Program:
Adding Two Integers
 scanf( "%d", &integer1 );
 Obtains a value from the user
 scanf uses standard input (usually keyboard)

 This scanf statement has two arguments


 %d - indicates data should be a decimal integer
 &integer1 - location in memory to store variable
 & is confusing in beginning – for now, just remember to
include it with the variable name in scanf statements
 When executing the program the user responds to
the scanf statement by typing in a number, then
pressing the enter (return) key
24
2.3 Another Simple C Program:
Adding Two Integers
 = (assignment operator)
 Assigns a value to a variable
 Is a binary operator (has two operands)
sum = variable1 + variable2;
sum gets variable1 + variable2;
 Variable receiving value on left
 printf( "Sum is %d\n", sum );
 Similar to scanf
 %d means decimal integer will be printed
 sum specifies what integer will be printed

 Calculations can be performed inside printf


25
statements
printf( "Sum is %d\n", integer1 + integer2 );
2.4 Memory Concepts
 Variables
 Variable names correspond to locations in the
computer's memory
 Every variable has a name, a type, a size 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 integer1 45
 A visual representation
26
2.5 Arithmetic
 Arithmetic calculations
 Use * for multiplication and / for division
 Integer division truncates remainder
 7 / 5 evaluates to 1
 Modulus operator(%) returns the remainder
 7 % 5 evaluates to 2
 Operator precedence
 Some arithmetic operators act before others (i.e., multiplication before
addition)
 Use parenthesis when needed
 Example: Find the average of three variables a, b and c
 Do not use: a + b + c / 3
 Use: (a + b + c ) / 3
27
2.5 Arithmetic
 Arithmetic operators:
C operation Arithmetic Algebraic C expression
operator expression
Addition + f+7 f + 7
Subtraction - p–c p - c
Multiplication * bm b * m
Division / x/y x / y
Modulus % r mod s r % s
 Rules of operator precedence:
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.
*, /, or % Multiplication,Divi Evaluated second. If there are several, they are
sion, Modulus evaluated left to right.
+ or - Addition Evaluated last. If there are several, they are
Subtraction evaluated left to right.
28
2.6 Decision Making: Equality and
Relational Operators
 Executable statements
 Perform actions (calculations, input/output of data)
 Perform decisions
 May want to print "pass" or "fail" given the value of a test grade
 if control structure
 Simple version in this section, more detail later
 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
 Keywords
 Special words reserved for C
 Cannot be used as identifiers or variable names

29
2.6 Decision Making: Equality and
Relational Operators
Standard algebraic C equality or Example of C Meaning of C
equality operator or relational condition condition
relational operator operator
Equality Operators
= == x == y x is equal to y
not = != x != y x is not equal to y
Relational Operators
> > 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

30
2.6 Decision Making: Equality and
Relational Operators
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

31
1 /* Fig. 2.13: fig02_13.c
2 Using if statements, relational Outline
3 operators, and equality operators */
4 #include <stdio.h> 1. Declare
5 variables
632 int main()
7 {
8 int num1, num2; 2. Input
9
10 printf( "Enter two integers, and I will tell you\n" );
2.1 if statements
11 printf( "the relationships they satisfy: " );
12 scanf( "%d%d", &num1, &num2 ); /* read two integers */
13 3. Print
14 if ( num1 == num2 )
15 printf( "%d is equal to %d\n", num1, num2 );
16
17 if ( num1 != num2 )
18 printf( "%d is not equal to %d\n", num1, num2 );
19
20 if ( num1 < num2 )
21 printf( "%d is less than %d\n", num1, num2 );
22
23 if ( num1 > num2 )
24 printf( "%d is greater than %d\n", num1, num2 );
25
26 if ( num1 <= num2 )
27  2000printf(
Prentice
"%d Hall, Inc.
is less Allor
than equal to %d\n",
29
30 if ( num1 >= num2 ) Outline
31 printf( "%d is greater than or equal to %d\n",
3.1 Exit main
32 num1, num2 );

33
33
34 return 0; /* indicate program ended successfully */
35 }

Enter two integers, and I will tell you


the relationships they satisfy: 3 7 Program Output
3 is not equal to 7
3 is less than 7
3 is less than or equal to 7

Enter two integers, and I will tell you


the relationships they satisfy: 22 12
22 is not equal to 12
is2000
22  Prentice
greater than 12Hall, Inc. All
End of Today’s Lecture
34

Doubts && Queries?

C Course, Programming
35

THANK YOU

C Course, Programming

You might also like