48
Introduction to C Programming Language by Mr. S. Ahmed JustETC Education Inc.

Introduction to C Programming Language by Mr. S. Ahmed

  • Upload
    sora

  • View
    32

  • Download
    0

Embed Size (px)

DESCRIPTION

Introduction to C Programming Language by Mr. S. Ahmed. JustETC Education Inc. Topics/Concepts. Structure of C Program Data Types, Operators, and Expressions Control Flow Functions and Program Structure Pointers and Arrays Structures Input and Output. Structure of a C Program. - PowerPoint PPT Presentation

Citation preview

Page 1: Introduction to  C Programming Language by  Mr.  S. Ahmed

Introduction to C

Programming Languageby

Mr. S. Ahmed

JustETC Education Inc.

Page 2: Introduction to  C Programming Language by  Mr.  S. Ahmed

Structure of C Program Data Types, Operators, and Expressions Control Flow Functions and Program Structure Pointers and Arrays Structures Input and Output

Topics/Concepts

Page 3: Introduction to  C Programming Language by  Mr.  S. Ahmed

How does a C program look like?

#include <stdio.h>

main(){

printf("hello, world\n");

}

Structure of a C Program

Page 4: Introduction to  C Programming Language by  Mr.  S. Ahmed

What it does?◦ Displays/prints/echos ‘hello World’

What do the different sections indicate?◦ Header Files◦ Code Blocks, functions◦ Statements

How to compile◦ Depends on the Operating System and IDE you

use How to Run?

◦ Depends on the Operating System and IDE you use

The ‘Hello World’ Program

Page 5: Introduction to  C Programming Language by  Mr.  S. Ahmed

Program StructureProgram Structure

Page 6: Introduction to  C Programming Language by  Mr.  S. Ahmed

How to compile◦ Depends on the Operating System and IDE you use◦ Save the file as hello.c◦ Linux/Unix: cc hello.c

How to Run?◦ Depends on the Operating System and IDE you use◦ Linux/Unix: a.out

Windows:◦ Usually you will use an IDE◦ IDE will have menu options to compile and run◦ Commons are: f9, shift+f9, f5 are used to compile/run. ◦ Menus may have options such as compile, build, run,

debug, build all, auto build

Program Execution, Program in Action

Page 7: Introduction to  C Programming Language by  Mr.  S. Ahmed

A program is nothing but a set of instructions to the computer hardware to perform some operations. ◦ Each line of instructions is called a statement◦ A semicolon is placed at the end of each statement◦ You can group a set of instructions by placing them in between { }◦ You can assign a name to a code block inside { } – then the code block is called

function/procedure/method◦ You can define your own functions (code blocks)◦ C also have many functions/code blocks already defined◦ Hence, a program will consist some blocks of instructions defined by you, or will

use instruction block as defined by C itself◦ Remember, one function can call /use another function

As a statement◦ While calling another function, some information can be passed to the other

function – called Arguments

Remember

Page 8: Introduction to  C Programming Language by  Mr.  S. Ahmed

printf(“%s\t%s”, “Hello”, “World”); printf(“%d\t%f”, 100, 200.50);

Some Variations of the Printf() Function

Page 9: Introduction to  C Programming Language by  Mr.  S. Ahmed

Variables: ◦ Example: x, y, z◦ x=10, y=100.5◦ printf(“%d\t%f”,x,y);◦ word=“Hello World”;◦ printf(“%s”,word);

More correctly◦ int x = 10, float y=100.5;◦ char x[50] = “Hello World”;◦ int intArr[5] = {1,2,3,4,5};

Concepts to Understand

Page 10: Introduction to  C Programming Language by  Mr.  S. Ahmed

Note:◦ \t, \b, \n◦ \t: print a tab◦ \n: print a newline

Concepts to Understand

Page 11: Introduction to  C Programming Language by  Mr.  S. Ahmed

Understanding by Examples◦ int x=10, y=20, sum=0;◦ sum = x + y; sum = (x + y); (you can think (x+y) as an

expression)◦ (x>y) is an expression◦ ((x+y) > 20) is an expression

An expression is a statement that has a value. In C, C++ and C#, an expression is always inside brackets like these examples. [about.com] ◦ ( y > 4) ◦ ( x== 8)◦ ( c = 1)

Variable and Expressions

Page 12: Introduction to  C Programming Language by  Mr.  S. Ahmed

Write a program that will print 1 if today is holiday else it will print 0.◦ If today is holiday printf(“%d”,1);◦ else if today is not holiday printf(“0”);

Controlling what the program will do◦ Control the flow of the instruction block

Which instruction will do something Which instruction will sit idle Decide if the same statements will run 100 times or not

Control Flow. What is it?

Page 13: Introduction to  C Programming Language by  Mr.  S. Ahmed

if (expression)statement1

elsestatement2

----if (expression)

statement1else if (expression)

statement2else

statement3

Control Flow

Page 14: Introduction to  C Programming Language by  Mr.  S. Ahmed

if (a > b)z = a;elsez = b;

----if (a > b)z = a;else if (b>a)z = b;

else if (a==b)x=y;

else printf(“nothing”);

If then Else

Page 15: Introduction to  C Programming Language by  Mr.  S. Ahmed

Switch-case can be used instead of if then else sometimes (not always).◦ If (1==a)

statement1◦ else if (2==a)

Statement2◦ else if (3==a)

Statement3◦ else

statement4

Switch-Case

Page 16: Introduction to  C Programming Language by  Mr.  S. Ahmed

switch(a){◦ Case 1:statement1;break;◦ Case 2:statement2;break;◦ Case 3:statement3;break;◦ default:statement4;break;

} Fall through: break is required to stop the flow

otherwise it will keep running until it sees a break.

Default: When no match is found.

Switch-Case Equivalent of If

Page 17: Introduction to  C Programming Language by  Mr.  S. Ahmed

switch (expression) {case const-expr: statementscase const-expr: statementsdefault: statements

}

Switch

Page 18: Introduction to  C Programming Language by  Mr.  S. Ahmed

Execute a set of instructions over and over◦ For specific number of times◦ As long as an expression is true/satisfied

For Loop◦ Specific number of times

While, and Do-While◦ As long as an expression is true/satisfied

Loop

Page 19: Introduction to  C Programming Language by  Mr.  S. Ahmed

while (expression){Statement

}

for (expr1; expr2; expr3){Statement

}

expr1;while (expr2) {

statementexpr3;

}

Loops Syntax

Page 20: Introduction to  C Programming Language by  Mr.  S. Ahmed

For◦ int n=100,i=0;◦ for (i = 0; i < n; i++){

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

While◦ int n=100,i=0;◦ while(i <n){

printf(”%d\n”,i); i++;

◦ }

Loops Example

Page 21: Introduction to  C Programming Language by  Mr.  S. Ahmed

Do-While◦ int n=100,i=0;◦ do {

printf(”%d\n”,i); i++;

◦ } while(i <n);

Loop Example

Page 22: Introduction to  C Programming Language by  Mr.  S. Ahmed

Break◦ Get out of the current loop

Continue◦ Stop executing current iteration and go to next

iteration

Break and Continue

Page 23: Introduction to  C Programming Language by  Mr.  S. Ahmed

Syntax◦ Go to Label

…… ………

◦ Label: …….

Operation◦ Jump to the labeled place from current place◦ Not encouraged◦ Rarely can be used to get out of deeply nested

loops.

Go to Statement

Page 24: Introduction to  C Programming Language by  Mr.  S. Ahmed

What are Pointers?◦ Note: pointers usually lead to more compact and

efficient code◦ A pointer is a variable that contains the address of

another variable◦ If p is a pointer and c is a variable the statement◦ p = &c;◦ assigns the address of c to the variable p. & gives

the address of a variable

Pointers

Page 25: Introduction to  C Programming Language by  Mr.  S. Ahmed

The & operator only applies to objects in memory: variables and array elements.

Pointers cannot be applied to expressions, constants, or register variables

when * is applied to a pointer, it accesses the object the pointer points to

Pointers

Page 26: Introduction to  C Programming Language by  Mr.  S. Ahmed

Examples◦ int x = 1, y = 2, z[10];◦ int *ip; /* ip is a pointer to int */◦ ip = &x; /* ip now points to x */◦ y = *ip; /* y is now 1 */◦ *ip = 0; /* x is now 0 */◦ ip = &z[0]; /* ip now points to z[0] */

Pointers

Page 27: Introduction to  C Programming Language by  Mr.  S. Ahmed

Every pointer points to a specific data type◦ one exception:

a ``pointer to void'‘ (void *p) is used to hold any type of pointer

You cannot use dereference with void * If p points to the integer x, then *ip can

occur in any context where x could◦ *ip = *ip + 10;◦ y = *ip + 1◦ ++*ip◦ (*ip)++

Pointers

Page 28: Introduction to  C Programming Language by  Mr.  S. Ahmed

Call by reference applies herevoid swap(int *px, int *py) /* interchange *px and *py */{

int temp;temp = *px;*px = *py;*py = temp;

}

main(){swap(x, y); //The values of x and y will also get changed here}

Pointers as Function Parameters

Page 29: Introduction to  C Programming Language by  Mr.  S. Ahmed

Any operation that can be achieved by array subscripting can also be done with pointers◦ int a[10]; int *pa; pa = &a[0];◦ x = *pa; is equivalent to x=a[0];◦ pa+1 points to the next element pointed by pa◦ pa+i points i elements after pa◦ and pa-i points i elements before ◦ Thus, if pa points to a[0]

*(pa+1) refers to the contents of a[1], pa+i is the address of a[i], and *(pa+i) is the contents of a[i]

Pointers and Arrays

Page 30: Introduction to  C Programming Language by  Mr.  S. Ahmed

Example:◦ int a[10][20];◦ int *a[10];

◦ char name[][50] = { "Illegal month", "Jan", "Feb", "Mar" };

◦ char *name[] = { "Illegal month", "Jan", "Feb", "Mar" };

Pointers and Multi-dimensional Arrays

Page 31: Introduction to  C Programming Language by  Mr.  S. Ahmed

Applies only to char, short, int, and long whether signed or unsigned◦ & bitwise AND◦ | bitwise inclusive OR◦ ^ bitwise exclusive OR◦ << left shift◦ >> right shift◦ ~ one's complement (unary) (alternate bits)

Bitwise Operators

Page 32: Introduction to  C Programming Language by  Mr.  S. Ahmed

Bitwise Operators◦ & can be used to turn off some bits◦ x= x & 031, turn off (0) all bits except last five◦ | is used to turn bits on (1)◦ ^ sets

a one in each bit position where its operands have different bits, and

zero where they are the same.◦ << and >> perform left and right shifts of their

left operand x >> 2; y << 2;

Bitwise Operators

Page 33: Introduction to  C Programming Language by  Mr.  S. Ahmed

x << 2◦ shifts the value of x by two positions◦ fills vacated rightmost bits with zero◦ One left shift multiplies the number by 2

Right shifting (Signed Number): The vacated left most bits ◦ will be filled with bit signs on some machines – arithmetic

shift◦ and with 0-bits on others - logical shift

Left and Right Shifts

Page 34: Introduction to  C Programming Language by  Mr.  S. Ahmed

int getchar(void) int putchar(int) int printf(char *format, arg1, arg2, ...); printf("%.*s", max, s); int scanf(char *format, ...) : Read from user/console int sscanf(char *string, char *format, arg1, arg2, ...): from

string

I/O Functions

Page 35: Introduction to  C Programming Language by  Mr.  S. Ahmed

FILE *fp; FILE *fopen(char *name, char *mode); int fclose(FILE *fp) char *fgets(char *line, int maxline, FILE *fp) int fputs(char *line, FILE *fp)

File Operations

Page 36: Introduction to  C Programming Language by  Mr.  S. Ahmed

String related functions as defined in string.h◦ strcat(s,t) concatenate t to end of s◦ strncat(s,t,n) concatenate n characters of t to end of s◦ strcmp(s,t) return negative, zero, or positive for s < t, s == t, s > t◦ strncmp(s,t,n) same as strcmp but only in first n characters◦ strcpy(s,t) copy t to s◦ strncpy(s,t,n) copy at most n characters of t to s◦ strlen(s) return length of s◦ strchr(s,c) return pointer to first c in s, or NULL if not present◦ strrchr(s,c) return pointer to last c in s, or NULL if not present

Common I/O Functions

Page 37: Introduction to  C Programming Language by  Mr.  S. Ahmed

What is a structure?◦ It is just a data type/variable that has multiple variables

under it Why do we need it?

◦ For example, you are writing a student record management system. Now to define a student in your software, you have to keep many variables. Such as id, name, address, phone, email, major, minor, and some more.

◦ Yes, you can deal with all these variables for all students Better if you had only one variable for each student but as we

see many variables are required to represent a student So why not create one variable for a student and put the other

variables under that [to represent that particular student) The top level variable is the structure type

Structures

Page 38: Introduction to  C Programming Language by  Mr.  S. Ahmed

struct student {◦ int id;◦ char *name;◦ char * address;◦ char *cell;

}; Struct defines a data type. Hence, student

now is a data type. We can define variables of student type as follows◦ student studentVar;

Defining Structures

Page 39: Introduction to  C Programming Language by  Mr.  S. Ahmed

We can declare and assign at the same time◦ student studentVar =

{100,”smith” ,”winnipeg”,”999-0539”}; We can assign separately as well

◦ student studentVar;◦ studentVar.id=100;◦ studentVar.name=“smith”;

Defining Structures

Page 40: Introduction to  C Programming Language by  Mr.  S. Ahmed

How to print structure variable data?◦ printf("%d,%s", studentVar.id, studentVar.name);

Legal operations with structures◦ Copy it as a unit◦ Assign to it as a unit◦ Take it’s address with &◦ Access it’s members

Structures

Page 41: Introduction to  C Programming Language by  Mr.  S. Ahmed

struct student studentVar, *pp; pp = &studentVar; printf(“student details (%d,%s)\n", (*pp).id,

(*pp).name); printf(“student details (%d,%s)\n", pp->id,

pp->name); Notice the above two lines. How the

member variables were accessed. (*pp).id or pp->id

Pointers to Structures

Page 42: Introduction to  C Programming Language by  Mr.  S. Ahmed

struct student{◦ int id;◦ char *name;◦ char *address;◦ char *cell;

} studentList = {{100,”name1”,”address1”},{101,”name2”,”address2”},{102,”name3”,”address3”}

};

Array of Structures

Page 43: Introduction to  C Programming Language by  Mr.  S. Ahmed

Union declaration, assignment may look like pretty similar to structures

Unions are usually used to store data of different data types for the same concept◦ All member variables points to the same memory location◦ Actually, we are trying to store one value◦ But as the data type of the value can differ, hence, we are

keeping options◦ Usually, the storage will be of the size of the largest data type◦ The programmer is responsible to remember and extract the

same data type he stored For example, you want to store tags. However, tags can

be of int, float, or string type based on context. Then you can declare a union as follows

Union

Page 44: Introduction to  C Programming Language by  Mr.  S. Ahmed

union tag {◦ int ival;◦ float fval;◦ char *sval;

} u;

Union

Page 45: Introduction to  C Programming Language by  Mr.  S. Ahmed

enum DAY { saturday, sunday ,monday, tuesday, wednesday, thursday, friday

} workday; enum DAY today = wednesday;

Enum

Page 46: Introduction to  C Programming Language by  Mr.  S. Ahmed

Misc◦ int ungetc(int c, FILE *fp)◦ system("date");

Storage Management void *malloc(size_t n) void *calloc(size_t n, size_t size)

int *ip; ip = (int *) calloc(n, sizeof(int));

I/O Functions

Page 47: Introduction to  C Programming Language by  Mr.  S. Ahmed

Mathematical Functions◦ sin(x) x in radian◦ cos(x)◦ atan2(y,x)◦ exp(x)◦ log(x) (x>0) , natural◦ log10(x) (x>0) , 10 based◦ pow(x,y) x to the power y◦ sqrt(x)◦ fabs(x) absolute value of x

I/O Functions

Page 48: Introduction to  C Programming Language by  Mr.  S. Ahmed

“The C Programming Language”: Kernighan and Ritchie

Internet

References