Представлю Вашему вниманию разбор Демо-варианта диагностической работы по информатике (СтатГрад) по теме «Логика и алгоритмы» для 9 класса. Данная работа входит в цикл работ, предназначенных для подготовки к сдаче ОГЭ по информатике.
Проверяемые элементы содержания:
Часть 1
- Логические значения, операции, выражения.
- Кодирование и декодирование информации
- Алгоритм, свойства алгоритма, способы записи алгоритма
- Алгоритм, свойства алгоритма, способы записи алгоритма
- Алгоритмические конструкции
- Обрабатываемые объекты: числа, списки
- Алгоритм, свойства алгоритма, способы записи алгоритма
- Кодирование и декодирование информации
Часть 2
- Умение написать короткий алгоритм в среде формального исполнителя (вариант задания 9.1) или на языке программирования (вариант задания 9.2)
Скачать демо-версию диагностической работы можно в нашей группе в Контакте
Задача №1
Для какого из приведённых имён истинно высказывание: НЕ(Первая буква гласная) И НЕ(Последняя буква согласная)?
- Иван
- Михаил
- Семен
- Никита
Решение
Для решения данной задачи необходимо вспомнить 3 логические операции:
- Конъюнкция (логическое умножение) — по своему применению максимально приближенная к союзу «И». Обозначается символом ∧
- Дизъюнкция (логическое сложение) — по своему применению максимально приближенная к союзу «ИЛИ». Обозначается символом ∨
- Отрицание — по своему применению максимально приближенная к частице «НЕ». Обозначается символом ¬
Правила для рассмотренных логических операций:
Конъюнкция (И) | Дизъюнкция (ИЛИ) | Отрицание (НЕ) |
1∧1=1 | 1∨1=1 | ¬1=0 |
1∧0=0 | 1∨0=1 | ¬0=1 |
0∧0=0 | 0∨0=0 |
где 1 — истинное высказывание, 0 — ложное.
Проверим каждое слово на то, удовлетворяет ли оно данному логическому выражению:
- Иван: ¬1∧¬1=0∧0=0 (ложь) — данное имя не удовлетворяет условию задачи
- Михаил: ¬0∧¬1=1∧0=0 (ложь) — данное имя не удовлетворяет условию задачи
- Семен: ¬0∧¬1=1∧0=0 (ложь) — данное имя не удовлетворяет условию задачи
- Никита: ¬0∧¬0=1∧1=1 (истина) — данное имя удовлетворяет условию задачи
Ответ: 4 (Никита)
Задача №2
Ваня шифрует русские слова, записывая вместо каждой буквы её номер в алфавите (без пробелов). Номера букв даны в таблице.
Некоторые шифровки можно расшифровать не одним способом. Например, 311333 может означать «ВАЛЯ», может – «ЭЛЯ», или «ВААВВВ».
Вот четыре шифровки:
3113
9212
6810
2641
Только одна из них расшифровывается единственным способом. Найдите её и расшифруйте. То, что получилось, запишите в качестве ответа.
Решение
- 3113: можно расшифровать несколькими способами — 3 1 1 3 или 31 1 3 или 31 13 и т.д. Эта шифровка нам не подходит!
- 9212: можно расшифровать несколькими способами — 9 21 2 или 9 2 1 2 или 9 2 12. Эта шифровка нам не подходит!
- 6810: можно расшифровать только одним способом — 6 8 10, т.к. номеров 68 и 0 не существует в таблице. Эта шифровка нам подходит!
- 2641: можно расшифровать двумя способами — 26 4 1 или 2 6 4 1. Эта шифровка нам не подходит!
Подствим в шифровку 6810 вместо чисел буквы из таблицы и запишем ответ: 6 — Е, 8 — Ж, 10 — И.
Ответ: ЕЖИ
Задача №3
Чертёжнику был дан для исполнения следующий алгоритм:
Повтори 3 раз
Сместиться на (–3, –2) Сместиться на (2, 1) Сместиться на (3, 0)
конец
Какую команду надо выполнить Чертёжнику, чтобы вернуться в исходную точку, из которой он начал движение?
- Сместиться на (–3, –6)
- Сместиться на (–6, 3)
- Сместиться на (6, –3)
- Сместиться на (3, 6)
Полный текст задачи смотрите в скаченном файле (см. ссылку выше).
Решение.
В условии задачи не сказано, в какой точке чертежник находится до выполнения алгоритма, поэтому поместим его в точку с координатами (0, 0). Для решения данной задачи рекомендую Вам начертить прямоугольную систему координат и отмечать на ней смещение точки в соответствии с командами, заданными в условии задачи.
Наш алгоритм содержит цикл, который выполняется 3 раза.
1 -е выполнение тела цикла:
- Сместиться на (–3, –2) означает что мы сдвигаемся из точки (0, 0) влево на 3 единицы и вниз на 2 единицы в точку с координатами (-3, -2)
- Сместиться на (2, 1) означает что мы сдвигаемся из точки (-3, -2) вправо на 2 единицы и вверх на 1 единицу в точку с координатами (-1, -1)
- Сместиться на (3, 0) означает что мы сдвигаемся из точки (-1, -1) только вправо на 3 единицы в точку с координатами (2, -1)
Если мы повторим эти 3 команды еще раз, мы переместимся в точку с координатами (4, -2); если повторим 3-ий раз — в точку (6, -3)
Вернуться в точку с координатами (0, 0) мы сможем, выполнив команду Сместиться на (–6, 3)
Ответ: 2 (Сместиться на (–6, 3))
Задача №4
Определите значение переменной a после исполнения данного алгоритма.
a := 3
b := 2
b := 9 + a * b
a := b / 5 * a
Порядок действий соответствует правилам арифметики. В ответе укажите одно число – значение переменной a.
Решение.
Первая строка: переменной а присваивается значение 3
Вторая строка: переменной b присваивается значение 2
Третья строка: переменная b переопределяется 9+3*2=15 (теперь переменная b=15)
Четвертая строка: переменная а переопределяется 15/5*3=9 (теперь переменная а=9)
Ответ: 9
Задача №5
Запишите значение переменной s, полученное в результате работы следующей программы. (Рассмотрим код программы на языке Паскаль).
Var s,k: integer;
Begin
s := 8;
for k := 3 to 8 do
s := s + 8;
writeln(s);
End.
Решение.
Перед нами цикл со счетчиком в теле программы. Решение задач с циклом удобно рассматривать в виде таблицы. В цикле участвуют две переменные k и s. Начальное значение переменной s=8. Оформим таблицу:
k | s=8 |
3 | 8+8=16 |
4 | 16+8=24 |
5 | 24+8=32 |
6 | 32+8=40 |
7 | 40+8=48 |
8 | 48+8=56 |
Тело цикла повторяется 6 раз (8-3+1=6). В теле цикла одна команда: s:=s+8. Т.е. чтобы получить настоящее значение переменной s мы должны к предыдущему значению прибавить 8.
Ответ: 56
Задача №6
В таблице Dat хранятся данные о численности учеников в классах (Dat[1] – число учеников в первом классе; Dat[2] – во втором и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. (Рассмотрим код программы на языке Паскаль).
Var k, m: integer;
Dat: array[1..11] of integer;
Begin
Dat[1] := 20; Dat[2] := 25;
Dat[3] := 19; Dat[4] := 25;
Dat[5] := 26; Dat[6] := 22;
Dat[7] := 24; Dat[8] := 28;
Dat[9] := 26; Dat[10] := 23;
Dat[11] := 27;
m := 0;
for k := 1 to 11 do
if Dat[k] > 22 then
begin
m := m + 1
end;
writeln(m)
End.
Решение.
В задаче нам задан массив, состоящий из 11 элементов. Значения элементов массива объявлены в начале тела программы.
Все вычисления заключены в цикл со счетчиком с переменной-счетчиком k. Рассмотрим его, используя таблицу:
k | Dat[k] | Условие | m=0 |
1 | 20 | 20>22 (не выполняется) |
|
2 | 25 | 25>22 (выполняется) | 1 |
3 | 19 | 19>22 (не выполняется) | |
4 | 25 | 25>22 (выполняется) |
2 |
5 | 26 | 26>22 (выполняется) |
3 |
6 | 22 | 22>22 (не выполняется) |
|
7 | 24 | 24>22 (выполняется) |
4 |
8 | 28 | 28>22 (выполняется) |
5 |
9 | 26 | 26>22 (выполняется) |
6 |
10 | 23 | 23>22 (выполняется) |
7 |
11 | 27 | 27>22 (выполняется) |
8 |
Восемь элементов массива удовлетворяют условию: Dat[k] < 22. Восемь раз выполнится команда m:=m+1 (формула подсчета количества в цикле)
Ответ: 8
Задача № 7
У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 3
2. вычти 2
Первая из них увеличивает число на экране в 3 раза, вторая уменьшает его на 2. Составьте алгоритм получения из числа 2 числа 30, содержащий не более пяти команд. В ответе запишите только номера команд.
Решение.
Рассуждение: 30 можно получить из числа 10, умножив его на 3.
Остается получить число 10 из числа 2 в 4 действия.
- 2*3=6 (1)
- 6-2=4 (2)
- 4*3=12 (1)
- 12-2=10 (2)
и пятое действие 10*3=30 (1)
Ответ: 12121
Задача № 8
Некоторый алгоритм из одной цепочки символов получает новую цепочку следующим образом. Сначала вычисляется длина исходной цепочки символов; если она чётна, то в середину цепочки символов добавляется символ А, а если нечётна, то в начало цепочки добавляется символ Б. В полученной цепочке символов каждая буква заменяется буквой, следующей за ней в русском алфавите (А – на Б, Б – на В и т.д., а Я – на А).
Дана цепочка символов ПУСК. Какая цепочка символов получится, если к данной цепочке применить описанный алгоритм дважды (т.е. применить алгоритм к данной цепочке, а затем к результату вновь применить алгоритм)?
Решение.
Мы должны 2 раза выполнить:
- Вычисляется длина исходной цепочки символов; если она чётна, то в середину цепочки символов добавляется символ А, а если нечётна, то в начало цепочки добавляется символ Б
- В полученной цепочке символов каждая буква заменяется буквой, следующей за ней в русском алфавите
1) ПУСК — 4 символа (четное количество), в середину добавляем букву А.
2) ПУАСК — заменим буквы согласно условию: РФБТЛ
Повторим данный алгоритм еще раз. Получим:
1) БРФБТЛ
2) ВСХВУМ
Ответ: ВСХВУМ
Задача № 9.2
Напишите программу, которая в последовательности целых чисел определяет количество чётных чисел, кратных 7. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность).
Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000. Программа должна вывести одно число: количество чётных чисел, кратных 7.
Решение.
Разбор задачи смотри на Задача 20.2 ГИА по информатике
Ответ:
var a, n: integer;
begin
n:=0;
readln(a);
while a<>0 do begin
if (a mod 2 = 0) and (a mod 7 = 0) then
n := n + 1;
readln(a);
end;
writeln(answer);
end.