Program z2_65;uses crt;Label a1,a2,a3,a4,a5,a6,a7;var a,s,h,rv,ro,p:real; n:integer;beginclrscr;Writeln('Укажите номер пункта:');writeln('1. Дана сторона треугольника.');writeln('2. Дана площадь треугольника.');writeln('3. Дана высота треугольника.');writeln('4. Дан радиус вписанной окружности треугольника.');writeln('5. Дан радиус описанной окружности треугольника.');read(n);case n of1:Begin Write('a=');read(a);goto a1;end;2:begin Write('s=');read(s);goto a2;end;3:Begin Write('h=');read(h);goto a3;end;4:Begin Write('r=');read(rv);goto a4;end;5:Begin Write('R=');read(ro);goto a5;end;elsebeginwrite('Такого номера пункта нет.');goto a7;end;end;a1: rv:=a/2; ro:=a/Sqrt(3); s:=sqrt(3)*sqr(a)/4; h:=2*s/a; goto a6;a2: a:=sqrt(4*s/sqrt(3)); h:=2*s/a; rv:=a/2; ro:=a/Sqrt(3); goto a6;a3: a:=2*h/sqrt(3); s:=a*h/2; rv:=a/2; ro:=a/Sqrt(3); goto a6;a4: a:=2*rv; ro:=a/Sqrt(3); s:=sqrt(3)*sqr(a)/4; h:=2*s/a; goto a6;a5: a:=sqrt(3)*ro; s:=(a*a*a)/(4*ro); h:=2*s/a; rv:=a/2;a6: writeln('a=',a:2:2); writeln('s=',s:2:2); writeln('h=',h:2:2); writeln('R=',ro:2:2); writeln('r=',rv:2:2);a7: readkey;end.
Так как язык не указан, приведу пример на SWI-Prolog.
Код:
Program z2_65;
uses crt;
Label a1,a2,a3,a4,a5,a6,a7;
var a,s,h,rv,ro,p:real;
n:integer;
begin
clrscr;
Writeln('Укажите номер пункта:');
writeln('1. Дана сторона треугольника.');
writeln('2. Дана площадь треугольника.');
writeln('3. Дана высота треугольника.');
writeln('4. Дан радиус вписанной окружности треугольника.');
writeln('5. Дан радиус описанной окружности треугольника.');
read(n);
case n of
1:Begin Write('a=');read(a);goto a1;end;
2:begin Write('s=');read(s);goto a2;end;
3:Begin Write('h=');read(h);goto a3;end;
4:Begin Write('r=');read(rv);goto a4;end;
5:Begin Write('R=');read(ro);goto a5;end;
else
begin
write('Такого номера пункта нет.');
goto a7;
end;
end;
a1: rv:=a/2;
ro:=a/Sqrt(3);
s:=sqrt(3)*sqr(a)/4;
h:=2*s/a;
goto a6;
a2: a:=sqrt(4*s/sqrt(3));
h:=2*s/a;
rv:=a/2;
ro:=a/Sqrt(3);
goto a6;
a3: a:=2*h/sqrt(3);
s:=a*h/2;
rv:=a/2;
ro:=a/Sqrt(3);
goto a6;
a4: a:=2*rv;
ro:=a/Sqrt(3);
s:=sqrt(3)*sqr(a)/4;
h:=2*s/a;
goto a6;
a5: a:=sqrt(3)*ro;
s:=(a*a*a)/(4*ro);
h:=2*s/a;
rv:=a/2;
a6: writeln('a=',a:2:2);
writeln('s=',s:2:2);
writeln('h=',h:2:2);
writeln('R=',ro:2:2);
writeln('r=',rv:2:2);
a7: readkey;
end.
Так как язык не указан, приведу пример на SWI-Prolog.
Код:
read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).