1. Составить блок-схему решения следующей задачи: Известно, что 48 вершков = 7 футов= 2,1336 м. Дано хм. Перевести эту величину в вершки и футы составить блок схему
Часть объяснений выполнено в виде комментариев в коде. Комментарии перед отправкой на проверку рекомендую стереть.
Описание переменных: m - остаток муки на текущий момент, k - кол-во пакетов в контейнере, l - кол-во муки в пакете. c - кол-во полных контейнеров, p - кол-во полных пакетов муки. При рекурсивном погружении фасуем по пакетам, при всплытии фасуем по контейнерам. Грамотная возвращение и передача параметров делают свое дело.
//где-то не закрыла begin end var A:array [1..40] of integer; sa,s3,s10,k,i: integer; begin sa:=0; s10:=0; s3:=0; k:=0; writeln('исходные значения'); for i:=1 to 40 do begin A[i]:= random(21); write(A[i],'') end; writeln; for i:=1 to 40 do begin if A[i]mod 2<>0 then begin sa:=sa+A[i]; k:=k+1; if A[i]<10 then s10:=s10+A[i]; if A[i] mod 3=0 then s3:=s3+A[i]; //здесь было странное выражение end; end; //здесь writeln('среднее арефмитическое нечетных чисел',sa/k:5:0); writeln('сумма чисел, не превышающих', s10); writeln('сумма чисел, кратных трем', s3); End.
Исходный код:
def pack(m, k, l, p=0):
c = 0 # базовый случай когда еще не создавали контейнеры
# если есть что еще фасовать по пакетам
if m >= l:
m -= l
p += 1
c, p, m = pack(m, k, l, p) # продолжаем фасовать муку
# если можно создать контейнер, то создаем
if p >= k:
p -= k
c += 1
return c, p, m
m, k, l = map(int, input().split())
print(*pack(m, k, l))
Примечание:
Часть объяснений выполнено в виде комментариев в коде. Комментарии перед отправкой на проверку рекомендую стереть.
Описание переменных: m - остаток муки на текущий момент, k - кол-во пакетов в контейнере, l - кол-во муки в пакете. c - кол-во полных контейнеров, p - кол-во полных пакетов муки. При рекурсивном погружении фасуем по пакетам, при всплытии фасуем по контейнерам. Грамотная возвращение и передача параметров делают свое дело.
Cкрин из редактора кода тоже прикрепил)
var A:array [1..40] of integer;
sa,s3,s10,k,i: integer;
begin
sa:=0;
s10:=0;
s3:=0;
k:=0;
writeln('исходные значения');
for i:=1 to 40 do
begin
A[i]:= random(21);
write(A[i],'')
end;
writeln;
for i:=1 to 40 do
begin
if A[i]mod 2<>0 then
begin
sa:=sa+A[i];
k:=k+1;
if A[i]<10 then s10:=s10+A[i];
if A[i] mod 3=0 then
s3:=s3+A[i]; //здесь было странное выражение
end;
end; //здесь
writeln('среднее арефмитическое нечетных чисел',sa/k:5:0);
writeln('сумма чисел, не превышающих', s10);
writeln('сумма чисел, кратных трем', s3);
End.