• Keine Ergebnisse gefunden

¨Ubungspaket 14 Eindimensionale Arrays

N/A
N/A
Protected

Academic year: 2021

Aktie "¨Ubungspaket 14 Eindimensionale Arrays"

Copied!
7
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Ubungspaket 14 ¨

Eindimensionale Arrays

Ubungsziele: ¨

Deklaration und Verwendung eindimensionaler Arrays Skript:

Kapitel: 33 Semester:

Wintersemester 2021/22 Betreuer:

Thomas, Tim und Ralf Synopsis:

Nach dem wir nun die wesentlichen Datentypen kennengelernt haben,

kommt etwas neues dazu; die eindimensionalen Arrays. Mit Arrays

kann man mehrere Variablen gleichen Typs zusammenfassen, so wie

wir es aus der Mathematik in Form von Vektoren, (indizierten) Koef-

fizienten und dergleichen kennen.

(2)

Teil I: Stoffwiederholung

Aufgabe 1: Aufbau eines eindimensionalen Arrays

Aus welchen Komponennten besteht eine Array-Definition (ohne Initialisierung)?

1. 2.

3. 4.

Aufgabe 2: Array-Gr¨ oße und g¨ ultige Indizes

Nehmen wir an, wir h¨atten ein Array der Gr¨oße n (eines mit n Elementen), wobei n stell- vertretend f¨ur eine ganzzahlige Konstante wie beispielsweise 14 ist.

Frage: Was sind die g¨ultigen Indizes?

Aufgabe 3: Speicherbelegung

Wie viele Bytes belegt ein Array mitn Elementen mindestens im Arbeitsspeicher (RAM), wenn der Elementtyp genau b Bytes belegt?

Skizziere ein Array a mit 6 Elementen vom Typ int unter der Annahme, dass ein int genau 4 Bytes belegt und die Startadresse des Arrays 0x1000 ist.

Definition: Adresse Variable Typ Gr¨oße

0x1018 . . . . . . . . . . . .

0x1014 . . . . . . . . . . . .

0x1010 . . . . . . . . . . . .

0x100C . . . . . . . . . . . .

0x1008 . . . . . . . . . . . .

0x1004 . . . . . . . . . . . .

0x1000 . . . . . . . . . . . .

(3)

Teil II: Quiz

Aufgabe 1:

” Standard“ Arrays

Gegeben seien die folgenden vier Definitionen:

1. int a[ 3 ];

2. char b[ 4 ];

3. double c[ 2 ];

4. int d[ 1 ];

Welche Indizes sind bei den jeweiligen Arrays erlaubt und welche Werte haben die Array- Elemente unmittelbar nach der Definition?

Array Indizes Werte

a . . . . . . . .

b . . . . . . . .

c . . . . . . . .

d . . . . . . . .

Aufgabe 2: Implizit definierte Arrays

Die Gr¨oße eines Arrays kann man auch

”implizit“ durch eine zus¨atzliche Initialisierung definieren. Gegeben seien die folgenden vier Definitionen:

1. int e[] = { 3, 4, 5 };

2. int f[] = { -1, -3 };

3. double g[] = { , , 23.0, };

4. double h[] = { -3,0 , , 2.0 };

Welche Gr¨oßen haben die Arrays, welche Indizes sind jeweils erlaubt und welche Werte haben die einzelnen Elemente unmittelbar nach der Definition?

Array Gr¨oße Indizes Werte

(4)

Teil III: Fehlersuche

Aufgabe 1: Arbeiten mit mehreren Zahlen

Das folgende Programm soll zehn Zahlen einlesen und in einem Array ablegen, anschließend die Summe ausrechnen und diese am Ende ausgeben. Leider hatDr. One-Neuronwieder diverse Fehler gemacht, die ihr finden und korrigieren sollt.

1 # i n c l u d e < stdioh >

2

3 # d e f i n e N =10 4

5 int man ( int argc , c h a r ** a r g v )

6 {

7 int i , sum , a [ N ];

8 for ( i = 0 , i < N , i = i + 1 )

9 {

10 p r i n t f ( B i t t e W e r t f u e r a [ % d ] e i n g e b e n : , i ) ; 11 s c a n f ( " % d " , & ( a [ ] ) ) ;

12 }

13 for ( i = 1; sum = 0; i <= N ; i = i + 1 )

14 sum = sum + a { i };

15 p r i n t f ( " Die S u m m e der Z a h l e n b e t r a e g t % d \ n " , N , sum ) ;

16 }

(5)

Teil IV: Anwendungen

Aufgabe 1: Deklaration einfacher Arrays

Die folgende ¨Ubungsaufgabe ist nicht wirklich sinnvoll, sondern dient haupts¨achlich dem Ein¨uben des Hantierens mit eindimensionalen Arrays.

1. Aufgabenstellung

Ziel der Aufgabe ist es, ein Programm zu erstellen, das folgende Arrays enth¨ahlt:

1. ein Array mit 10 Elementen vom Typint, 2. ein Array mit 3 Elementen vom Typchar und 3. ein Array mit 100 Elementen vom Typdouble.

Des Weiteren sollen die Elemente dieser drei Arrays initialisiert werden. Dies ge- schieht vorzugsweise in einer Schleife. Diese Schleife soll so aufgebaut sein, dass eine Gr¨oßen¨anderung des Arrays keine weiteren ¨Anderungen in den Initialisierungsschlei- fen nach sich ziehen sollte; mit anderen Worten: Eine Gr¨oßen¨anderung sollte durch eine einzige Modifikation vollst¨andig realisiert sein.

2. Kodierung

(6)

Aufgabe 2: Implizite Gr¨ oßendefinitionen

Wir haben gelernt, dass man in der Programmiersprache C die Gr¨oße eines Arrays auch indirekt und zwar durch die initialisierte Definition festlegen kann. Gegenstand dieser Auf- gabe ist das aktive Ein¨uben dieses Konzeptes.

1. Aufgabenstellung

Entwickle ein kleines C-Programm, in dem die Gr¨oßen von mindestens vier Arrays implizit durch ihre Initialisierung definiert werden. Zwei Beispieldefinitionen sind bereits weiter unten angegeben.

Zur weiteren Verwendung der Gr¨oßen, beispielsweise in Initialisierungsschleifen, ist die Gr¨oße jedes Arrays durch ein geeignetes#define-Makro zu

”berechnen“.

Zur Best¨atigung, dass alles korrekt abgelaufen ist, sind die einzelnen Elemente mittels geeigneter Schleifen auszugeben. In diesen Schleifen sind nat¨urlich oben erw¨ahnte

#define-Makros zu verwenden.

2. Pflichtenheft: Aufgabe, Eingabe, Ausgabe, Sonderf¨alle

3. Testdaten

Array Typ Initialwerte C-Definitionen

a int 1, 2, 3, 4 . . . . . . . .

x double 1.0, 2.0 . . . . . . . . ... ... ... . . . . . . . . ... ... ... . . . . . . . .

(7)

4. Kodierung

Referenzen

ÄHNLICHE DOKUMENTE

Teil 1: Schreiben Sie ein Programm, das das innere Produkt zweier Vektoren berechnet, wobei die Berechnung innerhalb einer Schleife erfolgen soll. Der korrekte Programmlauf muss

” eben“ eine kleine ¨ Ubung zu mehrdimensionalen Arrays nachschieben. Mehrdimensionale Arrays sind eine einfache Er- weiterung der eindimensionalen Arrays und eigentlich jedem aus

Ziel dieser Aufgabe ist es, beide Funktionen in eine generalisierte Initialisierungs- funktion zu ¨ uberf¨ uhren.. Dazu m¨ ussen wir sie lediglich um zwei Parameter erweitern, die

Wir haben gelernt, dass man in der Programmiersprache C die Gr¨ oße eines Arrays auch indirekt und zwar durch die initialisierte Definition festlegen kann. Gegenstand dieser Auf-

” eben“ eine kleine ¨ Ubung zu mehrdimensionalen Arrays nachschieben. Mehrdimensionale Arrays sind eine einfache Er- weiterung der eindimensionalen Arrays und eigentlich jedem aus

Aufgabe : eine generalisierte Funktion zur Initialisieren eines Zeichen-Arrays Parameter : drei Parameter: Anfangswert, Array, Gr¨ oße.. Ausgabe : die Inhalte der beiden

muß vorwiegend an die Verpflegung der Ganz anders sind die Voraussetzungen, un- vielen Expeditionen in arktischem oder ant- tel' denen z. die Vereinigten Staaten ihre arktischem

Karlsruher Institut f¨ ur Technologie Institut f¨ ur Theorie der Kondensierten Materie Ubungen zur Theoretischen Physik Fa ¨ WS