Конспект лекций по программированию для начинающих. Гладков В.П. - 113 стр.

UptoLike

Составители: 

115
лишь потом начинают убывать. Быстрее и точнее значение e
x
при x=n+m, где n -
целое, а |m|<=1/2, можно вычислить по формуле e
x
=e
n
·e
m
, где e
n
вычисляется
последовательными умножениями или делениями на e, а e
m
- с помощью ряда
примера 2. Напишите фрагмент программы для вычисления e
x
с помощью
описанного метода.
Пример 10.36. Баржа, двигаясь по реке, ежедневно проходит расстояние,
определяемое формулой
y =
yy
0.7 y y
i-1 i-2
i-5 i-4
+⋅
⋅−
05
02
.,
.,
Определить, сможет ли баржа за n дней пройти расстояние в z километров, если
в каждый из первых пяти дней она проходила по одному километру.
Решение. Для того чтобы вычислить дневной путь баржи, начиная с шестого
дня, необходимо знать расстояния, пройденные баржей за предыдущие пять дней.
Введем обозначения: y
i
- a, y
i-1
- b, y
i-2
- c, y
i-3
- d, y
i-4
- e, y
i-5
- f. Эта часть задачи
решается стандартно для любой задачи на рекуррентные формулы. Кроме того,
необходимо найти путь баржи за n дней (сумма расстояний) и сравнить его с z.
{ фрагмент 33 }
var a,b,c,d,e,f:real; { расстояния, пройденные баржей за 6 дней }
i,n:integer; {i - счетчик, n - количество дней }
s:real; { сумма расстояний, пройденных за n дней }
z:real; { расстояние для сравнения }
begin
f:=1;
e:=1;
d:=1;
c:=1;
b:=1;
s:=5;
write('Введите количество дней ');readln(n);
for i:=5 to n do
begin if i mod 2=0
then a:=b+0.5*c
else a:=0.7*f-0.2*e;
f:=e;
e:=d;
d:=c;
c:=b;
b:=a;
s:=s+a;
end;
if s>z
then write('Пройденное расстояние
',s,' больше ',z)
else if s=z
then write('Пройденное расстояние ',s,' равно ',z)
если i -четное,
если i - нечетное.
                                             115

лишь потом начинают убывать. Быстрее и точнее значение ex при x=n+m, где n -
целое, а |m|<=1/2, можно вычислить по формуле ex=en·em, где en вычисляется
последовательными умножениями или делениями на e, а em - с помощью ряда
примера 2. Напишите фрагмент программы для вычисления ex с помощью
описанного метода.
   Пример 10.36. Баржа, двигаясь по реке, ежедневно проходит расстояние,
определяемое формулой
        ⎧y i-1 + 0.5 ⋅ y i-2 ,       если i -четное,
   y = ⎨
        ⎩0.7 ⋅ y i-5 − 0.2 ⋅ y i-4 , если i - нечетное.

    Определить, сможет ли баржа за n дней пройти расстояние в z километров, если
в каждый из первых пяти дней она проходила по одному километру.
    Решение. Для того чтобы вычислить дневной путь баржи, начиная с шестого
дня, необходимо знать расстояния, пройденные баржей за предыдущие пять дней.
Введем обозначения: yi - a, yi-1 - b, yi-2 - c, yi-3 - d, yi-4 - e, yi-5 - f. Эта часть задачи
решается стандартно для любой задачи на рекуррентные формулы. Кроме того,
необходимо найти путь баржи за n дней (сумма расстояний) и сравнить его с z.
    { фрагмент 33 }
    var       a,b,c,d,e,f:real; { расстояния, пройденные баржей за 6 дней }
              i,n:integer; {i - счетчик, n - количество дней }
              s:real; { сумма расстояний, пройденных за n дней }
              z:real; { расстояние для сравнения }
    begin
       f:=1;
       e:=1;
       d:=1;
       c:=1;
       b:=1;
       s:=5;
       write('Введите количество дней ');readln(n);
       for i:=5 to n do
       begin if i mod 2=0
              then a:=b+0.5*c
              else a:=0.7*f-0.2*e;
              f:=e;
              e:=d;
              d:=c;
              c:=b;
              b:=a;
              s:=s+a;
       end;
       if s>z
       then write('Пройденное расстояние ',s,' больше ',z)
       else if s=z
              then write('Пройденное расстояние ',s,' равно ',z)