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

   
 

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

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




Тренажер V-7 генерирует задачи и демонстрирует их решения с проверкой методом прокрутки по вопросам B8 ЕГЭ 2013 Пример задач и их решений, генерируемых тренажером V-7:

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

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

Решение:

Для решения задачи необходимо понять, что делает эта программа
Видим, что переменная L с каждым шагом цикла увеличивается на 1
Переменная x на каждом шаге цикла делится на 3 и остаток отбрасывается
L = 3, это означает, что цикл прокрутился 3 раза, следовательно и остатков будет взято 3
Очевидно, что в М сохранится сумма остатков от четных значений х, в данном случае она = 6
Исходя из этого формируем строку из остатков: 222
Нам остается полученную из остатков строку: 222 перевести в десятичную систему счисления
2*3^2 + 2*3^1 + 2*3^0 = 26
Вот и все, задача решена! Но, на всякий случай проверим свое решение простой прокруткой

ПРОВЕРКА:

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

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

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

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

Решение:

Для решения задачи необходимо понять, что делает эта программа
Видим, что переменная L с каждым шагом цикла увеличивается на 1
Переменная x на каждом шаге цикла делится на 7 и остаток отбрасывается
L = 3, это означает, что цикл прокрутился 3 раза, следовательно и остатков будет взято 3
Очевидно, что в М сохранится сумма остатков от четных значений х, в данном случае она = 18
Исходя из этого формируем строку из остатков: 666
Нам остается полученную из остатков строку: 666 перевести в десятичную систему счисления
6*7^2 + 6*7^1 + 6*7^0 = 342
Вот и все, задача решена! Но, на всякий случай проверим свое решение простой прокруткой

ПРОВЕРКА:

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

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

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

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

Решение:

Для решения задачи необходимо понять, что делает эта программа
Видим, что переменная L с каждым шагом цикла увеличивается на 1
Переменная x на каждом шаге цикла делится на 9 и остаток отбрасывается
L = 3, это означает, что цикл прокрутился 3 раза, следовательно и остатков будет взято 3
Очевидно, что в М сохранится сумма остатков от четных значений х, в данном случае она = 24
Исходя из этого формируем строку из остатков: 888
Нам остается полученную из остатков строку: 888 перевести в десятичную систему счисления
8*9^2 + 8*9^1 + 8*9^0 = 728
Вот и все, задача решена! Но, на всякий случай проверим свое решение простой прокруткой

ПРОВЕРКА:

пусть х = 728, тогда
проверяем условие 728 > 0 - ДА - входим в цикл
L := L + 1 : =>0 + 1 = 1
(x mod 9) - четное => 0 < (728 mod 9 ); M = 8
х = 728 div 9; => х = 80
проверяем условие 80 > 0 - ДА - входим в цикл
L := L + 1 : =>1 + 1 = 2
(x mod 9) - четное => 8 < (80 mod 9 ); M = 16
х = 80 div 9; => х = 8
проверяем условие 8 > 0 - ДА - входим в цикл
L := L + 1 : =>2 + 1 = 3
(x mod 9) - четное => 16 < (8 mod 9 ); M = 24
х = 8 div 9; => х = 0
L = 3: M = 24

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




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

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

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

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