program selection_sort; uses crt; const maxN = 1000; var a : array[1..maxN] of integer; b : array[1..maxN] of char; n,i : integer; procedure selection; var k,l,min,t : integer; begin for k:=1 to n-1 do begin min:=k; for l:=k+1 to n do if a[l]<a[min] then min:=l; t:=a[min]; a[min]:=a[k]; a[k]:=t; end; end; procedure selection_char; var k,l,min : integer; t : char; begin for k:=1 to n-1 do begin min:=k; for l:=k+1 to n do if b[l]<b[min] then min:=l; t:=b[min]; b[min]:=b[k]; b[k]:=t; end; end; procedure read_array; var k : integer; begin writeln('Geben Sie das array ein ! . ( Ende mit 0 ) '); writeln;writeln; k:=1; repeat write('a[',k,'] ? '); readln(a[k]); k:=k+1; until a[k-1]=0; n:=k-2; end; procedure read_array_char; var k : integer; begin writeln('Geben Sie das array ein ! . ( Ende mit 0 ) '); writeln;writeln; k:=1; repeat write('b[',k,'] ? '); readln(b[k]); k:=k+1; until b[k-1]='0'; n:=k-2; end; procedure print_array(ab : integer); var k:integer; begin for k:=ab to n do write(a[k],'---'); writeln('ende'); end; procedure print_array_char(ab : integer); var k:integer; begin for k:=ab to n do write(b[k],'---'); writeln('ende'); end; var eg : char; begin clrscr; writeln(' *** Selection Sort *** '); writeln;writeln; write('Mit Integer oder mit Chars ? (I/C) '); readln(eg); if eg='i' then begin read_array; readln; clrscr; print_array(1); readln; selection; writeln;writeln; print_array(1); end else begin read_array_char; readln; clrscr; print_array_char(1); readln; selection_char; writeln;writeln; print_array_char(1); end; readln; end.