erstellt 27.05.03; übersetzt 20.06.03; überarbeitet 17.02.04, 24.01.05; © Copyright 2003 - 2005 Deutsche Übersetzung Heinrich Gailer


Kapitel 46 Programmieraufgaben

Arrays können verwirrend sein. Studenten kommen manchmal bis zu Arrays und machen von da an nicht weiter. Das hat sich für alle Programmiersprachen — BASIC, FORTRAN, Pascal und Java — als wahr erwiesen. 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 schwierig, sobald Sie sich mit der Notation vertraut gemacht haben, und das braucht einige Übung. Diese Aufgaben geben Ihnen Übung in der Verwendung von Indizes.

Kopieren Sie jedes Programmgrundgerüst in Ihren Editor und vervollständigen Sie es dort wie vorgegeben. Kompilieren und starten Sie dann das Programm.


Aufgabe 1 — Array Summe

Begutachten Sie 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 );

   }
}

Vervollständigen Sie die Zuweisungsanweisung, so dass sie die Summe der Zahlen im Array berechnet.

Zurück zum Inhaltsverzeichnis.


Aufgabe 2 — Zwei Arrays

Begutachten Sie 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 Sie ein Arrayobjekt für doppelt.


    // Stellen Sie Werte in doppelt, die zweimal so groß sind
    // als ihre entsprechenden Werte in arr



    System.out.println( "Neues Array: "
        + doppelt[0] + " " + doppelt[1] + " " + doppelt[2] + " " + doppelt[3] );
   }
}

Vervollständigen Sie das Programm, so dass ein neues Array doppelt konstruiert wird. Kopieren Sie jetzt die Werte von arr nach doppelt, aber machen Sie die Werte in doppelt zweimal so groß als wie sie in arr sind.

Zurück zum Inhaltsverzeichnis.


Aufgabe 3 — Drei Arrays

Begutachten Sie 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};

    // Addieren Sie die Werte der entsprechenden Slots von arrA und arrB,
    // und stellen Sie das Ergebnis in den entsprechenden Slot von summe.




    System.out.println( "Summe: "
        + summe[0] + " " + summe[1] + " " + summe[2] + " " + summe[3] );
   }
}

Vervollständigen Sie das Programm mit vier Zuweisungsanweisungen, so dass jeder Slot von summe die Summe der entsprechenden Slots von arrA und arrB enthält. D.h., addieren Sie Slot 0 von arrA mit Slot 0 von arrB und stellen Sie das Ergebnis in den Slot 0 von summe und so weiter.

Zurück zum Inhaltsverzeichnis.


Aufgabe 4 — Die gleiche Summe

Begutachten Sie das folgende Programm:

class Uebung4
{
  public static void main ( String[] args )
  {
    int[] arrA   = { 13, -22,  82,  17};
    int[] arrB   = {  0,   0,   0,   0};

    // Stellen Sie Werte in arrB, so dass die Summe der Werte
    // der entsprechenden Slots 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]) );
   }
}

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

Zurück zum Inhaltsverzeichnis.


Aufgabe 5 — Umgekehrte Reihenfolge

Begutachten Sie 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] );

    // Kehren Sie die Reihenfolge der Zahlen in dem Array um




    System.out.println( "Umgekehrtes Array: "
        + arr[0] + " " + arr[1] + " " + arr[2] + " " + arr[3] );
   }
}

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

Hinweis: dies ist eine schwierigere Aufgabe als Sie denken mögen. 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