1

Тема: Задача про двох хлопчиків

Два хлопчики одночасно стартували з однієї точки і побіг¬ли — один по колу, а другий по сторонах квадрата. Якщо вважати, що радіус кола може бути лише цілим числом, а π == 3,14 , то при якому найменшому радіусі і при якій стороні квадрата вони знову одночасно зустрінуться в початковій точці?

program zadannja1;
var l,r,p,s1,s2: real;
begin
p:=3.14;
l:=1;
r:=1;
s1:=l*4;
s2:=2*p*r;
 repeat
  l:=l+1;
  r:=r+1;
 until
  s1=s2;
writeln('Dov}{una kvadrata=',l:6:2);
writeln('Dov}{una radiysa',r:6:2);
readln;
end.

Мені 16 років

2

Re: Задача про двох хлопчиків

При нулю ж.
З кожним проходом циклу ви порівнюєте x*4 і x*6.28, де x = 1,2,3... Зрозуміло, що вони ніколи не будуть рівними.
Якщо l*4 = r*2*pi, то l/r = pi/2 = 1.57 = 157/100.

3

Re: Задача про двох хлопчиків

Перед тим, як програмувати, треба розв'язати задачу математично настільки, наскільки можливо.
Так, якщо радіус кола 0 (найменший можливий), то при стороні квадрата 0 вони зустрінуться одночасно в початковій точці, і нема сенсу далі щось обчислювати.
Якщо ж вважати, що 0 - то не радіус, то для довільного радіуса r можна знайти сторону l (не цілу) таку, що 2*p*r = 4 * l, формулу виведіть самі, в 16 років вже маєте вміти.
Якщо ж сторона квадрата має бути цілою, то, по-перше, це має бути записано в умові, а по-друге, тут знадобиться формула, яку ви щойно вивели.
Ну і ваш вік немає значення. Фраза "я тільки почав вивчати" тут пасує краще.

4

Re: Задача про двох хлопчиків

program qq;
var r,s1,s2,p: real; l,i: integer;
begin
p:=3.14;
s1:=4*l;
s2:=2*p*r;
r:=1;
If s1=s2 then writeln('Dov}{una kvadrata=',l)
else
   For i:=(яке число тут записати? і як?) to 2 do
   begin
     l:=l+i;
   end;
end.

5

Re: Задача про двох хлопчиків

Ну задача, по-суті, питає: яка довжина сторони квадрата при радіусу кола рівному 1.
Тобто, знаходите довжину кола і ділите на 4 сторони квадрата: 2*pi/4 = 6.28/4 = 1,57.

Цікаво, які оцінки у вас Kaskade по математиці, задача елементарна.

Подякували: Kaskade1