Common Intermediate Language и системное программирование в Microsoft.Net. Макаров А.В - 47 стр.

UptoLike

public:
BubbleSortedArray(int A __gc []): SortedArray(A) { }
};
Класс InsertSortedArray написан на Visual C#. Он переопределяет аб-
страктный метод Sort(), реализуя в нем сортировку вставками.
using VBLib;
public class InsertSortedArray: SortedArray
{
protected override void Sort()
{
for (int i = 0; i < Arr.Length-1; i++)
{
int max = i;
for (int j = i+1; j < Arr.Length; j++)
if (Arr[j] > Arr[max])
max = j;
int tmp = Arr[i];
Arr[i] = Arr[max];
Arr[max] = tmp;
}
}
public InsertSortedArray(int[] A): base(A) { }
}
И, наконец, все вышеперечисленные классы используются в про-
грамме, написанной на Visual J#.
package JsApp;
import VBLib.SortedArray;
public class Main
{
public static void main(String[] args)
{
int A[] = new int[] { 5, 1, 6, 0, -4, 3 };
SortedArray SA1 = new BubbleSortedArray(A),
SA2 = new InsertSortedArray(A);
for (int i = 0; i < SA1.get_Count(); i++)
System.out.print(“”+SA1.get_Array(i)+” “);
System.out.println();
for (int i = 0; i < SA2.get_Count(); i++)
System.out.print(“”+SA2.get_Array(i)+” “);
System.out.println();
}
}
Структура программных компонентов
81
For i = 0 To A.Length – 1
Arr(i) = A(i)
Next
Sort()
End Sub
Default Public ReadOnly Property
Array (ByVal Index As Integer) As Integer
Get
Return Arr(Index)
End Get
End Property
Public ReadOnly Property Count() As Integer
Get
Return Arr.Length
End Get
End Property
End Class
Класс BubbleSortedArray написан на Visual C++ with Managed
Extensions. Он переопределяет абстрактный метод Sort(), реализуя в нем
пузырьковую сортировку:
using namespace VBLib;
public __gc class BubbleSortedArray: public SortedArray
{
protected:
void Sort()
{
for (int i = Arr->Length, flag = 1; i > 1 && flag; i--)
{
flag = 0;
for (int j = 0; j < i-1; j++)
if (Arr[j] < Arr[j+1])
{
int tmp = Arr[j];
Arr[j] = Arr[j+1];
Arr[j+1] = tmp;
flag = 1;
}
}
}
80
CIL и системное программирование в Microsoft .NET
80                         CIL и системное программирование в Microsoft .NET   Структура программных компонентов                                     81


         For i = 0 To A.Length – 1                                                  public:
           Arr(i) = A(i)                                                                BubbleSortedArray(int A __gc []): SortedArray(A) { }
         Next                                                                       };
         Sort()                                                                     Класс InsertSortedArray написан на Visual C#. Он переопределяет аб-
       End Sub                                                                 страктный метод Sort(), реализуя в нем сортировку вставками.
       Default Public ReadOnly Property                                             using VBLib;
       Array (ByVal Index As Integer) As Integer                                    public class InsertSortedArray: SortedArray
         Get                                                                        {
           Return Arr(Index)                                                            protected override void Sort()
         End Get                                                                        {
       End Property                                                                       for (int i = 0; i < Arr.Length-1; i++)
       Public ReadOnly Property Count() As Integer                                        {
         Get                                                                                int max = i;
           Return Arr.Length                                                                for (int j = i+1; j < Arr.Length; j++)
         End Get                                                                               if (Arr[j] > Arr[max])
       End Property                                                                              max = j;
                                                                                            int tmp = Arr[i];
     End Class                                                                              Arr[i] = Arr[max];
                                                                                            Arr[max] = tmp;
     Класс BubbleSortedArray написан на Visual C++ with Managed                           }
Extensions. Он переопределяет абстрактный метод Sort(), реализуя в нем                  }
пузырьковую сортировку:                                                                 public InsertSortedArray(int[] A): base(A) { }
     using namespace VBLib;                                                         }
                                                                                    И, наконец, все вышеперечисленные классы используются в про-
     public __gc class BubbleSortedArray: public SortedArray                   грамме, написанной на Visual J#.
     {                                                                              package JsApp;
     protected:                                                                     import VBLib.SortedArray;
       void Sort()                                                                  public class Main
       {                                                                            {
         for (int i = Arr->Length, flag = 1; i > 1 && flag; i--)                      public static void main(String[] args)
         {                                                                            {
            flag = 0;                                                                     int A[] = new int[] { 5, 1, 6, 0, -4, 3 };
            for (int j = 0; j < i-1; j++)                                                 SortedArray SA1 = new BubbleSortedArray(A),
              if (Arr[j] < Arr[j+1])                                                             SA2 = new InsertSortedArray(A);
              {                                                                           for (int i = 0; i < SA1.get_Count(); i++)
                int tmp = Arr[j];                                                           System.out.print(“”+SA1.get_Array(i)+” “);
                Arr[j] = Arr[j+1];                                                        System.out.println();
                Arr[j+1] = tmp;                                                           for (int i = 0; i < SA2.get_Count(); i++)
                flag = 1;                                                                   System.out.print(“”+SA2.get_Array(i)+” “);
              }                                                                           System.out.println();
         }                                                                            }
       }                                                                            }