Меню

Подготовка к ОГЭ по информатике Задание 6 Анализ программ с ветвлениями

Подготовка к ОГЭ по информатике. Задание 6. Анализ программ с ветвлениями

В презентации 15 задач на анализ программ с условным оператором «Ветвление». Задачи соответствуют виду ОГЭ 2021 года по информатике. Кроме трёх первых задач, остальные двенадцать задач авторские и ранее нигде не публиковались.

Материал поможет ученикам подготовиться к ОГЭ по информатике, в частности проверить их умение анализировать простые программы с ветвлением на языке программирования Pascal.

Целевая аудитория: для 9 класса

Автор: Никитенко Евгений Игоревич
Место работы: МБОУ СОШ №10 п. Гирей
Добавил: Игоревич

Физкультминутки

Физкультминутки обеспечивают кратковременный отдых детей на уроке, а также способствуют переключению внимания с одного вида деятельности на другой.

Свидетельство о публикации презентации

Уважаемые коллеги! Добавьте свою презентацию на Учительский портал и получите бесплатное свидетельство о публикации методического материала в международном СМИ.

Почтовая рассылка

Подпишитесь на почтовую рассылку Учительского портала и получайте ссылки на новые разработки уроков, презентации, тесты и другие методические материалы на электронную почту. Это бесплатно!

Конкурсы для учителей

Диплом и справка о публикации каждому участнику!

Новости образования

350 лет Петру I

Летний пришкольный лагерь

Маркер СМИ

© 2007 — 2021 Сообщество учителей-предметников «Учительский портал»
Свидетельство о регистрации СМИ: Эл № ФС77-64383 выдано 31.12.2015 г. Роскомнадзором.
Территория распространения: Российская Федерация, зарубежные страны.
Учредитель: Никитенко Евгений Игоревич

Сайт является информационным посредником и предоставляет возможность пользователям размещать свои материалы на его страницах.
Публикуя материалы на сайте (презентации, конспекты, статьи и пр.), пользователи берут на себя всю ответственность за содержание материалов и разрешение любых спорных вопросов с третьими лицами.

Администрация сайта готова оказать поддержку в решении любых вопросов, связанных с работой и содержанием сайта.
Если вы обнаружили, что на сайте незаконно используются материалы, сообщите администратору через форму обратной связи — материалы будут удалены.

Использование материалов сайта возможно только с разрешения администрации портала.

Источник



B8 (повышенный уровень, время – 5 мин). Тема: Анализ программы, содержащей подпрограммы, циклы и ветвления (стр. 1 )

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3

B8 (повышенный уровень, время – 5 мин)

Тема: Анализ программы, содержащей подпрограммы, циклы и ветвления.

Что нужно знать:

· операции целочисленного деления ( div ) и взятия остатка ( mod )

· как работают операторы присваивания, циклы и условные операторы в языке программирования

Пример задания:

Ниже записан алгоритм. После выполнения алгоритма было напечатано 3 числа. Первые два напечатанных числа – это числа 9 и 81. Какое наибольшее число может быть напечатано третьим?

var x, y, z: integer;

r, a, b: integer;

if у > x then begin

z:= x; x:= у; у:= z;

while b > 0 do begin

Решение :

1) сложность этой задачи состоит в том, чтобы разобраться в алгоритме

2) сначала вводятся два числа и переставляются так, чтобы в переменной x было наибольшее число, а в переменной y – наименьшее из двух:

if у > x then begin

z:= x; x:= у; у:= z;

3) затем исходные значения копируются в переменные a и b и с ними выполняется следующий алгоритм

while b > 0 do begin

r := a mod b ;

a := b ;

b := r ;

его суть сводится к тому, что меньшее из двух чисел, a и b , каждый раз заменяется на остаток от деления большего на меньшее до тех пор, пока этот остаток не станет равен нулю;

4) делаем вывод, что это классический Алгоритм Евклида, который служит для вычисления наибольшего общего делителя (НОД) двух чисел; это делитель в результате оказывается в переменной a

5) смотрим, что выводится на экран: сначала значение переменной a (наибольший общий делитель исходных чисел, НОД( x , y )), затем значение x (большее из исходных чисел) и значение y (меньшее из исходных чисел)

6) по условию первое число – 9, второе – 81, поэтому третье число должно быть меньше, чем 81, и НОД(81,y) = 9

7) наибольшее число, которое меньше 81 и делится на 9, равно 72 (обратите внимание, что исходные числа не могут быть равны, потому что в этом случае их НОД был бы равен 81)

Ещё пример задания:

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

var x, L, M: integer;

while x > 0 do begin

writeln(L); write(M);

Решение :

9) для решения задачи необходимо понять, что делает эта программа

10) если это не видно сразу, можно выполнить ручную прокрутку для какого-то простого числа, например, для числа 251:

while x > 0 do…

2 51 > 0? да

L := L +1;

if M x mod 10) then

M 51 mod 10)? да

while x > 0 do…

2 5 > 0? да

L := L +1;

M 25 mod 10)? да

while x > 0 do…

2 > 0? да

L := L +1;

M mod 10)? нет

x := x div 10;

while x > 0 do…

> 0? нет

writeln(L); write(M);

11) можно догадаться, что в результате работы программы в переменной L окажется число цифр числа, а в переменной M – наибольшая цифра, но это предположение нужно постараться доказать

12) нужно вспомнить (и запомнить), что для целого числа остаток от деления на 10 ( x mod 10 ) – это последняя цифра в десятичной записи числа, а целочисленное деление ( x div 10 ) отсекает последнюю цифру, то есть из 123 получается 12

Читайте также:  Тесты по истории Казахстана 11 класс тест по истории 11 класс на тему

13) рассмотрим цикл, число шагов которого зависит от изменения переменной x :

while x > 0 do begin

x := x div 10;

здесь оставлены только те операторы, которые влияют на значение x

14) из приведенного цикла видно, что на каждом шаге от десятичной записи x отсекается последняя цифра до тех пор, пока все цифры не будут отсечены, то есть x не станет равно 0; поэтому цикл выполняется столько раз, сколько цифр в десятичной записи введенного числа

15) на каждом шаге цикла переменная L увеличивается на 1:

других операторов, меняющих значение L , в программе нет; поэтому после завершения цикла в переменной L действительно находится количество цифр

16) теперь разберемся с переменной M , которая сначала равна 0; оператор, в котором она меняется, выглядит так:

учитывая, что x mod 10 – это последняя цифра десятичной записи числа, получается что если эта цифра больше, чем значение M, она записывается в переменную M;

17) этот оператор выполняется в цикле, причем выражение x mod 10 по очереди принимает значения всех цифр исходного числа; поэтому после завершения циклам в переменной M окажется наибольшая из всех цифр, то есть наша догадка подтверждается

18) итак, по условию задачи фактически требуется найти наибольшее трехзначное число, в котором наибольшая цифра – 7; очевидно, что это 777.

Источник

Ветвление в учебном процессе

Не все алгоритмы являются линейными. Например, литературный герой — кот из сказки А.С. Пушкина в зависимости от условия (куда он пошел) выполняет определенное действие (песнь заводит или сказку говорит). Такая форма организации действий называется ветвлением.

Ветвление – выбор последовательности действий в зависимости от выполнения или невыполнения некоторого условия.

Ветвление, ветвление

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

Корректировка процесса обучения

Ветвление может использоваться для корректировки учебного процесса в зависимости от текущих результатов обучения.

Например, при успешном прохождении учащимися контрольных заданий, сложность учебного материала может быть повышена. А в противном случае либо на изучение данной темы будет выделено больше времени, либо учебная программа будет упрощена.

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

Конечно, такую гибкость сложно организовать в классическом образовании, когда на определенную тему выделено ограниченное количество часов. Тем не менее, ветвление может быть использовано для корректировки уровня сложности последующих тем.

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

Ветвление в учебных заданиях

Кроме того, вариативность присутствует и в отдельных учебных заданиях. Ниже приведены примеры заданий с использованием ветвления:

  • Проведение химического опыта.
    При проведении химических опытов необходимо создавать различные условия для того, чтобы получить конкретный результат. А с помощью ветвления можно продемонстрировать к чему может привести не соблюдение условий и последовательности действий.
  • Организация эксперимента, проекта.
    При планировании проекта, эксперимента некоторые детали проекта могут варьироваться и, соответственно, итоговый результат может быть иным. Используя ветвление при сборке конструкции из различных узлов, можно закрепить правильный порядок сборки, который позволит получить нужный результат.
  • Планирование маршрута.
    С помощью ветвления можно просчитать вариации прохождения маршрута в случае появления неких возможных возникших обстоятельств. Например, вариант с ночевкой, порядок прохождения интересных объектов и проч.
  • Организационные моменты.
    Ветвление поможет выстроить оптимальный вариант, просмотреть возможные риски и сложности. Например, при организации концерта , выстраивается последовательность выступлений и возможные варианты перестановки в случае возникновения неких форс-мажорных обстоятельств.
  • Ситуационные задачи.
    Построение логических цепочек с целью оптимального решения задачи с наименьшими возможными потерями. Как в предложенном примере “Перевозчик”, когда решается логическая задача.
  • Тестирование.
    Использование тестовых заданий таким образом, чтобы, в зависимости от выбранного решения, ученик переходил к вопросам, которые помогали бы ему в решении сложных задач. Достаточно часто тестовые задания используют при создании тренажеров.

Создание тестов с ветвлением

Воспользуемся возможностями программы iSpring QuizMaker которая легко и быстро позволяет создавать интерактивные тесты. Эта программа поддерживает 23 типа вопросов, в том числе и создание тестов с ветвлением. А тесты и опросы созданные в этой программе можно свободно использовать не только в web, но и с успехом-локально. Еще о работе с программой iSpring QuizMaker можно почитать в посте “Использование iSpring QuizMaker для создания тестов”.

В следующем посте расскажем вам как создать с помощью программы iSpring QuizMaker логическую игру “Перевозчик”

Читайте также:  Чем опросник отличается от теста

Оперативная информация на страничках в социальных сетях. Вконтакте Facebook Присоединяйтесь!

Источник

Задание 6. Анализ программ с ветвлениями

Код для использования на сайте:

Скопируйте этот код и вставьте себе на сайт

Для скачивания поделитесь материалом в соцсетях

После того как вы поделитесь материалом внизу появится ссылка для скачивания.

Подписи к слайдам:

Автор: Никитенко Евгений Игоревич учитель информатики МБОУ СОШ №10 п.Гирей

ОГЭ по информатике

Выберите номер задания

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (1, 2); (11, 2); (1, 12); (11, 12); (–11, –12); (–11, 12); (–12, 11); (10, 10); (10, 5). Сколько было запусков, при которых программа напечатала «YES»? 5

var s, t: integer;

if (s > 10) or (t > 10)

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (1, 2); (11, 2); (1, 12); (11, 12); (–11, –12); (–11, 12); (–12, 11); (10, 10); (10, 5). Укажите количество целых значений параметра А, при которых для указанных входных данных программа напечатает «NO» три раза

if (s > 10) or (t > А)

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (13, 2); (11, 12); (–12, 12); (2, –2); (–10, –10); (6, –5); (2, 8); (9, 10); (1, 13). Укажите наименьшее целое значение параметра А, при котором для указанных входных данных программа напечатает «NO» восемь раз.

if (s > A) or (t > 12)

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (1, 2); (11, 2); (1, 12); (11, 12); (–11, –12); (–11, 12); (–12, 11); (10, 10); (10, 5). Сколько было запусков, при которых программа напечатала «YES»?

var s, t: integer; begin readln(s); readln(t);readln(A); if (s > 5) and (t > 5) then writeln(«YES») else writeln(«NO») end.

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (5, 3); (24, 12); (12, 10); (-10, 15); (11, 5); (15, 16); (12, 11); (12, 12); (0, 15). Сколько было запусков, при которых программа напечатала «YES»?

var s, t: integer; begin readln(s); readln(t);readln(A); if (s 10) then writeln(«YES») else writeln(«NO») end.

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (1, 2); (11, 2); (1, 12); (11, 12); (–11, –12); (–11, 12); (–12, 11); (10, 10); (10, 5). Укажите одно целое значение параметра А, при которых для указанных входных данных программа напечатает «NO» четыре раза

if (s > 10) or (t > А)

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (13, 2); (11, 12); (–12, 12); (2, –2); (–10, –10); (6, –5); (2, 8); (9, 10); (1, 13). Укажите наибольшее целое значение параметра А, при котором для входных данных программа напечатает «NO» три раза

if (s > A) or (t > 11)

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (4, 3); (–3, 5); (5, 4); (6, 2); (–1, 8); (5, 9); (–4, 7); (3, 8); (-5, 3). Укажите наименьшее целое значение параметра А, при котором для указанных входных данных программа напечатает «NO» семь раз

if (s > 2) and (t 10) then writeln(«YES») else writeln(«NO») end.

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (5, 2); (11, -2); (3, 10); (4, 9); (–11, –7); (8, 8); (–12, 11); (9, 10); (10, 5). Укажите наименьшее целое значение параметра А, при котором для указанных входных данных программа напечатает «YES» два раза

if (s > 5) and (t > А)

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (13, 2); (11, 12); (–12, 12); (2, –2); (–10, –10); (6, –5); (2, 8); (9, 10); (1, 13). Сколько было запусков, при которых программа напечатала «YES»?

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (5, 3); (0, 12); (12, 10); (-5, 9); (10, 5); (-6, 16); (10, 11); (9, 9); (0, 15). Сколько было запусков, при которых программа напечатала «YES»?

Читайте также:  Тест система roche s белок

var s, t: integer; begin readln(s); readln(t);readln(A); if (s 5) then writeln(«YES») else writeln(«NO») end.

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (5, 2); (11, -2); (3, 10); (4, 9); (–11, –7); (8, 8); (–12, 11); (9, 10); (10, 5). Укажите наибольшее целое значение параметра А, при котором для указанных входных данных программа напечатает «YES» три раза

if (s > 5) and (t > А)

Приведена программа, записанная на языке программирования Pascal. Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t): (13, 2); (11, 12); (–12, 12); (2, –2); (–10, –10); (6, –5); (2, 8); (9, 10); (1, 13). Укажите наименьшее целое значение параметра А, при котором для входных данных программа напечатает «YES» четыре раза

if (s > A) or (t > 12)

1. Открытые варианты ОГЭ досрочного периода 2020 года 2. Демонстрационная версия ОГЭ по информатике 2021 года 3. Задачи собственного сочинения

Фон 1 слайда Фон на остальных слайдах

Кнопка «Домой» Кнопка «Выход»

Источник

Тест «Анализ программ с циклами и ветвлениями»

Тест. Анализ работы с циклами и ветвлениями.

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

var x, L, M: integer;
begin
readln(x);
L:=0; M:=0;
while x > 0 do begin
L:=L+1;
if M

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

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
M:= M + x mod 10;
x:= x div 10;
end;
writeln(L); write(M);
end.

3. Ниже записана программа. Получив на вход число 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

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

var x , a , b : integer ;
begin
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 );
end .

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

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

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

var x, a, b: integer;
begin
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);
end.

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

var 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.

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

var 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.

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

var 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 8;
end;
writeln(a);
writeln(b);
end.

10. Ниже записан алгоритм. Сколько существует таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 12?

var x, a, b: integer;
begin
readln(x);
a := 0; b := 0;
while x>0 do begin
a := a + 1;
b := b + (x mod 100);
x := x div 100
end;
writeln(a); write(b)
end.

Источник

Adblock
detector