JP SS 3 jezyk C

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

1

Basic Structure of a C Program

output “Hello World!”

Algorithm:

#include <stdio.h>

int main()

{

printf(“Hello World!”);

return 0;

}

C Program:

Example: Hello World

Basic Structure of a C Program (cont)

#include <stdio.h>

int main()

{

printf(“Hello World!”);

return 0;

}

C Program

:

Example: Hello world

Includes

standard

input/output library

of

procedures.

Read: “Hash-include”

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

2

Basic Structure of a C Program

#include <stdio.h>

int main()

{

printf(“Hello World”);

return 0;

}

C Program:

Curly braces mark the

beginning

and

end

of a

block of instructions.

Example: Hello World

Basic Structure of a C Program

#include <stdio.h>

int main()

{

printf(“Hello World”);

return 0;

}

C Program:

Instruction (

function call

)

to output “Hello World”

Example: Hello World

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

3

Basic Structure of a C Program

#include <stdio.h>

int main()

{

printf(“Hello World”)

;

return 0

;

}

C Program:

“Statements” (lines of

instructions) always end

with a

semi-colon

(;)

Example: Hello World

Values and Variables

• Basic Types:

– Integers

– Floating point numbers

– Characters

– Character Strings

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

4

Basic Types: int and float

• Integers (

int

)

0 1 1000 -1 -10 666

• Floating point numbers (

float

)

1.0 .1 1.0e-1 1e1

Basic Types: char

• Characters (

char

)

’a’ ’z’ ’A’ ’Z’ ’?’ ’@’ ’0’ ’9’

- Special Characters: preceded by \

’\n’ ’\t’ ’\0’ ’

\’

’ ’

\\

etc.

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

5

Basic Types: character string

• Character Strings (a string of

char

-s)

• Examples:

”Hi there!”

”Line 1

\n

Line 2

\n

Line 3”

””

\”

\”

Arithmetic Expressions

• take arithmetic (numerical) values and

• return an arithmetic (numerical) value

• Are composed using the following operators:

+

(addition)

-

(subtraction)

*

(multiplication)

/

(division or quotient)

%

(modulus or remainder)

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

6

More on precedence

• *

, /, %

are at the same level of precedence

• +

, - are at the same level of precedence

• For operators at the same “level”, left-to-right

ordering is applied.

2 + 3 – 1 = (2 + 3) – 1 = 4

2 – 3 + 1 = (2 – 3) + 1 = 0

2 * 3 / 4 = (2 * 3) / 4 = 6 / 4

2 / 3 * 4 = (2 / 3) * 4 = 0 / 4

int

-s and float-s

float

is a “communicable” type

• Example:

1 + 2 * 3 -

4.0

/ 5

= 1 + (2 * 3) - (

4.0 / 5

)

= 1 + 6 -

0.8

=

6.2

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

7

Increment and decrement

operators

• ++

is the increment operator

i++;

is equivalent to

i = i + 1;

• --

is the decrement operator

j--;

is equivalent to

j = j - 1;

Function Calls

• Tell the computer to execute a series of C

commands and (maybe) return a value

In algorithm-speak: An invocation of a named

sequence of instructions

• Example: printf, scanf, sqrt

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

8

Example -- Find the square root (cont)

#include <stdio.h>

#include <math.h>

/*

Find square root */

int main()

{

/*

declare variables */

float x,myResult;

/*

output ”Enter a number: " */

printf(“Enter a number\n”);

/*

input x */

scanf(“%f”,&x);

/*

set myResult to result of squareRoot(x) */

myResult=sqrt(x);

/*

output myResult */

printf(“Result is %f\n”,myResult);

return 0;

}

Comments

• Essential for documenting programs

• Run from a

/*

to the next

*/

• Examples:

/*

THIS IS A COMMENT

*/

/*

So is

this

*/

/*

** ...and this.

**

*/

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

9

Comments (cont)

• Comments do not “nest”

/*

Comments start with a “/*”

and end with a “

*/

but they don’t nest! */

Components of a C Program

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

10

Topics

• Type

• Variables

• Keywords and Identifiers

• Assignments

• Constant Variables

Type

• Built-in types:

char

,

int

,

float

• Type

modifiers

:

long

,

short

,

const

• User-defined types (arrays and records)

• What about “strings”?

– Strings are arrays of

char

(discussed later)

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

11

Character Representation

• The ASCII values range from

0

to

127

– value 0: special character

’\0’

(a.k.a. NUL character)

– value 127: special character <DEL>

– other special characters:

’\n’

’\t’

’\’’

’\\’

etc.

– various “extended” sets from 128 to 255

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

12

Variable

• Is a logical

name

for a container

– (an actual piece of computer memory for

values)

• Has a type associated with it

– tells the computer how to interpret the bits

• Must be declared before use:

int i;

float result;

int i=0;

char initial=

K

;

Variable Declaration: Examples

int myID;

myID

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

13

Variable Declaration: Examples

int myID;

char myInitial =

J

;

Single “forward quotes” or

apostrophe (

) rather than

“back quotes” (‘)

Variable Declaration: Examples

float commission = 0.05;

short int myHeight = 183; /* cm */

long int mySalary = 100000000000000000000;

long float chanceOfADate = 3e-500;

double chanceOfA2ndDate = 1.5e-500;

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

14

float

commission = 0.05;

short int

myHeight = 183; /* cm */

long int

mySalary = 100000000000000000000;

long float

chanceOfADate = 3e-500;

double

chance_of_a_2nd_date = 1.5e-500;

Variable Declaration: Examples

Keyword

• ...has a special meaning in C

• ...is “case-sensitive”

• ...cannot be used as variable names

• Examples:

int, char, long, main, float,

double, const, while, for, if,

else, return, break, case,

switch, default, typedef,

struct,

etc. (see D&D 2/e Appendix A or

D&D 3/e page 545, Figure 15.4)

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

15

Identifier

• ...is a series of characters consisting of

letters, digits and underscores (

_

)

• ...cannot begin with a digit

• ...must not be a keyword

• ...is “case-sensitive”

• Examples:

sUmoFA, x1, y2, _my_ID_, Main

(careful!)

Assignment

• Puts a specified value into a specified

variable

• Assignment operator:

=

<variable name> = <expression> ;

not to be

confused

with

==

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

16

Assignment: Examples

float x = 2.5 ;

char ch ;

int

number ;

ch = ’\n’ ;

number = 4 + 5 ;

/* current value of number is 9. */

number = number * 2;

/* current value of number is now 18. */

#include <stdio.h>

/* Do various assignment

statements */

int main()

{

int

integer;

char character;

float floatingPoint;

integer = 33;

character = 33;

floatingPoint = 33;

integer = 'A';

character = 'A';

floatingPoint = 'A';

integer = 33.33;

character = 33.33;

floatingPoint = 33.33;

integer = floatingPoint;

floatingPoint = integer;

return 0;

}

various.c

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

17

Constant Variables

• ...are variables that don’t vary

• ...may not be assigned to.

• ...must be initialized

const float Pi = 3.14159;

const int classSize = 100;

Example: Constants

“Global”

constant variable

“Local” variables

more on this later...

#include <stdio.h>

/* Converts an angle in degrees to

radians. */

const float PI = 3.1415926;

int main()

{

float angleInDegs;

float angleInRads;

printf("Enter angle in degrees: ");

scanf("%f", &angleInDegs);

angleInRads = PI/180*angleInDegs;

printf("%f\n", angleInRads);

return 0;

}

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

18

scanf()

Example:

scanf(“%d”, &x);

printf()

Example:

printf(“The value of x is %d\n”, x);

#include <stdio.h>

Input/Output

Boolean

• A special “type” with only two values:

– false

and

true

.

• Used to implement conditions

– for selection and looping in an algorithm

• Boolean expressions

– represent statements which are either strictly

true or strictly false

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

19

Type int as Boolean

• In C, integers are used as Booleans

• Integer value

0

is

false

.

• Any

non-zero

integer value is

true

.

Functions

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

20

User-Defined Functions

• Create your own functions, similar to

printf()

or

sqrt()

• Recall a procedure in an algorithm - a

named collection of instructions

– InviteToParty

– RingUp

– MakeToParty

• A function implements the procedure or

function parts of an algorithm.

Writing User-defined Functions

• Need to specify:

– the

name

of the function

– its

parameters

– what it

returns

– block

of statements to be carried out when the

function is called

• The block of statements is called the

function body

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

21

Example: hello1.c

Function

definition

Function call

#include <stdio.h>

/*

* Print a simple greeting.

*/

void sayHello ( void )

{

printf(“Hello World!\n”);

}

/*

* Call a function which

* prints a simple greeting.

*/

int main(void)

{

sayHello();

return 0;

}

Example: hello1.c

Function name

Function body

#include <stdio.h>

/*

* Print a simple greeting.

*/

void sayHello ( void )

{

printf(“Hello World!\n”);

}

/*

* Call a function which

* prints a simple greeting.

*/

int main(void)

{

sayHello();

return 0;

}

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

22

Example: hello1.c

Return type

Formal

Parameter List

#include <stdio.h>

/*

* Print a simple greeting.

*/

void sayHello ( void )

{

printf(“Hello World!\n”);

}

/*

* Call a function which

* prints a simple greeting.

*/

int main(void)

{

sayHello();

return 0;

}

Parameters (cont.)

• Parameters are passed by

copying

the value

of the actual parameters to the formal
parameters.

• Changes to formal parameters do not affect

the value of the actual parameters.

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

23

Parameters (cont.)

• If a function does not take parameters,

declare its formal argument list

void

.

void sayHello (

void

)

{

printf(“Hello World!\n”);

}

sayHello();

Function call:

Declaration:

Return Values

• Values are returned by copying a value

specified after the

return

keyword

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

24

/* Returns the larger of two

numbers. */

int

max (int a, int b)

{

int result;

if (a > b)

{

result = a;

}

else

{

result = b;

}

return result;

}

Example: max.c

Return type

Return Values (cont.)

• If a function does not return a value, declare

its return type

void

.

void

sayHello ( void )

{

printf(“Hello World!\n”);

}

sayHello();

Function call:

Declaration:

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

25

Pointers

char ch = ’A’;

’A’

0x2000

ch:

Memory Address of a Variable

The

value

of the

variable ch

The

memory

address

of the

variable ch

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

26

The

&

Operator

• Gives the memory address of an object

• Also known as the “

address operator

&ch

yields the value 0x2000

char ch = ’A’;

’A’

0x2000

conversion specifier

” for

printing a memory address

char ch;

printf(“%p”, &ch);

Example:

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

27

Pointers

ch

0x1FFF

0x2000

0x2001

0x2002

0x1FFE

etc

‘B’

0x2000

chPtr

0x3A15

A variable which can store
the

memory address

of

another variable

Pointers

• A pointer is a

variable

• Contains a

memory address

• Points to a specific

data type

• Pointer variables are usually named

varPtr

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

28

cPtr:

char* cPtr;

Example:

• We say cPtr is a

pointer

to char

0x2004

Can store an

address

of

variables of type

char

Pointers and the

&

Operator

Example:

A

c:

0x2000

char c = ’A’;

char *cPtr;

cPtr:

0x2004

cPtr = &c;

0x2000

Assigns the

address of

c

to

cPtr

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

29

Notes on Pointers

int*

numPtr;

float* xPtr;

Example:

• We can have pointers to any data type

int

*numPtr;

float * xPtr;

Example:

• The

*

can be anywhere between the

type and the variable

Notes on Pointers (cont)

• You can print the address stored in a pointer

using the

%p

conversion specifier

printf(“%p”, numPtr);

Example:

• You can assign the address of a variable to a

compatible

” pointer using the

&

operator

int

aNumber;

int

*numPtr;

numPtr =

&

aNumber;

Example:

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

30

Notes on Pointers (cont)

int

*numPtr;

Beware of pointers

which are not

initialized!

???

numPtr

Notes on Pointers (cont)

int

*numPtr = NULL;

NULL

numPtr

When declaring a pointer, it is a good

idea to always initialize it to

NULL

(a special pointer constant)

background image

CSE1301 Sem 2-2003

Lecture 3: C Primitives 1

31

A

c:

0x2000

B

Pointers and the

Operator

Example:

char c = ’A’;

char *cPtr = NULL;

cPtr = &c;

*cPtr = ’B’;

Changes the value of

the variable which

cPtr

points to

cPtr:

0x2004

NULL

0x2000

Pointers and Function Arguments

• Change the value of an actual parameter

variable

scanf

demystified

char ch;

int

numx;

float numy;

scanf(“%c %d %f”,

&

ch,

&

numx,

&

numy);


Wyszukiwarka

Podobne podstrony:
JP SS 3 jezyk C klasy id 228754 Nieznany
JP SS 3 jezyk C
JP SS 4 start Java
JP SS 10 Interfejs graficzny
JP SS 5 podstawy Java (2)
JP SS 7 Klasy i obiekty
JP SS 6 BlueJ
JP SS 6 Klasy i obiekty
JP SS 7 Typy i operacje
JP SS 8 Instrukcje, pętle
JP SS 4 wprowadzenie Java
JP SS 2 algorytmy i podstawy programowania
JP SS 9 Tablice IO wyjątki
JP SS 5 podstawy Java
JP SS 1 podstawy JP
JP SS 2 algorytmy id 228753 Nieznany
JP SS 5 podstawy Java
JP SS 4 start Java

więcej podobnych podstron