blikk info infothek forum galerie sitemap

Überschrift

zur Aufgabenstellung
{ Gewerbeoberschule „Max Valier“ Bozen
Thomas Gummerer
3ia}
PROGRAM loesch;
USES
Crt;
TYPE
t_tab = ARRAY[1..1000] OF INTEGER;


{ Prozedur zum loeschen der angegebenen Stelle}
PROCEDURE loeschen(stelle : INTEGER;
anz : INTEGER;
VAR tab : t_tab);

{Variablen der Prozedur}
VAR
i : INTEGER;
BEGIN
FOR i:= 1 TO anz DO BEGIN
IF i < stelle THEN
tab[i] := tab[i]
ELSE
tab[i] := tab[i+1]
END;
END;



FUNCTION Suchen (such : INTEGER;
groesse : INTEGER;
arr : t_tab) : INTEGER;

VAR
i : INTEGER;
ende : BOOLEAN;

BEGIN
ende := FALSE;
i := 1; (* Laufvariable initialisieren *)
WHILE NOT(ende) AND (i <= groesse) DO BEGIN
(* Ist der aktuelle Wert im Array der gesuchte *)
IF arr[i] = such THEN
ende := true (* Wenn die Zahl gefunden wurde soll die Schleife beendet werden*)
ELSE
i := i + 1; (* Laufvariable erhoehen *)
END; (* OF WHILE *)
Suchen := i; (* Rueckgabewert uebergeben *)
END; (* OF FUNCTION *)



{Variablen des Hauptprogrammes}
VAR
stelle, i, n : INTEGER;
tab : t_tab;
such : INTEGER;

{Beginn des Hauptprogrammes}
BEGIN
ClrScr;
{Generiert Zufallszahlen neu}
RANDOMIZE;
{Fuellen des ARRAYs mit Zufallszahlen von 1 bis 20}
Write('Wie viele Zahlen wollen Sie im Array haben: ');
Readln(n);
FOR i:= 1 TO n DO BEGIN
tab[i] := Random(20) + 1;
{Ausgabe des vollstaendigen ARRAYs}
Write(' ',tab[i]);
END;
Readkey;
Writeln;
Writeln('Welche Zahl im ARRAY wollen sie loeschen?');
Readln(such);

stelle := Suchen (such, n, tab);
{Wurde die Zahl gefunden}
IF stelle <> -1 THEN
loeschen(stelle,n,tab)
ELSE
WriteLn ('Die Zahl wurde nicht gefunden.');

{Ausgabe des ARRAYs ohne die geloeschte Stelle}
FOR i := 1 TO n-1 DO
Write(' ',tab[i]);

Readkey
END.
nach oben