Предмет: Информатика, автор: avamzachem

Задача на паскале. Пожалуйста, пишите всю!

В первый час работы рабочий изготавливает а деталей, за каждый последующий час - на d деталей больше, чем за предыдущий. Разработайте программу, которая подсчитает, сколько деталей изготовил рабочий за k часов работы.

Ответы

Автор ответа: APALoff
0
Const
  A = 10;
  d = 2;
Var k : integer;
Function Detali(dd,kk : Integer) : Integer;
Begin
  If kk>0 then Detali:=dd+Detali(dd+d,kk-1) else Detali:=0;
end;

Begin
  Readln(k);
  Writeln(Detali(A,k));
end.

Автор ответа: APALoff
0
Var A,d,k : integer;
Function Detali(dd,kk : Integer) : Integer;
Begin
If kk>0 then Detali:=dd+Detali(dd+d,kk-1) else Detali:=0;
end;

Begin
Readln(A,d,k);
Writeln(Detali(A,k));
end.
Автор ответа: APALoff
0
только боюсь препод будет придираться не типу данных, а к реализации кода через рекурсию... )
Автор ответа: avamzachem
0
Вот в этом вся загвоздка. Нужно решать так, как предложил оратор выше, но вот составление формул - не мой конек.
Автор ответа: APALoff
0
ну тогда ждём "оратора выше", пока он исправит свой код.
Автор ответа: avamzachem
0
var a,k,i,d,m:integer; {m - запоминает значение a для конечной прибавки..}
begin
Writeln('За первый час - ');
Readln(a);
Writeln('За каждый последующий - ');
Readln(d);
Writeln('Сколько часов работал рабочий?');
Readln(k);
m:=a;
for i:=1 to k-1 do
begin
m:=m+d;
a:=a+m;
end;
Writeln('Рабочий изготовил ',a,' деталей')
Похожие вопросы
Предмет: Қазақ тiлi, автор: Аноним
Предмет: Алгебра, автор: USSR1990
Предмет: Математика, автор: vashetinka