erstellt 27.05.03; übersetzt 20.06.03; © Copyright 2003 Deutsche Übersetzung Heinrich Gailer


Kapitel 46 Programmieraufgaben

Arrays können verwirrend sein. Studenten kommen manchmal bis zu den Arrays, und machen von da an nicht weiter. Dies hat sich für alle Programmiersprachen - BASIC, FORTRAN, Pascal und Java - als wahr erwiesen. Das Problem mit Arrays ist, dass die Anweisungen jetzt zusätzlich indexieren müssen um ihre übliche Arbeit zu tun. Zuweisungsanweisungen waren gewohnt einfach:

sum = result + value;

Jetzt können Sie kompliziert sein:

sum = result[j] + value[k];

Tatsächlich sind Arrays nicht schwierig sobald Sie sich mit der Notation vertraut gemacht haben, und das braucht einige Übung. Diese Aufgaben verschaffen Ü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 Exercise1
{
  public static void main ( String[] args )
  {
    int[] val = {0, 1, 2, 3};

    sum =

    System.out.println( "Summe aller Zahlen = " + sum );

   }
}

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

Zurück zur Übersicht.


Aufgabe 2 --- Zwei Arrays

Begutachten Sie das folgende Programm:

class Exercise2
{
  public static void main ( String[] args )
  {
    int[] val = {13, -4, 82, 17};
    int[] twice;

    System.out.println( "Urspruengliches Array: "
        + val[0] + " " + val[1] + " " + val[2] + " " + val[3] );

    // Konstruieren Sie ein Arrayobject für twice.


    // Stellen Sie Werte in twice, die doppelt so groß sind
    // als ihre entsprechenden Werte in val



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

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

Zurück zur Übersicht.


Aufgabe 3 --- Drei Arrays

Begutachten Sie das folgende Programm:

class Exercise3
{
  public static void main ( String[] args )
  {
    int[] valA   = { 13, -22,  82,  17};
    int[] valB   = {-12,  24, -79, -13};
    int[] sum    = {  0,   0,   0,   0};

    // Addieren Sie die Werte der entsprechenden Slots von valA und valB,
    // und stellen Sie das Ergebnis in den entsprechenden Slot von sum.




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

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

Zurück zur Übersicht.


Aufgabe 4 --- Dieselbe Summe

Begutachten Sie das folgende Programm:

class Exercise4
{
  public static void main ( String[] args )
  {
    int[] valA   = { 13, -22,  82,  17};
    int[] valB   = {  0,   0,   0,   0};

    // Stellen Sie Werte in valB, so dass die Summe der Werte
    // der entsprechenden Slots von valA und valB 25 ist.





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

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

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

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

Zurück zur Übersicht.


Aufgabe 5 --- Umgekehrte Reihenfolge

Begutachten Sie das folgende Programm:

class Exercise5
{
  public static void main ( String[] args )
  {
    int[] val = {0, 1, 2, 3};
    int temp;

    System.out.println( "Urspruengliches Array: "
        + val[0] + " " + val[1] + " " + val[2] + " " + val[3] );

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




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

Vervollständigen Sie das Programm, so dass die Zahlen in dem Array in umgekehrter Reichenfolge erscheinen. Sie werden eine Variable temp brauchen um dies 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 zur Übersicht.