Презентация, доклад на тему Анализ алгоритма, содержащего цикл и ветвление Решение 20 задачи ЕГЭ

Содержание

На что обратить внимание:Понимать, как работает while (цикл с предусловием).Необходимо знать операции mod – остаток от деления и div – деление нацело, понимать, что x:= x div 10 – удаляет младший разряд из числа, а d

Слайд 1 Анализ алгоритма, содержащего цикл и ветвление Решение 20 задачи ЕГЭ

Анализ алгоритма, содержащего цикл и ветвление  Решение 20 задачи ЕГЭ

Слайд 2На что обратить внимание:

Понимать, как работает while (цикл с предусловием).
Необходимо знать

операции mod – остаток от деления и div – деление нацело, понимать, что x:= x div 10 – удаляет младший разряд из числа, а d := x mod 10 – выделяет последнюю цифру из числа (10 с.с.).
L mod 2 = 0 - проверка числа на чётность.
Знать, как считается количество (b:= b + 1) и сумма (s:= s + a)
R := 10*R + d – увеличиваем число на один разряд и прибавляем цифру (добавляем цифру к записи числа)




На что обратить внимание:Понимать, как работает while (цикл с предусловием).Необходимо знать операции mod – остаток от деления

Слайд 3Задача 20 из демоверсии 2015


Ниже на четырёх языках программирования записан алгоритм.

Получив на вход число x, этот алгоритм печатает два числа: a и b.
Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 15.
Задача 20 из демоверсии 2015Ниже на четырёх языках программирования записан алгоритм. Получив на вход число x, этот

Слайд 5Решение: readln(x);
a:=0; b:=1;
while x>0 do
begin
a:=a+1;
b:=b*(x mod 10);
x:= x div 10
end;
writeln(a); write(b)
Анализируем алгоритм

– на экран сначала выведется a = 2 (значит, команды в цикле будут повторены 2 раза: a := a+1), затем b = 15. Команда b:=b*(x mod 10) находит произведение b и последней цифры числа x (mod – остаток от деления на 10). Команда x:= x div 10 отбрасывает последнюю цифру от числа x (div – деление нацело). Так как цикл повторяется до тех пор, пока x>0 (то есть выходим из цикла, как только х=0) и мы знаем, что он будет повторён 2 раза (a=2), то отсюда x – двузначное число. Множители числа 15: 3, 5. Наименьшее двузначное число, которое из них можно составить, 35.
Ответ: 35
Решение:			readln(x);a:=0; b:=1;while x>0 dobegina:=a+1;b:=b*(x mod 10);x:= x div 10end;writeln(a); write(b)Анализируем алгоритм – на экран сначала выведется a

Слайд 6Задача 20 из демоверсии 2016


Ниже на четырёх языках программирования записан алгоритм.

Получив на вход число x, этот алгоритм печатает число M. Известно, что x > 100. Укажите наименьшее такое (т.е. большее 100) число x, при вводе которого алгоритм печатает 26.
Задача 20 из демоверсии 2016Ниже на четырёх языках программирования записан алгоритм. Получив на вход число x, этот

Слайд 8Решение:
readln(x);
L := x; M := 65;
if L mod 2

= 0 then M := 52;
while L <> M do
if L > M then
L := L – M
else M := M – L;
writeln(M);
Анализируем алгоритм – в цикле до тех пор, пока L <> M, вычитаем их большего операнда меньший (L := L – M или M := M – L). Узнаём – это алгоритм Евклида для вычисления наибольшего общего делителя (НОД), т.е., если напечатано число 26, то НОД (x, M) = 26. Если х – нечетное, то M = 65, и НОД (x, 65) = 26, но 65 не делится на 26, это невозможно. Значит, была замена,
M = 52, ищем НОД (x, 52) = 26. По условию x>100, берём 104, но НОД (104, 52) = 52, следующее число, которое делится на 26, 104+26 = 130.

Ответ: 130
Решение:readln(x); L := x;  M := 65;if L mod 2 = 0 then  M :=

Слайд 9Задача 20 из демоверсии 2017


Ниже на четырёх языках программирования записан алгоритм.

Получив на вход натуральное число x, этот алгоритм печатает число R. Укажите такое число x, при вводе которого алгоритм печатает двузначное число, сумма цифр которого равна 16. Если таких чисел x несколько, укажите наименьшее из них.

Задача 20 из демоверсии 2017Ниже на четырёх языках программирования записан алгоритм. Получив на вход натуральное число x,

Слайд 11Решение:
readln(x);
R := 0;
while x>0 do begin
d := x mod

10;
R := 10*R + d;
x := x div 10
end;
writeln (R)

Анализируем алгоритм – в цикле до тех пор, пока x>0, выделяем последнюю цифру (d := x mod 10), удаляем последний разряд (x := x div 10), из этих цифр составляем число, начиная с последней цифры, то есть переворачиваем число. Сумма двух цифр равна 16, возможны варианты – 8,8 или 9,7. Наименьшее число – 79.

Ответ: 79
Решение:readln(x);R := 0;while x>0 do begin  d := x mod 10;R := 10*R + d; x

Слайд 12Задача 20 из демоверсии 2018


Ниже на пяти языках программирования записан алгоритм.

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

Слайд 14Решение:
readln(x);
L := 0; M := 0;
while x>0 do
begin
M := M +

1;
if x mod 2 <> 0 then
L := L + 1;
x := x div 2;
end;
writeln(L); writeln(M);
Анализируем алгоритм – до тех пор, пока в введённом числе есть цифры (x>0), повторяем деление этого числа нацело на 2, т.е. осуществляем алгоритм перевода числа из 10 с.с. в 2 с.с., при этом M считает количество цифр в получившемся числе, а L – количество нечётных цифр, т.е. 1. Наименьшее двоичное число из 7 цифр, в котором 5 единиц – 1001111, переводим в 10 с.с. –
= 1*26 + 1*23 +1*22 +1*21 +1*20= 64+8+4+2+1= 79 (введённое число)

Ответ: 79
Решение:		readln(x);		L := 0; M := 0;		while x>0 dobeginM := M + 1;if x mod 2 0 thenL

Слайд 15var x, a, b, c: integer;
begin
readln(x);
a:= 0; b:= 0;

while x > 0 do begin
c:= x mod 2;
if c = 0 then a:= a + 1
else b:= b + 1;
x:= x div 10;
end;
writeln(a);
writeln(b);
end.

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

Решение:
Анализируем алгоритм:
Вводим число x.
До тех пор, пока в введённом числе есть цифры (x>0), повторяем деление этого числа нацело на 10 (x:= x div 10).
В переменную c записываем остаток от деления на 2, переменная a – счетчик чётных цифр, переменная b – счетчик нечётных цифр.

Если в числе 3 четных цифры и 2 нечетных цифры (по условию задачи), то наибольшее число будет 99888 (9- максимальная нечетная цифра, 8 – чётная)

Ответ: 99888

var x, a, b, c: integer;begin readln(x); a:= 0; b:= 0; while x > 0 do begin

Слайд 16var x, a, b, c: integer;
begin
readln(x);
a:= 0; b:= 0;

while x > 0 do begin
c:= x mod 2;
if c = 0 then a:= a + 1
else b:= b + 1;
x:= x div 6;
end;
writeln(a);
writeln(b);
end.

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

Ответ: 4444

Для самостоятельного решения

var x, a, b, c: integer;begin readln(x); a:= 0; b:= 0; while x > 0 do begin

Слайд 17var x, a, b: integer;
begin
readln(x);
a:=0; b:=0;
while x>0 do

begin
a:= a + 2;
b:= b + (x mod 10);
x:= x div 10;
end;
writeln(a); write(b);
end.

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

Решение:
Анализируем алгоритм:
Вводим число x.
До тех пор, пока в введённом числе есть цифры (x>0), повторяем деление этого числа нацело на 10 (x:= x div 10).

С каждой цифрой значение переменной a увеличивается на 2, то есть если a = 6, то в числе всего 3 цифры.
В переменной b накапливается сумма цифр (x mod 10 – выделяет последнюю цифру).
Сумма трех цифр равна 5. Варианты 1+2+2, 2+3+0. Наименьшее трехзначное число, составленное из этих цифр - 122

Ответ: 122

var x, a, b: integer;begin readln(x); a:=0; b:=0; while x>0 do begin  a:= a + 2;

Слайд 18var x, a, b: integer;
begin
readln(x);
a:=0; b:=0;
while x>0 do

begin
a:= a + 2;
b:= b + (x mod 10);
x:= x div 10;
end;
writeln(a); write(b);
end.

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

Ответ: 1099

Для самостоятельного решения

var x, a, b: integer;begin readln(x); a:=0; b:=0; while x>0 do begin  a:= a + 2;

Слайд 19var x, a, b, c: integer;
begin
readln(x);
a := 0; b

:= 10;
while x>0 do begin
с := x mod 10;
a := a+c;
if c x := x div 10;
end;
writeln(a); write(b);
end.

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

Решение:
Анализируем алгоритм:
Вводим число x.
До тех пор, пока в введённом числе есть цифры (x>0), повторяем деление этого числа нацело на 10 (x:= x div 10).

В переменной a накапливается сумма цифр (x mod 10 – выделяет последнюю цифру).
В переменную b записывается наименьшая цифра.(if cСумма цифр равна 13. Наименьшая цифра – 3. Наибольшее число (самое большое число разрядов) - 4333

Ответ: 4333

var x, a, b, c: integer;begin readln(x); a := 0; b := 10; while x>0 do begin

Слайд 20var x, a, b, c: integer;
begin
readln(x);
a := 0; b

:= 10;
while x>0 do begin
с := x mod 10;
a := a+c;
if c x := x div 10;
end;
writeln(a); write(b);
end.

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

Ответ: 68

Для самостоятельного решения

var x, a, b, c: integer;begin readln(x); a := 0; b := 10; while x>0 do begin

Слайд 21var x, y, a, b: longint;
begin
a := 0;
b :=

0;
readln(x);
while x > 0 do begin
y := x mod 10;
if y > 3 then a := a + 1;
if y < 8 then b := b + 1;
x := x div 10
end;
writeln(a);
writeln(b)
end.

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

Решение:
Анализируем алгоритм:
Вводим число x.
До тех пор, пока в введённом числе есть цифры (x>0), повторяем деление этого числа нацело на 10 (x:= x div 10).
y := x mod 10 – выделяет последнюю цифру.

В переменную b записывается количество цифр меньше 8.
Все пять цифр больше 3, из них 3 < 8. Наименьшее число - 44488
В переменную a записывается количество цифр больше 3.

Ответ: 44488

var x, y, a, b: longint;begin a := 0; b := 0; readln(x); while x > 0

Слайд 22var x, y, a, b: longint;
begin
a := 0;
b :=

0;
readln(x);
while x > 0 do begin
y := x mod 10;
if y > 4 then a := a + 1;
if y < 6 then b := b + 1;
x := x div 10
end;
writeln(a);
writeln(b)
end.

Ниже записан алгоритм. Получив на вход число x, эта программа печатает 2 числа, a и b. Укажите наименьшее пятизначное число x, при вводе которых алгоритм печатает сначала 5, а потом 4.

Ответ: 55556

Для самостоятельного решения

var x, y, a, b: longint;begin a := 0; b := 0; readln(x); while x > 0

Слайд 23Получив на вход число x, эти алгоритмы печатают два числа: a и b. Допускается диапазон

значений для величин целого типа: от –231 до 231 – 1.

999888 99988 59 69

Получив на вход число x, эти алгоритмы печатают два числа: a и b. Допускается диапазон значений для величин целого типа: от –231 до

Слайд 24Источники:
Открытый банк заданий по информатике ФИПИ
http://85.142.162.119/os11/xmodules/qprint/index.php?proj=B9ACA5BBB2E19E434CD6BEC25284C67F
Демоверсии ЕГЭ по информатике прошлых лет
http://www.fipi.ru/ege-i-gve-11/demoversii-specifikacii-kodifikatory
Сайт

К.Ю. Полякова
http://kpolyakov.spb.ru/school/ege.htm
Картинки: http://anatoliynikulininfo.ru,
http://clipart-library.com
Источники:Открытый банк заданий по информатике ФИПИ	http://85.142.162.119/os11/xmodules/qprint/index.php?proj=B9ACA5BBB2E19E434CD6BEC25284C67FДемоверсии ЕГЭ по информатике прошлых лет	http://www.fipi.ru/ege-i-gve-11/demoversii-specifikacii-kodifikatoryСайт К.Ю. Полякова   http://kpolyakov.spb.ru/school/ege.htmКартинки: http://anatoliynikulininfo.ru,

Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть