. ПЛАЧУ Задача F «Геометрия 6 »
Стороны прямоугольного поля размеров 47*73 сантиметров помечены буквами A,R,Z,D. Маленький мячик B (его размерами можно пренебречь) размещен внутри этого поля в 13 сантиметрах от стороны R и в 29 сантиметрах от стороны D (см рис.3). Игрок ставит свой кий на сторону R в точке, размещенной в k сантиметрах от стороны D и прямо бьет по мячу B. Мяч продолжает движение по прямой линии и, если нужно, отражается от сторон поля. Отражение происходит по законам физики, то есть так, чтобы угол падения равнялся углу отражения. Начальный фрагмент движения мячика показан на рис. 4.
Ваша задача – написать программу, которая для данных чисел k(0<=k<=73) и n(0<=n<109) выведет расстояние от мяча до стороны R(BR) и до стороны D (BD) после того, как мяч пролетит ровно n сантиметров. Значения BR и BD должны быть выведены как вещественные числа и округлены до ближайшей тысячной сантиметра.
Примеры
ввод вывод
29 100 19.000 29.000
16 20 27.142 43.142
var
s: string;
i, count: integer;
begin
writeln('Vvedite stroky: ');
readln(s);
for i := 1 to length(s) - 2 do
if copy(s, i, 3) = 'abc' then
count := count + 1;
writeln('Kol-vo: ', count);
end.
2.
var
s1, s2: string;
i, len1, len2: integer;
begin
writeln('Vvedite stroky 1: ');
readln(s1);
writeln('Vvedite stroky 2: ');
readln(s2);
len1 := length(s1);
len2 := length(s2);
if len1 > len2 then writeln('1 stroka dlinnee')
else if len1 < len2 then writeln('2 stroka dlinnee')
else writeln('dlini strok ravnie')
end.
3.
var
s1, s2, s3: string;
begin
writeln('Vvedite stroky 1: ');
readln(s1);
writeln('Vvedite stroky 2: ');
readln(s2);
s3 := s1[1] + s1[2] + s2[1] + s2[2];
writeln('Novaja stroka: ', s3);
end.
var
t:boolean;
d:integer;
begin
t := true;
d := 2;
while t and (d*d <= x) do
begin
if x mod d = 0 then
t := false;
d := d + 1
end;
prime := t
end;
function order(x:integer):boolean;
var
t:boolean;
d:integer;
begin
d := -1;
repeat
t := x mod 10 > d;
d := x mod 10;
x := x div 10
until not t or (x = 0);
order := t
end;
var
t:boolean;
i,k,n:integer;
begin
t := false;
read(k,n);
for i := k to n do
if prime(i) then
if order(i) then
begin
write(i,' ');
t := true
end;
if not t then
write(0)
end.