cs115 introduction to programming

28
Senem Kumova Metin CS115 Introduction to Programming Inst. Senem Kumova Metin senem.kumova @ ieu.edu.tr Textbook : A Book on C, A. Kelly and I.Pohl Lecture Notes : http://homes.ieu.edu.tr/~skumova/ Office hours : TBA Office : 408

Upload: hayes-dudley

Post on 02-Jan-2016

45 views

Category:

Documents


2 download

DESCRIPTION

CS115 Introduction to Programming. Inst. Senem Kumova Metin [email protected] Textbook : A Book on C, A. Kelly and I.Pohl Lecture Notes : http://homes.ieu.edu.tr/~skumova/ Office hours : TBA Office : 408. WHAT is LANGUAGE ?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CS115 Introduction to  Programming

Senem Kumova Metin

CS115 Introduction to Programming

Inst. Senem Kumova [email protected]

Textbook : A Book on C, A. Kelly and I.Pohl

Lecture Notes : http://homes.ieu.edu.tr/~skumova/

Office hours : TBA

Office : 408

Page 2: CS115 Introduction to  Programming

Senem Kumova Metin

WHAT is LANGUAGE ?

Page 3: CS115 Introduction to  Programming

Senem Kumova Metin

WHAT is PROGRAMMING??scheduling or performing a task or / and event

WHAT is COMPUTER PROGRAMMING??creating a sequence of steps for a computer to follow in performing a task

Page 4: CS115 Introduction to  Programming

Senem Kumova Metin

WHAT is a PROGRAMMING LANGUAGE ?

A set of rules, symbols, and special words used to construct a computer program

Page 5: CS115 Introduction to  Programming

Senem Kumova Metin

Programming language rules consist of:

Rules of Syntax which specify how valid instructions are written in the language(like natural language rules subject + verb +object )

Rules of Semantics which determine the meaning of the instructions (what the computer will do)

(like natural language rules A book has bitten a car )

Page 6: CS115 Introduction to  Programming

Senem Kumova Metin

A COMPUTER PROGRAM ? A set of machine instructions which in turn are

represented as sequences of binary digits (0001010….111011)

The execution sequence of a group of machine instructions is known as the flow of control.

Page 7: CS115 Introduction to  Programming

Senem Kumova Metin

FLOW OF CONTROL

SCENARIO :

you have 2 integers : x,y

if x is greater than 0 then

do x= y+ 1;

else

do x= y-1;

print the value of x

int x and int y

x > 0

YES NO

x = y+1 x = y-1

print x

Page 8: CS115 Introduction to  Programming

Senem Kumova Metin

Will we write codes in binary ??

SCENARIO :

you have 2 integers : x,y

if x is greater than 0 then

do x= y+ 1;

else

do x= y-1;

print the value of x

000…110001

100010….01

YES NO

10…1010000 1011..0101

100..11100010

Page 9: CS115 Introduction to  Programming

Senem Kumova Metin

ASSEMBLY LANGUAGE Assembly language (or assembler code) was our

first attempt at producing a mechanism for writing programs that was more palatable to ourselves

movl #0x1,n

compare:

cmpl #oxa,n

cgt end_of_loop

acddl #0x1,n

bra compare

end_of_loop:

• Of course a program written in assembly code, in order to “run”, must first be translated (assembled) into machine code.

Page 10: CS115 Introduction to  Programming

Senem Kumova Metin

HIGH LEVEL LANGUAGE From the foregoing we can see that assembler

language is not much of an improvement on machine code!

A more problem-oriented (rather than machine-oriented) mechanism for creating computer programs would also be desirable.

Hence the advent of high(er) level languages starts with the introduction of “Autocodes”, and going on to Algol, Fortran, Pascal, Basic, Ada, C, etc.

Page 11: CS115 Introduction to  Programming

Senem Kumova Metin

PROGRAM PROCESSING A program written in a high level

language (source code) can only be run in its machine code equivalent format.

SOURCE CODE MACHINE CODE There are two ways of achieving this:

1. Interpretation, and

2. Compilation

Page 12: CS115 Introduction to  Programming

Senem Kumova Metin

1. INTERPRETATION Interpretation requires the use of a

special program that reads and reacts to source code.

Such a program is called an interpreter. During interpretation run-time errors may

be detected and “meaningful” error messages produced.

Page 13: CS115 Introduction to  Programming

Senem Kumova Metin

2. COMPILATION

Compilation requires the use of a special program (called a compiler) that translates source code into object code.

SOURCE CODE OBJECT CODE Sometimes various library files must be

“linked in” using another special program called a linker, which produces executable code.

OBJECT CODE MACHINE CODE

Page 14: CS115 Introduction to  Programming

Senem Kumova Metin

LIBRARIES

Libraries (in computer programming terms) contain chunks of precompiled (object) code for various functions and procedures that come with a programming language that requires compilation

For example functions and procedures to facilitate I/O.

Page 15: CS115 Introduction to  Programming

Senem Kumova Metin

Why C? Native language of UNIX Standard development language for

personal computers Portable (can be moved to other

machine !) Powerful set of operators and powerful

libraries (some operators: ++,--….) Basis for Java, C++…..

Page 16: CS115 Introduction to  Programming

Senem Kumova Metin

A SHORT BREAK !

20 min …

Page 17: CS115 Introduction to  Programming

Senem Kumova Metin

INTRODUCTION TO C

Your First C programs

Basic I/O functions : printf / scanfIncluding librariesWriting commentsDefining variables ….if statements

Page 18: CS115 Introduction to  Programming

Senem Kumova Metin

Learn printf

#include <stdio.h> // library file

void main(void)

{

printf("from sea to shining C\n");

}

Page 19: CS115 Introduction to  Programming

Senem Kumova Metin

Learn printf

#include <stdio.h>

void main(void)

{

printf("from sea ”);

printf(“to shining C\n");

}

Page 20: CS115 Introduction to  Programming

Senem Kumova Metin

Learn printf / scanf#include <stdio.h>void main(void){

int x=0;printf(“x= %d”,x); // print x = 0scanf(“%d”,&x); /* scan the value

from screen and assign this value to x

*/printf(“%d”,x); }

Page 21: CS115 Introduction to  Programming

Senem Kumova Metin

Comments/* Ignored part by

the compiler */

// Ignored part by the compiler (only this line)

void main(){ //…..

}

Page 22: CS115 Introduction to  Programming

Senem Kumova Metin

Comments Comments are arbitrary strings of symbols

placed between the delimiters /* and */ Comments are not tokens but white spaces for

the C compiler

d)  /*************/      /*  a comment */    /*************/

b)    /*     * a comment     */

c)   /**********    *  a comment *    ************/

a) /* a comment */

Page 23: CS115 Introduction to  Programming

Senem Kumova Metin

Variables and Assignment

#include<stdio.h>void main(void){ int kurus; // declarations of variables (int is a keyword, takes integer values)int lira=0; // declaration and initialization of a variable int toplam_kurus; lira =13; // Assignment statement, “=“ is the assignment operatorkurus=56; // Assignment

printf(“ Money is %d lira %d kurus\n”, lira, kurus); // printf statementtoplam_kurus = lira*100+ kurus;printf(“ \n Total kurus is %d kurus\n”, toplam_kurus);// first part of the printf statement is a control string

}

Page 24: CS115 Introduction to  Programming

Senem Kumova Metin

Variables and Assignment

OUTPUT:

Money is 13 lira 56 kurus

Total kurus is 1356 kurus

Page 25: CS115 Introduction to  Programming

Senem Kumova Metin

The use of #define

/* Lines starting with # are called preprocessing directives Preprocessor first changes all occurences of identifier PI

to 3.14 */

#include<stdio.h>#define PI 3.14void main(void){ printf(“PI equals : %f\n”,PI);// %f is used for floating numbers}

Page 26: CS115 Introduction to  Programming

Senem Kumova Metin

If Statements

SCENARIO/ MISSION :

you have 2 integers : x,y

if x is greater than 0 then

do x= y+ 1;

else

do x= y-1;

print the value of x

C CODE

void main()

{ int x; int y;

if( x>0)

x=y+1;

else

x=y-1;

printf(“%d”, x); }

Page 27: CS115 Introduction to  Programming

Senem Kumova Metin

if statements

int mymaximum( int a , int b)

{ if(a>b)

return a;

else

return b; }

MISSION :

Write a function called mymaximum that

gets 2 integer values (as input parameters) and returns

back the greater one

Page 28: CS115 Introduction to  Programming

Senem Kumova Metin

Functions and if statements

#include <stdio.h>

int mymaximum(int a, int b); // FUNCTION PROTOTYPE

void main(void){ int max, x, y =7; // DECLARE 3 VARIABLES, INITIALIZE Y

printf("please give the value for x: ");scanf("%d",&x); // GET THE VALUE OF VARIABLE X

max= mymaximum(x,y); // CALL TO THE MYMAXIMUM FUNCTIONprintf("Maximum = %d",max); // PRINT THE OUTPUT}

int mymaximum( int a , int b) // DEFINE SUB-FUNCTION{ if(a>b) return a;

else return b; }