42552

Параллельные и распределённые вычисления

Лабораторная работа

Информатика, кибернетика и программирование

Разделить пакет из лабораторной работы № 2 на четыре пакета, поместив в первый пакет реализацию функций Func1 и типа Vector, во второй – реализацию функции Func2 и тип Matrix, в третий – реализацию функции Func3, а в последний - реализацию дополнительных процедур ввода-вывода Vector_Input, Vector_Output, Matrix_Input, Matrix_Output). Установить между пакетами отношения иерархии, выбрав первый пакет в качестве р о д и т е л ь с к о г о , а остальные пакеты реализовав через д о ч е р н и е модули ( п р и в а т н ы е и п у б л и ч н ы е).

Русский

2013-10-30

97.5 KB

7 чел.

Лабораторная работа №2  

по курсу:

«Параллельные и распределённые вычисления»

Выполнил: студент группы ИВ-83

НТУУ «КПИ» ФИВТ

Воробйов Виталий

ЗАДАНИЕ

Разделить пакет из  лабораторной работы № 2 на четыре пакета, поместив в первый пакет реализацию функций  Func1 и типа Vector, во второйреализацию функции Func2 и тип Matrix,  в третий – реализацию функции Func3, а в последний -  реализацию дополнительных процедур ввода-вывода Vector_Input, Vector_Output, Matrix_Input, Matrix_Output).  Установить между пакетами отношения иерархии, выбрав первый пакет в качестве р о д и т е л ь с к о г о ,  а остальные пакеты реализовав через    д о ч е р н и е  модули   ( п р и в а т н ы е    и    п у б л и ч н ы е).

Организовать  р а з д е л ь н у ю  компиляцию пакета и одной  из подпрограмм из лаб.работы N 2.(спецификации и тела).

  Рассмотреть три варианта раздельной компиляции:

  •  пакет является библиотечным модулем (отдельный файл);
  •  спецификация и тело пакета размещены в отдельных файлах;
  •  спецификация пакета вложена в пользовательскую программу, тело находится в отдельном файле.

   

Реализовать обработку   и с к л ю ч и т е л ь н ы х ситуаций, связанных с вводов/выводом (ввод неправильного символа) и счетом (деление на 0 или переполнение).

КОД ОТКОМПИЛИРОВАННОЙ ПРОГРАММЫ

  1.  Пакет являеться библиотечным модулем.

Source file: ..\package1-f1.adb   Wed Sep 15 20:08:25 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #2--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10 with Ada.Text_IO; use Ada.Text_IO;

  11 package Package1_F1 is

  12

  13    N:Integer:=2;

  14    type vector is private;

  15

  16    procedure Func1(a, b, c, d: in Vector; e:out integer);

  17

  18    private

  19                 --Multiplying vectors--

  20                 --c = A * B--

  21                 function VectorMult(a, b: Vector) return integer;

  22         type Vector is array (1..N) of Integer;

  23 end Package1_F1;

  24

  25         

  26 package body Package1_F1 is

  27

  28    --Multiplying vectors--

  29    --c = A * B--

  30    function VectorMult(a, b: Vector) return integer is

  31       sum: integer := 0;

  32    begin

  33       for i in A'range loop

  34          sum := sum + a(i) * b(i);

  35       end loop;

  36       return sum;

  37    end VectorMult;

  38

  39    procedure Func1(a, b, c, d: in Vector; e:out integer) is

  40    begin

  41       e := VectorMult(a, b) - VectorMult(c, d);

  42         exception

  43                 when Constraint_Error =>

  44                 Put("Constraint error in Func1.");

  45    end Func1;

  46

  47 end Package1_F1;

Source file: ..\package2-f2.adb   Wed Sep 15 20:08:26 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #1--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10 with Ada.Text_IO; use Ada.Text_IO;

  11

  12 package Package1_F1.F2 is       

  13                 type Matrix is private;

  14

  15                 procedure Func2(MA, MB: in Matrix; MZ: out Matrix);

  16

  17         private

  18                 function MatrixSub(MA, MB: Matrix) return Matrix;

  19

  20                 function MatrixScale(MA: Matrix; b: Integer) return Matrix;

  21

  22                 function MAX(MA: Matrix) return Integer;

  23

  24                 function MIN(MA: Matrix) return Integer;

  25         type Matrix is array (1..N) of Vector;

  26 end Package1_F1.F2;

  27         

  28 package body Package1_F1.F2 is

  29

  30         --MATRIX-SUB function--

  31         --MC = MA - MB--

  32         function MatrixSub(MA, MB: Matrix) return Matrix is

  33                 MC: Matrix;

  34         begin

  35           for i in MA'Range loop

  36          for j in MB'Range loop

  37             MC(i)(j) := MA(i)(j) - MB(i)(j);

  38          end loop;

  39       end loop;

  40       return MC;

  41         end MatrixSub;

  42

  43         --Multiplying matrix and scallar--

  44         --MC = MA * b--

  45         function MatrixScale(MA: Matrix; b: Integer) return Matrix is

  46                 MC: Matrix;

  47         begin

  48           for i in MA'Range loop

  49          for j in MA'range loop

  50             MC(i)(j) := MA(i)(j) * B;

  51          end loop;

  52       end loop;

  53       return MC;

  54         end MatrixScale;

  55

  56         --Finding maximum of input matrix--

  57         --MAX(MA)--

  58         function MAX(MA: Matrix) return Integer is

  59                 Sum: Integer := 0;

  60         begin

  61           for i in MA'Range loop

  62          for j in MA'range loop

  63             if MA(i)(j) > Sum then

  64                                 Sum := MA(I)(J);

  65                         end if;

  66          end loop;

  67       end loop;

  68       return Sum;

  69         end MAX;

  70

  71         --Finding minimum of input matrix--

  72         --MIN(MA)--

  73         function MIN(MA: Matrix) return Integer is

  74                 Sum: Integer := Integer'Last;

  75         begin

  76           for i in MA'Range loop

  77          for j in MA'range loop

  78             if MA(i)(j) < Sum then

  79                                 Sum := MA(I)(J);

  80                         end if;

  81          end loop;

  82       end loop;

  83       return Sum;

  84         end MIN;

  85         

  86

  87    ---MZ = MIN(MA)*MB - MAX(MB)*MA

  88    procedure Func2(MA, MB: in Matrix; MZ: out Matrix) is

  89    begin

  90       MZ := MatrixSub(MatrixScale(MB,MIN(MA)),MatrixScale(MA,MAX(MB)));

  91           exception

  92               when Constraint_Error =>

  93                  Put("Constraint error in Func2");

  94    end Func2;

  95 end Package1_F1.F2;

Source file: ..\package3-f3.adb   Wed Sep 15 20:08:26 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #1--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10 with Ada.Text_IO; use Ada.Text_IO;

  11

  12 package Package1_F1.F2.F3 is

  13

  14         function Func3(MB: Matrix; C: Vector) return Vector;

  15         procedure VectorSort(a: in out Vector);

  16         procedure MatrixSort(mA: in out Matrix);

  17         function MatrixMulVector(a: Vector; MB: Matrix) return Vector;

  18

  19 end Package1_F1.F2.F3;  

  20         

  21 package body Package1_F1.F2.F3 is

  22         

  23         procedure VectorSort(a: in out Vector) is separate;

  24

  25    --Matrix Sorting--

  26    --SORT(MA)--

  27    procedure MatrixSort(mA: in out Matrix) is

  28    begin

  29       for i in MA'range loop

  30          VectorSort(mA(i));

  31       end loop;

  32    end MatrixSort;

  33    

  34    --Multiplying matrix with vector--

  35    -- C = A * MB--

  36    function MatrixMulVector(a: Vector; MB: Matrix) return Vector is

  37           C: Vector;

  38           MD: matrix;

  39           Sum: Integer := 0;

  40    begin

  41           for j in MB'range loop

  42                 for i in MB'range loop

  43                         Sum := Sum + MB(i)(j) * A(I);

  44                 end loop;

  45                 C(j) := Sum;

  46                 Sum := 0;

  47           end loop;

  48       return C;

  49    end MatrixMulVector;

  50         

  51    function Func3(MB: Matrix; C: Vector) return Vector is

  52           MG: Matrix; A: Vector;

  53    begin

  54       MG := MB;

  55       MatrixSort(MG);

  56       A := MatrixMulVector(C,mG);

  57    return A;

  58    exception

  59               when Constraint_Error =>

  60                  Put("Constraint error in Func3");

  61                          return A;

  62    end Func3;

  1.  

end Package1_F1.F2.F3;

Source file: ..\package4-io.adb   Wed Sep 15 20:08:26 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #1--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10         with Ada.Text_IO; use Ada.Text_IO;

  11         with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

  12         with Ada.IO_Exceptions; use Ada.IO_Exceptions;

  13

  14 package Package1_F1.F2.IO is

  15            --I/O operations

  16    --Vector outpur--

  17    procedure VectorOutput(a: Vector);

  18

  19    ---Matrix output--

  20    procedure MatrixOutput(a: Matrix);

  21

  22    ---Vector input--

  23    procedure VectorInput(a: in out Vector);

  24

  25    ---Matrix input--

  26    procedure MatrixInput(m: in out Matrix);

  27 end Package1_F1.F2.IO;

  28

  29 package body Package1_F1.F2.IO is

  30         --Vector outpur--

  31    procedure VectorOutput(a: Vector) is

  32    begin

 33       for i in A'range loop

  34          Put(a(i), 5);

  35       end loop;

  36       New_line;

  37    end VectorOutput;

  38

  39    ---Matrix output--

  40    procedure MatrixOutput(a: Matrix) is

  41    begin

  42       for i in A'range loop

  43          for j in A'range loop

  44             Ada.Integer_Text_IO.Put(a(i)(j), 4);

  45          end loop;

  46          New_Line;

  47       end loop;

  48    end MatrixOutput;

  49

 50    ---Vector input--

  51    procedure VectorInput(a: in out Vector) is

  52    begin

  53      for i in A'range loop

  54          loop

  55             begin

  56                     Ada.Integer_Text_IO.Get(a(i));

  57                     exit;

  58                     exception

  59                        when Ada.IO_Exceptions.Data_Error =>

  60                           Put("Input error. Please, try again:");

  61                       Skip_Line;

  62             end;

  63          end loop;

  64       end loop;

  65    end VectorInput;

  66

  67    ---Matrix input--

  68    procedure MatrixInput(m: in out Matrix) is

  69    begin

  70       for i in M'range loop

  71          VectorInput(m(i));

  72       end loop;

  73    end;

74 end Package1_F1.F2.IO;

 

Source file: ..\packagevectorsort.adb   Wed Sep 15 20:08:26 2010

   1 separate (package1_f1.F2.F3)

   2 procedure VectorSort(a: in out Vector) is

   3    flag: boolean := true;

   4    help: integer;

   5 begin

   6    while flag loop

   7       flag := false;

   8       for i in 2..N loop

   9          if a(i-1) < a(i) then

  10             help := a(i-1);

  11             a(i-1) := a(i);

  12             a(i) := help;

  13             flag := true;

  14          end if;

  15       end loop;

  16    end loop;

  17 end VectorSort;

Source file: ..\usee   Wed Sep 15 20:08:26 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #1--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10

  11         with package1_f1,

  12                  package1_f1.F2,        

  13              package1_f1.F2.IO,

  14                  package1_f1.F2.F3;

  15     use package1_f1,

  16                  package1_f1.F2,        

  17              package1_f1.F2.IO,

  18                  package1_f1.F2.F3;

  19         with Ada.Text_IO; use Ada.Text_IO;

  20         with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

  21         

  22 procedure Begnn is

  23    A, B, C, D, F: Vector;

  24    MA, MB, MZ, MS: Matrix;

  25    e:integer;

  26 begin

  27    --Func 1

  28    Put_Line("Func 1");

  29    Put_Line("Input vector A");

  30    VectorInput(A);

  31    Put_Line("Input vector B");

  32    VectorInput(B);

  33    Put_Line("Input vector C");

  34    VectorInput(C);

  35    Put_Line("Input vector D");

  36    VectorInput(D);

  37    Func1(A, B, C, D, e);

  38    Put_Line("Func 1 result");

  39    Ada.Integer_Text_IO.Put(e);

  40    New_Line;

  41

  42    --Func 2

  43    Put_Line("Func2");

  44    Put_Line("Input matrix MA");

  45    MatrixInput(MA);

  46    Put_Line("Input matrix MB");

  47    MatrixInput(MB);

  48    Func2(MA, MB, MZ);

  49    Put_Line("Func 2 result");

  50    MatrixOutput(MZ);

  51

  52    --Func 3

  53    Put_Line("Func3");

  54    Put_Line("Input matrix MB");

  55    MatrixInput(MS);

  56    Put_Line("Input vector C");

  57    VectorInput(F);

  58    A := Func3(MS, F);

  59    Put_Line("Func3 result");

  60    VectorOutput(A);

  61 end Begnn;

  1.   Спецификация и тело пакета размещены в отдельных файлах.

Source file: ..\package1-f1.ads   Wed Sep 15 20:15:59 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #2--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10 package Package1_F1 is

  11

  12         N: INteger:=2;

  13    type vector is private;

  14

  15    procedure Func1(a, b, c, d: in Vector; e:out integer);

  16

  17    private

  18                 --Multiplying vectors--

  19                 --c = A * B--

  20                 function VectorMult(a, b: Vector) return integer;

  21         type Vector is array (1..N) of Integer;

  22 end Package1_F1;

Source file: ..\package1-f1.adb   Wed Sep 15 20:15:59 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #2--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10 with Ada.Text_IO; use Ada.Text_IO;

  11 package body Package1_F1 is

  12

  13    --Multiplying vectors--

  14    --c = A * B--

  15    function VectorMult(a, b: Vector) return integer is

  16       sum: integer := 0;

  17    begin

  18       for i in A'range loop

  19          sum := sum + a(i) * b(i);

  20       end loop;

  21       return sum;

  22    end VectorMult;

  23

  24    procedure Func1(a, b, c, d: in Vector; e:out integer) is

  25    begin

  26       e := VectorMult(a, b) - VectorMult(c, d);

  27         exception

  28                 when Constraint_Error =>

  29                 Put("Constraint error in Func1.");

  30    end Func1;

  31

  32 end Package1_F1;

Source file: ..\package2-f2.ads   Wed Sep 15 20:15:59 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #1--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10 package Package1_F1.F2 is       

  11                 type Matrix is private;

  12

  13                 procedure Func2(MA, MB: in Matrix; MZ: out Matrix);

  14

  15         private

  16                 function MatrixSub(MA, MB: Matrix) return Matrix;

  17

  18                 function MatrixScale(MA: Matrix; b: Integer) return Matrix;

  19

  20                 function MAX(MA: Matrix) return Integer;

  21

  22                 function MIN(MA: Matrix) return Integer;

  23         type Matrix is array (1..N) of Vector;

  24 end Package1_F1.F2;

  25

Source file: ..\package2-f2.adb   Wed Sep 15 20:15:59 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #1--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10 with Ada.Text_IO; use Ada.Text_IO;

  11 package body Package1_F1.F2 is

  12

  13         --MATRIX-SUB function--

  14         --MC = MA - MB--

  15         function MatrixSub(MA, MB: Matrix) return Matrix is

  16                 MC: Matrix;

  17         begin

  18           for i in MA'Range loop

  19          for j in MB'Range loop

  20             MC(i)(j) := MA(i)(j) - MB(i)(j);

  21          end loop;

  22       end loop;

  23       return MC;

  24         end MatrixSub;

  25

  26         --Multiplying matrix and scallar--

  27         --MC = MA * b--

  28         function MatrixScale(MA: Matrix; b: Integer) return Matrix is

  29                 MC: Matrix;

  30         begin

  31           for i in MA'Range loop

  32          for j in MA'range loop

  33             MC(i)(j) := MA(i)(j) * B;

  34          end loop;

  35       end loop;

  36       return MC;

  37         end MatrixScale;

  38

  39         --Finding maximum of input matrix--

  40         --MAX(MA)--

  41         function MAX(MA: Matrix) return Integer is

  42                 Sum: Integer := 0;

  43         begin

  44           for i in MA'Range loop

  45          for j in MA'range loop

  46             if MA(i)(j) > Sum then

  47                                 Sum := MA(I)(J);

  48                         end if;

  49          end loop;

  50       end loop;

  51       return Sum;

  52         end MAX;

  53

  54         --Finding minimum of input matrix--

  55         --MIN(MA)--

  56         function MIN(MA: Matrix) return Integer is

  57                 Sum: Integer := Integer'Last;

  58         begin

  59           for i in MA'Range loop

  60          for j in MA'range loop

  61             if MA(i)(j) < Sum then

  62                                 Sum := MA(I)(J);

  63                         end if;

  64          end loop;

  65       end loop;

  66       return Sum;

  67         end MIN;

  68         

  69

  70    ---MZ = MIN(MA)*MB - MAX(MB)*MA

  71    procedure Func2(MA, MB: in Matrix; MZ: out Matrix) is

  72    begin

  73       MZ := MatrixSub(MatrixScale(MB,MIN(MA)),MatrixScale(MA,MAX(MB)));

  74           exception

  75               when Constraint_Error =>

  76                  Put("Constraint error in Func2");

  77    end Func2;

  78 end Package1_F1.F2;

Source file: ..\package3-f3.ads   Wed Sep 15 20:16:00 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #1--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10 package Package1_F1.F2.F3 is

  11

  12         function Func3(MB: Matrix; C: Vector) return Vector;

  13         procedure VectorSort(a: in out Vector);

  14         procedure MatrixSort(mA: in out Matrix);

  15         function MatrixMulVector(a: Vector; MB: Matrix) return Vector;

  16

  17 end Package1_F1.F2.F3;

Source file: ..\package3-f3.adb   Wed Sep 15 20:16:00 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #1--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10 with Ada.Text_IO; use Ada.Text_IO;

  11 package body Package1_F1.F2.F3 is

  12         

  13         procedure VectorSort(a: in out Vector) is separate;

  14

  15    --Matrix Sorting--

  16    --SORT(MA)--

  17    procedure MatrixSort(mA: in out Matrix) is

  18    begin

  19       for i in MA'range loop

  20          VectorSort(mA(i));

  21       end loop;

  22    end MatrixSort;

  23    

  24    --Multiplying matrix with vector--

  25    -- C = A * MB--

  26    function MatrixMulVector(a: Vector; MB: Matrix) return Vector is

  27           C: Vector;

  28           MD: matrix;

  29           Sum: Integer := 0;

  30    begin

  31           for j in MB'range loop

  32                 for i in MB'range loop

  33                         Sum := Sum + MB(i)(j) * A(I);

  34                 end loop;

  35                 C(j) := Sum;

  36                 Sum := 0;

  37           end loop;

  38       return C;

  39    end MatrixMulVector;

  40         

  41    function Func3(MB: Matrix; C: Vector) return Vector is

  42           MG: Matrix; A: Vector;

  43    begin

  44       MG := MB;

  45       MatrixSort(MG);

  46       A := MatrixMulVector(C,mG);

  47    return A;

  48    exception

  49               when Constraint_Error =>

  50                  Put("Constraint error in Func3");

  51                          return A;

  52    end Func3;

  53

  54 end Package1_F1.F2.F3;

Source file: ..\package4-io.ads   Wed Sep 15 20:16:00 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #1--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10 package Package1_F1.F2.IO is

  11            --I/O operations

  12    --Vector outpur--

  13    procedure VectorOutput(a: Vector);

  14

  15    ---Matrix output--

  16    procedure MatrixOutput(a: Matrix);

  17

  18    ---Vector input--

  19    procedure VectorInput(a: in out Vector);

  20

  21    ---Matrix input--

  22    procedure MatrixInput(m: in out Matrix);

  23 end Package1_F1.F2.IO;

  24

Source file: ..\package4-io.adb   Wed Sep 15 20:16:00 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #1--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10         with Ada.Text_IO; use Ada.Text_IO;

  11         with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

  12         with Ada.IO_Exceptions; use Ada.IO_Exceptions;

  13

  14 package body Package1_F1.F2.IO is

  15         --Vector outpur--

  16    procedure VectorOutput(a: Vector) is

  17    begin

  18       for i in A'range loop

  19          Put(a(i), 5);

  20       end loop;

  21       New_line;

  22    end VectorOutput;

  23

  24    ---Matrix output--

  25    procedure MatrixOutput(a: Matrix) is

  26    begin

  27       for i in A'range loop

  28          for j in A'range loop

  29             Ada.Integer_Text_IO.Put(a(i)(j), 4);

  30          end loop;

  31          New_Line;

  32       end loop;

  33    end MatrixOutput;

  34

  35    ---Vector input--

  36    procedure VectorInput(a: in out Vector) is

  37    begin

  38      for i in A'range loop

  39          loop

  40             begin

  41                     Ada.Integer_Text_IO.Get(a(i));

  42                     exit;

  43                     exception

  44                        when Ada.IO_Exceptions.Data_Error =>

  45                           Put("Input error. Please, try again:");

  46                       Skip_Line;

  47             end;

  48          end loop;

  49       end loop;

  50    end VectorInput;

  51

  52    ---Matrix input--

  53    procedure MatrixInput(m: in out Matrix) is

  54    begin

  55       for i in M'range loop

  56          VectorInput(m(i));

  57       end loop;

  58    end;

  59 end Package1_F1.F2.IO;

  1.  Спецификация пакета вложена в пользовательсую программу, тело находиться в отдельном файле.

Source file: ..\usee   Wed Sep 15 20:23:37 2010

   1 -------------------------------------------------

   2 ---Paralel and distributed computing-------------

   3 -----------Laboratory work #1--------------------

   4 ------Votobyev Vitaliy--IO-83--------------------

   5 --Variant: 1.27, 2.14, 3.18----------------------

   6 --Func1: e = (A*B) - (C*D);----------------------

   7 --Func2: MZ = MIN(MA)*MB - MAX(MB)*MA------------

   8 --Func3: A = SORT(MB) * C.-----------------------

   9 -------------------------------------------------

  10

  11 package Package1_F1 is

  12

  13         N: INteger:=2;

  14    type vector is private;

  15

  16    procedure Func1(a, b, c, d: in Vector; e:out integer);

  17

  18    private

  19                 --Multiplying vectors--

  20                 --c = A * B--

  21                 function VectorMult(a, b: Vector) return integer;

  22         type Vector is array (1..N) of Integer;

  23 end Package1_F1;

  24

  25         with package1_f1,

  26                  package1_f1.F2,        

  27              package1_f1.F2.IO,

  28                  package1_f1.F2.F3;

  29         use package1_f1,

  30                  package1_f1.F2,        

  31              package1_f1.F2.IO,

  32                  package1_f1.F2.F3;

  33         with Ada.Text_IO; use Ada.Text_IO;

  34         with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

  35         

  36 procedure Begnn is

  37    A, B, C, D, F: Vector;

  38    MA, MB, MZ, MS: Matrix;

  39    e:integer;

  40 begin

  41    --Func 1

  42    Put_Line("Func 1");

  43    Put_Line("Input vector A");

  44    VectorInput(A);

  45    Put_Line("Input vector B");

  46    VectorInput(B);

  47    Put_Line("Input vector C");

  48    VectorInput(C);

  49    Put_Line("Input vector D");

  50    VectorInput(D);

  51    Func1(A, B, C, D, e);

  52    Put_Line("Func 1 result");

  53    Ada.Integer_Text_IO.Put(e);

  54    New_Line;

  55

  56    --Func 2

  57    Put_Line("Func2");

  58    Put_Line("Input matrix MA");

  59    MatrixInput(MA);

  60    Put_Line("Input matrix MB");

  61    MatrixInput(MB);

  62    Func2(MA, MB, MZ);

  63    Put_Line("Func 2 result");

  64    MatrixOutput(MZ);

  65

  66    --Func 3

  67    Put_Line("Func3");

  68    Put_Line("Input matrix MB");

  69    MatrixInput(MS);

  70    Put_Line("Input vector C");

  71    VectorInput(F);

  72    A := Func3(MS, F);

  73    Put_Line("Func3 result");

  74    VectorOutput(A);

  75 end Begnn;


 

А также другие работы, которые могут Вас заинтересовать

30287. Основные методы (школы) литературоведения. Структурализм, постструктурализм 184 KB
  Буало автора комедии. Художественной формой выражения этой проблемы стало подчеркнутое присутствие автора отношения к изображаемому. Николев а в их стиле лиризм и рупорность основных персонажей прямо высказывающих любимые идеи автора. 3 Реализм это такое направление в искусстве которое в отличие от предшествующих ему классицизма и романтизма где точка зрения автора находилась соответственно внутри и вне текста осуществляет в своих текстах системную множественность точек зрения автора на текст.
30288. Основные методы художественной литературы. Классицизм. Историко-социальные предпосылки возникновения. Трактат "О поэтическом искусстве" Н.Буало. Характер художественного конфликта в классицизме 27.5 KB
  clssicus образцовый художественный стиль и эстетическое направление в европейской литературе и искусстве 17 начала 19 вв. в литературе. стала основой его социологических и этических построений а в литературе К. оставил в наследство русской литературе 19 в.
30289. Основные методы художественной литературы. Классицизм. Жанрово-стилевая система 27 KB
  Представители классицизма в России Эстетика К. Но внешние стороны не должны были заслонять по убеждению теоретиков и практиков классицизма содержательную сторону показывающую столкновение мысли и страсти героев трагедии. В период расцвета классицизма на сцене происходило совпадение внешней формы и содержания. Когда же наступил кризис этой системы то оказалось что в рамках классицизма невозможно показать жизнь человека во всей её сложности.
30290. Основные методы художественной литературы. Романтизм. Философская основа (учения Шеллинга, Шопенгауэра) 30.5 KB
  Романтизм. Характер художественного конфликта в романтизме Классические страны романтизма Германия Англия Франция. Романтизм это одно из крупнейших направлений в европейской и американской литре 1819 вв получившее всемирное значение и распространение. Романтизм это то что впоследствии будет называться французской революцией под лозунгами свобода равенство братство.
30291. Основные методы художественной литературы. Романтизм. Тип героя. Понятия романтической тайны, романтической иронии 23 KB
  Понятия романтической тайны романтической иронии Романтизм последний âбольшой стильâ в истории искусства то есть последнее направление проявившее себя во всех областях духовной деятельности и художественного творчества: в изобразительных искусствах музыке литературе. Романтизм высшая точка в развитии гуманистического искусства начатого в эпоху Возрождения когда человек был провозглашен мерилом всех вещей. Мир для романтиков тайна загадка познать которую может только откровение искусства.
30293. Основные методы художественной литературы. Реализм. Многообразие подходов к проблеме реализма в литературоведении. Просветительский реализм 29 KB
  Реализм. Многообразие подходов к проблеме реализма в литературоведении. Просветительский реализм. 1 Реализм это художественное направление имеющее целью возможно ближе передавать действительность стремящееся к максимальному правдоподобию.
30294. Основные методы художественной литературы. Модернизм - идейные основы и творческая практика. Основные течения. Идейные основы и художественная практика акмеизма 29.5 KB
  Идейные основы и художественная практика акмеизма. Для акмеизма была характерна крайняя аполитичность полное равнодушие к злободневным проблемам современности. Но если в поэзии символизма определяющим фактором являлась мимолетность сиюминутность бытия некая тайна покрытая ореолом мистики то в качестве краеугольного камня в поэзии акмеизма был положен реалистический взгляд на вещи. Главные идеи акмеизма были изложены в программных статьях Н.