В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
alinana554
alinana554
21.02.2022 07:33 •  Информатика

перевести код с паскаля на пайтон
var i,max,n:integer; d,c:array[1..15] of integer;

procedure recurs(k,s:integer);
var f,q,j:integer;
begin
f:=0;
for j:=1 to n do
if d[j]>=k then
begin
q:=(d[j]-k+1)*c[j];
f:=d[j]; d[j]:=0;
recurs(k+1,s+q);
d[j]:=f; f:=1;
end;
if f=0 then
if max end;

begin
read(n);
for i:=1 to n do read(d[i],c[i]);
recurs(1,0);
writeln(max);
end.

Показать ответ
Ответ:
mick65
mick65
13.01.2023 13:55

1. 32

a = 26

b = 6

b = a / b + b = 26 / 6 + 6 = (4*6+2) / 6 + 6 = 4 + 6 = 10

c = a % b + a = 26 % 10 + 26 = (2 * 10 + 6) % 10 + 26 = 6 + 26 = 32

2. 9

a = 24

b = 5

c = a % b + b = 24 % 5 + 5 = (4 * 5 + 4) % 5 + 5 = 4 + 5 = 9

3. 32

a = 28

b = 7

c = a / b + a = 28 / 7 + 28 = 4 + 28 = 32

4. 6

a = 24

b = 5

b = a / b = 24 / 5 = (4 * 5 + 4) / 5 = 4

c = a / b = 24 / 4 = 6

5. 5

a = 22

b = 4

b = a % b + 4 = 22 % 4 + 4 = (5 * 4 + 2) % 4 + 4 = 2 + 4 = 6

C = a % b + 1 = 22 % 6 + 1 = (3 * 6 + 4 ) + 1 = 4 + 1 = 5

6. 3

a = 28

b = 7

b = a / b = 28 / 7 = 4

c = a % (b + 1) = 28 % (4 + 1)  = 28 % 5 = (5*5 + 3) % 5 = 3

7. 7

a = 26

b = 6

b = a % b = 26 % 6 = (4 * 6 + 2) % 6 = 2

c = a / (b + 1) = 26 / (2 + 1) = 26 / 3 = (7*3 + 5) / 3 = 7

0,0(0 оценок)
Ответ:
rozaMika
rozaMika
19.02.2022 23:17

1. При вводе числа 15 программа выведет число 4.

2. Наименьшие значения A, при которых программа выведет верный ответ, равны 2 и 3.

3. В программе допущена типичная для начинающих программистов ошибка «смещения кадра»: значение переменной K, необходимое при первом выполнении цикла, присваивается до начала цикла, а значение для следующего оборота цикла вычисляется в конце предыдущего оборота. В результате, при завершении цикла K имеет значение больше, чем нужно. Вторая ошибка – неверный шаг изменения K. «Идеальная» программа решения этой задачи должна выглядеть так (приведён пример на языке Бейсик):

DIM A,S,K AS INTEGER

INPUT A

S = 0

K = −1

WHILE S <= A

K = K + 2

S = S + K*(K+1)

WEND

PRINT K

END

Но по условиям задания менять местами строки нельзя, их можно только исправлять. Поэтому, кроме исправления шага, приходится корректировать значение K при выводе. Пример исправления для языка Паскаль:

Первая ошибка:

k := k+1;

Исправленная строка:

k := k+2

Вторая ошибка:

writeln(k)

Исправленная строка:

writeln(k-2)

В программах на других языках ошибочные строки и их исправления аналогичны.

Незначительной опиской, не влияющей на оценку, следует считать отсутствие знаков и служебных слов после содержательной части исправления.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота