150
Structured C-Structured Other elements Structured programs – Elements of C language Basics of Programming 1 DEPARTMENT OF NETWORKED SYSTEMS AND SERVICES G. Horváth, A.B. Nagy, Z. Zsóka, P. Fiala, A. Vitéz September 16, 2020 © based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 1 / 45

Structured programs Elements of C language - Basics of

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements

Structured programs – Elements of C languageBasics of Programming 1

DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

G. Horváth, A.B. Nagy, Z. Zsóka, P. Fiala, A. Vitéz

September 16, 2020

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 1 / 45

Page 2: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements

Contents DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

1 Structured programmingIntroductionDefinitionElements of structuredprogramsTheorem of structuredprogrammingThe structogram

2 Structured programming in C

SequenceSelection control in CTop-test loopApplication

3 Other structured elementsAnother top-test loopBottom-test loopInteger-value basedselection

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 2 / 45

Page 3: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Chapter 1

Structured programming

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 3 / 45

Page 4: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros of functions

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

n p

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 4 / 45

Page 5: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros of functions

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

n pk

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 4 / 45

Page 6: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros of functions

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

n p

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 4 / 45

Page 7: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros of functions

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

n pk

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 4 / 45

Page 8: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros of functions

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

pn

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 4 / 45

Page 9: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros of functions

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

pn k

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 4 / 45

Page 10: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros of functions

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

n p

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 4 / 45

Page 11: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros of functions

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

n pk

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 4 / 45

Page 12: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros of functions

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

pn

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 4 / 45

Page 13: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros – a different approach

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

n p

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 5 / 45

Page 14: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros – a different approach

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

n pk

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 5 / 45

Page 15: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros – a different approach

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

n p

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 5 / 45

Page 16: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros – a different approach

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

n pk

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 5 / 45

Page 17: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros – a different approach

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

pn

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 5 / 45

Page 18: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros – a different approach

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

pn k

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 5 / 45

Page 19: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros – a different approach

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

n p

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 5 / 45

Page 20: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros – a different approach

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

n pk

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 5 / 45

Page 21: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Algorithms DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros – a different approach

We are searching the zeros of function f (x), a monotonicallyincreasing function, between points n and p, with ε accuracy.

x

f(x)

pn

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 5 / 45

Page 22: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Structured vs unstructured DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Two programs of the same algorithm

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

Structured program

easy to maintaincomplex controlhigher level

Unstructured program

spaghetti-codeeasy control”hardware-level”

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 6 / 45

Page 23: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Structured vs unstructured DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Two programs of the same algorithm

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

Structured program

easy to maintaincomplex controlhigher level

Unstructured program

spaghetti-codeeasy control”hardware-level”

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 6 / 45

Page 24: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Structured vs unstructured DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Two programs of the same algorithm

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

Structured programeasy to maintain

complex controlhigher level

Unstructured programspaghetti-code

easy control”hardware-level”

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 6 / 45

Page 25: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Structured vs unstructured DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Two programs of the same algorithm

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

Structured programeasy to maintaincomplex control

higher level

Unstructured programspaghetti-codeeasy control

”hardware-level”

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 6 / 45

Page 26: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Structured vs unstructured DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Two programs of the same algorithm

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;7 The zero is: n

1 p-n < eps?2 IF TRUE , JUMP TO 103 k ← (n+p) / 24 f(k) < 0?5 IF TRUE , JUMP TO 86 p ← k;7 JUMP TO 18 n ← k;9 JUMP TO 1

10 The zero is: n

Structured programeasy to maintaincomplex controlhigher level

Unstructured programspaghetti-codeeasy control”hardware-level”

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 6 / 45

Page 27: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Structured vs unstructured DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Hardware level languagesLot of simple instructionsEasy control (JUMP; IF TRUE, JUMP)Unstructured layoutThe processor can interpret only this

Higher level languagesRather few, but complex instructionsMore difficult control (WHILE...REPEAT...;IF...THEN...ELSE...)Structured layoutThe processor is unable to interpret it.

The compiler transforms a high level structured program into ahardware level program, that is equivalent to the original one.We create a high level structured program,we use the compiler to translate it,and we execute the hardware level code.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 7 / 45

Page 28: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

All structured programs follow this simple scheme:

START

Operation

STOP

The structure of the program is determined by the innerstructure (layout) of Operation.

Operation can be:Elementary operation (action)SequenceLoop or repetitionSelection

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 8 / 45

Page 29: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Elementary operation

that cannot be further expanded

Operation Elementaryop. Elementary op.

The empty operation (don’t do anything) is also anelementary operation

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 9 / 45

Page 30: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Sequence

Execution of two operations after eachother, in the given order

Operation

Op. 1

Op. 2

Op. 1Op. 2

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 10 / 45

Page 31: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Sequence

Execution of two operations after eachother, in the given order

OperationOp. 1

Op. 2

Op. 1Op. 2

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 10 / 45

Page 32: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Each element of the sequence itself is an operation, so theycan be expanded into a sequence

Op. 1

Op. 2Op. 2a

Op. 2b

Op. 1

The expansion can be continued, so a sequence can be anarbitrary long (finite) series of operations.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 11 / 45

Page 33: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Each element of the sequence itself is an operation, so theycan be expanded into a sequence

Op. 1

Op. 2Op. 2a

Op. 2b

Op. 1

The expansion can be continued, so a sequence can be anarbitrary long (finite) series of operations.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 11 / 45

Page 34: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Condition-based selectionExecution of one of two operations, depending on the logical valueof a condition (true or false)

Operation

Condition

Op.if true

Op.if false

T F IF ConditionOp. if true

ELSEOp. if false

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 12 / 45

Page 35: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Condition-based selectionExecution of one of two operations, depending on the logical valueof a condition (true or false)

OperationCondition

Op.if true

Op.if false

T F IF ConditionOp. if true

ELSEOp. if false

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 12 / 45

Page 36: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

One of the branches can also be empty.

Operation

Condition

Op. if true

T

FIF Condition

Op. if true

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 13 / 45

Page 37: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Top-test loop

Repetition of an operation as long as a condition is true.

Operation

Condition

Body

T

F

WHILE ConditionBody of loop

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 14 / 45

Page 38: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Top-test loop

Repetition of an operation as long as a condition is true.

Operation

Condition

Body

T

F

WHILE ConditionBody of loop

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 14 / 45

Page 39: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

Elements of structured programming DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Theorem of structured programming

By using onlyelementary operation,sequence,selection, andloop

ALL algorithms can be constructed.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 15 / 45

Page 40: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

The structogram DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

The flowcharta tool for describing unstrutured programscan ba translated (compiled) into an unstructured programimmediately (IF TRUE, JUMP)structued elements (esp. loops) are hard to recognize within it

The structograma tool for representing structured programsonly a structured program can be represented by itit is easily translated into a structured program

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 16 / 45

Page 41: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

The structogram DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

The program is a rectangle

Operation

it can be expanded into more rectangles with the elementsbelow

Sequence

Op. 1

Op. 2

Top-test loop

Condition

Body of the loop

Selection

AACondition

��

Op. if true Op. if false

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 17 / 45

Page 42: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

The structogram DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

The program is a rectangle

Operation

it can be expanded into more rectangles with the elementsbelow

Sequence

Op. 1

Op. 2

Top-test loop

Condition

Body of the loop

Selection

AACondition

��

Op. if true Op. if false

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 17 / 45

Page 43: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

The structogram DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

The program is a rectangle

Operation

it can be expanded into more rectangles with the elementsbelow

Sequence

Op. 1

Op. 2

Top-test loop

Condition

Body of the loop

Selection

AACondition

��

Op. if true Op. if false

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 17 / 45

Page 44: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

The structogram DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

The program is a rectangle

Operation

it can be expanded into more rectangles with the elementsbelow

Sequence

Op. 1

Op. 2

Top-test loop

Condition

Body of the loop

Selection

AACondition

��

Op. if true Op. if false

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 17 / 45

Page 45: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

The structogram DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

The program is a rectangle

Operation

it can be expanded into more rectangles with the elementsbelow

Sequence

Op. 1

Op. 2

Top-test loop

Condition

Body of the loop

Selection

AACondition

��

Op. if true Op. if false

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 17 / 45

Page 46: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Introduction Definition Elements Theorem Structogram

The structogram DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Finding zeros – flowchart, structogram, structured pseudo-code

p ← k n ← x

f (k) > 0T F

k ← n+p2

p − n > ε

T

START

STOP

F

p − n > ε

k ← n+p2

AAf(k) > 0

��

p ← k n← k

1 WHILE p-n > eps , repeat2 k ← (n+p) / 23 IF f(k) > 04 p ← k;5 OTHERWISE6 n ← k;

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 18 / 45

Page 47: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Chapter 2

Structured programming in C

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 19 / 45

Page 48: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Sequence in C DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Forming a sequence is listing instructions one after eachother

1 /* football.c -- football fans */2 #include <stdio.h>3 int main()4 {5 printf("Are you"); /* no new line here */6 printf(" blind?\n"); /* here is new line */7 printf("Go Bayern , go!");8 return 0;9 } link

Are you blind?Go Bayern, go!

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 20 / 45

Page 49: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Selection control in C – the if statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s write a program, that decides if the inputted integer numberis small (< 10) or big (≥ 10)!

OUT: info

IN: x

AAx < 10

��

OUT:small OUT: big

Let x be an integerOUT: infoIN: xIF x < 10

OUT: smallOTHERWISE

OUT: big

1 #include <stdio.h>2 int main()3 {4 int x;5 printf("Please enter a number: ");6 scanf("%d", &x);7 if (x < 10)

/* condition */8 printf("small"); /*true branch */9 else

10 printf("big"); /* false branch */11 return 0;12 } link

Please give an integer number: 5small

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 21 / 45

Page 50: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Selection control in C – the if statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s write a program, that decides if the inputted integer numberis small (< 10) or big (≥ 10)!

OUT: info

IN: x

AAx < 10

��

OUT:small OUT: big

Let x be an integerOUT: infoIN: xIF x < 10

OUT: smallOTHERWISE

OUT: big

1 #include <stdio.h>2 int main()3 {4 int x;5 printf("Please enter a number: ");6 scanf("%d", &x);7 if (x < 10)

/* condition */8 printf("small"); /*true branch */9 else

10 printf("big"); /* false branch */11 return 0;12 } link

Please give an integer number: 5small

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 21 / 45

Page 51: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Selection control in C – the if statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s write a program, that decides if the inputted integer numberis small (< 10) or big (≥ 10)!

OUT: info

IN: x

AAx < 10

��

OUT:small OUT: big

Let x be an integerOUT: infoIN: xIF x < 10

OUT: smallOTHERWISE

OUT: big

1 #include <stdio.h>2 int main()3 {4 int x;5 printf("Please enter a number: ");6 scanf("%d", &x);7 if (x < 10)

/* condition */8 printf("small"); /*true branch */9 else

10 printf("big"); /* false branch */11 return 0;12 } link

Please give an integer number: 5small

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 21 / 45

Page 52: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Selection control in C – the if statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s write a program, that decides if the inputted integer numberis small (< 10) or big (≥ 10)!

OUT: info

IN: x

AAx < 10

��

OUT:small OUT: big

Let x be an integerOUT: infoIN: xIF x < 10

OUT: smallOTHERWISE

OUT: big

1 #include <stdio.h>2 int main()3 {4 int x;5 printf("Please enter a number: ");6 scanf("%d", &x);7 if (x < 10)

/* condition */8 printf("small"); /*true branch */9 else

10 printf("big"); /* false branch */11 return 0;12 } link

Please give an integer number: 5small

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 21 / 45

Page 53: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Selection control in C – the if statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s write a program, that decides if the inputted integer numberis small (< 10) or big (≥ 10)!

OUT: info

IN: x

AAx < 10

��

OUT:small OUT: big

Let x be an integerOUT: infoIN: xIF x < 10

OUT: smallOTHERWISE

OUT: big

1 #include <stdio.h>2 int main()3 {4 int x;5 printf("Please enter a number: ");6 scanf("%d", &x);7 if (x < 10)

/* condition */8 printf("small"); /*true branch */9 else

10 printf("big"); /* false branch */11 return 0;12 } link

Please give an integer number: 5small

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 21 / 45

Page 54: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Selection control – the if statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the if statement

if (<condition expression>) <statement if true>[ else <statement if false> ]opt

1 if (x < 10) /* condition */2 printf("small"); /* true branch */3 else4 printf("big"); /* false branch */

1 if (a < 0) /* creating absolute value */2 a = -a;3 /* no false branch */

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 22 / 45

Page 55: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Selection control – the if statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the if statement

if (<condition expression>) <statement if true>[ else <statement if false> ]opt

1 if (x < 10) /* condition */2 printf("small"); /* true branch */3 else4 printf("big"); /* false branch */

1 if (a < 0) /* creating absolute value */2 a = -a;3 /* no false branch */

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 22 / 45

Page 56: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Selection control – the if statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the if statement

if (<condition expression>) <statement if true>[ else <statement if false> ]opt

1 if (x < 10) /* condition */2 printf("small"); /* true branch */3 else4 printf("big"); /* false branch */

1 if (a < 0) /* creating absolute value */2 a = -a;3 /* no false branch */

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 22 / 45

Page 57: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Selection control – the if statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the if statement

if (<condition expression>) <statement if true>[ else <statement if false> ]opt

1 if (x < 10) /* condition */2 printf("small"); /* true branch */3 else4 printf("big"); /* false branch */

1 if (a < 0) /* creating absolute value */2 a = -a;3 /* no false branch */

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 22 / 45

Page 58: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Selection control – the if statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the if statement

if (<condition expression>) <statement if true>[ else <statement if false> ]opt

1 if (x < 10) /* condition */2 printf("small"); /* true branch */3 else4 printf("big"); /* false branch */

1 if (a < 0) /* creating absolute value */2 a = -a;3 /* no false branch */

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 22 / 45

Page 59: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Top-test loop in C – the while statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the square of the integer numbers between 1 and 10!

n← 1

n ≤ 10

OUT: n · n

n← n + 1

Let n be an integern ← 1WHILE n <= 10

OUT: n*nn ← n+1

1 #include <stdio.h>2 int main()3 {4 int n;5 n = 1; /* initialization */6 while (n <= 10) /* condition */7 {8 printf("%d ", n*n);/* printing */9 n = n+1;

/* increment */10 }11 return 0;12 } link

1 4 9 16 25 36 49 64 81 100

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 23 / 45

Page 60: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Top-test loop in C – the while statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the square of the integer numbers between 1 and 10!

n← 1

n ≤ 10

OUT: n · n

n← n + 1

Let n be an integern ← 1WHILE n <= 10

OUT: n*nn ← n+1

1 #include <stdio.h>2 int main()3 {4 int n;5 n = 1; /* initialization */6 while (n <= 10) /* condition */7 {8 printf("%d ", n*n);/* printing */9 n = n+1;

/* increment */10 }11 return 0;12 } link

1 4 9 16 25 36 49 64 81 100

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 23 / 45

Page 61: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Top-test loop in C – the while statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the square of the integer numbers between 1 and 10!

n← 1

n ≤ 10

OUT: n · n

n← n + 1

Let n be an integern ← 1WHILE n <= 10

OUT: n*nn ← n+1

1 #include <stdio.h>2 int main()3 {4 int n;5 n = 1; /* initialization */6 while (n <= 10) /* condition */7 {8 printf("%d ", n*n);/* printing */9 n = n+1;

/* increment */10 }11 return 0;12 } link

1 4 9 16 25 36 49 64 81 100

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 23 / 45

Page 62: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Top-test loop in C – the while statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the square of the integer numbers between 1 and 10!

n← 1

n ≤ 10

OUT: n · n

n← n + 1

Let n be an integern ← 1WHILE n <= 10

OUT: n*nn ← n+1

1 #include <stdio.h>2 int main()3 {4 int n;5 n = 1; /* initialization */6 while (n <= 10) /* condition */7 {8 printf("%d ", n*n);/* printing */9 n = n+1;

/* increment */10 }11 return 0;12 } link

1 4 9 16 25 36 49 64 81 100

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 23 / 45

Page 63: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Top-test loop in C – the while statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the square of the integer numbers between 1 and 10!

n← 1

n ≤ 10

OUT: n · n

n← n + 1

Let n be an integern ← 1WHILE n <= 10

OUT: n*nn ← n+1

1 #include <stdio.h>2 int main()3 {4 int n;5 n = 1; /* initialization */6 while (n <= 10) /* condition */7 {8 printf("%d ", n*n);/* printing */9 n = n+1;

/* increment */10 }11 return 0;12 } link

1 4 9 16 25 36 49 64 81 100

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 23 / 45

Page 64: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Top-testing loop – the while statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the while statement

while (<condition expression>) <instruction>

If <instruction> is a sequence, we enclose it in a {block}:

1 while (n <= 10)2 {3 printf("%d ", n*n);4 n = n+1;5 }

In language C an instruction always can be replaced with ablock.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 24 / 45

Page 65: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Top-testing loop – the while statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the while statement

while (<condition expression>) <instruction>

If <instruction> is a sequence, we enclose it in a {block}:

1 while (n <= 10)2 {3 printf("%d ", n*n);4 n = n+1;5 }

In language C an instruction always can be replaced with ablock.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 24 / 45

Page 66: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Top-testing loop – the while statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the while statement

while (<condition expression>) <instruction>

If <instruction> is a sequence, we enclose it in a {block}:

1 while (n <= 10)2 {3 printf("%d ", n*n);4 n = n+1;5 }

In language C an instruction always can be replaced with ablock.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 24 / 45

Page 67: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Top-testing loop – the while statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the while statement

while (<condition expression>) <instruction>

If <instruction> is a sequence, we enclose it in a {block}:

1 while (n <= 10)2 {3 printf("%d ", n*n);4 n = n+1;5 }

In language C an instruction always can be replaced with ablock.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 24 / 45

Page 68: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

A complex application DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

By using sequence, loop and selection, we can constructeverything!

We know enough to construct the algorithm of finding thezeros in C!

A new element: a type for storing real numbers is calleddouble type (to be learned later)

1 double a; /* the real number */2 a = 2.0; /* assignement of value */3 printf("%f", a); /* printing */

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 25 / 45

Page 69: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

A complex application DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

By using sequence, loop and selection, we can constructeverything!We know enough to construct the algorithm of finding thezeros in C!

A new element: a type for storing real numbers is calleddouble type (to be learned later)

1 double a; /* the real number */2 a = 2.0; /* assignement of value */3 printf("%f", a); /* printing */

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 25 / 45

Page 70: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

A complex application DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

By using sequence, loop and selection, we can constructeverything!We know enough to construct the algorithm of finding thezeros in C!

A new element: a type for storing real numbers is calleddouble type (to be learned later)

1 double a; /* the real number */2 a = 2.0; /* assignement of value */3 printf("%f", a); /* printing */

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 25 / 45

Page 71: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Finding zero of a function DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

We are searching thezeros of functionf (x) = x2 − 2, betweenpoints n = 0 andp = 2, with ε = 0,001accuracy.

n← 0

p ← 2

p − n > ε

k ← n+p2

AAk2 − 2 > 0

��

p ← k n← k

OUT: n

1 #include <stdio.h>2

3 int main()4 {5 double n = 0.0, p = 2.0;6 while (p-n > 0.001)7 {8 double k = (n+p)/2.0;9 if (k*k-2.0 > 0.0)10 p = k;11 else12 n = k;13 }14 printf("The zero is: %f", n);15

16 return 0;17 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 26 / 45

Page 72: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Seq. Sel. Top-test App.

Finding zero of a function DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

We are searching thezeros of functionf (x) = x2 − 2, betweenpoints n = 0 andp = 2, with ε = 0,001accuracy.

n← 0

p ← 2

p − n > ε

k ← n+p2

AAk2 − 2 > 0

��

p ← k n← k

OUT: n

1 #include <stdio.h>2

3 int main()4 {5 double n = 0.0, p = 2.0;6 while (p-n > 0.001)7 {8 double k = (n+p)/2.0;9 if (k*k-2.0 > 0.0)

10 p = k;11 else12 n = k;13 }14 printf("The zero is: %f", n);15

16 return 0;17 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 26 / 45

Page 73: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Chapter 3

Other structured elements

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 27 / 45

Page 74: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

We have seen that the structured elements we had learned sofar are enough for everything.Only for a higher comfort, we introduce new elements, that ofcourse origin from the earlier ones.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 28 / 45

Page 75: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the square of the integer numbers between 1 and 10!

n← 1

n ≤ 10

OUT: n · n

n← n + 1

Let n be an integern ← 1WHILE n <= 10

OUT: n*nn ← n+1

Because the structure ofInitializationsAs long as Condition is TRUE

OperationIncrement

is very common in programming, wesimplify its application with a newstatement.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 29 / 45

Page 76: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the square of the integer numbers between 1 and 10!

n← 1

n ≤ 10

OUT: n · n

n← n + 1

Let n be an integern ← 1WHILE n <= 10

OUT: n*nn ← n+1

Because the structure ofInitializationsAs long as Condition is TRUE

OperationIncrement

is very common in programming, wesimplify its application with a newstatement.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 29 / 45

Page 77: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the square of the integer numbers between 1 and 10!

n← 1

n ≤ 10

OUT: n · n

n← n + 1

Let n be an integern ← 1WHILE n <= 10

OUT: n*nn ← n+1

Because the structure ofInitializationsAs long as Condition is TRUE

OperationIncrement

is very common in programming, wesimplify its application with a newstatement.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 29 / 45

Page 78: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the square of the integer numbers between 1 and 10!

n← 1

n ≤ 10

OUT: n · n

n← n + 1

Let n be integerfrom n=1, WHILE n<=10, one -by -one

OUT: n*n

1 #include <stdio.h>2 int main()3 {4 int n;5 for (n = 1; n <= 10; n = n+1)6 printf("%d ", n*n);7 return 0;8 } link

1 4 9 16 25 36 49 64 81 100

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 30 / 45

Page 79: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 11

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 80: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 11

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 81: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 11

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 82: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 11

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 83: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 11

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 84: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 11

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 85: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 11

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 86: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 11

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 87: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 11

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 88: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 21

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 89: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 21

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 90: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 21 4

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 91: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 31 4

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 92: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 31 4

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 93: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 31 4 9

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 94: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 41 4 9

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 95: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 41 4 9

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 96: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 41 4 9 16

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 97: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 51 4 9 16

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 98: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 51 4 9 16

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 99: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 51 4 9 16 25

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 100: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 61 4 9 16 25

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 101: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 61 4 9 16 25

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 102: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 61 4 9 16 25 36

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 103: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 71 4 9 16 25 36

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 104: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 71 4 9 16 25 36

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 105: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 71 4 9 16 25 36 49

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 106: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 81 4 9 16 25 36 49

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 107: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 81 4 9 16 25 36 49

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 108: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 81 4 9 16 25 36 49 64

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 109: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 91 4 9 16 25 36 49 64

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 110: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 91 4 9 16 25 36 49 64

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 111: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 91 4 9 16 25 36 49 64 81

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 112: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 101 4 9 16 25 36 49 64 81

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 113: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 101 4 9 16 25 36 49 64 81

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 114: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 101 4 9 16 25 36 49 64 81 100

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 115: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 111 4 9 16 25 36 49 64 81 100

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 116: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 111 4 9 16 25 36 49 64 81 100

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 117: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Top-test loop in C – the for statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the for statement

for (<init exp>; <cond exp>; <post-op exp>)<instruction>

1 for (n = 1; n <= 10; n = n+1)2 printf("%d ", n*n);

Post-operation is performed after execution of the instruction.n: 111 4 9 16 25 36 49 64 81 100

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 31 / 45

Page 118: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Multiplication table DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the 10 · 10 multiplication table!

We have to print 10 rows (row = 1, 2, 3, ...10)In every row

we print into 10 columns (col = 1, 2, 3, ...10)In every column

We print the value of row*col

After this we have to start a new line

1 int row;2 for (row = 1; row <= 10; row=row +1)3 {4 int col; /* declaration at beginning of block */5 for (col = 1; col <= 10; col=col +1)6 printf("%4d", row*col); /* printing with size 4 */7 printf("\n"); /* this is not inside the for */8 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 32 / 45

Page 119: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Multiplication table DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the 10 · 10 multiplication table!We have to print 10 rows (row = 1, 2, 3, ...10)

In every rowwe print into 10 columns (col = 1, 2, 3, ...10)In every column

We print the value of row*col

After this we have to start a new line

1 int row;2 for (row = 1; row <= 10; row=row +1)3 {4 int col; /* declaration at beginning of block */5 for (col = 1; col <= 10; col=col +1)6 printf("%4d", row*col); /* printing with size 4 */7 printf("\n"); /* this is not inside the for */8 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 32 / 45

Page 120: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Multiplication table DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the 10 · 10 multiplication table!We have to print 10 rows (row = 1, 2, 3, ...10)In every row

we print into 10 columns (col = 1, 2, 3, ...10)

In every columnWe print the value of row*col

After this we have to start a new line

1 int row;2 for (row = 1; row <= 10; row=row +1)3 {4 int col; /* declaration at beginning of block */5 for (col = 1; col <= 10; col=col +1)6 printf("%4d", row*col); /* printing with size 4 */7 printf("\n"); /* this is not inside the for */8 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 32 / 45

Page 121: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Multiplication table DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the 10 · 10 multiplication table!We have to print 10 rows (row = 1, 2, 3, ...10)In every row

we print into 10 columns (col = 1, 2, 3, ...10)In every column

We print the value of row*col

After this we have to start a new line

1 int row;2 for (row = 1; row <= 10; row=row +1)3 {4 int col; /* declaration at beginning of block */5 for (col = 1; col <= 10; col=col +1)6 printf("%4d", row*col); /* printing with size 4 */7 printf("\n"); /* this is not inside the for */8 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 32 / 45

Page 122: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Multiplication table DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the 10 · 10 multiplication table!We have to print 10 rows (row = 1, 2, 3, ...10)In every row

we print into 10 columns (col = 1, 2, 3, ...10)In every column

We print the value of row*col

After this we have to start a new line

1 int row;2 for (row = 1; row <= 10; row=row +1)3 {4 int col; /* declaration at beginning of block */5 for (col = 1; col <= 10; col=col +1)6 printf("%4d", row*col); /* printing with size 4 */7 printf("\n"); /* this is not inside the for */8 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 32 / 45

Page 123: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Multiplication table DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s print the 10 · 10 multiplication table!We have to print 10 rows (row = 1, 2, 3, ...10)In every row

we print into 10 columns (col = 1, 2, 3, ...10)In every column

We print the value of row*col

After this we have to start a new line

1 int row;2 for (row = 1; row <= 10; row=row +1)3 {4 int col; /* declaration at beginning of block */5 for (col = 1; col <= 10; col=col +1)6 printf("%4d", row*col); /* printing with size 4 */7 printf("\n"); /* this is not inside the for */8 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 32 / 45

Page 124: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Multiplication table DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

It might be advantageous to enclose in a block even one singleinstruction, because it might make the code moreunderstandable!

1 int row;2 for (row = 1; row <= 10; row=row +1)3 {4 int col; /* declaration at beginning of block */5 for (col = 1; col <= 10; col=col +1)6 {7 printf("%4d", row*col); /* printing with size 4 */8 }9 printf("\n");

10 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 33 / 45

Page 125: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Bottom-test loop

Repetition of an operation as long as a condition is true.

Operation

Bodyof loop

Condition

T

F

REPEATBody of loop

WHILE Condition

Body of the loop

Condition

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 34 / 45

Page 126: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Bottom-test loop

Repetition of an operation as long as a condition is true.

Operation

Bodyof loop

Condition

T

F

REPEATBody of loop

WHILE Condition

Body of the loop

Condition

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 34 / 45

Page 127: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

It can be traced back to sequence and a top-test loop

Bodyof loop

Condition

T

FCondition

Body

Bodyof loop

T

F

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 35 / 45

Page 128: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Bottom-test loop – the do statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s read positive integer numbers! We stop if the sum of thenumbers is larger than 10.

sum ← 0

OUT: The next number:

IN: n

sum ← sum+n

sum <= 10

sum ← 0REPEAT

OUT: InfoIN: nsum ← sum+n

WHILE sum ≤ 10

1 #include <stdio.h>2 int main()3 {4 int sum = 0, n;5 do6 {7 printf("The next number: ");8 scanf("%d", &n);9 sum = sum+n;

10 }11 while (sum <= 10);12 return 0;13 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 36 / 45

Page 129: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Bottom-test loop – the do statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s read positive integer numbers! We stop if the sum of thenumbers is larger than 10.

sum ← 0

OUT: The next number:

IN: n

sum ← sum+n

sum <= 10

sum ← 0REPEAT

OUT: InfoIN: nsum ← sum+n

WHILE sum ≤ 10

1 #include <stdio.h>2 int main()3 {4 int sum = 0, n;5 do6 {7 printf("The next number: ");8 scanf("%d", &n);9 sum = sum+n;

10 }11 while (sum <= 10);12 return 0;13 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 36 / 45

Page 130: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Bottom-test loop – the do statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s read positive integer numbers! We stop if the sum of thenumbers is larger than 10.

sum ← 0

OUT: The next number:

IN: n

sum ← sum+n

sum <= 10

sum ← 0REPEAT

OUT: InfoIN: nsum ← sum+n

WHILE sum ≤ 10

1 #include <stdio.h>2 int main()3 {4 int sum = 0, n;5 do6 {7 printf("The next number: ");8 scanf("%d", &n);9 sum = sum+n;

10 }11 while (sum <= 10);12 return 0;13 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 36 / 45

Page 131: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Bottom-test loop – the do statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s read positive integer numbers! We stop if the sum of thenumbers is larger than 10.

sum ← 0

OUT: The next number:

IN: n

sum ← sum+n

sum <= 10

sum ← 0REPEAT

OUT: InfoIN: nsum ← sum+n

WHILE sum ≤ 10

1 #include <stdio.h>2 int main()3 {4 int sum = 0, n;5 do6 {7 printf("The next number: ");8 scanf("%d", &n);9 sum = sum+n;

10 }11 while (sum <= 10);12 return 0;13 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 36 / 45

Page 132: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Bottom-test loop – the do statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the do statement

do <instruction> while (<condition expression>);

1 do2 {3 printf("The next number: ");4 scanf("%d", &n);5 sum = sum+n;6 }7 while (sum <= 10);

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 37 / 45

Page 133: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Bottom-test loop – the do statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the do statement

do <instruction> while (<condition expression>);

1 do2 {3 printf("The next number: ");4 scanf("%d", &n);5 sum = sum+n;6 }7 while (sum <= 10);

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 37 / 45

Page 134: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Bottom-test loop – the do statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the do statement

do <instruction> while (<condition expression>);

1 do2 {3 printf("The next number: ");4 scanf("%d", &n);5 sum = sum+n;6 }7 while (sum <= 10);

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 37 / 45

Page 135: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Bottom-test loop – the do statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the do statement

do <instruction> while (<condition expression>);

1 do2 {3 printf("The next number: ");4 scanf("%d", &n);5 sum = sum+n;6 }7 while (sum <= 10);

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 37 / 45

Page 136: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Integer-value based selection

Execution of operations depending on the value of an integerexpression

Op. if 1 Op. if 2 Op. if 3 Op. if else

1 2 3 ?

check exp.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 38 / 45

Page 137: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Elements of structured programs DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

It can be constructed as nested selections

exp.= 1

Op. if 1 exp.= 2

Op. if 2 exp.= 3

Op. if 3 Op. if else

T F

T F

T T

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 39 / 45

Page 138: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Integer-value based selection – the switch statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s assign (connect) written evaluations to grades given innumbers!

OUT: info

IN: n

n =?

AA1

OUT:failed

AA2

OUT:poor

AA3

OUT:average

AA4

OUT:good

AA5

OUT:perfect

AAother

OUT:something

wrong

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 40 / 45

Page 139: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Integer-value based selection – the switch statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Let’s assign (connect) written evaluations to grades given innumbers!

1 #include <stdio.h>2 int main() {3 int n;4 printf("Please enter the grade: ");5 scanf("%d", &n);6 switch (n)7 {8 case 1: printf("failed"); break;9 case 2: printf("poor"); break;

10 case 3: printf("average"); break;11 case 4: printf("good"); break;12 case 5: printf("perfect"); break;13 default: printf("something wrong");14 }15 return 0;16 } link

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 41 / 45

Page 140: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Integer-value based selection – the switch statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the switch statement

switch(<integer expression>) {case <constant exp1>: <instruction 1>[case <constant exp2>: <instruction 2> ...]opt[default: <default instruction> ]opt

}

1 switch (n)2 {3 case 1: printf("failed"); break;4 case 2: printf("poor"); break;5 case 3: printf("average"); break;6 case 4: printf("good"); break;7 case 5: printf("perfect"); break;8 default: printf("something wrong");9 }

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 42 / 45

Page 141: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Integer-value based selection – the switch statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the switch statement

switch(<integer expression>) {case <constant exp1>: <instruction 1>[case <constant exp2>: <instruction 2> ...]opt[default: <default instruction> ]opt

}

1 switch (n)2 {3 case 1: printf("failed"); break;4 case 2: printf("poor"); break;5 case 3: printf("average"); break;6 case 4: printf("good"); break;7 case 5: printf("perfect"); break;8 default: printf("something wrong");9 }

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 42 / 45

Page 142: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Integer-value based selection – the switch statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the switch statement

switch(<integer expression>) {case <constant exp1>: <instruction 1>[case <constant exp2>: <instruction 2> ...]opt[default: <default instruction> ]opt

}

1 switch (n)2 {3 case 1: printf("failed"); break;4 case 2: printf("poor"); break;5 case 3: printf("average"); break;6 case 4: printf("good"); break;7 case 5: printf("perfect"); break;8 default: printf("something wrong");9 }

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 42 / 45

Page 143: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Integer-value based selection – the switch statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the switch statement

switch(<integer expression>) {case <constant exp1>: <instruction 1>[case <constant exp2>: <instruction 2> ...]opt[default: <default instruction> ]opt

}

1 switch (n)2 {3 case 1: printf("failed"); break;4 case 2: printf("poor"); break;5 case 3: printf("average"); break;6 case 4: printf("good"); break;7 case 5: printf("perfect"); break;8 default: printf("something wrong");9 }

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 42 / 45

Page 144: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Integer-value based selection – the switch statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the switch statement

switch(<integer expression>) {case <constant exp1>: <instruction 1>[case <constant exp2>: <instruction 2> ...]opt[default: <default instruction> ]opt

}

1 switch (n)2 {3 case 1: printf("failed"); break;4 case 2: printf("poor"); break;5 case 3: printf("average"); break;6 case 4: printf("good"); break;7 case 5: printf("perfect"); break;8 default: printf("something wrong");9 }

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 42 / 45

Page 145: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Integer-value based selection – the switch statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the switch statement

switch(<integer expression>) {case <constant exp1>: <instruction 1>[case <constant exp2>: <instruction 2> ...]opt[default: <default instruction> ]opt

}

1 switch (n)2 {3 case 1: printf("failed"); break;4 case 2: printf("poor"); break;5 case 3: printf("average"); break;6 case 4: printf("good"); break;7 case 5: printf("perfect"); break;8 default: printf("something wrong");9 }

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 42 / 45

Page 146: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Integer-value based selection – the switch statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the switch statement

switch(<integer expression>) {case <constant exp1>: <instruction 1>[case <constant exp2>: <instruction 2> ...]opt[default: <default instruction> ]opt

}

1 switch (n)2 {3 case 1: printf("failed"); break;4 case 2: printf("poor"); break;5 case 3: printf("average"); break;6 case 4: printf("good"); break;7 case 5: printf("perfect"); break;8 default: printf("something wrong");9 }

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 42 / 45

Page 147: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Integer-value based selection – the switch statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

Syntax of the switch statement

switch(<integer expression>) {case <constant exp1>: <instruction 1>[case <constant exp2>: <instruction 2> ...]opt[default: <default instruction> ]opt

}

1 switch (n)2 {3 case 1: printf("failed"); break;4 case 2: printf("poor"); break;5 case 3: printf("average"); break;6 case 4: printf("good"); break;7 case 5: printf("perfect"); break;8 default: printf("something wrong");9 }

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 42 / 45

Page 148: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Integer-value based selection – the switch statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

The break instructions are not part of the syntax. If we omitthem, the switch will remain syntactically correct, but it willnot provide the same result as before:

1 switch (n)2 {3 case 1: printf("failed");4 case 2: printf("poor");5 case 3: printf("average");6 case 4: printf("good");7 case 5: printf("perfect");8 default: printf("something wrong");9 } link

Please enter the grade: 2pooraveragegoodperfectsomething wrong

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 43 / 45

Page 149: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Integer-value based selection – the switch statement DEPARTMENT OFNETWORKED SYSTEMSAND SERVICES

The constant expressions are only entry points, and from thispoint on, all instructions are executed until the first break oruntil the enf of the block:

1 switch (n)2 {3 case 1: printf("failed"); break;4 case 2:5 case 3:6 case 4:7 case 5: printf("passed"); break;8 default: printf("something wrong");9 } link

Please enter the grade: 2passed

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 44 / 45

Page 150: Structured programs Elements of C language - Basics of

Structured C-Structured Other elements Top-test Bottom-test Selection

Thank you for your attention.

© based on slides by Zsóka, Fiala, Vitéz Structured – C basics September 16, 2020 45 / 45