С ПОМОЩЬЮ ПАСКАЛЯ
Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня.
Составить программу, определяющую, какой суммарный путь пробежал спортсмен за 7 дней.

2
var
i:integer;
n,s:real;
begin
n:=10;
for i:=1 to 7 do
begin
s:=s+n;
n:=n*1.1
end;
writeln('Путь: ',s)
end.

Ответы и объяснения

2014-04-15T14:42:58+04:00
Var i,k,m,s:integer;
k1,k2:real;
begin
k:=10;
m:=10;
s:=7;
k1:=k; k2:=k;
for i:=1 to s-1 do begin
k1:=k1+k1*m/100;
k2:=k2+k1;
end;
writeln(k2:0:1);
end.

программа выдаёт ответ с округлением до 1 знака после запяткой.
Лучший Ответ!
  • thn
  • отличник
2014-04-15T14:55:37+04:00
Решение больше математическое получилось с выводом формулы, там уж сами выберете как вам лучше.
На каждый следующий день спортсмен пробегает в
\frac{100+10}{100} = 1.1
большее расстояние чем в предыдущий.
Т.е. если обобщить:
S_n = 10(1.1)^{n-1}
Расстояние, которое спортсмен пробегает каждый n-ный день.
В итоге, у нас получилась геометрическая прогрессия, где
b_1 = 10; q = 1.1
b_n = 10(1.1)^{n-1}
Чтобы найти сумму первых n членов геометрической прогрессии:
S_n = \frac{b1(1-q^n)}{1 - q} \\
S_7 = \frac{10(1-1.1^7)}{1 - 1.1} = \frac{-10(1.1^7-1)}{-0.1} = 100(1.1^7 - 1)
В программе пишем:
_________________________
var
i:integer;
k:double;
begin
k:=1.1;
for i:=1 to 6 do k:=k*1.1;
writeln(100*(k-1):0:2);
end.
__________________________