MezData-Logo Creative Commons License 307 Lösungen Button :CPP: BaustelleTG 12 Klassenarbeit vom 12.06.2001

Arbeitsanweisungen: Schreiben Sie auf jedes Blatt Ihren Namen, geben Sie das Aufgabenblatt mit ab.
Wichtig: Kommentieren Sie jede Programmzeile, sonst Punktabzug!

Einleitung

Keine Panik! (Siehe per Anhalter durch die Galaxis (hoffe Sie haben Ihr Handtuch dabei))
Es soll ein Programm erstellt werden, das den Inhalt eines Memo-Feldes in
ein Integer-Array einliest, wenn der Button ?InArray? gedrückt wird. Dabei soll die Länge
in einer Variablen gespeichert und in dem Label1 angezeigt werden.
Beim Klick auf Button ?Maximum? soll die größte Zahl aus dem Array ermittelt und in Edit1
ausgegeben werden. Diese Zahl wird nun aus dem Array entfernt, und das Array nach Löschen des Memofeldes in diesem ausgegeben.
Label1 zeigt wieder die aktuelle Länge an.

Das ist vorhanden:

Eine Oberfläche mit Editfeld, Label, Memo und zwei Buttons.

Etwas Quelltext zu der Oberfläche.
Mit Verweisen zu den Aufgaben.

Die einzelnen Aufgaben mit den Punkten.

Kommentieren Sie Ihren Programmcode!

#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"		// Aufgabe 1
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int ZahlenArray [10];	// Das Array für die Zahlen
int AnzElt =0;		      // Die Anzahl der Zahlen im Array, die Länge

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{				// Initalisierung
  					// Aufgabe 2		
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonInArrayClick(TObject *Sender)
{
      // Aufgabe 3
}
//---------------------------------------------------------------------------


void __fastcall TForm1::ButtonMaximumClick(TObject *Sender)
{
int i=1,j=0,max=0;	// in meiner Lösung ist i=1...
					// Aufgabe 4

    	// Aufgabe 5
    
  i=0;			// Laufvariable
  Memo1->Clear();		// löscht das Memo
					// Aufgabe 6

}

Aufgabe 1

Was bewirkt ?#include? ?

2 Punkte

Aufgabe 2

Nach Start des Programms sollen das Edit1-Feld und das Label1 einen leeren String anzeigen, also praktisch gelöscht werden. Wie lauten die entsprechenden Zuweisungen?

3 Punkte

Aufgabe 3

Hier sollen die Zeilen des Memo1 (Memo1->Lines->Strings[i]) in das ZahlenArray überführt werden. Die Anzahl der Zeilen ist Memo1->Lines->Count. In AnzElt soll die Anzahl der Elemente stehen und in Label1 angezeigt werden. Erstellen Sie ein Struktogramm und den Programmcode!
Hinweise: Das erste Element hat den Index 0, die Strings aus dem Memo müssen in Integer gewandelt werden.

10 Punkte

Aufgabe 4

Das ZahlenArray wird auf die größte Zahl abgesucht. Der Index der Zahl im Array soll in der Variablen j ?gemerkt?, das Maximum in Edit1 ausgegeben werden. Erstellen Sie den Programmcode!

8 Punkte

Aufgabe 5

Nun soll die gefundene Zahl mit dem Index j aus dem Array entfernt werden, d.h. verschieben Sie alle nachfolgenden Zahlen um eins nach oben. Die Länge des Arrays wird in AnzElt geschrieben. Erstellen Sie den Programmcode!

8 Punkte

Aufgabe 6

Nachdem das Memo1 gelöscht wurde, soll nun das ZahlenArray angezeigt und die Länge in Label1 geschrieben werden. Erstellen Sie den Programmcode.
Hinweis: Memo1->Lines->Add(„Neue Zeile“)

6 Punkte

Total 37 Punkte

Zur Lösung...