Ладно, вот. Если, конечно, устроит Паскаль. Правда, боюсь, смысл этой "схемы-подсказки" навсегда останется тайной ее составителя, я попроще сделал. И не вижу, куда бы тут впихнуть "много модулей" и даже "несколько процедур". ВАЖНО: модуль сохранить под именем My_Unit.pas (ну или под другим, но тогда, соответственно, меняйте и первую строку), программу называйте, как хотите.
Модуль:
Код:
Unit My_Unit;
Interface
Type
Coord=Record
x,y:Real;
End;
Function First_Quadr(z:Coord):boolean;
Implementation
Function First_Quadr(z:Coord):boolean;
begin
if (z.x>=0) and (z.y>=0) then First_Quadr:=true else First_Quadr:=false;
end;
end.
Программа:
Код:
Uses My_Unit;
Const
N=40;
Var
i:byte;
b:boolean;
Point:Coord;
R:real;
Begin
R:=0;
Randomize;
b:=true;
for i:=1 to N do
begin
Point.x:=Random*10-0.12;
Point.y:=Random*10-0.12;
if not First_Quadr(Point) then
begin
b:=false;
writeln('x = ',Point.x:6:3,' y = ',Point.y:6:3);
end
else
if Sqrt(Sqr(Point.x)+Sqr(Point.y))>R then
R:=Sqrt(Sqr(Point.x)+Sqr(Point.y));
end;
if b then
begin
writeln('All points belong to first quadrant');
writeln('Rmax = ',R:6:3);
end;
Readln
End.