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

   
 

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

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




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

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

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 = 32, т.е. можем записать, что a*b*c = 32
Находим множители и, чтобы получить наименьшее число, выстраиваем их в порядке возрастания
32= a*b*c = 1 * 4 * 8 = 32. Формируем строку из остатков: 148
Нам остается полученную из остатков строку: 148 перевести в десятичную систему счисления
1*9^2 + 4*9^1 + 8*9^0 = 125
Вот и все, задача решена! Но, на всякий случай проверим свое решение простой прокруткой

ПРОВЕРКА:

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

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

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

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

Решение:

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

ПРОВЕРКА:

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

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

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

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 = 24, т.е. можем записать, что a*b*c = 24
Находим множители и, чтобы получить наименьшее число, выстраиваем их в порядке возрастания
24= a*b*c = 2 * 2 * 6 = 24. Формируем строку из остатков: 226
Нам остается полученную из остатков строку: 226 перевести в десятичную систему счисления
2*7^2 + 2*7^1 + 6*7^0 = 118
Вот и все, задача решена! Но, на всякий случай проверим свое решение простой прокруткой

ПРОВЕРКА:

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

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




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

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

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

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