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

   
 

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

Тренажер V-19 генерирует задачи и демонстрирует их решения с проверкой методом

прокрутки по вопросам B8 ЕГЭ 2013




Тренажер V-19 генерирует задачи и демонстрирует их решения с проверкой методом прокрутки по вопросам 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;
if (M < x) and (x mod 2 = 1) then begin;
M:= (x mod 10)*2;
end;
x:= x div 10;
end;
writeln(L); write(M);
end.

Решение:

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

ПРОВЕРКА:

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

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

Ниже записана программа. Получив на вход число 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 (M < x) and (x mod 2 = 1) then begin;
M:= (x mod 10)*2;
end;
x:= x div 10;
end;
writeln(L); write(M);
end.

Решение:

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

ПРОВЕРКА:

пусть х = 103, тогда
проверяем условие 103 > 0 - ДА - входим в цикл
L := L + 1 : =>0 + 1 = 1
M < х; (x mod 10) = 3; => 0 =(103 mod 10 ) = 6
х = 103 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 = 6

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

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

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

Решение:

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

ПРОВЕРКА:

пусть х = 105, тогда
проверяем условие 105 > 0 - ДА - входим в цикл
L := L + 1 : =>0 + 1 = 1
M < х; (x mod 10) = 5; => 0 =(105 mod 10 ) = 10
х = 105 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 = 10

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

Ниже записана программа. Получив на вход число 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 (M < x) and (x mod 2 = 1) then begin;
M:= (x mod 10)*2;
end;
x:= x div 10;
end;
writeln(L); write(M);
end.

Решение:

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

ПРОВЕРКА:

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

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




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

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

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

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