Program DAY_CHAN_LE;
Uses crt;
Type ma=array[1..50] of integer;
Var a:ma;n:integer;
Procedure Input(var a:ma;n:integer);
Var i: integer;
Begin
For i:=1 to n do
Begin
Write('nhap phan tu thu ',i,'=');
Readln(a[i]);
End;
End;
Procedure Output(a:ma;n:integer);
Var i:integer;
Begin
For i:=1 to n do
Write(a[i]:3);
End;
Procedure Odd_Even(var a:ma;n:integer);
Var l,r,t:integer;
Begin
l:=1;
r:=n;
Repeat
While (l<r) and (a[l] mod 2 = 1) do
l:=l+1;
While (r>l) and (a[r] mod 2 = 0) do
r:=r-1;
If l<r then
Begin
t:=a[l];
a[l]:=a[r];
a[r]:=t;
End;
Until l>=r;
End;
Procedure Sort( var a:ma;n:integer);
Var i,j,k,t:integer;
Begin
k:=0;
For i :=1 to n do
If a[i] mod 2 <> 0 then k:=k+1;
For i:=1 to k-1 do
For j :=i+1 to k do
If a[i]>a[j] then
Begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
End;
For i:=k+1 to n -1 do
For j :=i+1 to n do
If a[i]<a[j] then
Begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
End;
End;
Begin
Clrscr;
Writeln('CHUONG TRINH SAP XEP CHAN LE');
Writeln('-------------------------------');
Write('Nhap so phan tu cua day n= ');readln(n);
Input(a,n);
Writeln('Day ban bau la: ');
Output(a,n); odd_even(a,n);
Writeln;
Writeln('Day sau tach le va chan:');
Output(a,n);
Writeln;
Writeln('Day sau sap xep la:');
Sort(a,n);
Output(a,n);
Readln;
End.
Ý kiến bạn đọc
Những tin cũ hơn