Интерактивный тренажер по вопросу В8 -2- ЕГЭ 2013

   
 

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

Интерактивный тренажер версии V-2 c демонстрацией решений по вопросу В8 ЕГЭ 2013




Тренажер V-2 генерирует задачи и демонстрирует их решения с проверкой методом прокрутки по вопросам B8 ЕГЭ 2013 следующего типа:

Ниже записана программа. Получив на вход число x, эта программа печатает два числа. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 48.

var x, L, M: integer;
begin
readln(x);
L:=0; M:=1;
while x > 0 do begin
L:=L+1;
M:= M*(x mod 9);
x:= x div 9;
end;
writeln(L); write(M);
end.

Решение:

Для решения задачи необходимо понять, что делает эта программа
Видим, что переменная L с каждым шагом цикла увеличивается на 1
Переменная x на каждом шаге цикла делится на 9 и остаток отбрасывается
L = 3, это означает, что цикл прокрутился 3 раза, следовательно и множителей будет 3
M = 48, т.е. можем записать, что a*b*c = 48
Находим множители и, чтобы получить наибольшее число, выстраиваем их в порядке убывания
48= a*b*c = 8 * 6 * 1 = 48. Формируем строку из остатков: 861
Нам остается полученную из остатков строку: 861 перевести в десятичную систему счисления
8*9^2 + 6*9^1 + 1*9^0 = 703
Вот и все, задача решена! Но, на всякий случай проверим свое решение простой прокруткой

ПРОВЕРКА:

пусть х = 703, тогда
проверяем условие 703 > 0 - ДА - входим в цикл
L := L + 1 : =>0 + 1 = 1
(x mod 9) = 1; => 1 * (703 mod 9 ) = 1
х = 703 div 9; => х = 78
проверяем условие 78 > 0 - ДА - входим в цикл
L := L + 1 : =>1 + 1 = 2
(x mod 9) = 6; => 1 * (78 mod 9 ) = 6
х = 78 div 9; => х = 8
проверяем условие 8 > 0 - ДА - входим в цикл
L := L + 1 : =>2 + 1 = 3
(x mod 9) = 8; => 6 * (8 mod 9 ) = 48
х = 8 div 9; => х = 0
L = 3: M = 48

Правильный ответ = 703

Ниже записана программа. Получив на вход число x, эта программа печатает два числа. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 18.

var x, L, M: integer;
begin
readln(x);
L:=0; M:=1;
while x > 0 do begin
L:=L+1;
M:= M*(x mod 7);
x:= x div 7;
end;
writeln(L); write(M);
end.

Решение:

Для решения задачи необходимо понять, что делает эта программа
Видим, что переменная L с каждым шагом цикла увеличивается на 1
Переменная x на каждом шаге цикла делится на 7 и остаток отбрасывается
L = 3, это означает, что цикл прокрутился 3 раза, следовательно и множителей будет 3
M = 18, т.е. можем записать, что a*b*c = 18
Находим множители и, чтобы получить наибольшее число, выстраиваем их в порядке убывания
18= a*b*c = 6 * 3 * 1 = 18. Формируем строку из остатков: 631
Нам остается полученную из остатков строку: 631 перевести в десятичную систему счисления
6*7^2 + 3*7^1 + 1*7^0 = 316
Вот и все, задача решена! Но, на всякий случай проверим свое решение простой прокруткой

ПРОВЕРКА:

пусть х = 316, тогда
проверяем условие 316 > 0 - ДА - входим в цикл
L := L + 1 : =>0 + 1 = 1
(x mod 7) = 1; => 1 * (316 mod 7 ) = 1
х = 316 div 7; => х = 45
проверяем условие 45 > 0 - ДА - входим в цикл
L := L + 1 : =>1 + 1 = 2
(x mod 7) = 3; => 1 * (45 mod 7 ) = 3
х = 45 div 7; => х = 6
проверяем условие 6 > 0 - ДА - входим в цикл
L := L + 1 : =>2 + 1 = 3
(x mod 7) = 6; => 3 * (6 mod 7 ) = 18
х = 6 div 7; => х = 0
L = 3: M = 18

Правильный ответ = 316

Ниже записана программа. Получив на вход число x, эта программа печатает два числа. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 10.

var x, L, M: integer;
begin
readln(x);
L:=0; M:=1;
while x > 0 do begin
L:=L+1;
M:= M*(x mod 6);
x:= x div 6;
end;
writeln(L); write(M);
end.

Решение:

Для решения задачи необходимо понять, что делает эта программа
Видим, что переменная L с каждым шагом цикла увеличивается на 1
Переменная x на каждом шаге цикла делится на 6 и остаток отбрасывается
L = 3, это означает, что цикл прокрутился 3 раза, следовательно и множителей будет 3
M = 10, т.е. можем записать, что a*b*c = 10
Находим множители и, чтобы получить наибольшее число, выстраиваем их в порядке убывания
10= a*b*c = 5 * 2 * 1 = 10. Формируем строку из остатков: 521
Нам остается полученную из остатков строку: 521 перевести в десятичную систему счисления
5*6^2 + 2*6^1 + 1*6^0 = 193
Вот и все, задача решена! Но, на всякий случай проверим свое решение простой прокруткой

ПРОВЕРКА:

пусть х = 193, тогда
проверяем условие 193 > 0 - ДА - входим в цикл
L := L + 1 : =>0 + 1 = 1
(x mod 6) = 1; => 1 * (193 mod 6 ) = 1
х = 193 div 6; => х = 32
проверяем условие 32 > 0 - ДА - входим в цикл
L := L + 1 : =>1 + 1 = 2
(x mod 6) = 2; => 1 * (32 mod 6 ) = 2
х = 32 div 6; => х = 5
проверяем условие 5 > 0 - ДА - входим в цикл
L := L + 1 : =>2 + 1 = 3
(x mod 6) = 5; => 2 * (5 mod 6 ) = 10
х = 5 div 6; => х = 0
L = 3: M = 10

Правильный ответ = 193




Данный ролик можно вставить на страницу любого сайта с любым сценарием урока или с иным образовательным контентом, для этого достаточно вставить код, приведенный ниже, в нужное место своей веб-страницы

Анимация остается работоспособной и при более коротком написании кода!

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

 
© Александр Козлов, 2013
671717 г.Северобайкальск
 
Рейтинг@Mail.ru