Kapitel 37 Programmieraufgaben

erstellt 27.05.03; überarbeitet 07.11.12, 02.09.17 übersetzt 20.06.03; überarbeitet 17.02.04, 24.01.05, 20.02.24, 15.03.24, 27.05.24, 10.12.24;

Kapitel 37 Programmieraufgaben

Arrays können verwirrend sein.
Das Problem mit Arrays ist, dass jetzt in den Anweisungen
zusätzlich indexiert werden muss
, damit sie ihre übliche
Arbeit tun.
Zuweisungsanweisungen waren gewohnt einfach:

summe = ergebnis + wert;

Jetzt können sie kompliziert sein:

summe = ergebnis[j] + wert[k];

Tatsächlich sind Arrays nicht so schwierig,
sobald wir uns mit der Notation vertraut gemacht haben.
Das braucht nur Übung.

Mit diesen Aufgaben bekommen wir Übung in der Verwendung von Indizes.

Wir kopieren jedes Programmgrundgerüst in
unsere Entwicklungsumgebung und vervollständigen es dort
wie vorgegeben.
Wir kompilieren und starten dann das Programm.


Aufgabe 1 — Array Summe

Wir betrachten das folgende Programm:

class Uebung1
{
  public static void main ( String[] args )
  {
    int[] arr = {0, 1, 2, 3};
    int summe  =
    System.out.println( "Summe aller Zahlen = " + summe );
   }
}

Wir vervollständigen die Zuweisungsanweisung,
so dass sie die Summe der Zahlen im Array berechnet werden.

Zurück zum Inhaltsverzeichnis.


Aufgabe 2 — Zwei Arrays

Wir betrachten das folgende Programm:

class Uebung2
{
  public static void main ( String[] args )
  {
    int[] arr = {13, -4, 82, 17};
    int[] doppelt;
    System.out.println( "Urspruengliches Array: "
        + arr[0] + " " + arr[1] + " " + arr[2] + " " + arr[3] );
    // Konstruieren des Arrayobjekts fuer doppelt.
    // Wir stellen die Werte in doppelt, die zweimal so gross sind
    // als ihre entsprechenden Werte in arr
    System.out.println( "Neues Array: "
        + doppelt[0] + " " + doppelt[1] + " " + doppelt[2] + " " + doppelt[3] );
   }
}

Wir vervollständigen das Programm, so dass
ein neues Array doppelt konstruiert wird.
Kopieren dann die Werte von arr nach doppelt,
aber so, dass die Werte in doppelt zweimal so groß sind als die Werte
in arr.

Zurück zum Inhaltsverzeichnis.


Aufgabe 3 — Drei Arrays

Wir betrachten das folgende Programm:

class Uebung3
{
  public static void main ( String[] args )
  {
    int[] arrA   = { 13, -22,  82,  17};
    int[] arrB   = {-12,  24, -79, -13};
    int[] summe    = {  0,   0,   0,   0};
    // Wir addieren die Werte der entsprechenden Zellen von arrA und arrB,
    // und stellen das Ergebnis in den entsprechenden Zellen von summe.
    System.out.println( "Summe: "
        + summe[0] + " " + summe[1] + " " + summe[2] + " " + summe[3] );
   }
}

Wir vervollständigen das Programm
mit vier Zuweisungsanweisungen,
so dass jede Zelle von summe
die Summe der entsprechenden Zellen von
arrA und arrB enthält.
D.h., wir addieren die Zelle 0 von arrA
mit Zelle 0 von arrB und stellen das
Ergebnis in die Zelle 0 von summe und so weiter.

Zurück zum Inhaltsverzeichnis.


Aufgabe 4 — Die gleiche Summe

Wir betrachten das folgende Programm:

class Uebung4
{
  public static void main ( String[] args )
  {
    int[] arrA   = { 13, -22,  82,  17};
    int[] arrB   = {  0,   0,   0,   0};
    // Wir stellen Werte in arrB, so dass die Summe der Werte
    // der entsprechenden Zellen von arrA und arrB 25 ist.
    System.out.println( "arrA: "
        + arrA[0] + " " + arrA[1] + " " + arrA[2] + " " + arrA[3] );
    System.out.println( "arrB: "
        + arrB[0] + " " + arrB[1] + " " + arrB[2] + " " + arrB[3] );
    System.out.println( "Summe:  "
        + (arrA[0]+arrB[0]) + " " + (arrA[1]+arrB[1]) + " "
        + (arrA[2]+arrB[2]) + " " + (arrA[3]+arrB[3]) );
   }
}

Wir vervollständigen das Programm
mit vier Zuweisungsanweisungen,
die Werte so in arrB stellen,
dass die Summe der entsprechenden Zellen
von arrA und arrB 25 ist.

Zurück zum Inhaltsverzeichnis.


Aufgabe 5 — Umgekehrte Reihenfolge

Wir betrachten das folgende Programm:

class Uebung5
{
  public static void main ( String[] args )
  {
    int[] arr = {0, 1, 2, 3};
    int temp;
    System.out.println( "Urspruengliches Array: "
        + arr[0] + " " + arr[1] + " " + arr[2] + " " + arr[3] );
    //Wir kehren die Reihenfolge der Zahlen in dem Array um
    System.out.println( "Umgekehrtes Array: "
        + arr[0] + " " + arr[1] + " " + arr[2] + " " + arr[3] );
   }
}

Wir vervollständigen das Programm, so dass
die Zahlen in dem Array in umgekehrter Reihenfolge erscheinen.
Wir werden eine Variable temp brauchen, um das zu tun.

Hinweis vom Autor Bradley Kjell: Das ist eine schwierigere Aufgabe als Ihr denken mögt. Ich stelle sie manchmal in den Prüfungen Mitte des Semesters
und manche Studenten können sie nicht lösen.

Zurück zum Inhaltsverzeichnis.


Ende der Aufgaben