blikk info infothek forum galerie sitemap

 

Array auf Sortierung prüfen

anfang zurueck weiter ende nach oben
Y. K. Gruppe 1

Quellcode

{ Gruppe      : 1
 
Autor       : Y. K.
 
Schule      : Gewerbeoberschule "Max Valier"
 
Klasse      : 3IA
 
Aufgabe     : Arrays
 
Beschreibung: Das Programm enthaelt eine Funktion die prueft,
                ob
ein Array aufsteigen, abstegend, gar nicht 
               
sortiert ist, oder ob alle Zahlen gleich sind }


PROGRAM sortiert;

USES Crt;

TYPE
 
ttab = ARRAY [1..30] OF INTEGER;

{ Fuellt ein Array }
PROCEDURE fuell(VAR tab :ttab;
                    
n   :INTEGER);

VAR
 
i :INTEGER;

BEGIN
 
FOR i := 1 TO n DO BEGIN
   
Writeln('Geben sie die ',i,'. Zahl ein: ');
   
Readln(tab[i])
 
END { Ende For }
END; { Ende der Prozedur }

{ Funktion die prueft wie ein Array geordnet ist }FUNCTION PruefeOrd(tab: ttab;
                  
n  : INTEGER) : INTEGER;

VAR
 
i       : INTEGER; { Laufvariable }
 
auf, ab : BOOLEAN;

BEGIN
 
i := 1;
 
auf := TRUE;
 
ab := TRUE;
  
WHILE (auf OR ab) AND (i < n) DO BEGIN
   
IF tab[i] > tab[i+1] THEN
     
auf := FALSE
   
ELSE
     
IF tab[i] < tab[i+1] THEN
       
ab := FALSE;
   
i := i + 1;
 
END; { Ende While }
 
IF auf THEN
   
IF ab THEN
     
PruefeOrd := 1
   
ELSE
     
PruefeOrd := 2 
  
ELSE
   
IF ab THEN
     
PruefeOrd := 3
   
ELSE
    
PruefeOrd := 4;
END; { Ende der Funktion }

{Hauptprogramm }
VAR
 
n,i    :INTEGER;
 
tab    :ttab;
 
auf, ab:BOOLEAN;

BEGIN
  ClrScr;
 
Writeln('Wie viele Werte werden eingelesen? ');
 
Readln(n);
 
{ Fuellfunktion aufrufen }
 
fuell(tab, n);
 
Writeln;
 
{ Beginn der Pruefung }
 
CASE PruefeOrd(tab, n) OF
   
1: Writeln('Alle Zahlen sind gleich!');
   
2: Writeln('Zahlen sind Aufsteigend geordnet!');
   
3: Writeln('Zahlen sind Absteigend geordnet!');
   
4: Writeln('Zahlen sind nicht geordnet!')
 
ELSE
   
Writeln('Fehler');
 
END; { Ende Case }
  Readln;
END. { Programmende }

Zum Pseudocode
Zur Theorieseite

nach oben