Z L I Z L Z L Z L type Pan_Mlody is (Druciarz, Krawiec, Zolnierz, Marynarz, Bogacz, Biedak, Zebrak, Zlodziej); I Pan_Mlody N I N O I I N = 10. Pan_Mlody'Val((N-1) mod 8) I I Pan_Mlody'Val((N-1) mod (Pan_Mlody'Pos(Pan_Mlody'Last) +1)) I N = 10 Krawiec. Z O I Z Z Z type Wind is (North, North_East, East, South_East, South, South_West, West, North_West); N I Przeciwne Prostopadle I function Przeciwne (X : Wind; Y : Wind) return Boolean is begin return (Wind'Pos (X) - Wind'Pos (Y)) mod 8 = 4; end Przeciwne; function Prostopadle (X : Wind; Y : Wind) return Boolean is begin return (Wind'Pos (X) - Wind'Pos (Y)) mod 4 = 2; end Prostopadle; Z L Z Z L Z L Z L X, Y : Integer; -- To jest deklaracja .. if (X > (Y + 10)) and (X /= Y) then .. X,Y if (X > (Y + 10)) then -- Je eli pierwszy warunek jest -- prawdziwy, to drugi te . Z N Z Z Z Poziom : Natural; .. - Obliczamy Poziom if Poziom < 100 then Put (Item => "Poziom niski"); elsif Poziom < 200 then Put (Item => "Poziom sredni"); elsif Poziom < 300 then Put (Item => "Poziom wysoki"); else Put (Item => "Alarm"); end if; Z case Poziom is when 0..99 => Put (Item => "Poziom niski"); when 100..199 => Put (Item => "Poziom sredni"); when 200..299 => Put (Item => "Poziom wysoki"); when others => Put (Item => "Alarm"); end case; Z Z I for na I while Z Z Z for Licznik in 1..10 loop Put ("Licznik petli = "); Put (Licznik); end loop; Licznik : Integer range 1..11 := 1; .. while Licznik < 11 loop Put ("Licznik petli = "); Put (Licznik); Licznik := Licznik + 1; end loop; Z L I while I I Z L Z L Z L I 2 1..10000. Potega := 1; while Potega < 10000 loop Ada.Integer_Text_IO.Put (Item => Potega, Width => 5); Potega := Potega * 2; end loop; Z I I Potega := 1; loop exit when Potega >= 10000; Ada.Integer_Text_IO.Put (Item => Potega, Width => 5); Potega := Potega * 2; end loop; Z I Z Z Z Max_Size : constant := 30; subtype Index_Range is Integer range 1..Max_Size; type Name_String is array (Index_Range) of Character; : First_Name : Name_String; N I First_Name 'A' . Put I I 14 I First_Name. First_Name(1) := 'A'; Ada.Text_IO.Put (First_Name(14)); Z L N I Z L Z L Z L type Tablica_Napisow_4D is array (Positive range <>) of String (1..4); Kura, Pies, Koza Owca. Z I Zwierzeta N Psa Biesa. Zwierzeta : Tablica_Napisow_4D := ("Kura", "Pies", "Koza", "Owca"); : Zwierzeta (2)(1) := 'B'; -- albo Zwierzeta (2) := "Bies"; Z I Z Z Z type Matrix is array (Integer range < >, Integer range < >) of Float; Create_Unit_Matrix, I N× N I I I Unit_Matrix_N N × N. function Create_Unit_Matrix (N : Positive) return Matrix is M : Matrix (1..N, 1..N); begin for I in 1..N loop for J in 1..N loop if I = J then M(I,J) := 1.0; else M(I,J) := 0.0; end loop; end loop; return M; end Create_Unit_Matrix; .. Unit_Matrix_N : constant Matrix := Create_Unit_Matrix(N); Z L N I Z L Z L Z L type Wektor_6 is array (1..6) of Float; type Macierz_3_Na_6 is array (1..3) of Wektor_6; M : Macierz_3_Na_6; N I M. M (1..2) := (M(2), M(1)); Z L I I M " N " Z L Z L Z L I I M " N J I N = 1 M " N = M, M " N = M +M "(N -1). N Mnozenie I I function Mnozenie (M : in Integer; N : in Positive) return Integer is Wynik : Integer; begin if N = 1 then Wynik := M; -- Przypadek podstawowy else Wynik := M + Mnozenie (M, N-1); -- Rekurencja end if; return Wynik; end Mnozenie; Z N Suma_Kwadratow I Z Z Z N I N Oblicz_Sume_Kwadratow Suma_Kwadratow. function Suma_Kwadratow (N : in Positive) return Positive is -- Funkcja oblicza sum kwadratów pierwszych N liczb -- caÅ‚kowitych, dodatnich Suma : Integer := 0; Licznik : Positive := 1; begin while Licznik <= N loop Suma := Suma + Licznik*Licznik; Licznik := Licznik + 1; end loop; return Suma; end Suma_Kwadratow; procedure Oblicz_Sume_Kwadratow (N : in Positive; S : out Positive) is -- Procedura oblicza sum kwadratów pierwszych N liczb -- caÅ‚kowitych, dodatnich Suma : Integer := 0; Licznik : Positive := 1; begin while Licznik <= N loop Suma := Suma + Licznik*Licznik; Licznik := Licznik + 1; end loop; S := Suma; end Oblicz_Sume_Kwadratow; Z L T Complex I I I Z L Z L Z L type Complex is record Re : Float; Im : Float; end record; Z I I I 1. Z I Zero Jeden I I I I N "+" "*" I I I Complex. I : constant Complex := (Re => 0.0, Im => 1.0); Zero : constant Complex := (Re => 0.0, Im => 0.0); Jeden : constant Complex := (Re => 1.0, Im => 0.0); function "+" (A, B : Complex) return Complex is C : Complex; begin C.Re := A.Re + B.Re; C.Im := A.Im + B.Im; return C; end "+"; function "*" (A, B : Complex) return Complex is C : Complex; begin C.Re := A.Re*B.Re - A.Im*B.Im; C.Im := A.Re*B.Im + A.Im*B.Re; return C; end "*"; Z T Complex I I I Z Z Z type Complex is record Re : Float; Im : Float; end record; N Re_Part, Im_Part Adjoint I I I I Complex. function Adjoint (X : Complex) return Complex is C : Complex; begin C.Re := X.Re; C.Im := -X.Im; return C; end Conjugate; function Re_Part (X : Complex) return Float is begin return X.Re; end Re_Part; function Im_Part (X : Complex) return Float is begin return X.Im; end Im_Part;