Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with Ada.Text_IO, Ada.Numerics.Discrete_Random, Ada.Numerics.Float_Random;
- use Ada.Text_IO, Ada.Numerics;
- procedure Zad1 is
- type Color is (red, green, blue);
- task My_Generator is
- entry compose;
- entry generate_float(o: out Float);
- entry generate_color(o: out Color);
- entry perish;
- end My_Generator;
- task body My_Generator is
- package Color_Random is new Ada.Numerics.Discrete_Random(Color);
- float_gen: Float_Random.Generator;
- color_gen: Color_Random.Generator;
- begin
- accept compose;
- Float_Random.reset(float_gen);
- Color_Random.reset(color_gen);
- loop
- select
- accept generate_float(o: out Float) do
- o := Float_Random.random(float_gen) * 5.0;
- end generate_float;
- or
- accept generate_color(o: out Color) do
- o := Color_Random.random(color_gen);
- end generate_color;
- or
- accept perish;
- exit;
- end select;
- end loop;
- end My_Generator;
- x: Float;
- c: Color;
- begin
- My_Generator.compose;
- for K in 1..10 loop
- My_Generator.generate_float(x);
- put_line(x'Img);
- end loop;
- for K in 1..10 loop
- My_Generator.generate_color(c);
- put_line(c'Img);
- end loop;
- My_Generator.perish;
- end Zad1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement