Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
1
Ing
en
ieu
rinfo
rma
tik
Ein
füh
run
g in
die
Pro
gra
mm
iersp
rach
e C
2
Da
s Mo
du
l „In
ge
nie
urin
form
atik
“ w
ird in
de
n B
ach
elo
rstud
ien
gä
ng
en
Ma
schin
en
ba
u, Fa
hrze
ug
tech
nik
, Luft-
un
d R
au
mfa
hrt a
ng
eb
ote
n
•Te
il 1: G
run
dla
ge
n d
er P
rog
ram
mie
run
g
−E
infü
hru
ng in
die
Gru
nd
lagen
de
r Pro
gramm
iersp
rache
C−
Um
fang in
sgesam
t: dre
i Sem
este
rwo
che
nstu
nd
en
(3 SW
S),d
avon
2 SW
S sem
inaristisch
er U
nte
rricht („V
orle
sun
g“)u
nd
1 SW
S Re
chn
erü
bu
ng („P
raktikum
“, 6 Te
rmin
e)
−D
ie re
gelm
äßige
Be
arbe
itun
g von
Pro
gramm
ierau
fgabe
n am
eige
ne
n R
ech
ne
r zu H
ause
ist un
be
din
gt no
twe
nd
ig, u
m d
en
Stoff zu
verste
he
n u
nd
die
Prü
fun
g mit E
rfolg zu
be
steh
en
.−
Schriftlich
e (Te
il-)Prü
fun
g (60
Min
ute
n)
•Te
il 2: N
um
erik
für In
ge
nie
ure
−E
infü
hru
ng in
die
Arb
eit m
it MA
TLAB
un
d Sim
ulin
k−
Um
fang in
sgesam
t: zwe
i Sem
este
rwo
che
nstu
nd
en
(2 SW
S),d
avon
1 SW
S sem
inaristisch
er U
nte
rricht („V
orle
sun
g“)u
nd
1 SW
S Re
chn
erü
bu
ng („P
raktikum
“, 6 Te
rmin
e)
−Sch
riftliche
(Teil-)P
rüfu
ng (6
0 M
inu
ten
)
3
Ach
tun
g: A
bh
än
gig
da
vo
n, w
an
n S
ie Ih
r Stu
diu
m b
eg
on
ne
n h
ab
en
,
mü
ssen
Sie
sich e
ntw
ed
er zu
de
n Te
ilprü
fun
ge
n „
Pro
gra
mm
ieru
ng
“ u
nd
„N
um
erik
für In
ge
nie
ure
“ se
pa
rat a
nm
eld
en
(Va
rian
te 1
) od
er fü
r die
Ge
sam
tprü
fun
g „
Ing
en
ieu
rinfo
rma
tik“ (V
aria
nte
2).
Va
rian
te 1
(Teilp
rüfu
ng
en
„P
rog
ram
mie
run
g“ u
nd
„N
um
erik
“):
−Je
de
Teilp
rüfu
ng m
uss m
ind
este
ns m
it de
r No
te 4
.0 b
estan
de
n w
erd
en
.−
Die
Teilp
rüfu
nge
n d
ürfe
n in
un
tersch
ied
liche
n Se
me
stern
gesch
rieb
en
w
erd
en
.−
Die
En
dn
ote
ergib
t sich au
s de
n N
ote
n d
er Te
ilprü
fun
gen
„Pro
gramm
ieru
ng“
un
d „N
um
erik fü
r Inge
nie
ure
“ im V
erh
ältnis 6
0:4
0 ge
wich
tet.
Va
rian
te 2
(Ge
sam
tprü
fun
g „
Ing
en
ieu
rinfo
rma
tik“):
−B
eid
e P
rüfu
ngste
ile m
üsse
n im
selb
en
Sem
este
r gesch
rieb
en
we
rde
n.
−A
us d
en
Pu
nkte
n, d
ie in
„Pro
gramm
ieru
ng“ u
nd
„Nu
me
rik für In
gen
ieu
re“
erre
icht w
urd
en
wird
ein
e G
esam
tpu
nktzah
l erm
ittelt. D
abe
i we
rde
n d
ie
be
ide
n P
rüfu
ngste
ile im
Ve
rhältn
is 60
:40
gew
ichte
t. Die
En
dn
ote
ergib
t sich
aus d
er G
esam
tpu
nktzah
l.−
Es m
uss also
nich
t jed
er P
rüfu
ngste
il sep
arat „be
stand
en
“ we
rde
n.
4
De
r Re
chn
er a
ls We
rkze
ug
Be
ispie
le:
Textverarb
eitu
ng
, CA
D-Syste
me
, Simu
lation
, Date
n-
ban
ken
, Inte
rne
t, FEM
-Be
rech
nu
nge
n, P
roje
ktplan
un
g�
De
r Inge
nie
ur n
utzt In
form
ation
stech
nik
De
r Re
chn
er a
ls Pro
jek
tbe
stan
dte
il
Be
ispie
le:
Au
tom
atisieru
ng vo
n M
aschin
en
un
d A
nlage
n,
Fahrze
uge
lektro
nik, Le
ittech
nik
�D
er In
gen
ieu
r de
finie
rt An
ford
eru
nge
n an
die
In
form
ation
stech
nik („A
uftrag
geb
er“)
De
r Re
chn
er a
ls En
twick
lun
gso
bje
kt
Be
ispie
le:
En
twicklu
ng in
tellige
nte
r Masch
ine
n (z. B
. für d
ieP
rod
uktio
n ab
er au
ch als P
rod
ukte
), En
twicklu
ng vo
n
Me
sstech
nik (z. B
. zur V
ersu
chsau
swe
rtun
g)�
De
r Inge
nie
ur e
ntw
ickelt In
form
ation
stech
nik
Wo
zu In
ge
nie
urin
form
atik
? Ich
stud
iere
do
ch M
asch
ine
nb
au
,
Fah
rzeu
gte
chn
ik o
de
r Luft-
un
d R
au
mfa
hrt!
5
Ein
füh
run
g in
die
Pro
gra
mm
iersp
rach
e C
1.
Ein
leitu
ng
2.
Za
hle
nsy
stem
e, D
arste
llun
g v
on
Info
rma
tion
en
De
zimal-, D
ual-, H
exade
zimalsyste
m, In
tege
r-u
nd
Fließ
kom
mazah
len
3.
Me
in e
rstes C
-Pro
gra
mm
Co
mp
iler u
nd
Linke
r, Be
ispie
le e
infach
er C
-Pro
gramm
e
4.
Ko
ntro
llstruk
ture
n
Be
feh
lsseq
ue
nze
n, V
erzw
eigu
nge
n, Sch
leife
n, Sp
run
ganw
eisu
nge
n
5.
Na
me
n, D
ate
nty
pe
n, O
pe
rato
ren
Nam
en
, Schlü
sselw
örte
r, Date
ntyp
en
, Ko
nstan
ten
, Op
erato
ren
6.
Fu
nk
tion
en
De
klaration
un
d D
efin
ition
von
Fun
ktion
en
, lokale
/glob
ale V
ariable
n
7.
Ve
kto
ren
un
d Z
eich
en
ke
tten
Ve
ktore
n u
nd
Matrize
n, e
infach
e So
rtierve
rfahre
n, Ze
iche
nke
tten
8.
Ad
resse
n u
nd
Ze
ige
r
An
we
nd
un
g von
Zeige
rn u
nd
Zeige
rarithm
etik
6
Leh
rbü
che
r zur P
rog
ram
mie
rspra
che
C
•G
erd
Kü
vele
r, Die
trich Sch
wo
chIn
form
atik
für In
ge
nie
ure
un
d N
atu
rwisse
nsch
aftle
r (Bd
. 1 u
nd
2)
Vie
we
g-Ve
rlag (sieh
e au
ch: w
ww
.sprin
gerlin
k.de
)
•B
rian K
ern
ighan
, De
nn
is Ritch
ieP
rog
ram
mie
ren
in C
Han
ser Fach
bu
ch, 2
. Au
sgabe
, 19
90
•B
ev
or S
ie e
in te
ure
s Bu
ch k
au
fen
:
Ge
me
insam
mit Ih
ne
n le
rne
n M
illion
en
Stud
iere
nd
e ü
be
rall auf
de
r We
lt die
selb
en
Info
rmatik-G
run
dlage
n. Sie
find
en
im In
tern
et
(Go
ogle
, Wikip
ed
ia…) alle
s, was Sie
zum
Lern
en
be
nö
tigen
.Su
che
n Sie
auch
nach
en
glische
n B
egriffe
n!
Sk
ripte
(Fach
scha
ft)
•V
orle
sun
gsfolie
n, alte
Klau
sure
n
7
Ka
pite
l 1
Ein
leitu
ng
8
1. E
inle
itun
g
1. E
inle
itun
g
Wa
s ist Info
rma
tik?
Info
rmatik
ist die
Wisse
nsch
aft v
on
de
r syste
ma
tische
n V
era
r-
be
itun
gv
on
Info
rma
tion
en
, insb
eso
nd
ere
de
r auto
matisch
en
V
erarb
eitu
ng m
it Hilfe
von
Re
che
nan
lagen
. Histo
risch h
at sich d
ie
Info
rmatik als W
issen
scha
ft au
s de
r Ma
the
ma
tik e
ntw
icke
lt, w
ähre
nd
die
En
twicklu
ng d
er e
rsten
Re
che
nan
lagen
ihre
Ursp
rün
ge
in d
er E
lektro
tech
nik u
nd
Nach
richte
nte
chn
ik hat.
De
nn
och
stelle
n C
om
pu
ter n
ur e
in W
erk
zeu
g u
nd
Me
diu
m d
er
Info
rmatik d
ar, um
die
the
ore
tische
n K
on
zep
te p
raktisch u
mzu
-se
tzen
. De
r nie
de
rländ
ische
Info
rmatike
r Edsge
rW
ybe
Dijkstra
form
ulie
rte: „In
de
r Info
rmatik ge
ht e
s gen
auso
we
nig u
m C
om
pu
ter
wie
in d
er A
stron
om
ie u
m Te
lesko
pe
.“
(Qu
elle
: Wikip
ed
ia)
9
1. E
inle
itun
g
1. E
inle
itun
g
1. Te
ilge
bie
t: Th
eo
retisch
e In
form
atik
Form
ale Sp
rache
n u
nd
Au
tom
aten
the
orie
(Eige
nsch
aften
ein
es
abstrakte
n R
ech
ne
rs), Algo
rithm
en
(Sortie
ren
), Be
rech
en
barke
it, K
rypto
graph
ie
2. Te
ilge
bie
t: Tech
nisch
e In
form
atik
Au
fbau
un
d Stru
ktur d
er C
om
pu
terh
ardw
are, R
ech
ne
rarchite
ktur,
Mikro
pro
zesso
ren
, Re
chn
ern
etzw
erke
un
d R
ech
ne
rkom
mu
nikatio
n
3. Te
ilge
bie
t: Pra
ktisch
e In
form
atik
Pro
gramm
iersp
rache
n, Ü
be
rsetze
r (Co
mp
iler), So
ftware
en
gine
erin
g, B
etrie
bssyste
me
, verte
ilte Syste
me
, Date
nb
anke
n
4. Te
ilge
bie
t: An
ge
wa
nd
te In
form
atik
An
we
nd
un
g de
r Info
rmatik in
and
ere
n W
issen
schafte
n,
CA
x(C
om
pu
ter A
ide
d) Syste
me
, z. B. C
AD
(De
sign), C
AE
(En
gine
erin
g),W
irtschaftsin
form
atik, Me
dizin
info
rmatik...
1
Ka
pite
l 2
Zahle
nsyste
me
,D
arstellu
ng vo
n In
form
ation
en
2
Ein
Co
mp
ute
r spe
iche
rt un
d ve
rarbe
itet m
eh
r od
er w
en
iger gro
ße
In
form
ation
sme
nge
n, je
nach
An
we
nd
un
g un
d Le
istun
gsfähigke
it.
Die
Pro
gramm
ieru
ng d
erartige
r Re
chn
er se
tzt Ke
nn
tnisse
üb
er d
ie
Darste
llun
g de
r Info
rmatio
ne
n vo
raus!
2. Za
hle
nsyste
me
, Da
rstellu
ng vo
n In
form
ation
en
2. Zah
len
system
e
Spe
iche
r
Pro
zesso
r
Einga
be
date
n
Pro
gram
me
Au
sgab
ed
aten
3
2. Za
hle
nsyste
me
, Da
rstellu
ng vo
n In
form
ation
en
2. Zah
len
system
e
We
gen
de
r in C
om
pu
tern
verw
en
de
ten
Bau
ele
me
nte
we
rde
n alle
In
form
ation
en
bin
är (du
al) darge
stellt.
Info
rmatio
nse
lem
en
tR
ea
lisieru
ng
Scha
lter
Festp
latte
Spe
iche
r (RA
M)
CD
-RO
M, D
VD
offe
n / ge
schlo
ssen
Ma
gne
tfeld
„ein
“ / „au
s“
Spa
nn
un
g ein
/ au
s
Re
flexion
/ kein
e R
efl.
4
Glie
de
run
g
2. Zah
len
system
e
Ka
pite
l 2 –
Zah
len
system
e
2.1
Da
rstellu
ng p
ositive
r gan
zer Za
hle
n2
.2U
mre
chn
un
g zwisch
en
Zah
len
system
en
2.3
Re
chn
en
im D
ua
lsystem
2.4
Da
rstellu
ng n
egative
r gan
zer Za
hle
n2
.5D
arste
llun
g geb
roch
en
er Za
hle
n2
.6Ü
bu
ngsa
ufga
be
n
5
2.1
. Da
rstellu
ng p
ositive
r gan
zer Za
hle
n
2. Zah
len
system
e
Zahle
n w
erd
en
im täglich
en
Leb
en
im D
ezim
alsyste
md
argeste
llt. D
as gilt erst re
cht fü
r ganze
Zahle
n. D
as De
zimalsyste
m ist e
in
Stelle
nw
ertsyste
m(au
ch „p
olya
disch
es
Zah
len
system
“).
Be
ispie
l:15
32
= 2
·1+
3·1
0+
5·1
00
+ 1
·10
00
= 2
·10
0+
3·1
01
+ 5
·10
2+
1·1
03
2 · 1
00
+3
· 10
1
+5
· 10
2
+1
· 10
3
Basis =
10
6
2.1
. Da
rstellu
ng p
ositive
r gan
zer Za
hle
n
2. Zah
len
system
e
Für d
ie D
arstellu
ng gan
zer Zah
len
in Ste
llen
we
rtsystem
en
giltgan
z allgem
ein
(z. B. im
De
zimalsyste
m m
it de
r Basis b
= 1
0):
X =
a0 ·b
0+
a1 ·b
1+
a2 ·b
2+
… +
an ·b
n
Od
er kü
rzer:
X =
ai ·b
ii =
0, 1
, …
ai∈
{0, 1
, 2, …
, b-1
}
Zur E
rinn
eru
ng:
b0
= 1
Σ
7
2.1
. Da
rstellu
ng p
ositive
r gan
zer Za
hle
n
2. Zah
len
system
e
Im Zu
samm
en
han
g mit D
igitalrech
ne
rn sin
d d
rei Ste
llen
we
rt-syste
me
be
son
de
rs rele
vant:
-D
as D
ezim
alsyste
m-
Da
s Du
alsyste
m (B
inä
rsystem
)-
Da
s Hexa
de
zima
lsystem
Die
Be
de
utu
nge
n d
er e
rsten
be
ide
n Syste
me
liege
n au
f de
r Han
d.
Das H
exad
ezim
alsystem
wird
oft fü
r ein
e ve
rkürzte
Darste
llun
g von
B
inärzah
len
gen
utzt, w
eil sich
jew
eils vie
r be
nach
barte
Bin
ärziffern
zu
ein
er e
inze
lne
n H
exad
ezim
alziffer zu
samm
en
fassen
lassen
.
Mit d
er D
arstellu
ng vo
n B
inär-
un
d H
exad
ezim
alzahle
n m
uss d
er
Pro
gramm
iere
r eb
en
so ve
rtraut se
in, w
ie m
it de
r Um
rech
nu
ng vo
n
Zahle
n zw
ische
n d
iese
n Ste
llen
we
rtsystem
en
.
8
2.1
. Da
rstellu
ng p
ositive
r gan
zer Za
hle
n
2. Zah
len
system
e
Das
Du
alsyste
m (B
inä
rsystem
) be
sitzt folge
nd
e E
igen
schafte
n:
Be
ispie
l: 10
11
2=
1·2
0+
1·2
1+
0·2
2+
1·2
3
= 1
10
+ 2
10
+ 0
10
+ 8
10
= 1
11
0
Basis
2
Me
nge
de
r Ziffern
{0, 1
}
Stelle
nw
erte
Po
ten
zen
von
2
20
21
22
23
24
…1
10
21
04
10
81
01
61
0…
9
2.1
. Da
rstellu
ng p
ositive
r gan
zer Za
hle
n
2. Zah
len
system
e
Da in
nu
r ein
em
Bit ke
ine
sinn
volle
Info
rmatio
nsm
en
ge ge
spe
iche
rt w
erd
en
kann
, arbe
itet m
an m
it Gru
pp
en
von
me
hre
ren
/viele
n B
its:
-E
ine
Gru
pp
e vo
n 8
Bits n
en
nt m
an e
inB
yte-
Ein
e G
rup
pe
von
2 B
ytes n
en
nt m
an e
inW
ort (W
ord
)-
Ein
e G
rup
pe
von
4 B
ytes n
en
nt m
an e
inD
op
pe
lwo
rt (Lon
gwo
rd)
-1
02
4 B
ytes n
en
nt m
an e
inK
ilob
yte (1
KB
, mit gro
ße
m „K
“)-
10
24
Kilo
byte
s ne
nn
t man
ein
Me
gab
yte-
10
24
Me
gabyte
ne
nn
t man
ein
Giga
byte
-1
02
4 G
igabyte
ne
nn
t man
ein
Tera
byte
-1
KB
= 2
10
Byte
s=
1 0
24
Byte
s-
1 M
B=
22
0B
ytes
= 1
04
8 5
76
Byte
s-
1 G
B=
23
0B
ytes
= 1
07
3 7
41
82
4 B
ytes
-1
TB=
24
0B
ytes
= 1
09
9 5
11
62
7 7
76
Byte
s
10
2.1
. Da
rstellu
ng p
ositive
r gan
zer Za
hle
n
2. Zah
len
system
e
Mit 8
Bits (o
de
r ein
em
Byte
), von
de
ne
n je
de
s Bit zw
ei
Zustän
de
(1/0
) ann
eh
me
n kan
n, lasse
n sich
25
6 ve
rschie
-d
en
eK
om
bin
ation
en
bild
en
:
00
00
00
00
00
00
00
01
00
00
00
10
00
00
00
11
00
00
01
00
00
00
01
01
00
00
01
10
⋅⋅⋅
11
11
11
10
11
11
11
11
11
2.1
. Da
rstellu
ng p
ositive
r gan
zer Za
hle
n
2. Zah
len
system
e
Be
ispie
le:
12
2.1
. Da
rstellu
ng p
ositive
r gan
zer Za
hle
n
2. Zah
len
system
e
Das
Hexa
de
zima
lsystem
be
sitzt folge
nd
e E
igen
schafte
n:
Be
ispie
l: AFFE
16
= 1
4·1
60
+ 1
5·1
61
+ 1
5·1
62
+ 1
0·1
63
= 1
41
0+
24
01
0+
38
40
10
+ 4
09
60
10
= 4
50
54
10
Basis
16
Me
nge
de
r Ziffern
{0, 1
, 2, 3
, 4, 5
, 6, 7
, 8, 9
, A, B
, C, D
, E, F}
A b
is F be
sitzen
die
de
zimale
n N
en
nw
erte
zeh
n b
is fün
fzeh
n!
Stelle
nw
erte
Po
ten
zen
von
16
16
01
61
16
21
63
…1
10
16
10
25
61
04
09
61
0…
13
2.1
. Da
rstellu
ng p
ositive
r gan
zer Za
hle
n
2. Zah
len
system
e
Be
ispie
l:
Spe
iche
rbe
legu
ng am
PC
I-Bu
s be
i Inte
l-PC
, 3
2-B
it-Ad
resse
Win
do
ws V
ista:•
Re
chtsklick au
f „Co
mp
ute
r“, •
Eigen
schafte
n,
•G
eräte
-Man
ager,
•Syste
mge
räte,
•P
CI-B
us
00
0D
FFFF1
6=
00
00
00
00
00
00
11
01
11
11
11
11
11
11
11
11
2
14
Glie
de
run
g
2. Zah
len
system
e
Ka
pite
l 2 –
Zah
len
system
e
2.1
Da
rstellu
ng p
ositive
r gan
zer Za
hle
n2
.2U
mre
chn
un
g zwisch
en
Zah
len
system
en
2.3
Re
chn
en
im D
ua
lsystem
2.4
Da
rstellu
ng n
egative
r gan
zer Za
hle
n2
.5D
arste
llun
g geb
roch
en
er Za
hle
n2
.6Ü
bu
ngsa
ufga
be
n
15
2.2
. Um
rech
nu
ng zw
ische
n Za
hle
nsyste
me
n
2. Zah
len
system
e
Zwisch
en
de
n h
ier re
levan
ten
Stelle
nw
ertsyste
me
n D
ezim
al, Bin
är u
nd
He
xade
zimal gib
t es se
chs U
mre
chn
un
gsverfa
hre
n, d
ie au
f de
n
folge
nd
en
Folie
n vo
rgeste
llt we
rde
n:
a)B
inär
�D
ezim
alb
)H
exad
ezim
al �
De
zimal
c)D
ezim
al �
Bin
ärd
)D
ezim
al �
He
xade
zimal
e)
Bin
är �
He
xade
zimal
f)H
exad
ezim
al �
Bin
är
16
2.2
.1. U
mre
chn
un
g Bin
är ��� �
De
zima
l
2. Zah
len
system
e
Me
tho
de
:Su
mm
e d
er Zw
eie
rpo
ten
zen
bild
en
,d
ab
ei a
m b
este
n „vo
n re
chts“ b
egin
ne
n
Be
ispie
l 1:
10
11
12
= 1
·20
+ 1
·21
+ 1
·22
+ 0
·23
+ 1
·24
= 1
+ 2
+ 4
+ 1
6=
23
10
Be
ispie
l 2:
11
00
11
2=
1·2
0+
1·2
1+
0·2
2+
0·2
3+
1·2
4+
1·2
5
= 1
+ 2
+ 1
6 +
32
= 5
11
0
17
2.2
.1. U
mre
chn
un
g Bin
är ��� �
De
zima
l
2. Zah
len
system
e
Hilfsta
be
lle:
Zwe
ierp
ote
nze
n
2n
2 0
48
4 0
96
8 1
92
16
38
43
2 7
68
65
53
61
31
07
22
62
14
41
04
8 5
76
16
77
7 2
16
4 2
94
96
7 2
96
2n1248
16
32
64
12
82
56
51
21
02
4
n012345678910
n11
12
13
14
15
16
17
18
20
24
32
18
2.2
.2. U
mre
chn
un
g Hexa
de
zima
l ��� �D
ezim
al
2. Zah
len
system
e
Me
tho
de
:Su
mm
e d
er Se
chze
hn
erp
ote
nze
n b
ilde
n,
da
be
i am
be
sten
„von
rech
ts“ be
ginn
en
Be
ispie
l 1:
1E
31
6=
3·1
60
+ 1
4·1
61
+ 1
·16
2
= 3
+ 2
24
+ 2
56
= 4
83
10
Be
ispie
l 2:
FFFF1
6=
15
·16
0+
15
·16
1+
15
·16
2+
15
·16
3
= 1
5 +
24
0 +
38
40
+ 6
14
40
= 6
55
35
10
19
2.2
.2. U
mre
chn
un
g Hexa
de
zima
l ��� �D
ezim
al
2. Zah
len
system
e
Hilfsta
be
lle:
Sech
zeh
ne
rpo
ten
zen
16
n11
62
56
4 0
96
65
53
61
04
8 5
76
16
77
7 2
16
26
8 4
35
45
64
29
4 9
67
29
6
n012345678
20
2.2
.3. U
mre
chn
un
g De
zima
l ��� �B
inä
r
2. Zah
len
system
e
Me
tho
de
:Fo
rtgese
tzte D
ivision
du
rch zw
ei
Die
um
zuw
and
eln
de
De
zimalzah
l wird
fortlau
fen
d d
urch
zwe
i divi-
die
rt, bis n
ull e
rreich
t wird
. Die
dab
ei au
ftrete
nd
en
Divisio
nsre
ste–
in u
mge
keh
rter R
eih
en
folge
–e
rgeb
en
die
gesu
chte
Bin
ärzahl.
Be
ispie
l:2
23
: 2=
11
1R
est 1
11
1: 2
= 5
5R
est 1
55
: 2=
27
Re
st 12
7: 2
= 1
3R
est 1
13
: 2=
6R
est 1
6: 2
= 3
Re
st 03
: 2=
1R
est 1
1: 2
= 0
Re
st 1
Die
en
tspre
che
nd
e B
inärzah
l laute
t: 1 1
0 1
1 1
1 1
21
2.2
.4. U
mre
chn
un
g De
zima
l ��� �H
exad
ezim
al
2. Zah
len
system
e
Me
tho
de
:Fo
rtgese
tzte D
ivision
du
rch 1
6
Die
De
zimalzah
l wird
fortlau
fen
d d
urch
16
divid
iert, b
is nu
ll erre
icht
wird
. Die
dab
ei au
ftrete
nd
en
Divisio
nsre
ste –
in u
mge
keh
rter
Re
ihe
nfo
lge –
erge
be
n d
ie ge
such
te H
exad
ezim
alzahl.
Be
ispie
l:4
43
: 16
= 2
7R
est 1
12
7: 1
6=
1R
est 1
11
: 16
= 0
Re
st 1
Die
en
tspre
che
nd
e H
exad
ezim
alzahl lau
tet: 1
B B
Hilfsta
be
lle:
Ziffern
A…
F im H
exad
ezim
alsyste
m
AB
CD
EF
10
11
12
13
14
15
22
2. Zah
len
system
e
2.2
.4. U
mre
chn
un
g De
zima
l ��� �H
exad
ezim
al
n · 1
6
16
32
48
64
80
96
11
21
28
n12345678
Hilfsta
be
lle:
Vie
lfach
e vo
n 1
6
n · 1
6
14
41
60
17
61
92
20
82
24
24
02
56
n910
11
12
13
14
15
16
23
2.2
.5. U
mre
chn
un
g Bin
är��� �
Hexa
de
zima
l
2. Zah
len
system
e
Me
tho
de
:4
er-G
rup
pe
n vo
n B
inä
rzah
len
bild
en
Die
um
zuw
and
eln
de
Bin
ärzahl w
ird vo
n re
chts n
ach lin
ks in 4
er-
Bü
nd
el vo
n B
inärziffe
rn gru
pp
iert. A
nsch
ließ
en
d w
erd
en
die
Bü
nd
el
in d
ie e
ntsp
rech
en
de
n H
exad
ezim
alziffern
um
gew
and
elt.
Be
ispie
l:1
01
01
11
11
11
11
11
0
AF
FE
Hilfsta
be
lle:
4e
r-Bü
nd
el vo
n B
inä
rziffern
un
d H
exad
ezima
lziffern
00
00
00
01
00
10
00
11
01
00
01
01
01
10
01
11
01
23
45
67
10
00
10
01
10
10
10
11
11
00
11
01
11
10
11
11
89
AB
CD
EF
24
2.2
.6. U
mre
chn
un
g Hexa
de
zima
l ��� �B
inä
r
2. Zah
len
system
e
Me
tho
de
:H
exad
ezim
al in
4e
r-Bü
nd
el vo
n B
inä
rziffern
„au
flöse
n“
Die
um
zuw
and
eln
de
He
xade
zimalzah
l wird
Ziffer fü
r Ziffer in
4e
r-B
ün
de
l von
Bin
ärziffern
„aufge
löst“.
Be
ispie
l:3
7A
F
00
11
01
11
10
10
11
11
Füh
ren
de
Nu
llen
zu B
egin
n d
er B
inärzah
l kön
ne
n w
egge
lassen
w
erd
en
:
37
AF
16
= 1
1 0
11
1 1
01
0 1
11
12
25
Glie
de
run
g
2. Zah
len
system
e
Ka
pite
l 2 –
Zah
len
system
e
2.1
Da
rstellu
ng p
ositive
r gan
zer Za
hle
n2
.2U
mre
chn
un
g zwisch
en
Zah
len
system
en
2.3
Re
chn
en
im D
ua
lsystem
2.4
Da
rstellu
ng n
egative
r gan
zer Za
hle
n2
.5D
arste
llun
g geb
roch
en
er Za
hle
n2
.6Ü
bu
ngsa
ufga
be
n
26
2.3
. Re
chn
en
im D
ua
lsystem
2. Zah
len
system
e
Ad
ditio
n im
De
zima
l-u
nd
im B
inä
rsystem
•W
as mu
ss man
wisse
n, u
m e
ine
Ad
ditio
n im
De
zimalsyste
m
du
rfüh
ren
zu kö
nn
en
?
•W
elch
e V
orte
ile b
iete
t das B
inärsyste
m ge
gen
üb
er d
em
D
ezim
alsystem
be
i de
r Du
rchfü
hru
ng vo
n B
ere
chn
un
gen
?
Ad
ditio
n im
De
zimalsyste
m:
1.2
34
.56
7+
2.3
45
.67
8
3.5
80
.24
5 11
11
11
00
01
01
11
00
+ 1
00
1 1
01
1
11
00
11
11
01
11
11
Ad
ditio
n im
Bin
ärsystem
:
Ko
ntro
lle: 3
16
41
0+
15
51
0=
33
19
10�
27
2.3
. Re
chn
en
im D
ua
lsystem
2. Zah
len
system
e
Ad
ditio
nstafe
l für D
ezim
alzahle
n:
Du
alzahle
n:
+0
12
34
56
78
9
00
12
34
56
78
9
12
34
56
78
910
24
56
78
910
11
36
78
910
11
12
48
910
11
12
13
510
11
12
13
14
612
13
14
15
714
15
16
816
17
918
55
Re
geln
!
+0
1
00
1
110
Nu
r 3 R
ege
ln!
28
2.3
. Re
chn
en
im D
ua
lsystem
2. Zah
len
system
e
Üb
erla
uf u
nd
„Ca
rryFla
g“
Be
i de
r Ad
ditio
n kan
n e
s zum
Üb
erla
uf ko
mm
en
, falls für d
as E
rgeb
nis e
in b
egre
nzte
r Spe
iche
rplatz zu
r Ve
rfügu
ng ste
ht!
De
r Pro
zesso
r me
rkt sich d
iese
s Ere
ignis d
urch
Setze
n e
ine
s spe
-zie
llen
Status-B
its („Ca
rryFla
g“). Die
ses B
it kann
im w
eite
ren
Pro
-gram
mve
rlauf ab
gefragt w
erd
en
, falls auf d
en
Üb
erlau
f reagie
rt w
erd
en
mu
ss.
Be
ispie
l:A
dd
ition
von
zwe
i 8-B
it-Zah
len
, für d
as Erge
bn
is steh
t e
be
nfa
lls ein
Spe
iche
rplatz vo
n 8
Bit zu
r Ve
rfügu
ng
10
11
00
10
+1
10
0 1
10
0
(1)
01
11
11
10
Ca
rryFla
g
29
Glie
de
run
g
2. Zah
len
system
e
Ka
pite
l 2 –
Zah
len
system
e
2.1
Da
rstellu
ng p
ositive
r gan
zer Za
hle
n2
.2U
mre
chn
un
g zwisch
en
Zah
len
system
en
2.3
Re
chn
en
im D
ua
lsystem
2.4
Da
rstellu
ng n
egative
r gan
zer Za
hle
n2
.5D
arste
llun
g geb
roch
en
er Za
hle
n2
.6Ü
bu
ngsa
ufga
be
n
30
2.4
. Da
rstellu
ng n
egative
r gan
zer Za
hle
n
2. Zah
len
system
e
Mit d
en
verfü
gbare
n B
its (zum
Be
ispie
l ein
em
Re
gister im
P
roze
ssor) m
üsse
n n
eb
en
de
m B
etra
g de
r Zah
l auch
das
Vo
rzeich
en
abge
spe
iche
rt we
rde
n.
•A
nn
ahm
e: 4
-Bit-R
egiste
r
We
lche
Na
chte
ile b
esitzt d
iese
s Ve
rfah
ren
?
32
10
..
..
Erster A
nsatz:
•B
it 3 ist d
as Vo
rzeich
en
-Bit:
Bit 3
= 0
en
tsprich
t +B
it 3 =
1 e
ntsp
richt –
•B
it 0 -
Bit 2
spe
iche
rn d
en
Be
trag de
r Zahl
•B
eisp
iel:
00
10
10
10
+2-2
31
2.4
. Da
rstellu
ng n
egative
r gan
zer Za
hle
n
2. Zah
len
system
e
Dezim
alzahl
2er-
Komple
ment
Dezim
alzahl
2er-
Komple
ment
0
0 0
0 0
1
0 0
0 1
-
1
1 1
1 1
2
0 0
1 0
-
2
1 1
1 0
3
0 0
1 1
-
3
1 1
0 1
4
0 1
0 0
-
4
1 1
0 0
5
0 1
0 1
-
5
1 0
1 1
6
0 1
1 0
-
6
1 0
1 0
7
0 1
1 1
-
7
1 0
0 1
- 8
1
0 0
0
Darste
llbare
r Zahle
nb
ere
ich b
eim
sog. „2
er-K
om
ple
me
nt“: -8
... +7
Fast alle P
roze
ssore
n ve
rwe
nd
en
die
se D
arstellu
ng –
mit m
eh
r als 4 B
its!
Zwe
iter
An
satz:
32
2.4
. Da
rstellu
ng n
egative
r gan
zer Za
hle
n
2. Zah
len
system
e
Eigen
schafte
n d
er 2
er-K
om
ple
me
ntd
arste
llun
g
a)P
ositive
Zahle
n:
hö
chstw
ertige
s Bit =
0h
ier B
it 3 (typ
isch B
it 7, 1
5...)
Ne
gative Zah
len
:h
öch
stwe
rtiges B
it = 1
b)
Wie
wird
für e
ine
po
sitive Zah
l die
Darste
llun
g de
r zuge
hö
rigen
ne
gativen
Zahl b
ere
chn
et?
An
two
rt: 2e
r-Ko
mp
lem
en
t
1.)
Bild
e b
itwe
ises K
om
ple
me
nt (0
�1
un
d 1�
0) –
„Ein
erko
mp
lem
en
t“
2.)
Ad
die
re an
schlie
ße
nd
1 zu
m E
ine
rkom
ple
me
nt
c)U
mke
hru
ng: W
ie w
ird au
s ein
er n
egative
n Zah
l die
zuge
hö
rige p
ositive
Zah
l be
rech
ne
t?A
ntw
ort: Eb
en
falls mit d
em
2e
r-Ko
mp
lem
en
t!
d)
Be
kann
te R
ech
en
rege
ln au
s de
m D
ualsyste
m b
leib
en
erh
alten
e)
z + (-z) =
0
–Ü
be
rtrag (Carry
Flag) wird
igno
riert
f)Su
btraktio
n w
ird au
f Ad
ditio
n zu
rückge
füh
rt –sie
he
d)
g)M
öglich
e B
ere
ichsü
be
rschre
itun
g be
achte
n!
33
2.4
. Da
rstellu
ng n
egative
r gan
zer Za
hle
n
2. Zah
len
system
e
0000
0001
0010
0011
0100
0110
0111
0101
1111
1110
1100
1001
1000
1011
11011010
Und
erflow
Ove
rflow
+3
-3
Re
gisterlä
nge
4 B
it,Za
hle
nkre
is
34
2.4
. Da
rstellu
ng n
egative
r gan
zer Za
hle
n
2. Zah
len
system
e
Allge
me
in (fü
r ein
e R
egiste
rlän
ge vo
n n
Bit): -2
n-1
…+
2n
-1-
1
n =
16
: -32
76
8…
+3
27
67
n =
32
: -21
47
48
36
48
…+
21
47
48
36
47
n =
64
: -9,2
2*
10
18
...+
9,2
2*
10
18
02
7F
FE
81
Zahle
nbereic
h: -1
28
… +
12
7
80
Re
gisterlä
nge
8 B
it,Za
hle
nkre
is
35
Glie
de
run
g
2. Zah
len
system
e
Ka
pite
l 2 –
Zah
len
system
e
2.1
Da
rstellu
ng p
ositive
r gan
zer Za
hle
n2
.2U
mre
chn
un
g zwisch
en
Zah
len
system
en
2.3
Re
chn
en
im D
ua
lsystem
2.4
Da
rstellu
ng n
egative
r gan
zer Za
hle
n2
.5D
arste
llun
g geb
roch
en
er Za
hle
n2
.6Ü
bu
ngsa
ufga
be
n
36
2.5
. Da
rstellu
ng ge
bro
che
ne
r Zah
len
2. Zah
len
system
e
Zahle
n m
it Nach
kom
maste
llen
we
rde
n in
ein
em
Re
chn
er vö
llig and
ers
darge
stellt als gan
ze Zah
len
un
d au
ch vö
llig and
ers ve
rarbe
itet! D
ie Zah
len
w
erd
en
zue
rst in e
ine
Stand
ardfo
rm (h
alblo
garithm
isch) ge
brach
t:
37
,62
5 =
+0
,37
62
5×
10
2=
s×
m×
Bex
(+1
00
10
1,1
01
)2=
(+1
,00
10
11
01
×2
10
1)2
Im R
egiste
r we
rde
n V
orze
iche
n, M
antisse
un
d Exp
on
en
tab
gesp
eich
ert.
Die
Basis ist ste
ts 2 u
nd
wird
de
shalb
nich
t gesp
eich
ert.
Vo
rzeich
en
: Es ist n
ur e
in B
it no
twe
nd
ig, 0 ↔
po
sitiv un
d 1
↔n
egativ.
Die
verb
leib
en
de
n B
its im R
egiste
r mü
ssen
sich M
antisse
un
d Exp
on
en
tte
ilen
. Ist die
Man
tisse zu
lang, d
ann
wird
sie ab
gesch
nitte
n.
Be
i Zahle
n kle
ine
r als 1 m
öch
te m
an n
egative
Exp
on
en
ten
verm
eid
en
.
(+0
,37
5)1
0=
(+0
,01
1)2
= ( +
1,1
×2
-10)2
De
shalb
add
iert m
an zu
m E
xpo
ne
nte
n ste
ts ein
e fe
ste Zah
l („bias“).
se
7e
6e
5e
4e
3e
2e
1e
0m
1m
2m
3m
4m
21
m2
2m
23
37
2.5
. Da
rstellu
ng ge
bro
che
ne
r Zah
len
2. Zah
len
system
e
(+1
00
10
1,1
01
)2=
(+1
,00
10
11
01
×2
10
1)2
32
Bit:
10
1
Expo
ne
nt 8
Bits
(bias
= 1
27
) +
01
11
11
11
(bias)
un
dM
antisse
23
Bits
10
00
01
00
64
Bit:
Expo
ne
nt 1
1 B
its(b
ias=
10
23
) un
d M
antisse
52
Bits
Ko
nse
qu
en
zen
de
r Gle
itkom
mad
arstellu
ng:
groß
er Zah
len
be
reich
darste
llbar (se
hr kle
ine
/groß
e Zah
len
)
Zahle
n w
erd
en
me
ist nich
t exakt darge
stellt, d
a die
Man
tisse
abge
schn
itten
wird
(be
i 32
Bit w
erd
en
nu
r die
erste
n 7
füh
ren
de
n
De
zimalste
llen
gesp
eich
ert, b
ei 6
4 B
it die
erste
n 1
5) �
Ru
nd
un
gsfeh
ler!
Re
che
no
pe
ration
en
dau
ern
länge
r als Op
eratio
ne
n m
it ganze
n Zah
len
.
se
7e
6e
5e
4e
3e
2e
1e
0m
1m
2m
3m
4m
21
m2
2m
23
01
00
00
10
0…
00
10
11
01
00
++----
38
2.5
. Da
rstellu
ng ge
bro
che
ne
r Zah
len
2. Zah
len
system
e
Be
im P
rogram
mie
ren
wird
du
rch d
en
Typ e
ine
r Variab
len
festge
legt, o
b
ein
e Zah
l als Gle
itkom
mazah
l, als ganze
Zahl m
it VZ o
de
r als ganze
Zahl
oh
ne
VZ ge
spe
iche
rt wird
. Be
ispie
lein
de
rP
rogram
mie
rsprach
e C
:
•G
anze
Zahle
n m
it Vo
rzeich
en
short
n;
16
-Bit
(Be
reich
: -32
76
8 …
+3
27
67
)int
i;
32
-Bit
long
long
j;
64
-Bit
•G
anze
Zahle
n o
hn
e V
orze
iche
nunsigned
short
u;
16
-Bit
(Be
reich
: 0 …
+6
55
35
)
•G
leitko
mm
azahle
nfloat
x;
32
-Bit
(„ein
fache
Ge
nau
igkeit“)
double y;
64
-Bit
(„do
pp
elte
Ge
nau
igkeit“)
Ve
rgleich
bare
Variab
len
type
n gib
t es au
ch in
and
ere
n P
rogram
mie
r-sp
rache
n w
ie Java o
de
r Visu
al Basic.
39
Glie
de
run
g
2. Zah
len
system
e
Ka
pite
l 2 –
Zah
len
system
e
2.1
Da
rstellu
ng p
ositive
r gan
zer Za
hle
n2
.2U
mre
chn
un
g zwisch
en
Zah
len
system
en
2.3
Re
chn
en
im D
ua
lsystem
2.4
Da
rstellu
ng n
egative
r gan
zer Za
hle
n2
.5D
arste
llun
g geb
roch
en
er Za
hle
n2
.6Ü
bu
ngsa
ufga
be
n
40
2.6
. Üb
un
gsau
fgab
en
2. Zah
len
system
e
1.
We
lche
n D
ezim
alzahle
n e
ntsp
rech
en
die
folge
nd
en
vier Zah
len
10
10
11
00
2E
31
6F7
16
38
16
wo
be
i es sich
jew
eils
um
2e
r-Ko
mp
lem
en
tdarste
llun
gen
mit 8
Bit h
an-
de
lt? (E3
16
ist die
Hexd
arstellu
ng
ein
er B
inärzah
l:E
31
6=
11
10
00
11
2 )
2.
Wie
laute
t die
2e
r-Ko
mp
lem
en
tarstellu
ng (d
ual, h
ex) de
r De
zimalzah
-le
n-1
3u
nd
-43
, we
nn
8-
bzw
. 16
-Bit-R
egiste
r verw
en
de
tw
erd
en
?
3.
Ein
e G
leitko
mm
azahl w
ird in
de
r 32
-Bit-D
arstellu
ng ab
gesp
eich
ert. W
ie
groß
ist die
be
tragsmäß
ig größ
te b
zw. kle
inste
Gle
itkom
mazah
l, die
d
argeste
llt we
rde
n kan
n? (A
lle Zah
len
, die
klein
er sin
d, w
erd
en
als0
.0 ge
spe
iche
rt.)
4.
Wie
viele
füh
ren
de
De
zimalste
llen
we
rde
n m
aximal ab
gesp
eich
ert?
Üb
erle
gen
Sie sich
hie
rzu, w
ie d
ie Zah
l 1.0
abge
spe
iche
rt wird
. Wie
lau
tet d
ie kle
inste
Zahl grö
ße
r als 1.0
, die
no
ch ge
spe
iche
rt we
rde
n
kann
? Hie
raus e
rgibt sich
die
An
zahl d
er fü
hre
nd
en
Stelle
n, d
ie m
it3
2 B
it gesp
eich
ert w
erd
en
kön
ne
n.
1
Ka
pite
l 3
„Me
in e
rstes C
-Pro
gra
mm
“
2
Glie
de
run
g
3. „M
ein
erste
s C-P
rog
ram
m“
Ka
pite
l 3 –
„Me
in e
rstes C
-Pro
gra
mm
“
3.1
Ein
leitu
ng
3.2
Me
in e
rstes C
-Pro
gra
mm
3.3
Zu
sam
me
nfa
ssun
g
3
3. „M
ein
erste
s C-P
rog
ram
m“
3. „M
ein
erste
s C-P
rog
ram
m“
Problem
Algorithm
usQ
uell-program
m
Maschinen-
programm
Lösung
•M
ittelwert für M
esswerte berechnen
•DGL lösen und grafisch darstellen
•Bestellung im
Internet•Navigationssystem
Programmiersprache
C, C
++, C
#, J
avaFortran, B
asicÜbersetzen
Com
pilieren
Testen
Ausführen
x=x+17;
y=sqrt(x);
. . .
0110111101011011
0100011101011111
1111010111011011
. . .
4
3. „M
ein
erste
s C-P
rog
ram
m“
3. „M
ein
erste
s C-P
rog
ram
m“
Alg
orith
mu
s,Lö
sun
gsw
eg
:•
Me
tho
de
(Ko
chre
zep
t) zur Lö
sun
g e
ine
s Pro
ble
ms, d
ie e
ind
eu
tigist, a
us
ele
me
nta
r au
sfüh
rba
ren
Sch
ritten
be
steh
t un
d d
ie e
nd
lichist.
•E
ine
Ve
rarb
eitu
ng
svorsch
rift, die
so p
räzise
form
ulie
rt ist, da
ss sie vo
n e
ine
m
me
cha
nisch
od
er e
lektro
nisch
arb
eite
nd
en
Ge
rät a
usg
efü
hrt w
erd
en
kan
n.
(Info
rma
tik-D
ud
en
)
Pro
gra
mm
: •
Ein
e F
olg
e vo
n A
nw
eisu
ng
en
, du
rch d
ie d
ie V
era
rbe
itun
g vo
n D
ate
n in
ein
em
Co
mp
ute
r ge
steu
ert w
ird.
•Fo
rmu
lieru
ng
ein
es A
lgo
rithm
us u
nd
de
r zug
eh
örig
en
Da
ten
.
Pro
gra
mm
iersp
rach
e:
•E
ine
Sp
rach
e zu
r Fo
rmu
lieru
ng
von
Alg
orith
me
n u
nd
Da
ten
struktu
ren
(d. h
. Pro
gra
mm
en
) in e
ine
r für d
en
Co
mp
ute
r ge
eig
ne
ten
Fo
rm (S
chn
itt-
stelle
zwisch
en
Be
nu
tzer u
nd
Co
mp
ute
r).
•E
s mü
ssen
Sy
nta
xu
nd
Se
ma
ntik
ein
er P
rog
ram
mie
rspra
che
ein
de
utig
de
finie
rt sein
, da
mit m
an
prü
fen
kan
n, w
elch
e Z
eich
en
folg
en
als P
rog
ram
m
zug
ela
ssen
sind
(Sy
nta
x) un
d w
as sie
au
f de
m R
ech
ne
r be
wirke
n (S
em
an
tik).
5
20
00
19
95
19
90
19
85
19
80
19
75
19
70
19
65
19
60
C+
+
C
AD
A
BC
PL
ALG
OL6
8
ALG
OL6
0
Pa
scal
CO
BO
L
FO
RT
RA
N
BA
SIC
FO
RT
RA
N7
7
FO
RT
RA
N9
0
Jav
a
C#
Sm
allta
lk
PR
OLO
G
LISP
6
3.1
. Ein
leitu
ng
3. „M
ein
erste
s C-P
rog
ram
m“
Dennis R
itchie(standing) and
Ken T
hompson begin
portingUNIX
tothe
PDP-
11
Dennis R
itchie"E
rfinder" von C(* 9
. Septem
ber 1941 in B
ronxville, N
ew Y
ork
; † a
m 1
2. O
kto
ber 2
011)
7
3.1
. Ein
leitu
ng
3. „M
ein
erste
s C-P
rog
ram
m“
Wa
rum
Pro
gra
mm
ieru
ng
in C
…?
C w
ird in
de
r Pra
xis se
hr h
äu
fig v
erw
en
de
t:
•P
rog
ram
mie
run
g vo
n S
teu
erg
erä
ten
(Em
be
dd
ed
Syste
ms)
zum
Be
ispie
lin
Fah
rzeu
ge
n, H
an
dys, R
ob
ote
rn
•Syste
mp
rog
ram
mie
run
g
C e
rmö
glich
t da
s Erste
llen
seh
r effizie
nte
r Pro
gra
mm
e:
•W
en
ig S
pe
iche
rpla
tzverb
rau
ch
•S
chn
ell –
vie
le A
nw
en
du
ng
en
in S
teu
erg
erä
ten
sind
zeitk
ritisch
C u
nte
rstützt e
ine
Vie
lzah
l vo
n M
ikro
pro
zesso
ren
un
d S
teu
erg
erä
ten
:
•E
s gib
t C-C
om
pile
r für d
ie e
ntsp
rech
en
de
Ha
rdw
are
un
d e
ine
Vie
lzah
l von
Hilfsm
ittel, u
m d
ie P
rog
ram
mie
run
g zu
un
terstü
tzen
, zum
Be
ispie
l:
•P
rog
ram
mb
iblio
the
ken
(fertig
e P
rog
ram
me
für D
GL, M
atrize
n, S
tatistik
, FE
M)
•C
od
eg
en
erie
run
g m
it MA
TLA
Bfü
r versch
ied
en
ste S
teu
erg
erä
te
Be
trieb
ssyste
me
we
rde
n h
äu
fig in
C p
rog
ram
mie
rt, zum
Be
ispie
l Linu
x.
Vie
le E
lem
en
te v
on
C fin
de
n sich
au
ch in
an
de
ren
Pro
gra
mm
iersp
rach
en
,
zum
Be
ispie
l in C
++
, Jav
a, V
isua
l Ba
sic un
d C
#.
8
Glie
de
run
g
3. „M
ein
erste
s C-P
rog
ram
m“
Ka
pite
l 3 –
„Me
in e
rstes C
-Pro
gra
mm
“
3.1
Ein
leitu
ng
3.2
Me
in e
rstes C
-Pro
gra
mm
3.3
Zu
sam
me
nfa
ssun
g
9
3.2
. Me
in e
rstes C
-Pro
gra
mm
3. „M
ein
erste
s C-P
rog
ram
m“
Au
fga
be
:
Sch
reib
e e
in C
-Pro
gra
mm
, da
s die
zwe
i Za
hle
n 3
un
d 4
ad
die
rt
un
d d
as d
as E
rge
bn
is am
Bild
schirm
au
sgib
t.
Zie
l:
•W
elch
e S
chritte
mü
ssen
am
Re
chn
er d
urch
ge
füh
rt we
rde
n, u
m
ein
Pro
gra
mm
zu e
rstelle
n, zu
üb
erse
tzen
un
d a
uszu
füh
ren
?
•W
ie sie
ht d
as P
rog
ram
m fü
r die
ses P
rob
lem
au
s?
•W
ie sie
ht e
in ty
pisch
es C
-Pro
gra
mm
au
s?
•D
an
ach
soll d
as P
rog
ram
m n
och
verb
esse
rt we
rde
n.
10
3. „M
ein
erste
s C-P
rog
ram
m“
3.2
. Me
in e
rstes C
-Pro
gra
mm
Es m
üsse
n 3
Sch
ritte d
urch
ge
füh
rt we
rde
n:
1.
C-Q
ue
lltext m
ittels E
dito
r ein
ge
be
n u
nd
spe
iche
rn(addition.c
).
2.
Da
s Pro
gra
mm
in M
asch
ine
spra
che
üb
erse
tzen
(addition.exe
).
3.
Jetzt ka
nn
da
s Pro
gra
mm
ge
starte
t we
rde
n.
11
3. „M
ein
erste
s C-P
rog
ram
m“
3.2
. Me
in e
rstes C
-Pro
gra
mm
Ein
e P
rog
ram
mie
rum
ge
bu
ng
ist ein
Hilfsm
ittel, u
m P
rog
ram
me
zu e
rstelle
n, zu
verw
alte
n, zu
teste
n u
nd
au
szufü
hre
n.
12
3.2
. Me
in e
rstes C
-Pro
gra
mm
3. „M
ein
erste
s C-P
rog
ram
m“
Be
ka
nn
te P
rog
ram
mie
rum
ge
bu
ng
en
:
Qt C
rea
tor:
•h
ttp://w
ww
.qt.io
•K
oste
nlo
ser D
ow
nlo
ad
im In
tern
et (Lize
nz: G
PL)
•F
ür W
ind
ow
s, Ma
c OS
X u
nd
Linu
x verfü
gb
ar
•W
ird im
Pra
ktiku
m ve
rwe
nd
et, zu
Ha
use
insta
lliere
n!
Micro
soft V
isua
l Stu
dio
:
•K
oste
nlo
se C
om
mu
nity
-Ed
ition
•F
ür M
icroso
ft Win
do
ws ve
rfüg
ba
r
•h
ttps://w
ww
.visu
alstu
dio
.com
/de
/vs/co
mm
un
ity/
C-P
rog
ram
me
, die
mit e
ine
r die
ser P
rog
ram
mie
rum
ge
bu
ng
en
erste
llt
we
rde
n, la
ufe
n a
uch
un
ter a
nd
ere
n U
mg
eb
un
ge
n, w
en
n m
an
sich a
n
die
im IS
O/IE
C 9
89
9-S
tan
da
rd b
esch
rieb
en
en
Re
ge
ln h
ält. In
spe
zielle
n
Um
ge
bu
ng
en
, z. B. P
rog
ram
mie
run
g vo
n S
teu
erg
erä
ten
, steh
en
nich
t
alle
Fu
nktio
ne
n zu
r Ve
rfüg
un
g. B
eisp
iel: B
ildsch
irm-A
usg
ab
eb
efe
hle
…
13
3.2
. Me
in e
rstes C
-Pro
gra
mm
3. „M
ein
erste
s C-P
rog
ram
m“
#include <stdio.h>
intmain(void)
{
intz1,z2,sum;
z1 = 3;
z2 = 4;
/∗∗∗ ∗berechne die Summe
∗∗∗ ∗/
sum= z1 + z2;
printf("Zahl1 %d Zahl2 %d\n",z1,z2);
printf("Summe%d\n",sum);
return0;
}
Varia
ble
nd
efin
ition
z1, z
2 u
nd
su
mh
eiß
en
Varia
ble
n•
Sp
eic
herp
latz
reserv
iere
n•
Date
nty
p fe
stle
gen
(int
-In
teg
er)
Wertz
uw
eis
un
gW
ert in
Sp
eic
herz
elle
sch
reib
en
Arith
metis
ch
er A
usd
ruck
Wert d
er re
ch
ten
Seite
bere
ch
nen
u
nd
dan
n d
er lin
ken
Seite
zu
weis
en
prin
tf: A
usg
ab
e a
m B
ildsch
irm
Inh
alt v
on
" . . . " au
sg
eb
en
%d
: Fo
rmate
lem
en
t -d
ezim
ale
Au
sg
ab
e\n
: Ste
uerz
eic
hen
-n
eu
e Z
eile
beg
inn
en1
4
3.2
. Me
in e
rstes C
-Pro
gra
mm
3. „M
ein
erste
s C-P
rog
ram
m“
addition.c
addition.exe
Befe
hl1
Befe
hl2
Befe
hl3
. . .
. . .
3
47
z1
z2
su
m
2. M
as
ch
ine
nb
efe
hle
na
ch
ein
an
de
r ab
arb
eite
n
1. P
rog
ram
m in
de
n
Ha
up
tsp
eic
he
r lad
en
Va
riab
len
les
en
un
d v
erä
nd
ern
Au
sg
ab
e
Festp
latte
Hau
pts
peic
her
Pro
zesso
r
Ab
lau
f im R
ech
ne
r:
15
3.2
. Me
in e
rstes C
-Pro
gra
mm
3. „M
ein
erste
s C-P
rog
ram
m“
#include <stdio.h> /* k2addit1.c */
intmain (void)
{
intz1, z2, summe;
printf("Erste Zahl eingeben:\n");
scanf("%d",&z1);
printf("Zweite Zahl eingeben:\n");
scanf("%d",&z2);
/∗∗∗ ∗berechne die Summe
∗∗∗ ∗/
summe = z1 + z2;
printf("Zahl1 %d Zahl2 %d\n",z1,z2);
printf("Summe: %d \n",summe);
return 0;
}
scan
fd
as P
rog
ram
m w
arte
t so
lan
ge,
bis
ein
e E
ing
ab
e e
rfolg
t ist,
inte
rpre
tiert d
ie E
ing
ab
e a
ls
gan
ze Z
ah
l ( %d
) un
d s
peic
hert
das E
rgeb
nis
in d
er S
peic
her-
zelle
für z
1 ( &
z1) a
b.
16
3. „M
ein
erste
s C-P
rog
ram
m“
3.2
. Me
in e
rstes C
-Pro
gra
mm
#include <stdio.h> /* k2addit2.c */
intmain(void)
{
floatz1, z2, sum;
printf("Erste Zahl eingeben :\n");
scanf("%f", &z1);
printf("Zweite Zahl eingeben :\n");
scanf("%f", &z2);
sum= z1 + z2;
printf("Zahl1:%f Zahl2:%f\n",z1,z2);
if(sum< 0.0)
{
printf("Ergebnis ist negativ!");
}else
{
printf("Summe: %f \n",sum);
printf("Ergebnis ist positiv!");
}return 0;
}
if-
els
e-
Ko
ntro
llstru
ktu
rw
en
n d
ie B
ed
ing
un
g e
rfüllt
ist, d
an
n n
ur d
en
ers
ten
Teil
au
sfü
hre
n a
nso
nste
n n
ur d
en
zw
eite
n T
eil (A
ltern
ativ
e)
su
m<
0
Bed
ing
un
g –
en
twed
er
wah
r (erfü
llt) od
er fa
lsch
%f
Fo
rmate
lem
en
t für e
ine
Flie
ßko
mm
an
zah
l
float
Sp
eic
herp
latz
für e
ine F
ließ
-ko
mm
azah
l reserv
iere
n
17
Glie
de
run
g
3. „M
ein
erste
s C-P
rog
ram
m“
Ka
pite
l 3 –
„Me
in e
rstes C
-Pro
gra
mm
“
3.1
Ein
leitu
ng
3.2
Me
in e
rstes C
-Pro
gra
mm
3.3
Zu
sam
me
nfa
ssun
g
18
3.3
. Zu
sam
me
nfa
ssun
g
3. „M
ein
erste
s C-P
rog
ram
m“
a)
Stru
ktu
r ein
es e
infa
che
n C
-Pro
gra
mm
s
#in
clu
de
<std
io.h
>P
räp
rozesso
ran
weis
un
g
int
main
(vo
id)
Fu
nktio
nsko
pf
{D
efin
ition
en
....F
un
ktio
nsru
mp
f F
un
ktio
nA
nw
eis
un
gen
....}
Ein
C-P
rog
ram
m b
este
ht m
ind
este
ns
au
s de
r Fu
nktio
n m
ain
(Ha
up
tpro
gra
mm
).
Ein
e F
un
ktio
nb
este
ht a
us:
•F
un
ktio
nsko
pf
–m
ain
ist de
r Na
me
de
r Fu
nktio
n
•F
un
ktio
nsru
mp
f
De
r Fu
nk
tion
srum
pf
be
gin
nt m
it {u
nd
en
de
t mit }
un
d e
nth
ält:
•D
efin
ition
von
Va
riab
len
•A
nw
eisu
ng
en
–zu
m B
eisp
iel a
rithm
etisch
e A
usd
rücke
, We
rtzuw
eisu
ng
en
•K
om
me
nta
re –
be
gin
ne
n m
it /∗∗∗ ∗
un
d e
nd
en
mit ∗∗∗ ∗
/
19
3.3
. Zu
sam
me
nfa
ssun
g
3. „M
ein
erste
s C-P
rog
ram
m“
b)
De
finitio
n v
on
Va
riab
len
int
z;G
an
ze Z
ah
l mit
Vo
rzeich
en
floa
tx
, y;
Flie
ßko
mm
aza
hl
Die
An
we
isun
g
int
z;
de
finie
rt ein
e V
aria
ble
vom
Typ
Inte
ge
r (ga
nze
Za
hl m
it Vo
rzeich
en
).
•B
ei d
er V
aria
ble
nd
efin
ition
wird
ein
Da
ten
typ
wird
festg
ele
gt,
hie
r: Inte
ge
r
•S
pe
iche
rpla
tz wird
rese
rvie
rt, um
de
n W
ert e
ine
r ga
nze
n Z
ah
l spe
iche
rn
zu kö
nn
en
(für e
ine
Inte
ge
r-Va
riab
le ty
pisch
erw
eise
4 B
yte
s)
•z ka
nn
nu
r ga
nze
Za
hle
n sp
eich
ern
, kein
e G
leitko
mm
aza
hle
n
•z ist d
er N
am
e d
er V
aria
ble
n
•D
er V
aria
ble
nn
am
e ist fre
i wä
hlb
ar, m
uss a
be
r ein
de
utig
sein
•In
ha
lt de
r Sp
eich
erze
lle (W
ert) ist u
nte
r de
m N
am
en
z an
spre
chb
ar
z
20
3.3
. Zu
sam
me
nfa
ssun
g
3. „M
ein
erste
s C-P
rog
ram
m“
c)A
nw
eisu
ng
en
z = 1
7;
sum
= z1
+ z2
;
Be
ide
An
we
isun
ge
n sin
d W
ertzu
we
isun
ge
n. D
er O
pe
rato
r =ist d
er
Zu
we
isun
gso
pe
rato
r( =
ist kein
ma
the
ma
tische
s Gle
ichh
eitsze
iche
n !!!).
Be
de
utu
ng
vo
n =
1.
Be
rech
ne
zue
rst de
n W
ert d
er re
chte
n S
eite
2.
We
ise d
an
ach
da
s Erg
eb
nis d
er lin
ken
Se
ite zu
Be
ispie
l:
z = z +
5;
Erk
läru
ng
:
1.
Ho
le d
en
aktu
elle
n W
ert a
us d
er S
pe
iche
rzelle
z
(„ho
le d
en
aktu
elle
nW
ert d
er V
aria
ble
n z“)
2.
Ad
die
re zu
die
sem
We
rt 5 h
inzu
3.
Sp
eich
ere
da
na
ch d
as E
rge
bn
is in d
er S
pe
iche
rzelle
z
De
r alte
We
rt vo
n z w
ird ü
be
rschrie
be
n u
nd
ist da
mit v
erlo
ren
.
21
3.3
. Zu
sam
me
nfa
ssun
g
3. „M
ein
erste
s C-P
rog
ram
m“
d)
Op
era
tore
n
+ -
∗∗∗ ∗/ %
A
rithm
etisch
e O
pe
rato
ren
<>
Re
latio
na
le O
pe
rato
ren
=Z
uw
eisu
ng
sop
era
tor
&A
dre
ssop
era
tor
e)
Sch
lüsse
lwö
rter –
rese
rvie
rte W
örte
r
int
, floa
t, if, e
lsesin
dS
chlü
sselw
örte
rd
er
Sp
rach
eC
. Sch
lüsse
lwö
rter h
ab
en
ein
e sp
ezie
lle B
ed
eu
tun
g in
ein
er P
rog
ram
mie
rspra
che
un
d d
ürfe
n n
icht a
ls
Na
me
n fü
r Va
riab
len
od
er F
un
ktio
ne
n ve
rwe
nd
et w
erd
en
.
f)K
on
trollstru
ktu
r
if( B
ed
ing
un
g )
{/* A
nw
eis
un
gen
, falls
Bed
ing
un
g w
ah
r */}els
e{
/* An
weis
un
gen
,fa
lls B
ed
ing
un
g fa
lsch
*/
}
22
3.3
. Zu
sam
me
nfa
ssun
g
3. „M
ein
erste
s C-P
rog
ram
m“
g)
Ein
-u
nd
Au
sga
be
Au
sga
be
am
Bild
schirm
mit p
rintf:
prin
tf("...");Te
xt " ... " am
Bild
schirm
au
sge
be
n
prin
tf("...%d
...", z);Te
xt " ... " un
d a
ktu
elle
n W
ert vo
n z a
usg
eb
en
Ein
lese
nvo
n d
er Ta
statu
r mit sca
nf:
scan
f("%d
", &z);
Form
atie
run
gsze
iche
n(„P
latzh
alte
r“fü
r Va
riab
len
):
%d
:E
in-/A
usg
ab
e g
an
zer Z
ah
len
in d
er D
ezim
ald
arste
llun
g
%f
:E
in-/A
usg
ab
e vo
n G
leitko
mm
aza
hle
n
Ste
ue
rzeich
en
:
\n:
Ze
ilen
um
bru
ch („b
eg
inn
e e
ine
ne
ue
Ze
ile“)
h)
So
nstig
es
•C
un
tersch
eid
et zw
ische
n G
roß
-u
nd
Kle
insch
reib
un
g
zah
l1≠
ZA
HL1
≠Z
ah
l1(d
rei ve
rschie
de
ne
Na
me
n!)
•S
em
ikolo
n ;
ken
nze
ichn
et d
as E
nd
e vo
n D
efin
ition
en
un
d A
nw
eisu
ng
en
(ein
e n
eu
e Z
eile
alle
ine
be
de
ute
t nich
t da
s En
de
ein
er A
nw
eisu
ng
!)
23
3.3
. Zu
sam
me
nfa
ssun
g
3. „M
ein
erste
s C-P
rog
ram
m“
#include < stdio.h
>
intmain ( void )
{
intz1,
z2, sum
;
z1 = 3 ; z2 = 4 ;
/∗∗∗ ∗berechne die Summe
∗∗∗ ∗/
sum= z1
+ z2 ;
printf("Zahl1:%d Zahl2:%d\n",
z1,
z2 ) ;
printf(
"Summe: %d\n"
, sum) ;
return 0 ;
}
#include <stdio.h>
intmain(void)
{
intz1,z2,sum;
z1 = 3;
z2 = 4;
/∗∗∗ ∗berechne die Summe
∗∗∗ ∗/
sum= z1 + z2;
printf("Zahl1:%d Zahl2:%d\n",
z1,z2);
printf("Summe: %d\n",sum);
return 0;
}
1
Ka
pite
l 4
Struktu
rierte
Pro
gramm
ieru
ng
un
d K
on
trollstru
kture
n
2
Glie
de
run
g
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ka
pite
l 4 –
Struktu
rierte
Pro
gram
mie
run
gu
nd
Ko
ntro
llstruktu
ren
4.1
Struktu
rierte
Pro
gram
mie
run
g 4
.2Fo
lge -
Seq
ue
nz
4.3
Ve
rzwe
igun
g -A
ltern
ative4
.4B
ed
ingu
nge
n u
nd
logisch
e V
erkn
üp
fun
gen
4.5
Wie
de
rho
lun
gen
-Sch
leife
n4
.6M
eh
rfach
au
swa
hl
4.7
Spru
nga
nw
eisu
nge
n4
.8B
eisp
iele
3
Pro
ble
m:
•D
GL u
nd
An
fan
gsw
erte
ge
ge
be
n
•D
ie Lö
sun
g d
er D
GL so
ll gra
fisch d
arg
este
llt we
rde
n.
Pro
ble
m:
•D
GL u
nd
An
fan
gsw
erte
ge
ge
be
n
•D
ie Lö
sun
g d
er D
GL so
ll gra
fisch d
arg
este
llt we
rde
n.
4.1
. Struktu
rierte
Pro
gram
mie
run
g
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
ab
y
x
y0
y0 '
22
2''
yy
xy
y⋅
+⋅
=⋅
+λ
ω
Wie
kom
mt m
an
zu e
ine
r Lösu
ng?
4
4.1
. Struktu
rierte
Pro
gram
mie
run
g
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Lösu
ngsm
eth
od
e:
Struktu
rierte
Pro
gram
mie
run
g
•S
chrittw
eise
Ve
rfein
eru
ng
de
s Pro
ble
ms
•N
ur 3
ein
fach
e K
on
trollstru
ktu
ren
Lösu
ngsm
eth
od
e:
Struktu
rierte
Pro
gram
mie
run
g
•S
chrittw
eise
Ve
rfein
eru
ng
de
s Pro
ble
ms
•N
ur 3
ein
fach
e K
on
trollstru
ktu
ren
Be
i de
r schrittw
eise
n V
erfe
ine
run
g wird
ein
e A
ufg
ab
e so
lan
ge
in
kle
ine
re/e
infa
che
re Te
ilau
fga
be
n ze
rleg
t, bis d
iese
so e
infa
ch sin
d,
da
ss ein
e C
od
ieru
ng
erfo
lge
n ka
nn
.
Be
i de
r gra
fische
n D
arste
llun
g d
iese
r Me
tho
de
du
rch S
trukto
gra
mm
e
wird
jed
e Te
ilau
fga
be
du
rch e
ine
n so
g. S
truktu
rblo
ck d
arg
este
llt. Ein
Stru
ktu
rblo
ck b
esitzt fo
lge
nd
e E
ige
nsch
afte
n:
•E
r erfü
llt ein
e k
lar d
efin
ierte
Au
fga
be
•Je
de
r Stru
ktu
rblo
ck b
esitzt e
ine
n E
ing
an
g (vo
n o
be
n) u
nd
ein
en
Au
sga
ng
(na
ch u
nte
n)
5
4.1
. Struktu
rierte
Pro
gram
mie
run
g
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Die
Re
ihe
nfo
lge
, in d
er d
ie e
inze
lne
n Te
ilau
fga
be
n b
ea
rbe
itet
we
rde
n, w
ird d
urch
Ko
ntro
llstruktu
ren
festg
ele
gt.
Die
Re
ihe
nfo
lge
, in d
er d
ie e
inze
lne
n Te
ilau
fga
be
n b
ea
rbe
itet
we
rde
n, w
ird d
urch
Ko
ntro
llstruktu
ren
festg
ele
gt.
Be
i de
r struktu
rierte
n P
rog
ram
mie
run
g w
erd
en
nu
r dre
i ein
fach
e
Ko
ntro
llstruktu
ren
zug
ela
ssen
:
•Fo
lge(S
eq
ue
nz)
•A
ltern
ative(V
erzw
eig
un
g, A
usw
ah
l od
er S
ele
ktio
n)
•W
ied
erh
olu
ng
(Sch
leife
, Itera
tion
)
Ha
t ma
n e
in P
rob
lem
schrittw
eise
verfe
ine
rt un
d sich
au
f die
dre
i
ge
na
nn
ten
Ko
ntro
llstruktu
ren
be
schrä
nkt, d
an
n ist d
ie C
od
ieru
ng
ein
fach
un
d d
ie e
ntste
he
nd
en
Pro
gra
mm
e sin
d e
rfah
run
gsg
em
äß
gu
t
lesb
ar, w
artu
ng
sfreu
nd
lich, le
icht zu
teste
n u
nd
we
nig
feh
lera
nfä
llig.
Zu
r gra
fische
n D
arste
llun
g d
er M
eth
od
e d
er stru
ktu
rierte
n P
rog
ram
-
mie
run
gw
erd
en
sog
en
an
nte
Nassi-Sh
ne
ide
rman
n-D
iagramm
eo
de
r
Strukto
gramm
e(D
IN 6
62
61
) verw
en
de
t.
6
Glie
de
run
g
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ka
pite
l 4 –
Struktu
rierte
Pro
gram
mie
run
gu
nd
Ko
ntro
llstruktu
ren
4.1
Struktu
rierte
Pro
gram
mie
run
g 4
.2Fo
lge -
Seq
ue
nz
4.3
Ve
rzwe
igun
g -A
ltern
ative4
.4B
ed
ingu
nge
n u
nd
logisch
e V
erkn
üp
fun
gen
4.5
Wie
de
rho
lun
gen
-Sch
leife
n4
.6M
eh
rfach
au
swa
hl
4.7
Spru
nga
nw
eisu
nge
n4
.8B
eisp
iele
7
4.2
. Folge
-Se
qu
en
z
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Pro
ble
m:
Sch
reib
e e
in P
rog
ram
m, d
as zw
ei g
an
ze Z
ah
len
ein
liest. D
as
Pro
gra
mm
soll d
ie S
um
me
de
r ein
ge
ge
be
ne
n Z
ah
len
be
rech
ne
n.
Die
Za
hle
n so
llen
am
Bild
schirm
au
sge
ge
be
n w
erd
en
, eb
en
so d
er
We
rt de
r Su
mm
e.
Ve
rwe
nd
ete
Va
riab
len
:
z1:
erste
ein
ge
lese
ne
Za
hl
z2:
zwe
ite e
ing
ele
sen
e Z
ah
l
sum
:S
um
me
de
r ein
ge
lese
ne
n Z
ah
len
Pro
ble
m:
Sch
reib
e e
in P
rog
ram
m, d
as zw
ei g
an
ze Z
ah
len
ein
liest. D
as
Pro
gra
mm
soll d
ie S
um
me
de
r ein
ge
ge
be
ne
n Z
ah
len
be
rech
ne
n.
Die
Za
hle
n so
llen
am
Bild
schirm
au
sge
ge
be
n w
erd
en
, eb
en
so d
er
We
rt de
r Su
mm
e.
Ve
rwe
nd
ete
Va
riab
len
:
z1:
erste
ein
ge
lese
ne
Za
hl
z2:
zwe
ite e
ing
ele
sen
e Z
ah
l
sum
:S
um
me
de
r ein
ge
lese
ne
n Z
ah
len
8
4.2
. Folge
-Se
qu
en
z
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
#include<stdio.h>
intmain(void)
{
intz1, z2, sum;
printf("Erste Zahl eingeben:\n");
scanf("%d", &z1);
printf("Zweite Zahl eingeben:\n");
scanf("%d", &z2);
/∗∗∗ ∗berechne die Summe
∗∗∗ ∗/
sum= z1 + z2;
printf("Zahl 1: %d Zahl2: %d\n", z1, z2);
printf("Summe: %d \n", sum);
return0;
}
9
Die
Lösu
ng
ein
es Te
ilpro
ble
ms (z. B
. ein
e e
inze
lne
An
we
isun
g)
wird
im S
trukto
gra
mm
du
rche
in R
ech
teck
gra
fisch d
arg
este
llt:
Folge
, Seq
ue
nz:
Be
de
utu
ng:
•D
ie e
inze
lne
nStru
kturb
löcke
(Teilp
rob
lem
e) w
erd
en
na
che
ina
n-
de
r ab
ge
arb
eite
t
•Im
C-P
rog
ram
m: A
nw
eisu
ng
en
we
rde
nn
ach
ein
an
de
r ge
schrie
be
n
4.2
. Folge
-Se
qu
en
z
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Teilp
rob
lem
Teilp
rob
lem
1
Teilp
rob
lem
2
. . . .
10
4.2
. Folge
-Se
qu
en
z
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Zahl z1
ein
lese
n
Zahl z1
ausge
be
n
UN
IX-SH
ELLC
PASC
AL
read
z1scan
f("%d
", &z1
);re
adln
(z1);
ech
o "Zah
l = " $
z1p
rintf("Zah
l=%
d",z1
);w
riteln
('Zahl=
', z1);
Ein Stru
ktogra
mm
kan
nin
be
lieb
ige Sp
rach
en
üb
erse
tzt we
rde
n!
Pro
ble
m:
Es so
ll ein
e Z
ah
l ein
ge
lese
n u
nd
de
r We
rt zur K
on
trolle
wie
de
r
au
sge
ge
be
n w
erd
en
.
Ve
rwe
nd
ete
Variab
le:
z1: e
ing
ele
sen
e Z
ah
l
Strukto
gramm
:
11
4.2
. Folge
-Se
qu
en
z
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Be
i kom
plexe
ren
Pro
ble
me
n:
•E
in S
truktu
rblo
cke
ntsp
richt v
iele
n A
nw
eisu
ng
en
•S
truktu
rblo
ck w
ied
eru
m in
Teilp
rob
lem
e ze
rleg
en
•H
iera
rchie
von
Stru
kto
gra
mm
en
Be
ispie
l:
10
Me
sswe
rte e
inle
sen
un
d so
rtiert w
ied
er a
usg
eb
en
Üb
ersich
ts-Strukto
gram
m (G
rob
struktu
r):
10
Za
hle
n e
inle
sen
–T
P1
Za
hle
n d
er G
röß
e n
ach
sortie
ren
–T
P2
10
Za
hle
n a
usg
eb
en
–T
P3
12
. . . .
. . . .
Ve
rfein
eru
ng
(Fein
struktu
r):
Stru
kto
gra
mm
e fü
r ein
zeln
e Te
ilpro
ble
me
Strukto
gram
m fü
r TP
1:
Ein
lese
alg
orith
mu
s
Strukto
gram
m fü
r TP
2:
So
rtiera
lgo
rithm
us
4.2
. Folge
-Se
qu
en
z
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
. . . .
. . . .
13
Glie
de
run
g
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ka
pite
l 4 –
Struktu
rierte
Pro
gram
mie
run
gu
nd
Ko
ntro
llstruktu
ren
4.1
Struktu
rierte
Pro
gram
mie
run
g 4
.2Fo
lge -
Seq
ue
nz
4.3
Ve
rzwe
igun
g -A
ltern
ative4
.4B
ed
ingu
nge
n u
nd
logisch
e V
erkn
üp
fun
gen
4.5
Wie
de
rho
lun
gen
-Sch
leife
n4
.6M
eh
rfach
au
swa
hl
4.7
Spru
nga
nw
eisu
nge
n4
.8B
eisp
iele
14
4.3
. Ve
rzwe
igun
g -A
ltern
ative
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Pro
ble
m:
Schreibe ein P
rogramm
, das zwei G
leitkomm
azahlen einliest. D
as Program
m soll die S
umm
e der eingegebenen Z
ahlen berechnen. Die Z
ahlen sollen am B
ildschirm
ausgegeben werden, ebenso der W
ert der Sum
me aber
nur, wenn dieser positiv oder null ist. E
s soll eine Meldung
ausgegeben werden, ob das E
rgebnis positiv oder negativ ist. A
m E
nde soll eine Meldung erscheinen, dass das
Program
m beendet w
urde.
Varia
ble
n:
z1, z2 und sum-
Typ float
Pro
ble
m:
Schreibe ein P
rogramm
, das zwei G
leitkomm
azahlen einliest. D
as Program
m soll die S
umm
e der eingegebenen Z
ahlen berechnen. Die Z
ahlen sollen am B
ildschirm
ausgegeben werden, ebenso der W
ert der Sum
me aber
nur, wenn dieser positiv oder null ist. E
s soll eine Meldung
ausgegeben werden, ob das E
rgebnis positiv oder negativ ist. A
m E
nde soll eine Meldung erscheinen, dass das
Program
m beendet w
urde.
Varia
ble
n:
z1, z2 und sum-
Typ float
15
4.3
. Ve
rzwe
igun
g -A
ltern
ative
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
#include <stdio.h>
int
main(void)
{
float
z1, z2, sum;
printf("Erste Zahl eingeben:\n");
scanf("%f", &z1);
printf("Zweite Zahl eingeben:\n");
scanf("%f", &z2);
sum
= z1 + z2;
printf("Zahl1: %f Zahl2: %f\n", z1, z2);
if(sum
< 0.0)
{
printf("Ergebnis ist negativ!");
}else
{
printf("Summe: %f\n", sum);
printf("Ergebnis ist positiv oder null!");
}printf("Ende des Programms");
return
0;
}
16
4.3
. Ve
rzwe
igun
g -A
ltern
ative
3. V
erzw
eig
un
ge
n (if-e
lse-A
nw
eisu
ng
), prin
tfu
nd
scan
f
Be
din
gun
g?Ja
!N
ein
!
Teilp
rob
lem
1
…..
Teilp
rob
lem
2
…..
Ko
ntro
llstruktu
r: ein
fach
e V
erzw
eigu
ng
Be
de
utu
ng:
•Ist d
ie B
ed
ing
un
g e
rfüllt, w
ird Te
ilpro
ble
m1
be
arb
eite
t,
an
de
rnfa
lls Teilp
rob
lem
2
•G
en
au
ein
es d
er b
eid
en
Teilp
rob
lem
e w
ird b
ea
rbe
itet
17
4.3
. Ve
rzwe
igun
g -A
ltern
ative
3. V
erzw
eig
un
ge
n (if-e
lse-A
nw
eisu
ng
), prin
tfu
nd
scan
f
Um
setzu
ng e
ine
r ein
fach
en
Ve
rzwe
igun
g in C
:
if( Bedingung )
Anweisungsblock_1
else
Anweisungsblock_2
Be
din
gun
g•
Die
Be
din
gu
ng
mu
ss so fo
rmu
liert se
in, d
ass sie
en
twe
de
r erfü
llt
(„wa
hr“) o
de
r nich
t erfü
llt („falsch
“) ist
•B
eisp
iele
für B
ed
ing
un
ge
n sin
d: (x >
1), (2
*x <
10
), (x ==
y), (x !=
y)
•A
chtu
ng
: (x = 5
) ist kein
e B
ed
ing
un
g, so
nd
ern
ein
e Z
uw
eisu
ng
!
An
we
isun
gsblo
ck:•
Se
qu
en
z von
An
we
isun
ge
n, e
ing
esch
losse
n vo
n { }
•H
inte
r de
n e
inze
lne
n A
nw
eisu
ng
en
im A
nw
eisu
ng
sblo
ck ste
he
n
Strich
pu
nkte
, nich
t ab
er h
inte
r de
n g
esch
we
iften
Kla
mm
ern
{ }
•E
nth
ält
ein
An
we
isun
gsb
lock
led
iglich
ein
e e
inze
lne
An
we
isun
g,
kön
ne
n d
ie g
esch
we
iften
Kla
mm
ern
{ } en
tfalle
n
18
4.3
. Ve
rzwe
igun
g -A
ltern
ative
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Beis
pie
l 1:
•E
s soll das Maxim
um von zw
ei Zahlen bestim
mt w
erden(V
ariablen: z1, z2 und max)
•Teilaufgabe
A: S
truktogramm
erstellen
•Teilaufgabe B
: C-Q
uelltext erstellen
Beis
pie
l 1:
•E
s soll das Maxim
um von zw
ei Zahlen bestim
mt w
erden(V
ariablen: z1, z2 und max)
•Teilaufgabe
A: S
truktogramm
erstellen
•Teilaufgabe B
: C-Q
uelltext erstellen
Beis
pie
l 2:
•C
-Quelltext
zumS
truktogramm
erstellen
•V
ariablen: z1, z2,cnt1
und cnt2
Beis
pie
l 2:
•C
-Quelltext
zumS
truktogramm
erstellen
•V
ariablen: z1, z2,cnt1
und cnt2
z1 >
z2?
Ja!
Ne
in!
cnt1
um
ein
se
rhö
he
n
cnt1
au
sgeb
en
cnt2
um
ein
se
rhö
he
n
cnt2
au
sgeb
en
19
4.3
. Ve
rzwe
igun
g -A
ltern
ative
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Beis
pie
l 3:
•E
s soll das Maxim
um von drei Z
ahlen bestimm
t werden
(Variablen: z1, z2, z3 und m
ax)
•Teilaufgabe
A: S
truktogramm
erstellen
•Teilaufgabe B
: C-Q
uelltext erstellen
Tip
p:
•S
ie können das Problem
mit „verschachtelten“
if-else-Anw
eisungen lösen:
•F
ragen Sie m
it einer if-else-Anw
eisung zunächst die erste B
edingung ab; falls diese (nicht) erfüllt ist, fragen Sie m
it einer zw
eiten –verschachtelten –
if-else-Anw
eisung die zweite
Bedingung ab.
Beis
pie
l 3:
•E
s soll das Maxim
um von drei Z
ahlen bestimm
t werden
(Variablen: z1, z2, z3 und m
ax)
•Teilaufgabe
A: S
truktogramm
erstellen
•Teilaufgabe B
: C-Q
uelltext erstellen
Tip
p:
•S
ie können das Problem
mit „verschachtelten“
if-else-Anw
eisungen lösen:
•F
ragen Sie m
it einer if-else-Anw
eisung zunächst die erste B
edingung ab; falls diese (nicht) erfüllt ist, fragen Sie m
it einer zw
eiten –verschachtelten –
if-else-Anw
eisung die zweite
Bedingung ab.
20
4.3
. Ve
rzwe
igun
g -A
ltern
ative
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Be
din
gun
g?Ja
!N
ein
!
Teilp
rob
lem
1
Ko
ntro
llstruktu
r: be
din
gte A
nw
eisu
ng
Be
de
utu
ng:
•Ist d
ie B
ed
ing
un
g e
rfüllt, w
ird Te
ilpro
ble
m1
be
arb
eite
t
•A
nd
ern
falls e
rfolg
t „kein
e A
nw
eisu
ng
“ (lee
re A
nw
eisu
ng
)
•E
ntsp
richt e
ine
r if-An
we
isun
g o
hn
e „e
lse“
21
Um
setzu
ng e
ine
r be
din
gten
An
we
isun
g in C
:
if
( Bedingung )
Anweisungsblock
Be
ispie
l:
Um
setzu
ng n
ach
C:
if ( x > y )
{
x = x + 1;
y = y -1;
}printf("x = %d", x);
4.3
. Ve
rzwe
igun
g -A
ltern
ative
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
fallsx >
y ?
ja n
ein
erh
öh
e x u
m 1
ern
ied
rige y u
m 1
Au
sgabe
von
x
22
4.3
. Ve
rzwe
igun
g -A
ltern
ative
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Beis
pie
l 4 („
Bo
dy M
ass
Ind
ex“):
•N
ach Eingabe von K
örpergröße l (in M
etern) und Kör-
permasse
m (in K
ilogramm
) soll der „Body M
assIndex“
berechnet und ausgegeben werden: bm
i= m
/ l 2
•Z
usätzlich soll ermitteltw
erden, in welche der folgenden
vier Kategorien der berechnete B
MI fällt:
BM
I≤ 19 �
Untergew
icht, ansonsten:B
MI≤ 25 �
Norm
algewicht, ansonsten:
BM
I≤ 30 �
leichtes Übergew
icht, ansonsten:B
MI >
30 �Ü
bergewicht.
•E
rstellen Sie zunächst ein S
truktogramm
und dann den C
-Quelltext des P
rogramm
s!
Beis
pie
l 4 („
Bo
dy M
ass
Ind
ex“):
•N
ach Eingabe von K
örpergröße l (in M
etern) und Kör-
permasse
m (in K
ilogramm
) soll der „Body M
assIndex“
berechnet und ausgegeben werden: bm
i= m
/ l 2
•Z
usätzlich soll ermitteltw
erden, in welche der folgenden
vier Kategorien der berechnete B
MI fällt:
BM
I≤ 19 �
Untergew
icht, ansonsten:B
MI≤ 25 �
Norm
algewicht, ansonsten:
BM
I≤ 30 �
leichtes Übergew
icht, ansonsten:B
MI >
30 �Ü
bergewicht.
•E
rstellen Sie zunächst ein S
truktogramm
und dann den C
-Quelltext des P
rogramm
s!
23
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
4.3
. Ve
rzwe
igun
g -A
ltern
ative#include <stdio.h> /* Beispiel
4a: BODY MASS INDEX */
int
main(void)
{
float
l, m, bmi;
printf("Groesse
in Metern: "); scanf("%f", &l);
printf("Koerpermasse
in kg: "); scanf("%f", &m);
bmi
= m / (l*l);
printf("BMI: %f\n", bmi);
if(bmi
<= 19)
{
printf("Untergewicht\n");
}else
{
if(bmi
<= 25)
{
printf("Normalgewicht\n");
}else
{
if(bmi
<= 30)
printf("Leichtes Uebergewicht\n");
else
printf("Uebergewicht\n");
}
}return
0;
}
24
4.3
. Ve
rzwe
igun
g -A
ltern
ative
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ge
scha
chte
lte if-e
lse-A
nw
eisu
ng
en
sind
oft u
nü
be
rsichtlich
, we
nn
vie
le
Be
din
gu
ng
en
/Fälle
üb
erp
rüft w
erd
en
mü
ssen
–A
usw
eg: M
eh
rfachalte
rnative
if( Bedingung_1 )
Anweisungsblock_1
elseif
( Bedingung_2 )
Anweisungsblock_2
elseif. . . .
else if ( Bedingung_n)
Anweisungsblock_n
else
Anweisungsblock_x
Be
de
utu
ng :
•B
ed
ing
un
ge
n w
erd
en
na
che
ina
nd
er g
ep
rüft
•D
ieje
nig
e A
nw
eisu
ng
, be
i de
r die
Be
din
gu
ng
erstm
als erfü
lltist, w
ird
au
sge
füh
rt –a
lle a
nd
ere
n n
icht
•Ist ke
ine
Be
din
gu
ng
erfü
llt, wird
die
An
we
isun
g n
ach
letzte
m e
lsea
usg
efü
hrt
•Le
tztes e
lseka
nn
ab
er a
uch
en
tfalle
n –
en
tsprich
t de
r lee
ren
An
we
isun
g
25
4.3
. Ve
rzwe
igun
g -A
ltern
ative
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
#include <stdio.h> /* Beispiel
4b: BODY MASS INDEX */
int
main(void)
{
float
l, m, bmi;
printf("Groesse
in Metern: "); scanf("%f", &l);
printf("Koerpermasse
in kg: "); scanf("%f", &m);
bmi
= m / (l*l);
printf("BMI: %f\n", bmi);
if(bmi
<= 19)
printf("Untergewicht\n");
else
if(bmi
<= 25)
printf("Normalgewicht\n");
else
if(bmi
<= 30)
printf("Leichtes Uebergewicht\n");
else
printf("Uebergewicht\n");
return
0;
}
26
Glie
de
run
g
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ka
pite
l 4 –
Struktu
rierte
Pro
gram
mie
run
gu
nd
Ko
ntro
llstruktu
ren
4.1
Struktu
rierte
Pro
gram
mie
run
g 4
.2Fo
lge -
Seq
ue
nz
4.3
Ve
rzwe
igun
g -A
ltern
ative4
.4B
ed
ingu
nge
n u
nd
logisch
e V
erkn
üp
fun
gen
4.5
Wie
de
rho
lun
gen
-Sch
leife
n4
.6M
eh
rfach
au
swa
hl
4.7
Spru
nga
nw
eisu
nge
n4
.8B
eisp
iele
27
4.4
. Be
din
gun
gen
un
d lo
gische
Ve
rknü
pfu
nge
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Fu
nktio
nO
pera
tore
n
arith
metis
ch
+ -
∗∗∗ ∗/ %
++
--
rela
tion
al
> >= < <= == !=
log
isch
&&
&&
&&
&&
|| !
bito
rien
tiert
&&& &|
∧∧∧ ∧∼∼∼ ∼
<< >>
zeig
ero
rien
tiert
&&& &∗∗∗ ∗
->
zu
weis
en
d= += -=
∗∗∗ ∗= /= %=
&&& &=
∧∧∧ ∧= |= <<= >>=
so
nstig
e,
( typ
e )
( )[ ]
siz
eo
f?:
.
Op
erato
ren
na
ch Fu
nktio
ne
n ge
ord
ne
t:
Be
din
gu
ng
en
(zum
Be
ispie
l in if-e
lse-A
nw
eisu
ng
en
) we
rde
n m
it
relatio
na
len
Op
erato
ren
ge
bild
et u
nd
mit lo
gische
n O
pe
ratore
n
verk
nü
pft.
28
4.4
. Be
din
gun
gen
un
d lo
gische
Ve
rknü
pfu
nge
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Be
ispie
le fü
r Ve
rknü
pfu
nge
n vo
n lo
gische
n B
ed
ingu
nge
n:
1.M
axim
um
von
3 Z
ah
len
z1, z2
un
d z3
be
stimm
en
un
d d
er V
aria
ble
n
ma
xzu
we
isen
.
2.B
ere
ichsp
rüfu
ng
: Lieg
t z im B
ere
ich1
00
0 ≤
z ≤ 2
00
0?
3.B
ere
ichsp
rüfu
ng
: Lieg
t z imB
ere
ich 1
<z <
9 u
nd
ist zug
leich
z ≠ 5
?
4.B
od
y M
ass
Ind
ex: Ist 1
9 ≤
BM
I < 2
5 (N
orm
alg
ew
icht)?
5.F
ind
en
Sie
ein
e e
infa
che
reD
arste
llun
g fü
r: „if( !(z1
<=
z2) )“
Be
ispie
le fü
r Ve
rknü
pfu
nge
n vo
n lo
gische
n B
ed
ingu
nge
n:
1.M
axim
um
von
3 Z
ah
len
z1, z2
un
d z3
be
stimm
en
un
d d
er V
aria
ble
n
ma
xzu
we
isen
.
2.B
ere
ichsp
rüfu
ng
: Lieg
t z im B
ere
ich1
00
0 ≤
z ≤ 2
00
0?
3.B
ere
ichsp
rüfu
ng
: Lieg
t z imB
ere
ich 1
<z <
9 u
nd
ist zug
leich
z ≠ 5
?
4.B
od
y M
ass
Ind
ex: Ist 1
9 ≤
BM
I < 2
5 (N
orm
alg
ew
icht)?
5.F
ind
en
Sie
ein
e e
infa
che
reD
arste
llun
g fü
r: „if( !(z1
<=
z2) )“
29
Glie
de
run
g
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ka
pite
l 4 –
Struktu
rierte
Pro
gram
mie
run
gu
nd
Ko
ntro
llstruktu
ren
4.1
Struktu
rierte
Pro
gram
mie
run
g 4
.2Fo
lge -
Seq
ue
nz
4.3
Ve
rzwe
igun
g -A
ltern
ative4
.4B
ed
ingu
nge
n u
nd
logisch
e V
erkn
üp
fun
gen
4.5
Wie
de
rho
lun
gen
-Sch
leife
n4
.6M
eh
rfach
au
swa
hl
4.7
Spru
nga
nw
eisu
nge
n4
.8B
eisp
iele
30
4.5
. Wie
de
rho
lun
gen
-Sch
leife
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Pro
ble
m:
Es
soll d
ie S
um
me
de
r Qu
ad
rate
von
1 b
is n b
ere
chn
et w
erd
en
.
(Da
zu e
xistiert zw
ar a
uch
ein
e g
esch
losse
ne
Form
el, d
iese
soll
alle
rdin
gs n
icht b
en
utzt w
erd
en
!)
Be
rech
ne
:
Pro
ble
m:
Es
soll d
ie S
um
me
de
r Qu
ad
rate
von
1 b
is n b
ere
chn
et w
erd
en
.
(Da
zu e
xistiert zw
ar a
uch
ein
e g
esch
losse
ne
Form
el, d
iese
soll
alle
rdin
gs n
icht b
en
utzt w
erd
en
!)
Be
rech
ne
:
∑=
=+
++
+=
n
1i
22
22
2i
n3
21
su
mK
De
r Re
chn
er ke
nn
t alle
rdin
gs w
ed
er e
in S
um
me
nsy
mb
ol, n
och
ein
„…“. M
an
mu
ss de
m R
ech
ne
r da
he
r ge
na
u vo
rschre
ibe
n, w
as
er b
ere
chn
en
soll –
jed
en
ein
zeln
en
Sch
ritt!
31
4.5
. Wie
de
rho
lun
gen
-Sch
leife
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Algo
rithm
us:
•V
aria
ble
sum
au
f 0 se
tzen
•Z
äh
lvaria
ble
i au
f 1 se
tzen
•B
ere
chn
e q
ua
dra
t=
i ∗i
•A
dd
iere
qu
ad
rat
zu su
m
•E
rhö
he
i um
1
•P
rüfe
, ob
i kle
ine
r gle
ich n
ist; falls ja
, Ve
rfah
ren
wie
de
rho
len
Algo
rithm
us:
•V
aria
ble
sum
au
f 0 se
tzen
•Z
äh
lvaria
ble
i au
f 1 se
tzen
•B
ere
chn
e q
ua
dra
t=
i ∗i
•A
dd
iere
qu
ad
rat
zu su
m
•E
rhö
he
i um
1
•P
rüfe
, ob
i kle
ine
r gle
ich n
ist; falls ja
, Ve
rfah
ren
wie
de
rho
len
Va
riab
len
:
i:
Zä
hle
rvaria
ble
n:
En
dw
ert
qu
ad
rat
:B
ere
chn
et in
jed
em
Du
rchla
uf d
as Q
ua
dra
t von
i
sum
:D
ie b
ere
chn
ete
Qu
ad
ratsu
mm
e
32
4.5
. Wie
de
rho
lun
gen
-Sch
leife
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
setze sum gleich 0
setze i gleich 1
i <= n ?
quadrat gleich i * i
sum gleich sum plus quadrat
erhöhe i um 1
Ausgabe von n und sum
ja
nein
33
4.5
. Wie
de
rho
lun
gen
-Sch
leife
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
#include<stdio.h> /* Version 1: */
intmain(void) /* Abweisende Schleife */
{
inti, n, quadrat, sum;
n = 5;
sum= 0;
i = 1;
while(i <= n)
{
quadrat= i * i;
sum= sum+ quadrat;
i = i + 1;
}printf("Quadratsumme bis %d = %d\n", n, sum);
return0;
}
34
4.5
. Wie
de
rho
lun
gen
-Sch
leife
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ko
ntro
llstruktu
r: ab
we
isen
de
Schle
ife
Be
de
utu
ng:
Au
sfüh
run
gsb
ed
ing
un
g p
rüfe
n
•Ist B
ed
ing
un
g e
rfüllt, d
an
n:
-S
truktu
rblo
ck in
ne
rha
lb d
er
Sch
leife
au
sfüh
ren
-D
an
ach
ern
eu
t prü
fen
•Ist B
ed
ing
un
g n
icht e
rfüllt, d
an
n:
-S
chle
ife ve
rlasse
n
-N
äch
sten
Stru
ktu
rblo
ck n
ach
de
r Sch
leife
au
sfüh
ren
Au
sfüh
run
gsbe
din
gun
g
Struktu
rblo
ck /Stru
ktogra
mm
Um
setzu
ng in
C:
while( Ausführungsbedingung )
Anweisungsblock
35
4.5
. Wie
de
rho
lun
gen
-Sch
leife
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Nic
hta
bw
eis
en
de
Sc
hle
ife:
Bei einer a
bw
eis
en
den
Sch
leife
ist die Bedingungsprüfung
am A
nfang. Daher ist es ggf.m
öglich, dass die Schleife
überhaupt nicht durchlaufen wird –
die Schleife w
ird kom
plett übersprungen.
Bei m
anchen Problem
en ist es zweckm
äßiger, die B
edin-gungsprüfung
erst am E
nde eines Durchlaufs zu m
achen. D
ie Schleife w
ird dann auchbei einer nicht erfüllten B
edin-gung
wen
igste
ns e
inm
aldurchlaufen
�nachfolgende
Bedingungsprüfung oder n
ich
tab
weis
en
de S
ch
leife
.
Nic
hta
bw
eis
en
de
Sc
hle
ife:
Bei einer a
bw
eis
en
den
Sch
leife
ist die Bedingungsprüfung
am A
nfang. Daher ist es ggf.m
öglich, dass die Schleife
überhaupt nicht durchlaufen wird –
die Schleife w
ird kom
plett übersprungen.
Bei m
anchen Problem
en ist es zweckm
äßiger, die B
edin-gungsprüfung
erst am E
nde eines Durchlaufs zu m
achen. D
ie Schleife w
ird dann auchbei einer nicht erfüllten B
edin-gung
wen
igste
ns e
inm
aldurchlaufen
�nachfolgende
Bedingungsprüfung oder n
ich
tab
weis
en
de S
ch
leife
.
36
4.5
. Wie
de
rho
lun
gen
-Sch
leife
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
#include<stdio.h> /* Version 2: */
intmain(void) /* Nichtabweisende Schleife */
{
inti, n, quadrat, sum;
n = 5;
sum= 0;
i = 1;
do
{
quadrat= i * i;
sum= sum+ quadrat;
i = i + 1;
}while(i <= n);
printf("Quadratsumme bis %d = %d\n", n, sum);
return0;
}
37
4.5
. Wie
de
rho
lun
gen
-Sch
leife
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ko
ntro
llstruktu
r: nich
tab
we
isen
de
Schle
ife
Be
de
utu
ng:
1)
Stru
ktu
rblo
ck a
usfü
hre
n
2)
Au
sfüh
run
gsb
ed
ing
un
g p
rüfe
n:
•Ist B
ed
ing
un
g e
rfüllt, S
truktu
r-
blo
ck e
rne
ut a
usfü
hre
n (w
eite
r
mit S
chritt 1
)
•Ist B
ed
ing
un
g n
icht e
rfüllt, S
chle
ife
verla
ssen
un
d m
it erste
m S
truktu
r-
blo
ck n
ach
de
r Sch
leife
fortse
tzen
Au
sfüh
run
gsbe
din
gun
g
Struktu
rblo
ck /Stru
ktogra
mm
Um
setzu
ng in
C:
do
Anweisungsblock
while( Ausführungsbedingung );
38
4.5
. Wie
de
rho
lun
gen
-Sch
leife
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Pro
ble
m:
Es so
ll ein
e g
an
ze Z
ah
l x ein
ge
lese
n w
erd
en
. Die
Ein
ga
be
ist so
lan
ge
zu w
ied
erh
ole
n, b
is die
ein
ge
ge
be
ne
Za
hl im
Za
hle
nb
ere
ich
50
≤ x <
10
0 lie
gt.
1)
Erste
llen
Sie
ein
Stru
kto
gra
mm
zur Lö
sun
g d
iese
r Au
fga
be
!
2)
Erste
llen
Sie
ein
en
tspre
che
nd
es
C-P
rog
ram
m!
Pro
ble
m:
Es so
ll ein
e g
an
ze Z
ah
l x ein
ge
lese
n w
erd
en
. Die
Ein
ga
be
ist so
lan
ge
zu w
ied
erh
ole
n, b
is die
ein
ge
ge
be
ne
Za
hl im
Za
hle
nb
ere
ich
50
≤ x <
10
0 lie
gt.
1)
Erste
llen
Sie
ein
Stru
kto
gra
mm
zur Lö
sun
g d
iese
r Au
fga
be
!
2)
Erste
llen
Sie
ein
en
tspre
che
nd
es
C-P
rog
ram
m!
39
4.5
. Wie
de
rho
lun
gen
-Sch
leife
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
#include<stdio.h>
intmain(void)
{
inti;
i = 1;
while(i <= 10)
{
printf("%d\n", i);
i = i + 1;
}return0;
}
Be
ob
ach
tun
g:
In Z
äh
lschle
ifen
find
en
sich o
ft die
folg
en
de
n d
rei K
om
po
ne
nte
n:
Initia
lisieru
ng
, Au
sfüh
run
gsbe
din
gun
g, V
erä
nd
eru
ngssch
ritt
Be
ob
ach
tun
g:
In Z
äh
lschle
ifen
find
en
sich o
ft die
folg
en
de
n d
rei K
om
po
ne
nte
n:
Initia
lisieru
ng
, Au
sfüh
run
gsbe
din
gun
g, V
erä
nd
eru
ngssch
ritt
Initia
lisieru
ng
(ein
ma
lig, vo
r Be
gin
n
de
r Sch
leife
)
Au
sfüh
run
gsbe
din
gun
g(w
ird vo
r jed
em
Du
rchla
uf
de
r Sch
leife
ge
prü
ft)
Ve
rän
de
run
gsschritt
(wird
na
ch je
de
m D
urch
-
lau
f au
sge
füh
rt)
40
4.5
. Wie
de
rho
lun
gen
-Sch
leife
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ko
ntro
llstruktu
r: Zäh
lschle
ife
Be
de
utu
ng:
•D
ie Z
äh
lschle
ife ist e
ine
So
nd
er-
form
de
r ab
we
isen
de
n S
chle
ife
•S
ie b
iete
t ein
e ko
mp
akte
re S
chre
ib-
we
ise fü
r die
Ein
zelko
mp
on
en
ten
Initia
lisieru
ng
, Au
sfüh
run
gsbe
din
-gu
ng
un
d V
erä
nd
eru
ngssch
ritt
Um
setzu
ng in
C:
for(initialisierung; bedingung; veränderung)
Anweisungsblock
Initia
lisieru
ng ;
Au
sfüh
run
gsbe
din
gun
g ;V
erä
nd
eru
ngssch
ritt
Struktu
rblo
ck /Stru
ktogra
mm
41
4.5
. Wie
de
rho
lun
gen
-Sch
leife
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Pro
ble
m:
Be
rech
ne
die
folg
en
de
Su
mm
e fü
r ein
ge
ge
be
ne
s n:
Pro
ble
m:
Be
rech
ne
die
folg
en
de
Su
mm
e fü
r ein
ge
ge
be
ne
s n:
n 1
3 1
2 1
1 1sum
++
++
=K
Um
setzu
ng in
C:
float sum; int i; int n = 5;
sum = 0.0;
for(i = 1; i <= n; i = i + 1)
{
sum = sum + 1.0 / i ;
}
42
Glie
de
run
g
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ka
pite
l 4 –
Struktu
rierte
Pro
gram
mie
run
gu
nd
Ko
ntro
llstruktu
ren
4.1
Struktu
rierte
Pro
gram
mie
run
g 4
.2Fo
lge -
Seq
ue
nz
4.3
Ve
rzwe
igun
g -A
ltern
ative4
.4B
ed
ingu
nge
n u
nd
logisch
e V
erkn
üp
fun
gen
4.5
Wie
de
rho
lun
gen
-Sch
leife
n4
.6M
eh
rfach
au
swa
hl
4.7
Spru
nga
nw
eisu
nge
n4
.8B
eisp
iele
43
4.6
. Me
hrfa
cha
usw
ah
l
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Pro
ble
m:
Sch
reib
e e
in P
rog
ram
m, d
as e
ine
n R
ad
ius r e
inlie
st un
d w
ah
lwe
ise
de
n K
reisu
mfa
ng
, die
Kre
isfläch
e o
de
r da
s Ku
ge
lvolu
me
n b
ere
ch-
ne
tu
nd
au
sgib
t.
Va
riab
len
:a
usw
ah
l:
1 =
Kre
isum
fan
g
:2
= K
reisflä
che
Typ
int
:3
= K
ug
elvo
lum
en
an
de
re W
erte
sind
un
gü
ltig
r:
Ra
diu
sTy
p flo
at
erg
:E
rge
bn
isTy
p flo
at
Pro
ble
m:
Sch
reib
e e
in P
rog
ram
m, d
as e
ine
n R
ad
ius r e
inlie
st un
d w
ah
lwe
ise
de
n K
reisu
mfa
ng
, die
Kre
isfläch
e o
de
r da
s Ku
ge
lvolu
me
n b
ere
ch-
ne
tu
nd
au
sgib
t.
Va
riab
len
:a
usw
ah
l:
1 =
Kre
isum
fan
g
:2
= K
reisflä
che
Typ
int
:3
= K
ug
elvo
lum
en
an
de
re W
erte
sind
un
gü
ltig
r:
Ra
diu
sTy
p flo
at
erg
:E
rge
bn
isTy
p flo
at
44
4.6
. Me
hrfa
cha
usw
ah
l
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
#include
<stdio.h> /* Mehrfachauswahl: Kreis, Kugel berechnen */
int
main(void)
{
int
wahl; float
r, erg;
printf("Umfang(1)-Flaeche(2)-Volumen(3)?"); scanf("%d", &wahl);
printf("Radius ?\n"); scanf("%f", &r);
switch(wahl)
{case
1: erg
= 2.0*3.14*r;
printf("Umfang = %f", erg);
break;
case
2: erg
= 3.14*r*r;
printf("Flaeche
= %f", erg);
break;
case
3: erg
= 4.0/3.0*3.14*r*r*r;
printf("Volumen = %f", erg);
break;
default: printf("Auswahl falsch");
}printf("\nProgrammende!");
return
0;
}
45
4.6
. Me
hrfa
cha
usw
ah
l
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ko
ntro
llstruktu
r: Me
hrfa
cha
usw
ah
l
Ko
nsta
nte
1K
on
stan
te 2
Ko
nsta
nte
nSo
nst
Struktu
r-b
lock 1
Struktu
r-b
lock 2
Struktu
r-b
lock n
Struktu
r-b
lock „x“
Au
swa
hla
usd
ruck
Be
de
utu
ng
:
1)A
uswahlausdruck (F
allabfrage) auswerten –
ergibt einen Integerwert
2)S
trukturblock ausführen, bei dem die K
onstante mit dem
Wert des
Ausw
ahlausdrucks übereinstimm
t3)
Tritt keiner der aufgeführten F
älle ein, „Sonst-B
lock“ausführen
Der „S
onst-Block“ kann entfallen; dann erfolgt keine A
ktion, wenn der
Ausw
ahlausdruck mit keiner K
onstanten übereinstimm
t
Ac
htu
ng
: Ko
ns
tan
te1
, Ko
ns
tan
te2
... mü
ss
en
Inte
ge
r-Ko
ns
tan
ten
se
in,
als
o k
ein
e G
leitk
om
ma
za
hle
n u
nd
au
ch
ke
ine
Va
riab
len
!
46
4.6
. Me
hrfa
cha
usw
ah
l
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Um
setzu
ng in
C:
switch( Auswahlausdruck )
{
caseKonstante_1: Anweisungen_1
break;
caseKonstante_2: Anweisungen_2
break;
. . . .
caseKonstante_n: Anweisungen_n
break;
default
: Anweisungen_x
}
Ach
tun
g:
An
die
ser S
telle
sind
led
iglich
Inte
ge
r-Ko
nsta
nte
n e
rlau
bt
(ke
ine
Va
riab
len
, au
ch k
ein
e
Be
reich
e)!
47
Glie
de
run
g
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ka
pite
l 4 –
Struktu
rierte
Pro
gram
mie
run
gu
nd
Ko
ntro
llstruktu
ren
4.1
Struktu
rierte
Pro
gram
mie
run
g 4
.2Fo
lge -
Seq
ue
nz
4.3
Ve
rzwe
igun
g -A
ltern
ative4
.4B
ed
ingu
nge
n u
nd
logisch
e V
erkn
üp
fun
gen
4.5
Wie
de
rho
lun
gen
-Sch
leife
n4
.6M
eh
rfach
au
swa
hl
4.7
Spru
nga
nw
eisu
nge
n4
.8B
eisp
iele
48
4.7
. Spru
nga
nw
eisu
nge
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Spru
nga
nw
eisu
nge
nb
ew
irken
, da
ss da
s Pro
gra
mm
an
ein
er
an
de
ren
Ste
lle fo
rtge
setzt w
ird, sie
un
terb
rech
en
de
n lin
ea
ren
Ab
lau
f de
Pro
gra
mm
s.
Ein
Be
ispie
l für e
ine
Sp
run
ga
nw
eisu
ng
, die
bre
ak-A
nw
eisu
ng
,
find
et sich
im B
eisp
iel zu
r Me
hrfa
cha
usw
ah
l („Kre
is, Ku
ge
l
be
rech
ne
n“)
•D
ie b
rea
k-A
nw
eisu
ng
verlä
sst de
n B
ere
ich d
er sw
itch-ca
se-
An
we
isun
g u
nd
setzt d
ie P
rog
ram
mu
sfüh
run
g m
it de
r erste
n
na
chfo
lge
nd
en
An
we
isun
g fo
rt.
•W
ird b
rea
k ve
rge
ssen
, da
nn
we
rde
n d
ie n
ach
folg
en
de
n ca
se-
Blö
cke e
be
nfa
lls au
sge
füh
rt!
49
4.7
. Spru
nga
nw
eisu
nge
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Die
bre
ak
-An
we
isun
g w
ird a
be
r nich
t nu
r in sw
itch-ca
se-
An
we
isun
ge
n e
ing
ese
tzt, son
de
rn a
uch
be
i de
r Pro
gra
mm
ieru
ng
von
Sch
leife
n:
Wirku
ng d
er b
rea
k-An
we
isun
g:
•D
ie a
ktu
elle
for-, w
hile
-, do
-wh
ile-S
chle
ife b
zw. sw
itch-
An
we
isun
g w
ird so
fort ve
rlasse
n
•D
ie P
rog
ram
ma
usfü
hru
ng
wird
un
mitte
lba
r na
ch d
em
verla
ssen
en
Blo
ck (S
chle
ife/A
nw
eisu
ng
) fortg
ese
tzt
•B
ea
chte
: Nu
r die
inn
erste
Sch
leife
wird
verla
ssen
!
50
4.7
. Spru
nga
nw
eisu
nge
n
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
inti, j, k;
Anweisungen ...
for(j = 0; j < 100; j++)
{
Anweisungen ...
if(j == (k + 23))
break;
Anweisungen ...
for(i = 0; i < 50; i++)
{
Anweisungen ...
if(i== k)
break;
Anweisungen ...
}Anweisungen ...
}Anweisungen ...
Be
ispie
l:
Ve
rscha
chte
lte S
chle
ifen
un
d b
rea
k
51
Glie
de
run
g
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Ka
pite
l 4 –
Struktu
rierte
Pro
gram
mie
run
gu
nd
Ko
ntro
llstruktu
ren
4.1
Struktu
rierte
Pro
gram
mie
run
g 4
.2Fo
lge -
Seq
ue
nz
4.3
Ve
rzwe
igun
g -A
ltern
ative4
.4B
ed
ingu
nge
n u
nd
logisch
e V
erkn
üp
fun
gen
4.5
Wie
de
rho
lun
gen
-Sch
leife
n4
.6M
eh
rfach
au
swa
hl
4.7
Spru
nga
nw
eisu
nge
n4
.8B
eisp
iele
52
4.8
. Be
ispie
le
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Be
ispie
l 1:
•W
en
n e
ine
(äu
ße
re) S
chle
ife w
ied
eru
m e
ine
(inn
ere
) Sch
leife
en
thä
lt, sprich
t ma
n vo
n ve
rscha
chte
lten
Sch
leife
n.
•In
jed
em
ein
zeln
en
Du
rchla
uf d
er ä
uß
ere
n S
chle
ife w
ird d
ie
kom
ple
tte in
ne
re S
chle
ife a
bg
ea
rbe
itet.
#include<stdio.h>
intmain(void)
{
inti, j;
for(i = 1; i < 6; i = i + 1)
{
for(j = 1; j < 6; j = j + 1)
{
printf("i%d/j%d \t", i, j);
}printf("\n");
}return0;
}
53
4.8
. Be
ispie
le
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Be
ispie
l 2:
•E
rmitte
ln S
ie, o
b d
ie Z
iffern
sum
me
(Qu
ersu
mm
e) e
ine
r ga
nze
n
Za
hl g
era
de
od
er u
ng
era
de
ist.
•Fo
rde
rn S
ie d
en
An
we
nd
er zu
r Ein
ga
be
de
r Za
hl a
uf. G
eb
en
Sie
die
Za
hl zu
r Ko
ntro
lle a
us. G
eb
en
Sie
die
Zw
ische
nw
erte
de
r
Qu
ersu
mm
en
bild
un
g a
us.
•N
ach
de
m S
ie a
usg
eg
eb
en
ha
be
n, o
b d
ie Q
ue
rsum
me
ge
rad
e
od
er u
ng
era
de
ist, verla
ng
en
Sie
na
ch e
ine
r ne
ue
n Z
ah
l. Du
rch
Ein
ga
be
ein
er 0
soll Ih
r Pro
gra
mm
ab
ge
bro
che
n w
erd
en
.
•E
rstelle
n S
ie zu
nä
chst e
in S
trukto
gra
mm
. Sch
reib
en
Sie
an
-
schlie
ße
nd
da
s zug
eh
örig
e C
-Pro
gra
mm
.
An
we
nd
un
g z
um
Be
isp
iel b
ei P
rüfs
um
me
n: P
rüfe
n, o
b e
ine
vie
r-ste
llige
Artik
eln
um
me
r gü
ltig is
t od
er n
ich
t. Da
zu
wird
ein
e z
usä
tzlic
he
S
telle
hin
zu
ge
füg
t, so
da
ss d
ie Q
ue
rsu
mm
e d
urc
h 1
0 te
ilba
r ist.
12331 4
2716 4
2718
54
4.8
. Be
ispie
le
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
Teilp
rob
lem
e:
•Z
ah
l ein
lese
n u
nd
wie
de
r au
sge
be
n
•Q
ue
rsum
me
bild
en
•P
rüfe
n, o
b Q
ue
rsum
me
ge
rad
e o
de
r un
ge
rad
e ist
•E
rge
bn
is au
sge
be
n
•N
eu
e Z
ah
l ein
lese
n u
nd
wie
de
r au
sge
be
n
•A
bb
ruch
be
din
gu
ng
prü
fen
�A
bb
ruch
bzw
. Wie
de
rho
lun
g
Qu
ersu
mm
e b
ilde
n:
46
13
�1
4
alle
Ziffe
rn a
dd
iere
n –
ab
er w
ie b
eko
mm
t ma
n d
ie Z
iffern
?
letzte
Ziffe
r:R
est b
ei D
ivisio
n d
urch
10
(Mo
du
lo-O
pe
rato
r!)
ne
ue
Za
hl:
alte
Za
hl / 1
0 (In
teg
er-D
ivisio
n, R
est a
bsch
ne
ide
n!)
Qu
ersu
mm
e ge
rad
e o
de
r un
gera
de
:q
ue
rsum
me
% 2
==
0, g
era
de
==
1, u
ng
era
de
Va
riab
len
: za
hl (e
ing
ele
sen
e Z
iffer), q
sum
me
(Qu
ersu
mm
e), lziffe
r(le
tzte Z
iffer)
55
4. S
truktu
rierte
Pro
gra
mm
ieru
ng
un
d K
on
trollstru
kture
n
4.8
. Be
ispie
le
Strukto
gram
m
1
Ka
pite
l 5
Da
ten
typ
en
un
d O
pe
rato
ren
2
Glie
de
run
g
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Ka
pite
l 5 –
Da
ten
typ
en
un
d
Op
era
tore
n
5.1
Ele
me
nta
re D
ate
nty
pe
n
5.2
Sy
mb
olisch
e K
on
stan
ten
5.3
Ty
pu
mw
an
dlu
ng
en
5.4
Op
era
tore
n
3
5.1
. Ele
me
nta
re D
ate
nty
pe
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Ele
me
nta
re D
ate
nty
pe
n(in
t, floa
tu
sw.) sin
d b
ere
its in d
er S
pra
che
vorg
eg
eb
en
un
d e
s gib
t Op
era
tion
en
für d
iese
Da
ten
typ
en
.
Zu
sam
me
ng
ese
tzte D
ate
nty
pe
n w
erd
en
vom
Pro
gra
mm
iere
r
de
finie
rt, zum
Be
ispie
l:
•u
m ko
mp
lexe
Za
hle
n d
arzu
stelle
n
(Ko
mb
ina
tion
zwe
ier flo
at-Z
ah
len
�A
dd
ition
ist kom
plizie
rter),
•u
m e
ine
n S
tud
en
ten
zu b
esch
reib
en
(setzt sich
eb
en
falls a
us e
lem
en
tare
n D
ate
nty
pe
n zu
sam
me
n).
Eig
en
scha
ften
ein
es D
ate
nty
ps:
•W
erte
be
reich
, Na
chko
mm
aste
llen
(be
i Gle
itkom
ma
zah
len
)
•S
pe
iche
rpla
tzbe
da
rf
•In
tern
e D
arste
llun
g / S
pe
iche
run
g
•G
ültig
e O
pe
ratio
ne
n
4
5.1
. Ele
me
nta
re D
ate
nty
pe
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Ga
nze
Za
hle
n m
it Vo
rzeich
en
(a):
5
5.1
. Ele
me
nta
re D
ate
nty
pe
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Ga
nze
Za
hle
n m
it Vo
rzeich
en
(b):
Ne
be
n d
em
Da
ten
typ
int
gib
t es w
eite
re Ty
pe
n zu
r Da
rstellu
ng
vorze
iche
nb
eh
afte
ter g
an
ze Z
ah
len
. Die
se d
ecke
n u
nte
rschie
dlich
e
We
rteb
ere
iche
ab
(Ko
mp
rom
iss: Sp
eich
erp
latz/W
erte
be
reich
/
Re
che
nze
it):
sho
rtshorti;
int
inti;
lon
glongi;
lon
glo
ng
longlongi;
Za
hle
nb
ere
ich b
ei n
Bit:
n =
16
, 32
, 64
-2
, 4, 8
By
tes S
pe
iche
rpla
tz
po
sitive Z
ah
len
:h
öch
stwe
rtige
s Bit 0
ne
ga
tive Z
ah
len
:h
öch
stwe
rtige
s Bit 1
1)
2(
...)
2(
1n
1n
−+
−−
−
6
5.1
. Ele
me
nta
re D
ate
nty
pe
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Ga
nze
Za
hle
n m
it Vo
rzeich
en
(c):
Grö
ße
in B
yte
sLin
ux
/GC
CLC
C-W
IN3
2V
isua
l C+
+
sho
rt2
22
int
44
4
lon
g4
44
lon
g lo
ng
88
8
Grö
ße
in B
yte
sW
erte
be
reich
2 B
yte
/ 16
Bit
-32
.76
8 …
+3
2.7
67
4 B
yte
/ 32
Bit
-2.1
47
.48
3.6
48
… +
2.1
47
.48
3.6
47
8 B
yte
/ 64
Bit
-9,2
×1
01
8…
+9
,2 ×
10
18
7
5.1
. Ele
me
nta
re D
ate
nty
pe
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Vo
rzeich
en
lose
ga
nze
Za
hle
n (a
):
8
5.1
. Ele
me
nta
re D
ate
nty
pe
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Vo
rzeich
en
lose
ga
nze
Za
hle
n (b
):
un
sign
ed
sho
rtunsignedshorti;
un
sign
ed
int
unsignedinti;
un
sign
ed
lon
gunsignedlongi;
un
sign
ed
lon
glo
ng
unsignedlonglongi;
#include<stdio.h>
intmain(void)
{
unsignedshort
s = -1;
unsignedint
i = -1;
unsignedlonglongl = -1;
printf("%d, %x \n", sizeof(s), s);
printf("%d, %x \n", sizeof(i), i);
printf("%d, %llx\n", sizeof(l), l);
return0;
}
Wie la
utet d
ieA
usg
ab
e dieses
Pro
gra
mm
s…?
9
5.1
. Ele
me
nta
re D
ate
nty
pe
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Vo
rzeich
en
lose
ga
nze
Za
hle
n (c):
Grö
ße
in B
yte
sLin
ux
/GC
CLC
C-W
IN3
2V
isua
l C+
+
un
sign
ed
sho
rt2
22
un
sign
ed
int
44
4
un
sign
ed
lon
g4
44
un
sign
ed
lon
g lo
ng
88
8
Grö
ße
in B
yte
sW
erte
be
reich
2 B
yte
/ 16
Bit
0 …
65
.53
5
4 B
yte
/ 32
Bit
0 …
4.2
94
.96
7.2
95
8 B
yte
/ 64
Bit
0 …
18
,4×
10
18
10
5.1
. Ele
me
nta
re D
ate
nty
pe
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Flie
ßko
mm
aza
hle
n, G
leitko
mm
aza
hle
n (a
):
Flie
ßko
mm
aza
hle
n w
erd
en
be
nö
tigt fü
r:
•S
eh
r gro
ße
un
d se
hr k
lein
e Z
ah
len
•Z
ah
len
mit N
ach
kom
ma
stelle
n
Flie
ßko
mm
aza
hle
n w
erd
en
vö
llig a
nd
ers b
eh
an
de
lt als g
an
ze
Za
hle
n. F
ür je
de
Flie
ßko
mm
aza
hl w
erd
en
32
od
er 6
4 B
it Sp
ei-
che
rpla
tzb
en
ötig
t. Ein
e F
ließ
kom
ma
zah
l wird
da
be
i als K
om
bi-
na
tion
von
Vo
rzeich
en
, Ex
po
ne
nt u
nd
Ma
ntisse
ge
spe
iche
rt.
Ty
pe
n:
float
ein
fach
e G
en
au
igke
it(4
By
te / 3
2 B
it)
Za
hle
nb
ere
ich (je
we
ils po
s./ne
g.)
1,2
×1
0-3
8…
3,4
×1
0+
38
double
do
pp
elte
Ge
na
uig
keit
(8 B
yte
/ 64
Bit)
Za
hle
nb
ere
ich (je
we
ils po
s./ne
g.)
2,2
×1
0-3
08
… 1
,8 ×
10
+3
08
11
5.1
. Ele
me
nta
re D
ate
nty
pe
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Flie
ßko
mm
aza
hle
n, G
leitko
mm
aza
hle
n (b
):
#include<stdio.h>
intmain(void)
{
float
f = 1.1234567890123456789;
doubled = 1.1234567890123456789;
printf("%.20f\n%.20f\n", f, d);
return0;
} Be
i de
r Arb
eit m
it Flie
ßko
mm
aza
hle
n ist d
ere
n b
eg
ren
zte G
en
au
ig-
ke
itzu
be
ach
ten
! Be
im D
ate
nty
p flo
at
we
rde
n 6
-7 sig
nifik
an
te
Ste
llen
be
rücksich
tigt, b
ei d
ou
ble
sind
es 1
5-1
6 S
telle
n.
12
5.1
. Ele
me
nta
re D
ate
nty
pe
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Flie
ßko
mm
aza
hle
n, G
leitko
mm
aza
hle
n (c):
/* 7.000.000 x 1/7 berechnen */
#include<stdio.h>
intmain(void)
{
float
f = 1.0 / 7.0, fsum= 0;
doubled = 1.0 / 7.0, dsum= 0;
longl;
for(l = 1; l <= 7000000; l = l + 1)
{
fsum= fsum+ f;
dsum= dsum+ d;
}printf("%f\n", fsum);
printf("%f\n", dsum);
return0;
}
Ach
tun
g: R
un
du
ng
sfehler
kön
nen
sich a
ufsu
mm
ieren!
13
5.1
. Ele
me
nta
re D
ate
nty
pe
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Bu
chsta
be
n, Z
iffern
, So
nd
erze
iche
n…
(a):
Um
ein
zeln
e Z
eich
en
zu sp
eich
ern
gib
t es e
ine
n e
ige
ne
n D
ate
nty
p
cha
rm
it ein
er G
röß
e vo
n 8
Bit (1
By
te). Z
ur B
ea
rbe
itun
g vo
n
Bu
chsta
be
n, Z
iffern
un
d S
on
de
rzeich
en
wird
da
be
i in d
er R
eg
el e
in
erw
eite
rter A
SC
II-Co
de
be
nu
tzt (z. B. IS
O-La
tin1
).
#include<stdio.h>
intmain(void)
{
charc;
c = 'C';
c = c -2;
printf("%c hat ASCII-Code %d\n", c, c);
return0;
}
De
finitio
n e
ine
r cha
r-Va
riab
len
Zeich
en
kon
stan
ten
we
rde
n m
it ein
fa-
che
nA
nfü
hru
ng
szeich
en
ge
schrie
be
n
Mit Ze
iche
n (b
zw. d
ere
n A
SCII-
Co
de
) kan
n m
an
au
ch re
chn
en
Da
s Form
ate
lem
en
t („Pla
tzha
lter“)
zur A
usg
ab
e e
ine
s Zeich
en
s ist %c
14
5.1
. Ele
me
nta
re D
ate
nty
pe
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Bu
chsta
be
n, Z
iffern
, So
nd
erze
iche
n…
(b):
chary = 5; /* ASCII-Code Steuerzeichen "ENQ" */
printf("y = %d", y);
printf("y = %c", y);
y = '5'; /* y bekommt den Wert 53 */
printf("y = %d", y);
printf("y = %c", y);
Au
sga
be:
y = 5
y =
Au
sga
be:
y = 53
y = 5
Be
ispie
le:
1) P
rüfe
n, o
b ch
ar-V
aria
ble
gle
ich 'j'
ist
2) P
rüfe
n, o
b ch
ar-V
aria
ble
gle
ich 'j'
od
er 'J'
ist
3) P
rüfe
n, o
b ch
ar-V
aria
ble
Gro
ßb
uch
stab
en
en
thä
lt
15
Glie
de
run
g
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Ka
pite
l 5 –
Da
ten
typ
en
un
d
Op
era
tore
n
5.1
Ele
me
nta
re D
ate
nty
pe
n
5.2
Sy
mb
olisch
e K
on
stan
ten
5.3
Ty
pu
mw
an
dlu
ng
en
5.4
Op
era
tore
n
16
5.2
. Sy
mb
olisch
e K
on
stan
ten
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Sy
mb
olisch
e K
on
stan
ten
sind
Ko
nsta
nte
n, d
ie e
ine
n N
am
en
be
-
sitzen
. Me
ist we
rde
n sie
am
Pro
gra
mm
an
fan
g d
efin
iert; d
ies ist
alle
rdin
gs n
icht zw
ing
en
d e
rford
erlich
.
•D
ie A
nw
eisu
ng
#d
efin
ed
efin
iert e
ine
sym
bo
lische
Ko
nsta
nte
(ge
folg
t von
Na
me
un
d W
ert d
er K
on
stan
ten
)
•Sy
mb
olisch
e K
on
stan
ten
mü
ssen
au
f jed
en
Fall vo
r de
r erste
n
Ve
rwe
nd
un
g d
efin
iert w
erd
en
.
•K
on
ven
tion
: Na
me
n in
Gro
ßb
uch
stab
en
schre
ibe
n
Be
ispie
le:
#definePI 3.14159265
#defineBAUTEIL_EINZELPREIS 10.0
#defineBEARBEITER "Tom"
17
#include<stdio.h>
#definePI 3.14159265
intmain(void)
{
intwahl; floatr, erg;
printf("Umfang(1)-Flaeche(2)-Volumen(3)?"); scanf("%d", &wahl);
printf("Radius ?\n"); scanf("%f", &r);
switch(wahl)
{case1: erg= 2.0*PI*r;
printf("Umfang = %f", erg);
break;
case2: erg= PI*r*r;
printf("Flaeche= %f", erg);
break;
case3: erg= 4.0/3.0*PI*r*r*r;
printf("Volumen = %f", erg);
break;
default: printf("Auswahl falsch");
}return0;
}
5.2
. Sy
mb
olisch
e K
on
stan
ten
5. D
ate
nty
pe
n u
nd
Op
era
tore
n Symb
olisch
e Ko
nsta
nten
erh
öh
en d
ie Lesba
rkeit ein
es Pro
gra
mm
s. Sie erleich
tern a
uß
erdem
n
ach
träg
liche Ä
nd
erun
-g
en d
es Qu
elltextes.
18
5.2
. Sy
mb
olisch
e K
on
stan
ten
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Sy
mb
olisch
e K
on
stan
ten
we
rde
n h
äu
fig in
Inclu
de
-Da
teie
n
(He
ad
er-D
ate
ien
) au
fge
listet. S
olch
e D
ate
ien
kön
ne
n le
icht vo
n
an
de
ren
Pro
gra
mm
en
(we
iter-)ve
rwe
nd
et w
erd
en
. Vie
le In
clud
e-
Da
teie
n w
erd
en
scho
n vo
m C
om
pile
r-He
rstelle
r mitg
elie
fert.
Be
ispie
l: Au
sschn
itt au
s de
r Inclu
de
-Da
tei m
ath
.h
…/* Usefulconstants. */
#defineM_E
2.7182818284590452354
#defineM_LN2 0.69314718055994530942
#defineM_LN10 2.30258509299404568402
#defineM_PI
3.14159265358979323846
#defineM_PI_2 1.57079632679489661923
…
19
5.2
. Sy
mb
olisch
e K
on
stan
ten
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
#define_USE_MATH_DEFINES
#include<math.h>
#include<stdio.h>
intmain(void)
{
printf("%f \n", M_PI);
printf("%f \n", M_E);
return
0;
}
Der In
ha
lt der D
atei m
ath
.hw
ird g
elesen, w
enn
da
s C-
Pro
gra
mm
com
piliert
wird
.
Alle K
on
stan
ten in
der D
atei
ma
th.h
kön
nen
jetzt im P
ro-
gra
mm
verwen
det w
erden
.
Fehlt d
iese Defin
ition
, werd
en
bei m
an
chen
Co
mp
ilern d
ie K
on
stan
ten M
_P
I, M_
E (usw
.) n
icht erka
nn
t!
20
Glie
de
run
g
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Ka
pite
l 5 –
Da
ten
typ
en
un
d
Op
era
tore
n
5.1
Ele
me
nta
re D
ate
nty
pe
n
5.2
Sy
mb
olisch
e K
on
stan
ten
5.3
Ty
pu
mw
an
dlu
ng
en
5.4
Op
era
tore
n
21
5.3
. Ty
pu
mw
an
dlu
ng
en
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Im R
ech
ne
r we
rde
n g
an
ze Z
ah
len
un
d F
ließ
kom
ma
zah
len
vö
llig
un
tersch
ied
lich v
era
rbe
itet.
•D
arf m
an
ein
fach
ein
er F
ließ
kom
ma
varia
ble
n d
en
We
rt ein
er
Inte
ge
r-Va
riab
len
zuw
eise
n?
•Ist d
as U
mg
eke
hrte
eb
en
falls m
ög
lich?
•W
as p
assie
rt mit d
en
Na
chko
mm
aste
llen
ein
er F
ließ
kom
ma
zah
l,
we
nn
ma
n sie
ein
er In
teg
er-Z
ah
l zuw
eist?
•W
elch
e a
nd
ere
n P
rob
lem
e kö
nn
en
au
ftrete
n?
cha
rch
ar
sho
rtsh
ort
int
floa
t
lon
gd
ou
ble
Um
wa
nd
lun
g ist p
rob
lem
atisch
,
Info
rma
tion
sve
rlust m
ög
lich!
Um
wa
nd
lun
g ist u
np
rob
lem
atisch
22
5.3
. Ty
pu
mw
an
dlu
ng
en
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Imp
lizite T
yp
um
wa
nd
lun
g:
Be
i de
r imp
liziten
Typ
um
wa
nd
lun
g w
ird d
ie U
mw
an
dlu
ng
vom
Pro
gra
mm
iere
r nich
t „au
sdrü
cklich
verla
ng
t“. Sie
wird
vom
Co
mp
iler a
uto
ma
tisch a
nh
an
d d
er D
ate
nty
pe
n vo
n V
aria
ble
n
un
d A
usd
rücke
n e
rkan
nt u
nd
„imp
lizit“ du
rchg
efü
hrt
inti1, i2;
doubled1, d2, d3, d4;
i1 = 3;
d1 = i1 / 4;
d2
= i1 / 4.0;
d3 = 7.6;
d4 = 3.5;
i2
= d3 + d4;
Welch
e Werte h
ab
en d
ie Va
riab
lenjew
eils na
ch d
er Zuw
eisun
g?
23
5.3
. Ty
pu
mw
an
dlu
ng
en
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Ex
plizite
Ty
pu
mw
an
dlu
ng
:
An
de
rs als b
ei d
er im
plizite
n Ty
pu
mw
an
dlu
ng
wird
die
exp
lizite
Typ
um
wa
nd
lun
g im
Qu
ellte
xt an
ge
ge
be
n. E
s gilt fo
lge
nd
e S
yn
tax:
(gewünschter Typ)Ausdruck
inti1, i2, i3;
doubled1, d2, d3, d4;
i1 = 3;
d1 = (double)i1 / 4;
d2= i1 / (double)4;
d3= (double)(i1 / 4);
d4 = 1.75;
i2= (int)(d4 + d4);
i3= (int)d4 + (int)d4;
Welch
e Werte h
ab
en d
ie Va
riab
lenjew
eils na
ch d
er Zuw
eisun
g?
24
Glie
de
run
g
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Ka
pite
l 5 –
Da
ten
typ
en
un
d
Op
era
tore
n
5.1
Ele
me
nta
re D
ate
nty
pe
n
5.2
Sy
mb
olisch
e K
on
stan
ten
5.3
Ty
pu
mw
an
dlu
ng
en
5.4
Op
era
tore
n
25
5.4
. Op
era
tore
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Fu
nktio
nO
pera
tore
n
arith
metis
ch
+ -
∗∗∗ ∗/ %
++
--
rela
tion
al
> >= < <= == !=
log
isch
&&
&&
&&
&&
|| !
bito
rien
tiert
&&& &|
∧∧∧ ∧∼∼∼ ∼
<< >>
zeig
ero
rien
tiert
&&& &∗∗∗ ∗
->
zu
weis
en
d=
+= -=
∗∗∗ ∗= /= %=
&&& &=
∧∧∧ ∧= |= <<= >>=
so
nstig
e,
( typ
e )
( )[ ]
siz
eo
f?:
.
Op
era
tore
n n
ach
Fu
nk
tion
en
ge
ord
ne
t:
26
5.4
. Op
era
tore
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Arith
me
tische
Op
era
tore
n:
+ -
* /
Ad
ditio
n, S
ub
traktio
n, M
ultip
likatio
n, D
ivisio
n
%M
od
ulo
-Op
era
tor (R
est e
ine
r Inte
ge
r-Div
ision
)
++
--In
kre
me
nt-, D
ek
rem
en
t-Op
era
tore
n (W
ert e
ine
r
Va
riab
len
um
1 e
rhö
he
n, e
rnie
drig
en
)
Ink
rem
en
t-Op
era
tore
n kö
nn
en
als P
räfix-
(++
a) o
de
r als P
ostfix-
Op
era
tore
n (a
++
) an
ge
we
nd
et w
erd
en
. We
lche
r Un
tersch
ied
be
steh
t zwisch
en
be
ide
n V
aria
nte
n?
int
x, y, zahl;
zahl = 5;
++zahl;
zahl++;
x= ++zahl;
y= zahl++;
Welch
e Werte h
ab
en d
ie Va
riab
lenjew
eils na
ch d
er Au
sfüh
run
g d
ieserP
rog
ram
mzeilen
?
27
5.4
. Op
era
tore
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Re
latio
na
le O
pe
rato
ren
:
> >
= <
= <
grö
ße
r, grö
ße
r/gle
ich, k
lein
er/g
leich
, kle
ine
r
==
V
erg
leich
au
f Gle
ichh
eit
!=V
erg
leich
au
f Un
gle
ichh
eit
Log
ische
Op
era
tore
n:
&&
||
Un
d-
bzw
. Od
er-V
erk
nü
pfu
ng
!N
ega
tion
if( (x >= 10) && (x <= 20) )
printf("x im Bereich 10...20");
if( !(x == y) )
printf("x nicht gleich y");
28
5.4
. Op
era
tore
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Zu
we
isen
de
Op
era
tore
n:
=Z
uw
eisu
ng
sop
era
tor (ke
ine
ma
th. G
leich
he
it)
+=
-=
Ku
rzschre
ibw
eise
n fü
r Ad
ditio
n, S
ub
traktio
n
*=
/=K
urzsch
reib
we
isen
für M
ultip
likatio
n, D
ivisio
n
%=
Ku
rzschre
ibw
eise
für M
od
ulo
-Op
era
tor
zahl += 10
zahl = zahl + 10
zahl %= 10
zahl = zahl % 10
Ink
rem
en
tieru
ng
ein
er In
teg
er-Z
ah
l:
zahl = zahl + 1
zahl += 1
zahl++
++zahl
29
5.4
. Op
era
tore
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
So
nstig
e O
pe
rato
ren
:
,A
ufzä
hlu
ng
sop
era
tor zu
r Ve
rkettu
ng
von
Va
riab
len
od
er A
usd
rücke
n, z. B
. in e
ine
r for-A
nw
eisu
ng
sizeo
f()D
iese
r „Op
era
tor“ lie
fert d
ie G
röß
e (in
By
tes) e
ine
r
Va
riab
len
od
er e
ine
s Da
ten
typ
s.
inta, b;
for(k=0, j=2; k<=100; k++, i+=7)
...
i = sizeof(short);
longl;
i = sizeof(l);
sizeof(sh
ort)
��� �2
sizeof(l)
��� �4
30
5.4
. Op
era
tore
n
5. D
ate
nty
pe
n u
nd
Op
era
tore
n
Op
erato
renn
ach
Prio
rität
geo
rdn
et
1
Ka
pite
l 6
Fun
ktion
en
2
Glie
de
run
g
6. Fu
nktio
ne
n
Ka
pite
l 6 –
Fun
ktion
en
6.1
Einle
itun
g6
.2Ü
be
rgab
ep
ara
me
ter b
eim
Fun
ktion
sau
fruf
6.3
Au
fba
u e
ine
r Fun
ktion
6
.4Ein
fach
e B
eisp
iele
6.5
Be
ispie
l: Tasch
en
rech
ne
r6
.6Sta
nd
ard
fun
ktion
en
6.7
Loka
le u
nd
glob
ale
Va
riab
len
6.8
An
we
nd
un
g glob
ale
r Va
riab
len
3
6.1
. Einle
itun
g
6. Fu
nktio
ne
n
Fun
ktion
en
we
rde
n ve
rwe
nd
et, u
m
•Te
ilaufgab
en
zu b
earb
eite
n, d
ie h
äufig vo
rkom
me
n,
•gro
ße
Pro
gramm
e in
klein
e, ü
be
rsichtlich
e Te
ile zu
un
terte
ilen
.
C-P
rogram
me
be
steh
en
min
de
sten
s aus e
ine
r ein
zeln
en
Fun
ktion
,d
er Fu
nktio
n m
ain
. Mit d
iese
r Fun
ktion
be
ginn
t die
Au
sfüh
run
gd
es P
rogram
ms.
Be
ispie
l:B
ere
chn
e y =
xn
für vo
rgege
be
ne
x un
d n
y = 1.0
for(i= 1; i<= n; i++)
{
y = y
∗∗∗ ∗x;
}
Sollte
die
se P
ote
nz ö
fters
be
rech
ne
t we
rde
n, m
üsste
die
ser P
rogram
mte
il ständ
igw
ied
erh
olt w
erd
en
!
4
6.1
. Einle
itun
g
6. Fu
nktio
ne
n
#include <stdio.h>
float
power(float
x, int
k);
intmain(void)
{
float
x1, x2, z, t;
int
n = 4;
x1 = 3.0;
z = power(x1, n);
x2 = 3.75;
t = power(x2, 5);
return
0;
}
floatpower(float
x, int
k)
{
int
i;
float
y;
y = 1.0;
for
(i
= 1; i
<= k; i++)
{
y = y
∗∗∗ ∗x;
}return
y;
}
Au
slageru
ng d
er Te
ilaufgab
e „P
ote
nz b
ere
chn
en
“ in e
ine
Fun
ktion
:
•E
ingab
e: W
erte
von
Basis (x) u
nd
Exp
on
en
t (n)
•A
usgab
e: W
ert d
er n
-ten
Po
ten
z
5
6.1
. Einle
itun
g
6. Fu
nktio
ne
n
Date
na
usta
usch
zwisch
en
Ha
up
tpro
gram
m u
nd
Fun
ktion
:
x1 = 3.0;
n = 4;
z = power(x1, n);
…t = power(3.75, 5);
:
6
Glie
de
run
g
6. Fu
nktio
ne
n
Ka
pite
l 6 –
Fun
ktion
en
6.1
Einle
itun
g6
.2Ü
be
rgab
ep
ara
me
ter b
eim
Fun
ktion
sau
fruf
6.3
Au
fba
u e
ine
r Fun
ktion
6
.4Ein
fach
e B
eisp
iele
6.5
Be
ispie
l: Tasch
en
rech
ne
r6
.6Sta
nd
ard
fun
ktion
en
6.7
Loka
le u
nd
glob
ale
Va
riab
len
6.8
An
we
nd
un
g glob
ale
r Va
riab
len
7
6.2
. Üb
erga
be
pa
ram
ete
r be
im Fu
nktio
nsa
ufru
f
6. Fu
nktio
ne
n
Beim
Sta
rt des P
rog
ram
ms p
assie
rt Fo
lgen
des:
•E
s w
ird im
mer z
uers
t die
Funktio
n m
ain
aufg
eru
fen.
•D
ie Z
eile
n in
main
werd
en d
er R
eih
e n
ach a
bgearb
eite
t.
•In
der Z
eile
z = power(x1,n);
wird
die
Funktio
n m
ain
verla
ssen. E
s w
ird S
peic
herp
latz
für d
ie lo
kale
n V
aria
ble
n x
und k
der F
unktio
n p
ow
er b
ere
itgeste
llt;dann w
erd
en d
ie
Werte
ko
pie
rt von x
1 n
ach x
bzw
. von n
nach k
.
•D
ie F
unktio
n p
ow
er w
ird a
bgearb
eite
t.
•B
ei d
er A
nw
eis
ung returny;
wird
die
Funktio
n p
ow
er
verla
ssen u
nd d
er W
ert v
on y
wird
der lin
ken S
eite
beim
Funktio
nsaufru
f (hie
r z) z
ugew
iesen.
•S
chlie
ßlic
h w
ird d
ie F
unktio
n m
ain
fortg
esetz
t.
8
Glie
de
run
g
6. Fu
nktio
ne
n
Ka
pite
l 6 –
Fun
ktion
en
6.1
Einle
itun
g6
.2Ü
be
rgab
ep
ara
me
ter b
eim
Fun
ktion
sau
fruf
6.3
Au
fba
u e
ine
r Fun
ktion
6
.4Ein
fach
e B
eisp
iele
6.5
Be
ispie
l: Tasch
en
rech
ne
r6
.6Sta
nd
ard
fun
ktion
en
6.7
Loka
le u
nd
glob
ale
Va
riab
len
6.8
An
we
nd
un
g glob
ale
r Va
riab
len
9
Au
fba
u e
ine
r Fun
ktion
sde
finitio
n:
float power (float x, intk)
{
. . .
}
6.3
. Au
fba
u e
ine
r Fun
ktion
6. Fu
nktio
ne
n
Fun
ktion
stypR
ückgab
etyp
Date
ntyp
de
s Ergeb
nisse
s
Nam
e d
er
Fun
ktion
An
we
isun
gen
, die
von
die
ser Fu
nktio
nau
sgefü
hrt w
erd
en
Fun
ktion
sparam
ete
rP
arame
terliste
Eingab
ew
erte
10
6.3
. Au
fba
u e
ine
r Fun
ktion
6. Fu
nktio
ne
n
Fun
ktion
sna
me
:•
Es ge
lten
die
gleich
en
Re
geln
wie
für V
ariable
nn
ame
n.
•D
er N
am
e e
ine
r Fu
nktio
n so
llte e
twa
s mit d
er A
ufg
ab
e zu
tun
ha
be
n,
die
vo
n d
er F
un
ktio
ne
rled
igt w
ird!
Fun
ktion
spa
ram
ete
r:•
Fun
ktion
sparam
ete
r sind
die
jen
igen
We
rte, d
ie d
ie Fu
nktio
n vo
n
auß
en
(vom
aufru
fen
de
n P
rogram
m) b
en
ötigt.
•D
aten
type
n, N
ame
n, R
eih
en
folge
festle
gen
–fo
rma
le P
ara
me
ter.
•z = power(x1,n);
–x1
un
d n
he
iße
na
ktue
lle P
ara
me
ter.
•E
rst be
im Fu
nktio
nsau
fruf (w
ähre
nd
de
r Laufze
it de
s Pro
gramm
s) w
ird Sp
eich
erp
latz für d
ie P
arame
ter re
servie
rt.•
Param
ete
r dü
rfen
nu
r inn
erh
alb d
er Fu
nktio
n ve
rwe
nd
et w
erd
en
(so
g. loka
le V
aria
ble
n).
•vo
id(„n
ichts, le
er“),falls ke
ine
Au
frufp
arame
ter vo
rhan
de
n sin
d.
11
6.3
. Au
fba
u e
ine
r Fun
ktion
6. Fu
nktio
ne
n
Fun
ktion
styp, R
ückga
be
we
rt de
r Fun
ktion
:•
Fun
ktion
styp u
nd
Date
ntyp
de
s Rü
ckgabe
we
rts, de
r in d
er re
turn
-A
nw
eisu
ng
zurü
ckgege
be
n w
ird, m
üsse
n ü
be
rein
stimm
en
.•
Alle
Date
ntyp
en
sind
erlau
bt.
•Fu
nktio
nstyp
void
wird
für Fu
nktio
ne
n o
hn
e R
ückgab
ew
ert
verw
en
de
t.
Rü
ckspru
ng, re
turn
-An
we
isun
g:•
Mit d
er re
turn
-An
we
isun
g wird
die
Fun
ktion
verlasse
n –
es e
rfolgt
ein
Rü
ckspru
ng zu
m au
frufe
nd
en
Pro
gramm
.•
Be
ispie
le: r
eturny;
returny*y + 3.16;
•M
eh
rere
retu
rn-A
nw
eisu
nge
n in
ein
er Fu
nktio
n m
öglich
.•
Rü
ckspru
ng e
rfolgt e
be
nfalls, w
en
n d
as Fun
ktion
sen
de
erre
icht w
ird
(nu
r sinn
voll, falls Fu
nktio
nstyp
void
verw
en
de
t wird
).•
In d
er Fu
nktio
n m
ainb
ew
irkt die
retu
rn-A
nw
eisu
ng d
as Pro
gramm
-e
nd
e; d
er W
ert kan
n vo
m B
etrie
bssyste
m au
sgew
erte
t we
rde
n.
12
6.3
. Au
fba
u e
ine
r Fun
ktion
6. Fu
nktio
ne
n
De
klaratio
n:
•Je
de
Fun
ktion
mu
ss vor ih
rer V
erw
en
du
ng d
ekla
riert
we
rde
n.
•D
er so
g. Fun
ktion
spro
totyp
legt d
ie Sch
nittste
lle zu
m A
ufru
fd
er Fu
nktio
n fe
st (Nam
e d
er Fu
nktio
n; D
aten
type
n, A
nzah
l un
d
Re
ihe
nfo
lge d
er Ü
be
rgabe
param
ete
r).•
Die
Fun
ktion
sde
klaration
(bzw
. de
r Fun
ktion
spro
totyp
) sieh
t aus
wie
die
erste
Zeile
de
r Fun
ktion
sde
finitio
n –
sie w
ird alle
rdin
gs mit
ein
em
Sem
ikolo
n ab
gesch
losse
n.
•B
eisp
iel: f
loatpower(floatx, intk);
Fun
ktion
ma
in:
•D
ie Fu
nktio
n m
ainw
ird b
eim
Start de
s Pro
gramm
s auto
matisch
au
fgeru
fen
.•
Gü
ltige V
ariante
n (lt. C
-Stand
ard):
intmain(void)
intmain(intargc, char*argv[])
13
Glie
de
run
g
6. Fu
nktio
ne
n
Ka
pite
l 6 –
Fun
ktion
en
6.1
Einle
itun
g6
.2Ü
be
rgab
ep
ara
me
ter b
eim
Fun
ktion
sau
fruf
6.3
Au
fba
u e
ine
r Fun
ktion
6
.4Ein
fach
e B
eisp
iele
6.5
Be
ispie
l: Tasch
en
rech
ne
r6
.6Sta
nd
ard
fun
ktion
en
6.7
Loka
le u
nd
glob
ale
Va
riab
len
6.8
An
we
nd
un
g glob
ale
r Va
riab
len
14
6.4
. Einfa
che
Be
ispie
le
6. Fu
nktio
ne
n
Be
ispie
l 1: M
inim
um
von
2 ga
nze
n Za
hle
n b
estim
me
n
•A
ufru
fparam
ete
r:zw
ei In
tege
rzahle
n•
Rü
ckgabe
we
rt:In
tege
rzahl
•Fu
nktio
nsp
roto
typ:intimin(inta, intb);
#include <stdio.h>
intimin(inta, intb);
intmain(void)
{
inti, j, k;
i= 3;
j = 7;
k = imin(i, j);
printf("Min = %d\n", k);
k = imin(i, 234);
printf("Min = %d\n", k);
return0;
}
Au
fruf d
er Fu
nktio
n im
in
De
klaration
von
imin
(Fun
ktion
spro
totyp
)
15
6.4
. Einfa
che
Be
ispie
le
6. Fu
nktio
ne
n
Be
ispie
l 3: M
inim
um
von
2 ga
nze
n Za
hle
n,ke
in R
ückga
be
we
rt
•D
ie Fu
nktio
n so
lldas M
inim
um
erm
itteln
un
d au
ch au
sgeb
en
•A
ufru
fparam
ete
r:zw
ei In
tege
rzahle
n•
Rü
ckgabe
we
rt:vo
id•
Fun
ktion
spro
totyp
:voidimin(inta, intb);
Be
ispie
l 2: M
inim
um
von
zwe
i Fließ
kom
ma
zah
len
•A
ufru
fparam
ete
r:zw
ei Flie
ßko
mm
azahle
n (flo
ato
de
r do
ub
le)
•R
ückgab
ew
ert:
Fließ
kom
mazah
l•
Fun
ktion
spro
totyp
:floatimin(floata, floatb);
od
er: d
ouble imin(double a, double b);
16
Glie
de
run
g
6. Fu
nktio
ne
n
Ka
pite
l 6 –
Fun
ktion
en
6.1
Einle
itun
g6
.2Ü
be
rgab
ep
ara
me
ter b
eim
Fun
ktion
sau
fruf
6.3
Au
fba
u e
ine
r Fun
ktion
6
.4Ein
fach
e B
eisp
iele
6.5
Be
ispie
l: Tasch
en
rech
ne
r6
.6Sta
nd
ard
fun
ktion
en
6.7
Loka
le u
nd
glob
ale
Va
riab
len
6.8
An
we
nd
un
g glob
ale
r Va
riab
len
17
6.5
. Tasch
en
rech
ne
r
6. Fu
nktio
ne
n
Au
fgabe
:E
s soll e
in e
infach
er Tasch
en
rech
ne
r mit zw
ei Fu
nktio
ne
n e
rstellt w
erd
en
. D
er Tasch
en
rech
ne
r kann
zwe
i Inte
gerzah
len
mu
ltiplizie
ren
un
d e
ine
Zahl,
die
de
zimal e
inge
geb
en
wu
rde
, in h
exade
zimale
r Form
wie
de
r ausge
be
n.
Schre
ibe
n Sie
ein
C-P
rogram
m, d
as folge
nd
e A
ufgab
en
erfü
llt: De
r An
we
n-
de
r wird
aufge
ford
ert e
ine
Tasche
nre
chn
erfu
nktio
n au
szuw
ähle
n. N
ach
de
r Au
sfüh
run
g die
ser Fu
nktio
n kan
n e
ine
we
itere
Fun
ktion
ausge
wäh
lt o
de
r das P
rogram
m b
ee
nd
et
we
rde
n.
Einfacher Taschenrechner
(0) Beenden
(1) Multiplikation
(2) Hexadezimalzahl
Bitte wählen Sie: _
Multiplikation
Erste Zahl: _
Zweite Zahl: _
Produkt _ * _ = _
Hexadezimalzahl
Geben Sie eine Dezimalzahl ein: _
Dezimal _ entspricht _ Hexadezimal
18
6.5
. Tasch
en
rech
ne
r
6. Fu
nktio
ne
n
Stru
ktu
rierte
Pro
gra
mm
ieru
ng
•S
chrittw
eis
e V
erfe
ineru
ng
•G
röß
ere
s P
roble
m in
kle
inere
Teilp
roble
me z
erle
gen
•Teilp
roble
me g
egebenenfa
lls w
ieder z
erle
gen
•F
unktio
nen h
elfe
n, g
röß
ere
Pro
ble
me z
u z
erle
gen; je
de
Funktio
n b
earb
eite
t ein
defin
ierte
s, e
infa
ches T
eilp
roble
m
•B
eschrä
nkung a
uf 3
ein
fache K
ontro
llstru
ktu
ren:
1)
Fo
lge
anweisung1;
anweisung2;
2)
Alte
rna
tive
ifelse
switch
3)
Wie
de
rho
lun
gwhile
do while
for
19
6.5
. Tasch
en
rech
ne
r
6. Fu
nktio
ne
n
Teila
ufga
be
n
1)
Ein
gabe
auffo
rde
run
g anze
igen
, Fun
ktion
ausw
ähle
n (1
od
er 2
)E
inge
geb
en
e Zah
l prü
fen
,gege
be
ne
nfalls E
ingab
e w
ied
erh
ole
n�
Fun
ktion
: au
swa
hl
2)
Zwe
i Zahle
n e
inle
sen
M
ultip
likation
du
rchfü
hre
n, P
rod
ukt au
sgeb
en
�Fu
nktio
n: m
ultip
likation
3)
Au
fford
eru
ng zu
r Ein
gabe
ein
er Zah
lD
ezim
alzahl e
inle
sen
, hexad
ezim
al ausge
be
n�
Fun
ktion
: hexd
arste
llun
g
4)
Hau
ptp
rogram
m, A
blau
fsteu
eru
ng
Fun
ktion
ausw
ahlau
frufe
n, gib
t Inte
gerw
ert
zurü
ckG
ew
ählte
Fun
ktion
ausfü
hre
n, ggf. P
rogram
m b
ee
nd
en
ausw
ahle
rne
ut au
frufe
n�
Fun
ktion
: ma
in
20
#include<stdio.h>
intauswahl(void); /* Funktionsdeklarationen */
voidhexdarstellung(void);
voidmultiplikation(void);
intmain(void) /* Hauptprogramm */
{
intwahl;
do
{
wahl= auswahl();
switch(wahl)
{case
1: multiplikation(); break;
case
2: hexdarstellung(); break;
}
}while(wahl!= 0); /* Beenden durch Eingabe von 0 */
return0;
}
6.5
. Tasch
en
rech
ne
r
6. Fu
nktio
ne
n
Ha
up
tpro
gram
m d
es Ta
sche
nre
chn
ers:
21
Glie
de
run
g
6. Fu
nktio
ne
n
Ka
pite
l 6 –
Fun
ktion
en
6.1
Einle
itun
g6
.2Ü
be
rgab
ep
ara
me
ter b
eim
Fun
ktion
sau
fruf
6.3
Au
fba
u e
ine
r Fun
ktion
6
.4Ein
fach
e B
eisp
iele
6.5
Be
ispie
l: Tasch
en
rech
ne
r6
.6Sta
nd
ard
fun
ktion
en
6.7
Loka
le u
nd
glob
ale
Va
riab
len
6.8
An
we
nd
un
g glob
ale
r Va
riab
len
22
6.6
. Stan
da
rdfu
nktio
ne
n
6. Fu
nktio
ne
n
Be
im P
rogram
mie
ren
gibt e
s ein
e R
eih
e vo
n Stan
dard
aufgab
en
, d
ie im
me
r wie
de
r auftre
ten
:
•B
ere
chn
un
g de
r Qu
adratw
urze
l
•n
-teP
ote
nz e
ine
r Zahl b
ere
chn
en
•trigo
no
me
trische
Fun
ktion
en
•E
in-
un
d A
usgab
e
Hie
rfür e
xistiere
n b
ere
its fertige
Stan
da
rdfu
nktio
ne
n–
no
rmie
rt im
AN
SI-Stand
ard. Sie
sind
in p
raktisch alle
n P
rogram
mie
rum
-ge
bu
nge
nvo
rhan
de
n.
Au
f de
n fo
lgen
de
n Fo
lien
we
rde
n ve
rschie
de
ne
Gru
pp
en
von
Stan
dard
fun
ktion
en
vorge
stellt (vie
le w
eite
re B
eisp
iele
find
en
sich
im In
tern
et o
de
r in d
er O
nlin
e-H
ilfe).
23
6.6
. Stan
da
rdfu
nktio
ne
n
6. Fu
nktio
ne
n
Qu
ad
ratw
urze
l double sqrt(double x)
Po
ten
zfun
ktio
ndouble pow(double x,double y)
Exp
on
en
tialfu
nk
tion
double exp(double x)
Na
türlich
er Lo
garith
mu
sdouble log(double x)
Loga
rithm
us
zur
Ba
sis 10
double log10(double x)
Ab
solu
ter B
etra
gdouble fabs(double x)
Sin
us
double sin(double x)
Ko
sinu
sdouble cos(double x)
Tan
gen
sdouble tan(double x)
Arcu
sS
inu
sdouble asin(double x)
Arcu
s Ko
sinu
sdouble acos(double x)
Arcu
s Tan
gen
sdouble atan(double x)
Sin
us H
yp
erb
olicu
sdouble sinh(double x)
Ko
sinu
s Hy
pe
rbo
licus
double cosh(double x)
Tan
gen
sH
yp
erb
olicu
sdouble tanh(double x)
xy
=
yx
Math
em
atische
Stan
da
rdfu
nktio
ne
n:#include<math.h>
24
6.6
. Stan
da
rdfu
nktio
ne
n
6. Fu
nktio
ne
n
/* math.h--Definitions for the
math floating point package. */
double cos(double x);
double sin(double x);
double tan(double x);
double tanh(double x);
double fabs(double x);
double acos(double x);
double asin(double x);
double cosh(double x);
double sinh(double x);
double exp(double x);
double pow(double base, double power);
double sqrt(double x);
#defineM_E
2.7182818284590452354
#defineM_PI
3.14159265358979323846
. . .
Au
sschn
itt au
s de
r He
ad
er-D
atei m
ath.h
:
25
6.6
. Stan
da
rdfu
nktio
ne
n
6. Fu
nktio
ne
n
Ve
rarb
eitu
ng vo
n Ze
iche
n:#include<ctype.h>
intisalnum(intc);
Ist c ein
Bu
chstab
e o
de
r ein
e Ziffe
r
intisalpha(intc);
Ist c ein
Bu
chstab
e?
int iscntrl(int c);
Ist c ein
Steu
erze
iche
n?
int isdigit(int c);
Ist c ein
e Ziffe
r?
int isgraph(int c);
Ist c ein
dru
ckbare
s Zeich
en
(auß
er Le
erze
iche
n)?
int islower(int c);
Ist c ein
Kle
inb
uch
stabe
?
int tolower(int c);
Um
wan
dlu
ng
von
c in e
ine
n K
lein
bu
chstab
en
int toupper(int c);
Um
wan
dlu
ng vo
n c in
ein
en
Gro
ßb
uch
stabe
n
int isprint(int c);
Ist c ein
dru
ckbare
s Zeich
en
?
int ispunct(int c);
Ist c ein
Inte
rpu
nktio
nsze
iche
n?
int isspace(int c);
Ist c ein
Lee
rzeich
en
/Tabu
latur/Ze
ilen
um
bru
ch?
int isupper(int c);
Ist c ein
Gro
ßb
uch
stabe
?
intisxdigit(intc);
Ist c ein
e H
exadezim
alziffer?
26
6.6
. Stan
da
rdfu
nktio
ne
n
6. Fu
nktio
ne
n
Ein-
un
d A
usga
be
:#include<stdio.h>
printf, scanf
–A
usgab
e au
f Bild
schirm
fprintf, fscanf
–E
in-/A
usgab
e m
it Date
ien
getchar
–E
inze
lne
s Zeich
en
ein
lese
n
„Stan
da
rd-Lib
rary“, V
ersch
ied
en
es:
#include<stdlib.h>
rand
–In
tege
r-Zufallszah
l zwisch
en
0 u
nd
RA
ND
_M
AX
abs, labs
–A
bso
lute
r Be
trag von
Inte
ger-
un
d Lo
ng-V
ariable
n(ve
rgl. fabs
aus m
ath.h
für D
ou
ble
-Variab
len
)
Ve
rarb
eitu
ng vo
n D
atum
, Uh
rzeit:
#include<time.h>
Arb
eit m
it Zeich
en
kette
n:#include<string.h>
27
Glie
de
run
g
6. Fu
nktio
ne
n
Ka
pite
l 6 –
Fun
ktion
en
6.1
Einle
itun
g6
.2Ü
be
rgab
ep
ara
me
ter b
eim
Fun
ktion
sau
fruf
6.3
Au
fba
u e
ine
r Fun
ktion
6
.4Ein
fach
e B
eisp
iele
6.5
Be
ispie
l: Tasch
en
rech
ne
r6
.6Sta
nd
ard
fun
ktion
en
6.7
Loka
le u
nd
glob
ale
Va
riab
len
6.8
An
we
nd
un
g glob
ale
r Va
riab
len
28
6.7
. Loka
le u
nd
glob
ale
Va
riab
len
6. Fu
nktio
ne
n
#include<stdio.h>
intimin(inti, intk);
intmain(void)
{
inti, j, k;
i = 3; j = 7;
k = imin(i, j);
printf("Min = %d\n", k);
k = imin(i, 234);
printf("Min = %d\n", k);
return0;
}
intimin(inti, intk)
{
intj;
if(i < k)
j = i;
elsej = k;
returnj;
}
Was p
assiert, w
en
n w
ir de
n Fu
nktio
nsp
arame
tern
un
d d
er V
ariable
n
in d
er Fu
nktio
n im
ind
ie N
ame
n i, k u
nd
j geb
en
(Ach
tun
g: In d
er
Fun
ktion
ma
ingib
t es e
be
nfalls V
ariable
n i, j u
nd
k…)?
Ist das e
rlaub
t? (��� �Ja
!) Be
lege
n d
ie V
ariable
n d
ie gle
iche
n Sp
eich
er-
zelle
n, ko
mm
t es zu
„Üb
ersch
ne
idu
nge
n“? (��� �
Ne
in!)
29
6.7
. Loka
le u
nd
glob
ale
Va
riab
len
6. Fu
nktio
ne
n
Lo
kale
Varia
ble
n:
•Lokale
Varia
ble
n w
erd
en im
Kopf e
iner F
unktio
n (w
ie d
ie
Varia
ble
n i u
nd k
bei d
er F
unktio
n im
in) o
der in
nerh
alb
ein
er
Funktio
n d
efin
iert (w
ie d
ie V
aria
ble
j in d
er F
unktio
n im
inoder
die
Varia
ble
n i, j, k
und n
in d
er F
unktio
n m
ain
).
•S
ie d
ürfe
n b
zw
. können n
icht v
on a
ndere
n F
unktio
nen v
er-
wendet w
erd
en.
•N
ur w
ähre
nd e
ine F
unktio
n b
earb
eite
t wird
, ist S
peic
herp
latz
für d
ie lo
kale
n V
aria
ble
n d
er F
unktio
n re
serv
iert; n
ach B
een-
dig
ung
der F
unktio
n g
ibt e
s d
iese V
aria
ble
n n
icht m
ehr.
•Lokale
Varia
ble
n, d
ie d
en g
leic
hen N
am
en b
esitz
en, a
ber in
unte
rschie
dlic
hen F
unktio
nen d
efin
iert s
ind, h
aben n
ichts
mit-
ein
ander z
u tu
n (w
ie d
ie z
wei V
aria
ble
n j in
den F
unktio
nen
main
und im
in); s
ie h
aben n
ur z
ufä
llig d
en g
leic
hen N
am
en.
30
6.7
. Loka
le u
nd
glob
ale
Va
riab
len
6. Fu
nktio
ne
n
#include<stdio.h>
voidimin(inta, intb);
intk;
intmain(void)
{
inti = 3, j = 7;
imin(i, j);
printf("Min = %d\n", k);
k= 17; imin(k, 234);
printf("Min = %d\n", k);
return0;
}voidimin(inta, intb)
{
if(a < b)
k= a;
elsek= b;
}
Be
ispie
l für e
ine
glob
aleV
ariable
: k ist sow
oh
l ind
er Fu
nktio
n m
ainals
auch
in im
insich
tbar!
We
lche
Au
sgab
e lie
fert
die
ses P
rogra
mm
?
31
6.7
. Loka
le u
nd
glob
ale
Va
riab
len
6. Fu
nktio
ne
n
Glo
bale
Varia
ble
n:
•G
lobale
Varia
ble
n w
erd
en a
uß
erh
alb
von F
unktio
nen, m
eis
t
am
Pro
gra
mm
anfa
ng d
efin
iert.
•S
ie e
xis
tiere
n w
ähre
nd d
er g
esam
ten P
rogra
mm
laufz
eit,
d. h
. es s
ind w
ähre
nd d
er g
esam
ten P
rogra
mm
laufz
eit
Speic
herz
elle
n fü
r die
glo
bale
n V
aria
ble
n re
serv
iert.
•S
ie d
ürfe
n v
on a
llen F
unktio
nen v
erw
endet w
erd
en, a
uß
er
es g
ibt in
nerh
alb
ein
er F
unktio
n e
ine lo
kale
Varia
ble
mit
dem
gle
ichen N
am
en –
lokale
Varia
ble
hat V
orra
ng; in
die
sem
Fall k
ann d
ie F
unktio
n n
icht a
uf d
ie g
lobale
Varia
ble
zugre
ifen (d
ie g
lobale
Varia
ble
ist „u
nsic
htb
ar“).
•Typis
che A
nw
endung g
lobale
r Varia
ble
n: In
form
atio
nsaus-
tausch z
wis
chen F
unktio
nen; s
pezie
ll zur g
leic
hzeitig
en
R
ückg
ab
e m
eh
rere
r Werte
aus e
iner F
unktio
n.
32
Glie
de
run
g
6. Fu
nktio
ne
n
Ka
pite
l 6 –
Fun
ktion
en
6.1
Einle
itun
g6
.2Ü
be
rgab
ep
ara
me
ter b
eim
Fun
ktion
sau
fruf
6.3
Au
fba
u e
ine
r Fun
ktion
6
.4Ein
fach
e B
eisp
iele
6.5
Be
ispie
l: Tasch
en
rech
ne
r6
.6Sta
nd
ard
fun
ktion
en
6.7
Loka
le u
nd
glob
ale
Va
riab
len
6.8
An
we
nd
un
g glob
ale
r Va
riab
len
33
6.8
. An
we
nd
un
g glob
ale
r Va
riab
len
6. Fu
nktio
ne
n
Au
fgab
e:
Erste
llen
Sie e
in P
rogram
m zu
r Lösu
ng q
uad
ratische
r Gle
ichu
nge
n
mit d
er p
q-Fo
rme
l. Löse
n Sie
die
qu
adratisch
e G
leich
un
g in e
ine
r Fu
nktio
n intqsolve(double p, double q)
un
d ge
be
n
Sie b
eid
e N
ullste
llen
in d
en
glob
alen
Variab
len
x1 u
nd
x2 zu
rück.
Die
Fun
ktion
qso
lvegib
t in ih
rem
Inte
ger-R
ückgab
ew
ert e
ine
1
zurü
ck, falls die
Gle
ichu
ng ge
löst w
erd
en
kon
nte
, and
ern
falls ein
e 0
.
q2 p
2 px
0q
px
x
2
1,2
2
−
±
−=
⇒
=+
+
34
6.8
. An
we
nd
un
g glob
ale
r Va
riab
len
6. Fu
nktio
ne
n
#include<stdio.h>
#include<math.h>
doublex1, x2;
intqsolve(doublep, doubleq);
intmain(void)
{
doublep, q;
printf(" 2 \n");
printf(" x + px + q = 0\n\n");
printf("p eingeben: "); scanf("%lf", &p);
printf("q eingeben: "); scanf("%lf", &q);
if(qsolve(p, q) != 0)
printf("Nullstellen: %f, %f\n", x1, x2);
else
printf("Keine Nullstellen!\n");
return0;
} Hau
ptp
rog
ram
m m
it Au
fruf d
er F
un
ktio
n q
so
lve:
1
Ka
pite
l 7
Zu
sam
me
ng
ese
tzte D
ate
nty
pe
n,
Ve
kto
ren
, Ze
iche
nk
ette
n
2
Glie
de
run
g
7. Zu
samm
en
gese
tzte D
aten
type
n
Ka
pite
l 7 –
Zu
sam
me
ng
ese
tzte D
ate
nty
pe
n
7.1
Ve
kto
ren
7.2
So
rtiere
n e
ine
s Ve
kto
rs
7.3
Me
hrd
ime
nsio
na
le Fe
lde
r
7.4
Um
ga
ng
mit e
in-/zw
eid
ime
nsio
na
len
Feld
ern
7.5
Ze
iche
nk
ette
n, S
tring
s
3
7.1
. Ve
kto
ren
7. Zu
samm
en
gese
tzte D
aten
type
n
Au
fga
be
:
Es so
ll ein
Pro
gramm
zur V
ersu
chsau
swe
rtun
g erste
llt we
rde
n:
•B
is zu 1
00
Me
sswe
rte e
inle
sen
•M
essw
erte
zur K
on
trolle
wie
de
r ausge
be
n
•M
ittelw
ert u
nd
Maxim
um
be
rech
ne
n
Es w
erd
en
dazu
10
0 V
ariable
n vo
m Typ
float o
de
r do
ub
le b
en
ötigt.
Es w
äre m
öglich
–ab
er se
hr u
mstän
dlich
–zu
die
sem
Zwe
ck 10
0
versch
ied
en
e V
ariable
n zu
de
finie
ren
.
(Wa
s wü
rde
be
i ein
er E
rwe
iteru
ng
au
f 10
00
We
rte p
assie
ren
?)
Ein
fach
er: D
efin
ition
ein
es V
ek
tors m
it 10
0 E
lem
en
ten
4
De
finitio
n e
ine
s Ve
kto
rs:
double x[100];
•R
ese
rviert 1
00
Spe
iche
rplätze
vom
Typ d
ou
ble
•D
ie A
nzah
l de
r Ele
me
nte
sollte
als In
teg
er-K
on
stan
tean
gege
be
n
we
rde
n, Fo
lgen
de
s ist in älte
ren
Varian
ten
von
C so
wie
in C
++
n
icht e
rlau
bt:
float
x[dim];
•D
ie e
inze
lne
n E
lem
en
te d
es V
ekto
rs liege
n im
Hau
ptsp
eich
er in
au
fein
and
erfo
lgen
de
n Sp
eich
erze
llen
•float x[4] = {2.0, 4.0, 0.0, 1.2};
int z[3] = {1, 5, 10};
int z[] = {1, 5, 10};
7.1
. Ve
kto
ren
7. Zu
samm
en
gese
tzte D
aten
type
n
An
zah
l de
r Ele
me
nte
Na
me
Da
ten
typ
De
finitio
n u
nd
Initia
lisieru
ng
zug
leich
!
Feh
ler: „d
im“ ist ke
ine
Ko
nsta
nte
5
7.1
. Ve
kto
ren
7. Zu
samm
en
gese
tzte D
aten
type
n
Zu
griff a
uf e
inze
lne
Ele
me
nte
:
x[0] = 5.5;
Zuw
eisu
ng an
Ele
me
nt N
r. 0x[1] = y;
Zuw
eisu
ng an
Ele
me
nt N
r. 1x[k] = y;
(k+1
)-tes
Ele
me
nt d
es V
ekto
rs, k mu
ss
Inte
gervariab
leo
de
r -kon
stante
sein
Ein
ein
zeln
es E
lem
en
t x[k] de
s Ve
ktors kan
n w
ie e
ine
no
rmale
d
ou
ble
-Variab
le ve
rwe
nd
et w
erd
en
:
x[k] = x[3];
printf("Sechster Wert im Vektor: %f", x[5]);
if (x[i] > x[i+1])
printf("Groesser!\n");
Be
ach
te:
•In
de
x läuft vo
n 0
bis 9
9 (u
nd
nich
t etw
a von
1 b
is 10
0)
•In
de
x darf n
icht zu
groß
we
rde
n; x[3
91
] wird
vom
Co
mp
iler
nich
t erkan
nt!
6
7.1
. Ve
kto
ren
7. Zu
samm
en
gese
tzte D
aten
type
n
Teila
ufg
ab
en
/Fu
nk
tion
en
:
1)int einlesen(void)
-Zu
näch
st An
zahl d
er vo
rhan
de
ne
n M
essw
erte
abfrage
n-
Me
sswe
rte d
er R
eih
e n
ach e
inle
sen
, Ele
me
nte
x[0] b
is x[zahl-1
] be
lege
n-
Au
frufp
arame
ter: ke
ine
(void
)-
Rü
ckgabe
we
rt: An
zahl (in
t)
2)void ausgeben(int n)
-A
ufru
fparam
ete
r: n –
Zahl d
er e
inge
lese
ne
n M
essw
erte
-Fu
nktio
n m
uss w
issen
, wie
vie
le E
lem
en
te v
on
x tatsä
chlich
Me
sswe
rte sin
d
-R
ückgab
ew
ert: ke
ine
r (void
)
3)double mittelwert(int n)
-A
ufru
fparam
ete
r: n –
Zahl d
er e
inge
lese
ne
n M
essw
erte
-R
ückgab
ew
ert: M
ittelw
ert (d
ou
ble
)
4)double maximum(int n)
-A
ufru
fparam
ete
r: n –
Zahl d
er e
inge
lese
ne
n M
essw
erte
-R
ückgab
ew
ert: M
aximu
m (d
ou
ble
)
7
7.1
. Ve
kto
ren
7. Zu
samm
en
gese
tzte D
aten
type
n
#include <stdio.h>
#defineSIZE 100
inteinlesen(void);
voidausgeben(intn);
doublemittelwert(intn);
doublemaximum(intn);
doublex[SIZE];
intmain(void)
{
doublexmit, xmax; intanzahl;
anzahl = einlesen(); /* Messwerte eingeben */
ausgeben(anzahl); /* Messwerte ausgeben */
xmit = mittelwert(anzahl); /* Mittelwert berechnen */
xmax = maximum(anzahl); /* Maximum berechnen */
printf("Mittelwert = %f\n", xmit);
printf("Maximalwert = %f\n", xmax);
return0;
}
Ha
up
tpro
gra
mm
,
Fu
nk
tionmain
De
finitio
n e
ine
s Ve
kto
rs
mit 1
00
do
ub
le-E
lem
en
ten
8
7.1
. Ve
kto
ren
7. Zu
samm
en
gese
tzte D
aten
type
n
/*Es werden alle n Messwertein demVektorx[]
durchsucht; das Maximum wird zurückgegeben */
doublemaximum(intn)
{
doublemax;
inti;
max = x[0];
for(i=1; i<n; i++)
{
if(x[i] > max)
max = x[i];
}returnmax;
} Be
ispie
l: Fun
ktion
ma
xim
um
zur E
rmittlu
ng d
es m
ax. Me
sswe
rts.
Glo
ba
ler V
ek
tor x
[10
0] m
it Me
sswe
rten
,
Fu
nk
tion
spa
ram
ete
r n (A
nza
hl M
essw
erte
),
lok
ale
Va
riab
len
ma
x (M
ax
imu
m), i (Z
äh
ler)
Initia
lisieru
ng
: ma
x =
x[0
]
Fü
r alle
i vo
n 1
bis e
insch
ließ
lich (n
-1)…
x[i] >
ma
x?
JaN
ein
ma
x =
x[i]
Rü
ckg
ab
ew
ert d
er F
un
ktio
n: m
ax
Wa
s pa
ssiert b
ei n
==
0…
?
9
7.1
. Ve
kto
ren
7. Zu
samm
en
gese
tzte D
aten
type
n
Au
fga
be
:
•E
rstelle
n Sie
die
Strukto
gramm
e u
nd
C-Q
ue
lltexte
de
r feh
len
de
n
Fun
ktion
en
einlesen
, ausgeben
un
d mittelwert
!
•Ü
be
rsetze
n Sie
das G
esam
tpro
gramm
un
d te
sten
Sie e
s!
•W
as kön
nte
no
ch ve
rbe
ssert w
erd
en
? (Zum
Be
ispie
l die
Ein
gabe
d
er M
essw
erte
: Nich
t erst d
ie A
nzah
l ein
geb
en
un
d d
anach
alle
Me
sswe
rte, so
nd
ern
dire
kt alle M
essw
erte
ein
geb
en
un
d d
urch
E
ingab
e vo
n -1
be
en
de
n. D
as Pro
gramm
kann
dan
n d
ie A
nzah
l au
tom
atisch e
rmitte
ln…
)
•G
eb
en
Sie d
ie M
essw
erte
nich
t üb
er d
ie Tastatu
r ein
, son
de
rn
spe
iche
rn Sie
die
We
rte zu
näch
st in e
ine
r Textd
atei. R
ufe
n Sie
d
ann
Ihr P
rogram
m ü
be
r die
DO
S-Ein
gabe
auffo
rde
run
g auf u
nd
le
sen
Sie d
ie M
essw
erte
pe
r Ein
gabe
um
len
kun
g ein
!
10
Glie
de
run
g
7. Zu
samm
en
gese
tzte D
aten
type
n
Ka
pite
l 7 –
Zu
sam
me
ng
ese
tzte D
ate
nty
pe
n
7.1
Ve
kto
ren
7.2
So
rtiere
n e
ine
s Ve
kto
rs
7.3
Me
hrd
ime
nsio
na
le Fe
lde
r
7.4
Um
ga
ng
mit e
in-/zw
eid
ime
nsio
na
len
Feld
ern
7.5
Ze
iche
nk
ette
n, S
tring
s
11
7.2
. So
rtiere
n e
ine
s Ve
kto
rs
7. Zu
samm
en
gese
tzte D
aten
type
n
Au
fga
be
:
Erw
eite
rn Sie
das M
essw
ertp
rogram
mw
ie fo
lgt:
Nach
de
m E
inle
sen
de
r Me
sswe
rte so
llen
die
se zu
näch
st sortie
rt u
nd
erst d
anach
ausge
geb
en
we
rde
n!
•Sch
reib
en
Sie d
azu e
ine
Fun
ktion
void sortiere(int n)
•D
ie E
lem
en
te vo
n x m
üsse
n so
um
geo
rdn
et w
erd
en
, dass gilt:
x[0
] ≤x
[1] ≤
x[2
] ≤... ≤
x[n
-1]
(für alle
n E
lem
en
te)
•V
erw
en
de
n Sie
zum
Sortie
ren
kein
en
zwe
iten
(Hilfs-)V
ekto
r, so
nd
ern
füh
ren
Sie d
ie So
rtieru
ng d
irekt au
f de
n E
lem
en
ten
de
s Ve
ktors x[] d
urch
!
12
7.2
. So
rtiere
n e
ine
s Ve
kto
rs
7. Zu
samm
en
gese
tzte D
aten
type
n
Ide
e:
So
rtieru
ng
de
s V
ek
tors
mitte
ls „
Bu
bb
le-S
ort“
Ers
ter D
urc
hla
uf:
( 51
4 2
8 ) �
( 15
4 2
8 ) D
ie e
rste
nzw
ei E
lem
en
te v
erg
leic
he
n, ta
usch
en
( 1 5
42
8 ) �
( 1 4
52
8 )
( 1 4
52
8 ) �
( 1 4
25
8 )
( 1 4
2 5
8) �
( 1 4
2 5
8) R
eih
en
folg
e s
timm
t sch
on
, nic
ht ta
usch
en
Zw
eite
r Du
rch
lau
f:( 1
42
5 8
) �( 1
42
5 8
)
( 1 4
25
8 ) �
( 1 2
45
8 ) E
lem
en
teta
usch
en
( 1 2
45
8 ) �
( 1 2
45
8 )
( 1 2
4 5
8) �
( 1 2
4 5
8)
Dritte
r Du
rch
lau
f:( 1
24
5 8
) �( 1
24
5 8
) Im d
ritten
Du
rch
lau
fw
erd
en
ke
ine
Ele
me
nte
( 1 2
45
8 ) �
( 1 2
45
8 ) m
eh
r ve
rtau
sch
t;d
er A
lgo
rithm
us e
rke
nn
t, da
ss
( 1 2
45
8 ) �
( 1 2
45
8 ) d
er V
ekto
r jetz
t so
rtiert is
t un
d s
top
pt
( 1 2
4 5
8) �
( 1 2
4 5
8)
Die
rot m
ark
ierte
n
Ele
me
nte
we
rde
n
ve
rglich
en
un
d
gg
f. ve
rtau
scht
13
7.2
. So
rtiere
n e
ine
s Ve
kto
rs
7. Zu
samm
en
gese
tzte D
aten
type
n
voidsortiere(intn) /* x[] mittels Bubble-Sort sortieren */
{
inti; double
hilf; char
sortiert;
do
/* Schleife wiederholen, bis Vektor sortiert ist */
{
sortiert = 'j'; /* Annahme, x[] ist sortiert */
for(i = 1; i < n; i++)
{
if(x[i] < x[i-1])
{
hilf = x[i]; /* x[i], x[i-1] tauschen */
x[i] = x[i-1];
x[i-1] = hilf;
sortiert = 'n'; /* ...war nicht sortiert */
}
}
}while(sortiert == 'n');
}
Imp
lem
en
tieru
ng
de
s
Bu
bb
le-S
ort-A
lgo
rithm
us
14
Glie
de
run
g
7. Zu
samm
en
gese
tzte D
aten
type
n
Ka
pite
l 7 –
Zu
sam
me
ng
ese
tzte D
ate
nty
pe
n
7.1
Ve
kto
ren
7.2
So
rtiere
n e
ine
s Ve
kto
rs
7.3
Me
hrd
ime
nsio
na
le Fe
lde
r
7.4
Um
ga
ng
mit e
in-/zw
eid
ime
nsio
na
len
Feld
ern
7.5
Ze
iche
nk
ette
n, S
tring
s
15
7.3
. Me
hrd
ime
nsio
na
le Fe
lde
r
7. Zu
samm
en
gese
tzte D
aten
type
n
Pro
ble
m:
Es so
ll ein
C-P
rogram
m zu
m R
ech
ne
n m
it (2-, 3
-, me
hrd
ime
n-
sion
alen
) Matrize
n e
rstellt w
erd
en
. Bislan
g sind
abe
r nu
r e
ind
ime
nsio
nale
Ve
ktore
n b
ekan
nt.
An
we
nd
un
g von
Matrize
n: Lin
eare
Gle
ichu
ngssyste
me
, Finite
-E
lem
en
te-M
eth
od
e (se
hr gro
ße
Matrize
n!), D
reh
imp
uls/Träg-
he
itsmatrix, M
athe
matik/ G
eo
me
trie/C
om
pu
tergrafik u
sw.
�
(als M
atrix
)
Ein
e M
atrix be
sitzt Zeile
n u
nd
Spalte
n �
im C
-Pro
gramm
wird
e
ine
Date
nstru
ktur fü
r zwe
i-/me
hrd
ime
nsio
nale
Feld
er b
en
ötigt.
11
x4
x2
17
x8
x7
21
21
=⋅
+⋅
=⋅
+⋅
=
⋅
11
17
x x
42
87
2 1
16
7.3
. Me
hrd
ime
nsio
na
le Fe
lde
r
7. Zu
samm
en
gese
tzte D
aten
type
n
De
finitio
n e
ine
s zwe
idim
en
sion
ale
n Fe
lde
s:
double a[3][3];
Zugriff au
f ein
zeln
e E
lem
en
te:
a[0][0] = 5.5;
a[0][1] = 1.5;
a[1][0] = 0.5;
a[i][k] = 1.7;
mit
0 ≤
i < 3
un
d0
≤ k
<3
(i un
d k
sind
Va
riab
len
vo
m T
yp
Inte
ge
r)
Za
hl d
er Z
eile
nN
am
eD
ate
nty
pZ
ah
l de
r Sp
alte
n
17
7.3
. Me
hrd
ime
nsio
na
le Fe
lde
r
7. Zu
samm
en
gese
tzte D
aten
type
n
Ele
me
nte
in M
atrixform
:
An
ord
nu
ng im
Hau
ptsp
eich
er:
Die
Ma
trix w
ird ze
ilen
we
ise
im H
au
ptsp
eich
er a
bg
ele
gt!
18
7.3
. Me
hrd
ime
nsio
na
le Fe
lde
r
7. Zu
samm
en
gese
tzte D
aten
type
n
Be
ispie
le:
1)double b[2][3];
(nich
t qu
adratisch
–2
Zeile
n, 3
Spalte
n)
2)
De
finitio
n u
nd
gleich
zeitige
Initialisie
run
g:double b[2][3] = { {2.0,4.0,0.0}, {2.2,4.2,1.2} };
3)#define ZEILEN 1000
#define SPALTEN 500
double d[ZEILEN][SPALTEN];
4)double temp[10][10][10];
3-d
ime
nsio
na
les F
eld
–zu
m B
eisp
ielTe
mp
era
turfe
ld im
Ra
um
:
Jed
em
Gitte
rpu
nkt im
Ra
um
wird
ein
e Te
mp
era
tur zu
ge
ord
ne
t
5)double v[100][100][200][3];
(4 d
ime
nsio
nale
s Feld
)
Jed
em
Gitte
rpu
nkt im
Ra
um
we
rde
n 3
We
rte zu
ge
ord
ne
t –
z. B.
dre
i Ge
schw
ind
igke
itskom
po
ne
nte
n in
ein
em
Strö
mu
ng
sfeld
:
v[2][4][7][0]
vx
am P
un
kt x=2
, y=4
, z=7
v[2][4][7][1]
vy
am P
un
kt x=2
, y=4
, z=7
10
0 ×
10
0 ×
20
0 ×
3 =
6 ×
10
6E
lem
en
teSp
eich
erp
latzbe
darf 6
×1
06
×8
Byte
= 4
8 M
B
Ze
ilen
-u
nd
Sp
alte
na
nza
hl
sollte
n m
it Ko
nsta
nte
n
an
ge
ge
be
n w
erd
en
!
19
Glie
de
run
g
7. Zu
samm
en
gese
tzte D
aten
type
n
Ka
pite
l 7 –
Zu
sam
me
ng
ese
tzte D
ate
nty
pe
n
7.1
Ve
kto
ren
7.2
So
rtiere
n e
ine
s Ve
kto
rs
7.3
Me
hrd
ime
nsio
na
le Fe
lde
r
7.4
Um
ga
ng
mit e
in-/zw
eid
ime
nsio
na
len
Feld
ern
7.5
Ze
iche
nk
ette
n, S
tring
s
20
7.4
. Um
ga
ng
mit e
in-/zw
eid
ime
nsio
na
len
Feld
ern
7. Zu
samm
en
gese
tzte D
aten
type
n
Be
ispie
l 1: A
lle E
lem
en
te d
er M
atrix a auf 0
setze
n
Be
ispie
l 2: Zw
ei M
atrizen
add
iere
n: c =
a + b
Be
ispie
l 3: P
rüfe
n, o
b M
atrix a symm
etrisch
ist(sy
mm
etrisch
e M
atrize
n sin
d „
gu
tartig
“, sie h
ab
en
ree
lle
Eig
en
we
rte u
nd
N lin
ea
r un
ab
hä
ng
ige
Eig
en
ve
kto
ren
…)
Be
ispie
l 4: M
atrix mit V
ekto
r mu
ltiplizie
ren
: y = a ×
x
Be
ispie
l 5: M
ultip
likation
von
zwe
i Matrize
n: c =
a ×b
#define N 10
double a[N][N], b[N][N], c[N][N];
double x[N], y[N];
21
Glie
de
run
g
7. Zu
samm
en
gese
tzte D
aten
type
n
Ka
pite
l 7 –
Zu
sam
me
ng
ese
tzte D
ate
nty
pe
n
7.1
Ve
kto
ren
7.2
So
rtiere
n e
ine
s Ve
kto
rs
7.3
Me
hrd
ime
nsio
na
le Fe
lde
r
7.4
Um
ga
ng
mit e
in-/zw
eid
ime
nsio
na
len
Feld
ern
7.5
Ze
iche
nk
ette
n, S
tring
s
22
7.5
. Ze
iche
nke
tten
, Strin
gs
7. Zu
samm
en
gese
tzte D
aten
type
n
Fra
ge
:
Wie
we
rde
n Ze
iche
nke
tten
(„Strings“) in
de
r Pro
gramm
iersp
rache
C
abge
spe
iche
rt un
d ve
rarbe
itet?
Erste
r An
satz:
char-V
ekto
r verw
en
de
n
charwort[5] = { 'H','a','l','l','o'};
inti;
for(i = 0; i < 5; ++i)
printf("%c", wort[i]);
Na
chte
ile:
•In
itialisieru
ng, A
usgab
e ist u
mstän
dlich
–vie
l Schre
ibarb
eit
•B
ei d
er B
earb
eitu
ng (z. B
. Au
sgabe
mitte
ls prin
tf), mu
ss man
sich m
erke
n, w
ie vie
le B
uch
stabe
n d
as Wo
rt be
sitzt.
23
7.5
. Ze
iche
nke
tten
, Strin
gs
7. Zu
samm
en
gese
tzte D
aten
type
n
s[0]
H72
0100 1000
s[1]
a97
0110 0001
s[2]
l108
0110 1100
s[3]
l108
0110 1100
s[4]
o111
0110 1111
s[5]
\0
00000 0000
Wö
rter w
erd
en
als Zeich
en
kette
n („Strin
gs“) abge
spe
iche
rt. Strings
be
sitzen
ein
ige B
eso
nd
erh
eite
n b
ezü
glich In
itialisieru
ng, Län
geu
nd
En
de
ken
nu
ng, sin
d ab
er im
We
sen
tliche
n n
orm
ale ch
ar-Ve
ktore
n:
char s[]="Hallo";
•E
rzeu
gt un
d in
itialisiert d
en
char-V
ekto
r s
•B
inäre
Nu
ll als En
de
ken
nu
ng,
bin
äre N
ull ≠
ASC
II-Zeich
en
'0'!
•A
nzah
l Ele
me
nte
:B
uch
stabe
nzah
l + 1
•Län
ge d
es V
ekto
rs wird
vom
Co
mp
iler
be
rech
ne
t –ü
be
r rech
te Se
ite b
estim
mt
•B
inäre
Nu
ll wird
als En
de
ken
nu
ng an
geh
ängt
Ein
Strin
g ist e
in ch
ar-V
ek
tor m
it ein
er b
inä
ren
Nu
ll zur E
nd
ek
en
nu
ng24
7.5
. Ze
iche
nke
tten
, Strin
gs
7. Zu
samm
en
gese
tzte D
aten
type
n
Be
ispie
l 1:
Zeich
en
'o' in
"Hallo
" du
rch 'e
' erse
tzen
(�"H
alle")
Be
ispie
l 2:
Au
sgabe
ein
es Strin
gs mitte
ls prin
tf
Be
ispie
l 3:
Ein
lese
n e
ine
s Strings vo
n d
er Tastatu
r
Be
ispie
l 4:
Kle
in-
in G
roß
bu
chstab
en
um
wan
de
ln
Be
ispie
l 5:
He
ade
rdate
i string.h
mit vie
len
Fun
ktion
en
zur
Arb
eit m
it Zeich
en
kette
n
25
7.5
. Ze
iche
nke
tten
, Strin
gs
7. Zu
samm
en
gese
tzte D
aten
type
n
#include <stdio.h>
#include <ctype.h>
intmain(void)
{
inti = 0;
intdiff = 'a'-'A';
chars[] = "Das ist ein Test!";
while(s[i] != 0)
{
if('a'<=s[i] && s[i]<='z')
s[i] = s[i] -diff;
++i;
}printf("%s", s);
return0;
}
Be
ispie
l 4:K
lein
-in
Gro
ßb
uch
stab
en
um
wa
nd
eln
:
26
7.5
. Ze
iche
nke
tten
, Strin
gs
7. Zu
samm
en
gese
tzte D
aten
type
n
Be
ispie
l 5: H
ea
de
rda
tei strin
g.h
•int strlen(str);
–G
ibt d
ie Län
ge e
ine
s Strings zu
rück, zäh
lt Zeich
en
bis zu
r En
de
ken
nu
ng
i = strlen("Hallo");
gibt 5
zurü
ck
(Mit b
inäre
r Nu
ll be
nö
tigt de
r String 6
Ele
me
nte
im ch
ar-Ve
ktor!)
•int strcmp(str1, str2);
–G
ibt 0
zurü
ck, we
nn
be
ide
Zeich
en
kette
n gle
ich sin
d
–E
rgeb
nis ist >
0, w
en
n str1
lexikalisch grö
ße
r ist als str2
–E
rgeb
nis ist <
0, w
en
n str1
lexikalisch kle
ine
r ist als str2"z">"a" "ab"<"abc" "ad"<"af" "ac">"abc"
•V
iele
we
itere
Fu
nk
tion
en
–K
op
iere
n, A
nh
änge
n, U
nte
rteile
n vo
n Ze
iche
nke
tten
,Su
che
n in
Zeich
en
kette
n u
sw.
–V
ergl. O
nlin
e-H
ilfe zu
string.h
!
1
Ka
pite
l 8
Ad
resse
n u
nd
Zeige
r
2
Glie
de
run
g
8. A
dre
ssen
un
d Ze
iger
Ka
pite
l 8 –
Ad
resse
n u
nd
Zeige
r
8.1
De
finitio
n8
.2Ein
fach
e B
eisp
iele
8.3
Zeige
rarith
me
tik un
d V
ekto
ren
8.4
Ve
ktore
n a
ls Fun
ktion
spa
ram
ete
r8
.5M
essw
ertp
rogra
mm
, zwe
i Me
ssreih
en
8.6
Zeige
rarith
me
tik in V
ekto
rschre
ibw
eise
3
8.1
. De
finitio
n
8. A
dre
ssen
un
d Ze
iger
Au
fba
u d
es H
au
ptsp
eich
ers:
•D
er H
aup
tspe
iche
r be
steh
t aus e
ine
r lange
n Se
qu
en
z von
Sp
eich
erze
llen
(jew
eils e
in B
yte gro
ß)
•Je
de
Spe
iche
rzelle
be
sitzt ein
e e
ind
eu
tige N
um
me
r/Ad
resse
•E
ine
Variab
le in
ein
em
C-P
rogram
m b
ele
gt en
tspre
che
nd
ihre
s Typ
s ein
e fe
ste A
nzah
l von
Byte
s
Be
ispie
l: Variab
len
i, j vom
Typ „sh
ort“
•D
ie A
dre
ssen
de
r Va
riab
len
sind
nich
t
ab
solu
t festg
ele
gt –
sie ä
nd
ern
sich zu
m
Be
ispie
l be
im P
rog
ram
mn
eu
start
•D
er P
rog
ram
mie
rer h
at ke
ine
n E
influ
ss
da
rau
f, in w
elch
en
Sp
eich
erze
llen
die
Va
riab
len
lieg
en
4
8.1
. De
finitio
n
8. A
dre
ssen
un
d Ze
iger
Bish
er w
urd
e au
f de
n H
aup
tspe
iche
r (ind
irekt) ü
be
r Variab
len
zu-
gegriffe
n. N
un
folgt d
er (d
irekte
) Zugriff au
f be
stimm
te A
dre
ssen
:
•„Sch
reib
de
n W
ert 1
23
in d
ie in
t-Variab
le an
Ad
resse
10
00
!“„Lie
s de
n W
ert d
er sh
ort-V
ariable
n an
Ad
resse
10
04
!“
•N
ur d
ie K
om
bin
ation
von
Ad
resse
+ V
ariable
ntyp
ide
ntifizie
rt die
Sp
eich
erze
llen
ein
er V
ariable
n e
ind
eu
tig
•U
nte
r de
r „Ad
resse
ein
er V
ariable
n i“ ve
rsteh
en
wir d
ie A
dre
sse
de
r erste
n Sp
eich
erze
lle, w
o d
er W
ert vo
n i ge
spe
iche
rt ist
•U
m d
ie V
aria
ble
i au
f 45
34
zu se
tzen
, ha
be
n w
ir
bish
er d
ie Z
uw
eisu
ng
„i=4534;
“ verw
en
de
t
•N
un
we
rde
n w
ir dire
kt a
uf d
en
Ha
up
tspe
iche
r
zug
reife
n: „Sch
reib d
en W
ert 45
34
in d
iesh
ort-V
aria
ble a
n A
dresse 4
68
!“
5
8.1
. De
finitio
n
8. A
dre
ssen
un
d Ze
iger
Frage
n:
•W
ie e
rhä
lt ma
n d
ie A
dre
sse e
ine
r Va
riab
len
?
•W
ie ka
nn
ma
n e
ine
Ad
resse
zwisch
en
spe
iche
rn?
•W
ie lie
st/be
schre
ibt m
an
ein
e V
aria
ble
, de
ren
Ad
resse
be
kan
nt ist?
•W
elch
e V
orte
ile b
ring
t de
r dire
kte
Zu
griff a
uf d
en
Ha
up
tspe
iche
r?
6
shorti, j;
i = 4534;
j = 2233;
/* i hat den Wert 4534 */
/* &i hat den Wert 468 */
/* Der Typ von i ist short */
/* Der Typ von &i ist "Zeiger auf short" */
8.1
. De
finitio
n
8. A
dre
ssen
un
d Ze
iger
Wie
erh
ält m
an
die
Ad
resse
ein
er V
aria
ble
n?
•Ist i d
er N
ame
ein
er V
ariable
n, so
ist &i d
ie A
dre
sse d
er V
ariable
n
•D
er O
pe
rator &
ist de
r sog. „A
dre
ssop
erato
r“
•E
ine
Ad
resse
ist grun
dsätzlich
ein
e gan
ze Zah
l. Ein
e A
dre
sse ist
allerd
ings ke
ine
no
rmale
sho
rt-o
de
r int-Zah
l, man
sprich
t viel-
me
hr vo
n so
gen
ann
ten
„Zeige
rn“
7
Wie
kan
n m
an
ein
e A
dre
sse zw
ische
nsp
eich
ern
?
•Zu
m A
bsp
eich
ern
de
r Ad
resse
ein
er sh
ort-V
ariable
n b
en
ötigt m
ane
ine
Variab
le vo
m Typ
„Zeige
r auf sh
ort“, e
ine
sog. Ze
igervariab
le
•D
efin
ition
ein
er Ze
igervariab
len
(en
gl. „Po
inte
r“):
short *z;
au
f welch
en D
aten
typN
am
e der V
aria
blen
z ist Zeigerva
riab
le
•z „ze
igt auf“ e
ine
Variab
le vo
m Typ
sho
rt
•D
ie A
dre
sse d
er V
aria
ble
n i w
ird in
de
r Ze
ige
rva
riab
len
z ge
spe
iche
rt:
z = &i; /* z erhält Adresse von i zugewiesen */
•D
irekt n
ach
de
r De
finitio
n e
nth
ält z zu
nä
chst e
ine
n zu
fällig
en
We
rt,
na
ch d
er Z
uw
eisu
ng
„zeig
t z au
f die
Va
riab
le i“
•Z
eig
erv
aria
ble
n sin
d w
ie a
nd
ere
Va
riab
len
: Sie
be
sitzen
ein
en
Na
me
n
un
d e
ine
n W
ert u
nd
kön
ne
n d
urch
Op
era
tore
n v
erä
nd
ert w
erd
en
8.1
. De
finitio
n
8. A
dre
ssen
un
d Ze
iger
8
8.1
. De
finitio
n
8. A
dre
ssen
un
d Ze
iger
Wie
liest/b
esch
reib
t ma
n e
ine
Va
riab
le, d
ere
n A
dre
sse b
eka
nn
t ist?
•U
m au
f ein
e V
ariable
zuzu
greife
n, d
ere
n A
dre
sse b
ekan
nt ist,
verw
en
de
t man
de
n O
pe
rator *
(sog. „In
ha
ltsop
erato
r“):
*z = 17;
��� �D
ie Zeigerva
riab
le z „zeigt a
uf“ ein
e bestim
mte V
aria
ble –
schreib
in d
iese Va
riab
le den
Wert 1
7!
j = *z;
�D
ie Zeigerva
riab
le z „zeigt a
uf“ ein
e bestim
mte V
aria
ble –
lies den
Wert d
ieser Va
riab
len u
nd
speich
ere ihn
in d
er Va
riab
len j!
Bea
chte:
De
r Op
era
tor *
be
sitzt versch
ied
en
e B
ed
eu
tun
ge
n:
•M
ultip
likatio
nso
pe
rato
r (x1 = 3 * y1;
)•
De
finitio
n e
ine
r Ze
ige
rvaria
ble
n (int*ptr;
)•
Inh
altso
pe
rato
r(y = *ptr;
)
��� �D
ie kon
krete Bed
eutu
ng
ergib
t sich jew
eils au
s dem
Zusa
mm
enh
an
g!
9
Glie
de
run
g
8. A
dre
ssen
un
d Ze
iger
Ka
pite
l 8 –
Ad
resse
n u
nd
Zeige
r
8.1
De
finitio
n8
.2Ein
fach
e B
eisp
iele
8.3
Zeige
rarith
me
tik un
d V
ekto
ren
8.4
Ve
ktore
n a
ls Fun
ktion
spa
ram
ete
r8
.5M
essw
ertp
rogra
mm
, zwe
i Me
ssreih
en
8.6
Zeige
rarith
me
tik in V
ekto
rschre
ibw
eise
10
8.2
. Einfa
che
Be
ispie
le
8. A
dre
ssen
un
d Ze
iger
Be
ispie
l 1:
Fun
ktion
„po
we
r“ zur B
ere
chn
un
g von
Po
ten
zen
; R
ückgab
e d
es E
rgeb
nisse
s mitte
ls Zeige
r (un
d n
icht p
er „re
turn
“ o
de
r üb
er e
ine
glob
ale V
ariable
)
#include<stdio.h>
voidpower(floatbasis, intexp, float*pErg);
intmain(void)
{
floatx1, x2, y; intn;
x1 = 3.0; n = 4;
power(x1, n, &y); printf("%f\n", y);
x2 = 3.75;
power(x2, 5, &y); printf("%f\n", y);
return0;
}
11
8.2
. Einfa
che
Be
ispie
le
8. A
dre
ssen
un
d Ze
iger
Be
ispie
l 2:
Fun
ktion
„qso
lve“ zu
m Lö
sen
qu
adratisch
er G
leich
un
-ge
n, R
ückgab
e b
eid
er
Nu
llstelle
n m
ittels Ze
iger (statt ü
be
r glob
ale
Variab
len
)
#include<stdio.h>
#include<math.h>
intqsolve(doublep, double q, double *x1, double *x2);
intmain(void)
{
double p, q, null1, null2;
printf("p eingeben: "); scanf("%lf", &p);
printf("q eingeben: "); scanf("%lf", &q);
if(qsolve(p, q, &null1, &null2) != 0)
printf("Nullstellen: %f, %f\n", null1, null2);
else
printf("Keine Nullstellen!\n");
return0;
}
12
8.2
. Einfa
che
Be
ispie
le
8. A
dre
ssen
un
d Ze
iger
Be
ispie
l 3:
Das fo
lgen
de
Pro
gramm
kann
oh
ne
Feh
ler ü
be
rsetzt w
erd
en
.N
ach d
em
Pro
gramm
start passie
rt allerd
ings Fo
lgen
de
s:
•M
anch
mal stü
rzt das P
rogram
m ab
•M
anch
mal arb
eite
t es sch
ein
bar ko
rrekt
•M
anch
mal w
ird e
in falsch
er W
ert au
sgege
be
n
#include<stdio.h>
intmain(void)
{
int*z;
*z = 5;
printf("*z = %d", *z);
return0;
}
Wo
liegt d
as P
rob
lem?
13
Glie
de
run
g
8. A
dre
ssen
un
d Ze
iger
Ka
pite
l 8 –
Ad
resse
n u
nd
Zeige
r
8.1
De
finitio
n8
.2Ein
fach
e B
eisp
iele
8.3
Zeige
rarith
me
tik un
d V
ekto
ren
8.4
Ve
ktore
n a
ls Fun
ktion
spa
ram
ete
r8
.5M
essw
ertp
rogra
mm
, zwe
i Me
ssreih
en
8.6
Zeige
rarith
me
tik in V
ekto
rschre
ibw
eise
14
8.3
. Zeige
rarith
me
tik un
d V
ekto
ren
8. A
dre
ssen
un
d Ze
iger
Zeige
rarith
me
tik: Fü
r Zeige
r gelte
n e
igen
e R
ech
en
rege
ln, d
ie vo
n d
en
arithm
eti-
sche
nR
ech
en
rege
ln fü
r „no
rmale
“ ganze
Zahle
n ab
we
iche
n.
12
3
23
4
11
1
99
9
X[0]
X[1]
X[2]
X[3]
1100
1101
1102
1103
1104
1105
1106
1107
shortx[4];
short*z1, *z2, *z3, *z4;
inti = 3;
1098
1099
/* Nach folgender Anweisung zeigt */
/* z4 vor den Beginndes Vektors */
/* x (Adresse 1098) –Vorsicht!! */
z4 = z1 –1;
z1 = &x[0]; /* z1 zeigt auf x[0] */
z2 = z1 + 1; /* z2 zeigt auf x[1] */
z3 = z1 + i; /* z3 zeigt auf x[i] */
15
8.3
. Zeige
rarith
me
tik un
d V
ekto
ren
8. A
dre
ssen
un
d Ze
iger
Die
Zeige
rarithm
etik ist b
ei d
er A
rbe
it mit V
ekto
ren
be
son
de
rs p
raktisch. So
lassen
sich se
hr e
infach
Ve
ktore
n „d
urch
laufe
n“:
inti, x[100];
int*ptr;
for(i = 0; i < 100; ++i)
{
/* Zeiger auf i-tesVektorelement: */
ptr= &x[0] + i;
/* Ausgabe des i-tenVektorelements: */
printf("%d\n", *ptr);
}
22
Be
ispie
l: Im V
ekto
r x solle
n d
ie Q
uad
ratzahle
n vo
n 0
2b
is 99
2
gesp
eich
ert w
erd
en
.
16
Glie
de
run
g
8. A
dre
ssen
un
d Ze
iger
Ka
pite
l 8 –
Ad
resse
n u
nd
Zeige
r
8.1
De
finitio
n8
.2Ein
fach
e B
eisp
iele
8.3
Zeige
rarith
me
tik un
d V
ekto
ren
8.4
Ve
ktore
n a
ls Fun
ktion
spa
ram
ete
r8
.5M
essw
ertp
rogra
mm
, zwe
i Me
ssreih
en
8.6
Zeige
rarith
me
tik in V
ekto
rschre
ibw
eise
17
doublepower(doublea, intk);
int
main(void)
{
double
x, z; int
n;
x = 3.0; n = 4;
z = power(x, n);
...}doublepower(doublea, intk)
{
int
i; double
y = 1.0;
for(i = 1; i <= k; i++)
y = y * a;
return
y;
}
8.4
. Ve
ktore
n a
ls Fun
ktion
spa
ram
ete
r
8. A
dre
ssen
un
d Ze
iger
Wird
ein
e „n
orm
ale“ V
ariable
als Param
ete
r an e
ine
Fun
ktion
üb
erge
be
n,
dan
n w
ird ste
ts de
r We
rt de
r Variab
len
üb
erge
be
n. D
er W
ert d
er V
aria-b
len
wird
be
im A
ufru
f in e
ine
n lo
kalen
Param
ete
r de
r Fun
ktion
kop
iert.
18
8.4
. Ve
ktore
n a
ls Fun
ktion
spa
ram
ete
r
8. A
dre
ssen
un
d Ze
iger
Pro
ble
m:
Die
Fun
ktion
„qu
adrat“ so
ll die
erste
n n
Ele
me
nte
ein
es V
ekto
rs, d
er als P
arame
ter ü
be
rgeb
en
wird
, mit Q
uad
ratzahle
n b
ele
gen
Bei d
er Üb
erga
be ein
es Vekto
rs a
n ein
e Fun
ktion
wä
re es zu
au
fwen
dig
, den
gesa
mten
Vek-
tor
mit a
ll seinen
Elemen
ten zu
ko
pieren
.
Ma
n ü
berg
ibt sta
ttdessen
einen
Zeig
er au
f da
s An
fan
gselem
ent.
Die a
ufg
erufen
e Fun
ktion
greift
da
nn
mittels Zeig
erarith
metik
au
f den
Orig
ina
l-Vekto
rzu
.
voidquadrat(int*ptr, intn);
intmain(void)
{
intx[100];
quadrat(&x[0], 50);
...}voidquadrat(int*ptr, intn)
{
inti;
for(i = 0; i < n; i++)
*(ptr+ i) = i * i;
}
19
Glie
de
run
g
8. A
dre
ssen
un
d Ze
iger
Ka
pite
l 8 –
Ad
resse
n u
nd
Zeige
r
8.1
De
finitio
n8
.2Ein
fach
e B
eisp
iele
8.3
Zeige
rarith
me
tik un
d V
ekto
ren
8.4
Ve
ktore
n a
ls Fun
ktion
spa
ram
ete
r8
.5M
essw
ertp
rogra
mm
, zwe
i Me
ssreih
en
8.6
Zeige
rarith
me
tik in V
ekto
rschre
ibw
eise
20
8.5
. Me
sswe
rtpro
gram
m, zw
ei M
essre
ihe
n
8. A
dre
ssen
un
d Ze
iger
Au
fgab
e:
Bislan
g verarb
eite
t das M
essw
ertp
rogram
me
ine
ein
-ze
lne
Me
ssreih
em
it max. 1
00
Me
sswe
rten
. Die
Me
ss-re
ihe
wird
in e
ine
m glo
bale
n V
ekto
r double x[100]
abge
spe
iche
rt.
Das P
rogram
m so
ll so e
rwe
itert w
erd
en
, dass e
ine
zwe
ite
Me
ssreih
em
it eb
en
falls max. 1
00
Me
sswe
rten
verw
altet
we
rde
n kan
n.
21
8.5
. Me
sswe
rtpro
gram
m, zw
ei M
essre
ihe
n
8. A
dre
ssen
un
d Ze
iger
#defineDIM 100
doublex[DIM], y[DIM];
doublemittelwertx(intn);
doublemittelwerty(intn);
intmain(void)
{
double xmittel, ymittel;
intanzahlx, anzahly;
anzahlx= einlesenx();
anzahly= einleseny();
xmittel= mittelwertx(anzahlx);
ymittel= mittelwerty(anzahly);
return0;
}
doublemittelwertx(intn)
{
inti; double z = 0.0;
for(i = 0; i < n; i++)
z = z + x[i];
returnz = z / (double)n;
}double mittelwerty(intn)
{
inti; double z = 0.0;
for(i = 0; i < n; i++)
z = z + y[i];
returnz / (double)n;
}
Va
rian
te 1: Zw
ei Vekto
ren x[1
00
], y[10
0] u
nd
sepa
rate Fu
nktio
nen
für
beid
e Vekto
ren. ��� �
Die Fu
nktio
nen
mittelw
ertx, mittelw
ertyu
ntersch
eiden
sich
nu
r in ein
em ein
zigen
Bu
chsta
ben
…!
22
8.5
. Me
sswe
rtpro
gram
m, zw
ei M
essre
ihe
n
8. A
dre
ssen
un
d Ze
iger
Va
rian
te 2: N
ur ein
e Fun
ktion
einlesen
, mittelw
ert, sortiere u
sw. D
er zu
bea
rbeiten
de V
ektor w
ird a
ls Pa
ram
eter an
die Fu
nktio
nen
üb
ergeb
en.
intmain(void)
{
doublex[SIZE], y[SIZE]; intanz1, anz2;
printf("Messreihe1 eingeben...\n"); anz1 = einlesen(&x[0]);
printf("Messreihe2 eingeben...\n"); anz2 = einlesen(&y[0]);
sortiere(&x[0], anz1); sortiere(&y[0], anz2);
printf("Messreihe1...\n"); ausgeben(&x[0], anz1);
printf("Messreihe2...\n"); ausgeben(&y[0], anz2);
printf("Mittelwert 1: %.2f\n", mittelwert(&x[0], anz1));
printf("Mittelwert 2: %.2f\n", mittelwert(&y[0], anz2));
printf("Maximum 1: %.2f\n", maximum(&x[0], anz1));
printf("Maximum 2: %.2f\n", maximum(&y[0], anz2));
return0;
}D
urch
die Ü
berg
ab
e als P
ara
meter kö
nn
en d
ie glo
ba
len
Va
riab
len d
ou
ble x[1
00
] un
d y[1
00
] vermied
en w
erden
!
23
8.5
. Me
sswe
rtpro
gram
m, zw
ei M
essre
ihe
n
8. A
dre
ssen
un
d Ze
iger
/* Alle n Messwerte ausgeben */
voidausgeben(double*mw, intn)
{
inti;
for(i = 0; i < n; ++i)
printf("\tMesswert%d: %.2f\n", i + 1, *(mw+i));
printf("\n");
}/* Maximalen Messwert ermitteln und zurueckgeben*/
doublemaximum(double*mw, intn)
{
doublemax; inti;
max= *(mw+0);
for(i = 1; i < n; i++)
if(*(mw+i) > max) max = *(mw+i);
returnmax;
}
Beisp
iel: Fun
ktion
en „a
usg
eben
“ u
nd
„ma
ximu
m“ m
it Vekto
r als
Fun
ktion
spa
ram
eter
24
Glie
de
run
g
8. A
dre
ssen
un
d Ze
iger
Ka
pite
l 8 –
Ad
resse
n u
nd
Zeige
r
8.1
De
finitio
n8
.2Ein
fach
e B
eisp
iele
8.3
Zeige
rarith
me
tik un
d V
ekto
ren
8.4
Ve
ktore
n a
ls Fun
ktion
spa
ram
ete
r8
.5M
essw
ertp
rogra
mm
, zwe
i Me
ssreih
en
8.6
Zeige
rarith
me
tik in V
ekto
rschre
ibw
eise
25
8.6
. Zeige
rarith
me
tik, Ve
ktorsch
reib
we
ise
8. A
dre
ssen
un
d Ze
iger
Ve
ktorsch
reib
we
ise:
Be
i de
r Arb
eit m
it Zeige
rvariable
n, sp
ezie
ll be
i Zeige
rarithm
etik im
Zu
samm
en
han
g mit V
ekto
ren
, kön
ne
n m
anch
e O
pe
ration
en
auch
an
de
rs gesch
rieb
en
we
rde
n (o
hn
e Ä
nd
eru
ng d
er Fu
nktio
n!):
voidfill_n(int*x, intn);
intmain(void)
{
intx[100];
fill_n(&x[0], 100);
return0;
}void fill_n(int*x, intn)
{
inti;
for(i = 0; i < n; ++i)
*(x+i) = i;
}
voidfill_n(intx[], intn);
intmain(void)
{
intx[100];
fill_n(x, 100);
return0;
}voidfill_n(intx[], int n)
{
inti;
for(i = 0; i < n; ++i)
x[i] = i;
}
26
8.6
. Zeige
rarith
me
tik, Ve
ktorsch
reib
we
ise
8. A
dre
ssen
un
d Ze
iger
Zusa
mm
en
fassu
ng:
intx[100];
&x[0]
od
er
xZe
iger au
f (bzw
. Ad
resse
von
) x[0]
&x[i]
od
er
x+i
Zeige
r auf (b
zw. A
dre
sse vo
n) x[i]
x[0]
od
er
*x
Inh
alt von
x[0], W
ert d
es A
nfan
gsele
me
nts
x[i]
od
er
*(x+i)
Inh
alt von
x[i], We
rt de
s i-ten
Ele
me
nts
voidfunc(int*feld);
voidfunc(intfeld[]);
Üb
ergab
e e
ine
s Zeige
rsan
ein
e Fu
nktio
n
Es ha
nd
elt sich w
irklich n
ur u
m versch
ieden
e Schreib
weisen
mit d
erselben
B
edeu
tun
g. In
sbeso
nd
ere bed
eutet d
ie Fun
ktion
sdekla
ratio
n in
der
letzten Zeile n
icht, d
ass h
ier ein ko
mp
letter Vekto
r üb
ergeb
en w
ird –
au
ch in
diesem
Fall h
an
delt es sich
um
die Ü
berg
ab
e eines Zeig
ers!
American Standard Code for Information Interchange (ASCII)
Quelle: Wikipedia (Artikel: „American Standard Code for Information Interchange“)