Задача A. "Световой луч" (10 баллов)
Дано действительное число φ (0<φ<π). Из точки (1, 1) под углом φ к прямой х=1 выпущен световой луч (см. рис.). Найти точку оси ординат, в которой луч падает на эту ось. Если φ<π/4, то луч сначала отразится по закону "угол падения равен углу отражения" от оси абсцисс.Формат входных данных:
С клавиатуры вводиться единственное число φ (0 < φ < 3,14159)
Формат выходных данных:
Вывести на экран единственное число: значение ординаты точки пересечения светового луча с осью ординат. Число вывести с точностью до трех знаков после запятой.
Пример:
Ввод
|
Вывод
|
|
0.78539 1.05719 |
0.000 0.436 |
program luch;
uses crt;
var f,f1:text;
fi,y,x:real;
begin
clrscr;
assign(f,'input.txt');
reset(f);
assign(f1,'output.txt');
rewrite(f1);
readln(f,fi);
if fi=pi/2 then y:=1;
if fi<pi/2 then
begin
x:=sin(fi)/cos(fi);
if abs(1-x)<=0.001 then y:=0 else begin
x:=abs(1-x);write(x); y:=(sin(pi/2-fi)/cos(pi/2-fi))*x; end;end;
if fi>pi/2 then begin
x:=1+sin(pi-fi)/cos(pi-fi); y:=(sin(fi-pi/2)/cos(fi-pi/2))*x; end;
write(f1,y:3:3);
close(f);
close(f1);
end.
Комментариев нет:
Отправить комментарий