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

   
 

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

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




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

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

var x, L, M: integer;
begin
readln(x);
L:=0; M:=0;
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 = 21, т.е. можем записать, что a + b + c = 21
Находим слагаемые и, чтобы получить наименьшее число, выстраиваем их в порядке возрастания
21= a+b+c = 6 + 7 + 8 = 21. Формируем строку из остатков: 678
Нам остается полученную из остатков строку: 678 перевести в десятичную систему счисления
6*9^2 + 7*9^1 + 8*9^0 = 557
Вот и все, задача решена! Но, на всякий случай проверим свое решение простой прокруткой

ПРОВЕРКА:

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

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

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

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

Решение:

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

ПРОВЕРКА:

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

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

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

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

Решение:

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

ПРОВЕРКА:

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

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




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

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

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

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