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

   
 

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

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




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

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

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

Решение:

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

ПРОВЕРКА:

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

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

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

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

ПРОВЕРКА:

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

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

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

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

ПРОВЕРКА:

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

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




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

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

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

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