СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Подготовка к ОГЭ 2021 года, занятие 9. Формальный исполнитель алгоритмов, записанных на алгоритмическом языке. Задание 6, часть 2

Категория: Информатика

Нажмите, чтобы узнать подробности

Подготовка к ОГЭ 2025 года, занятие 9.

Формальный исполнитель алгоритмов, записанных на алгоритмическом языке. Задание 6. часть 2.

Онлайн-тестирование по теме доступно здесь.

В связи с большим объемом теории разбила это знятие на две части для тех, кто будет изучать эту ему ДО изучения языков программирования. В противном случае части 1 и 2 занятия можно объединить.

Просмотр содержимого документа
«Подготовка к ОГЭ 2021 года, занятие 9. Формальный исполнитель алгоритмов, записанных на алгоритмическом языке. Задание 6, часть 2»

Подготовка к ОГЭ 2021 года, занятие 7, часть 2.

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

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

Алгоритм должен обладать следующими свойствами:

  • понятность - означает, что он должен быть записан с помощью команд, понятных исполнителю этих команд;

  • конечность – означает, что результат должен быть получен за конечное число шагов;

  • точность – означает, что каждая команда алгоритма должна определять однозначное действие исполнителя;

  • дискретность – означает, что алгоритм должен быть разбит на последовательность отдельно выполняемых шагов.



Существует три вида алгоритмических конструкций:

  • следование (линейные алгоритмы);

  • ветвление (алгоритмы с использованием условий «если»);

  • циклы (повторение одного или нескольких действий в одном месте программы).

Для наглядной записи алгоритмов используют блок-схемы. Вот некоторые элементы (блоки), их составляющие:

- овал, означает начало или конец алгоритма;


- параллелограмм, означает ввод или вывод данных;


- прямоугольник, означает выполняемое действие;


- ромб, означает выбор условия для дальнейшего выполнения алгоритма.



Циклические алгоритмы (циклы) обеспечивают выполнение некоторой последовательности действий (так называемого тела цикла). Количество таких повторений (шагов цикла) может быть как заранее неизвестно, так и точно определено до начала выполнения цикла.

При этом циклы бывают:

  • со счетчиком «для», когда количество повторений (шагов) цикла заранее известно и определяется заданным счетчиком цикла (простейший циклический алгоритм);

  • с предусловием («пока») – выполняются, когда количество по принципу «пока … делай», то есть действия повторяются, пока выполняется предварительно заданное условие цикла;

  • с постусловием («до») - выполняются по принципу «делай … пока», то есть действия повторяются до наступления условия, заданного после тела цикла.



Пример алгоритма «Утро школьника» с использованием цикла со счетчиком «для»:

Для 5 дней недели выполнить:

  • проснулся

  • умылся

  • позавтракал

  • пошел в школу.

Пример блок схемы цикла со счетчиком дан на рис.1. Рис..



Пример алгоритма «Утро школьника» с использованием цикла с предусловием («пока»):

Пока день недели будний:

  • проснулся

  • умылся

  • позавтракал

  • пошел в школу.

Пример блок схемы цикла с предусловием дан на рис.3. Рис.2



Пример алгоритма «Утро школьника» с использованием цикла с постусловием:

  • проснулся

  • умылся

  • позавтракал

  • пошел в школу, пока не наступила суббота.

Пример блок схемы цикла с постусловием дан на рис.3. Рис.3

На ОГЭ циклы с предусловием и постусловием не встречаются.

Простейший циклический алгоритм, записанный на алгоритмическом языке

Рассмотрим подробно работу оператора цикла со счетчиком (цикла «для»), в котором действие цикла повторяется определенное число раз. На алгоритмическом языке КуМир этот цикл называется «цикл n раз».

Формат оператора цикла «для» в алгоритмическом языке выглядит следующим образом:

нц для i от i1 до i2

кц

Здесь переменная i называется счетчиком цикла, так как в ней считается количество шагов (раз) выполнения цикла, изменяемых его от i1 - начального значения счетчика до i2 конечного значения счетчика. При этом значение i на каждом шаге цикла увеличивается на единицу, при этом шаг равен +1, если i1 i2 и -1 при i1 i2.

Последовательность действий, многократно повторяющаяся в процессе выполнения цикла, называется телом цикла.



Рассмотрим решение задачи с циклом «для» на конкретных примерах, так как именно они



Задача 1.

Запишите зна­че­ние переменной s, по­лу­чен­ное в ре­зуль­та­те работы сле­ду­ю­щей программы:

алг

нач

цел s, k

s := 0

нц для k от 12 до 15

s := s + 13

кц

вывод s

кон

Решение.

В данном алгоритме используются две переменные s и k, значенями которых являются целые числа.

Перед началом цикла переменной s присвоено значение 0.

Далее в цикле, который будет выполняться четыре раза (значения счетчика будут равны по шагам соответственно 12, 13, 14, 15). Количество шагов цикла в данном случае можно вычислить по формуле i = i2 i1 + 1 (15-12+1=4).

В теле цикла выполняется всего одно действие s := s + 13. Тогда по окончании цикла значение переменной s будет равно 0 + 13*4 = 52

Ответ: 52


Задача 2.

Запишите зна­че­ние пе­ре­мен­ной s, по­лу­чен­ное в ре­зуль­та­те ра­бо­ты сле­ду­ю­щей программы:

алг

нач

цел s, n

s := 5

нц для n от 2 до 4

s := s + (n-1)

кц

вывод s

кон

Решение.

В данном алгоритме используются две переменные s и n, значенями которых являются целые числа.

Перед началом цикла переменной s присвоено значение 5.

Далее в цикле, который будет выполняться три раза (значения счетчика будут равны по шагам соответственно 2, 3, 4). Количество шагов цикла в данном случае можно вычислить по формуле i = i2 i1 + 1 (4-2+1=3).

В теле цикла выполняется всего одно действие s := s + (n-1).

Далее по шагам:

  1. s := 5 + (2-1) = 6

  2. s := 6 + (3-1) = 8

  3. s := 8 + (4-1) = 11

Ответ: 11


Задача 3.

Запишите зна­че­ние пе­ре­мен­ной s, по­лу­чен­ное в ре­зуль­та­те ра­бо­ты сле­ду­ю­щей программы:

алг

нач

цел s, k

s := 1

нц для k от 3 до 0

s := s*3

кц

вывод s

кон

Решение.

В данном алгоритме используются две переменные s и n, значенями которых являются целые числа.

Перед началом цикла переменной s присвоено значение 1.

Далее в цикле, который будет выполняться четыре раза с шагом -1 (значения счетчика будут равны по шагам соответственно 3, 2, 1, 0). Количество шагов цикла в данном случае можно вычислить по формуле i = i2 + i1 + 1 (3 + 0 + 1 = 4).

В теле цикла выполняется всего одно действие s := s*3. Тогда по окончании цикла значение переменной s будет равно 1 * 3 * 3 * 3 * 3 = 3 4 = 81.

Ответ: 81



Циклический алгоритм обработки массива чисел

Задачи такого типа были на ОГЭ предыдущих лет, поэтому так же разберем их.

Массив – это набор однотипных элементов, имеющих общее имя и расположенных в памяти рядом.

Для обращения к элементу массива используют квадратные скобки, запись A[i] обозначает элемент массива A с номером (индексом) i, который пишется в квадратных скобках, то есть элемент массива с индексом i записывается как A[i].

Для обработки всех элементов массива используется цикл вида

for i:=1 to N do begin

{ действия с элементом A[i] }

end;

Переменная i (счетчик цикла) здесь обозначает номер текущего элемента массива, она меняется от 1 до N с шагом 1, то есть мы проходим последовательно все элементы.

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

Пример массива из 10 элементов выглядит так:

i

1

2

3

4

5

6

7

8

9

10

A[i]

5

13

-7

2

0

10

103

-21

7

12







Здесь первая строка i обозначает номера (индексы) элементов массива, А – имя массива, а вторая строка A[i] – значение этих элементов.

Разберем решение таких задач на конкретных примерах.

Задача 4.

В таб­ли­це Dat хра­нят­ся дан­ные из­ме­ре­ний сред­не­су­точ­ной тем­пе­ра­ту­ры за 10 дней в гра­ду­сах (Dat[1] — дан­ные за пер­вый день, Dat[2] — за вто­рой и т. д.). Определите, какое число будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­щей программы.

алг

нач

целтаб Dat[1:10]

цел к, m

Dat[1] := 12

Dat[2] := 15

Dat[3] := 17

Dat[4] := 15

Dat[5] := 14

Dat[6] := 12

Dat[7] := 10

Dat[8] := 13

Dat[9] := 14

Dat[10] := 15

m := 0

нц для к от 1 до 10

если Dat[к]=15 то

m : = m+1

все

КЦ

вывод m

КОН

Решение.

Массив Dat можно представить в виде таблицы:

i

1

2

3

4

5

6

7

8

9

10

Dat [i]

12

15

17

15

14

12

10

13

14

15

Переменной m до начала цикла присвоено значение 0.

Далее в цикле, который повторяется 10 раз, проверяется условие:

если Dat[к]=15 то

m : = m+1

Таким образом, данный оператор проверяет, равен ли текущий элемент массива 15, и если да, то увеличивает значение m на единицу.

Всего в массиве три элемента, равных 15, тогда по окончании цикла m = 3.

Ответ: 3

Вывод: данный алгоритм находит и выводит количество элементов массива, равных заданному значению (в данном случае – значению 15). Если знак сравнения поменять на или =, то ответе будет указано количество элементов массива, больших или равных заданному соответственно.

Задача 5.

В таб­ли­це Dat хра­нят­ся дан­ные из­ме­ре­ний сред­не­су­точ­ной тем­пе­ра­ту­ры за 10 дней в гра­ду­сах (Dat[1] — дан­ные за пер­вый день, Dat[2] — за вто­рой и т. д.). Определите, какое число будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­щей программы.

алг

нач

целтаб Dat[1:10]

цел к, m

Dat[1] := 12

Dat[2] := 15

Dat[3] := 17

Dat[4] := 15

Dat[5] := 14

Dat[6] := 12

Dat[7] := 10

Dat[8] := 13

Dat[9] := 14

Dat[10] := 15

m := 0

нц для к от 1 до 10

если Dat[к] m то

m : = Dat[к]

все

КЦ

вывод m

КОН

Решение.

Массив Dat можно представить в виде таблицы:

i

1

2

3

4

5

6

7

8

9

10

Dat [i]

12

15

17

15

14

12

10

13

14

15

Переменной m до начала цикла присвоено значение 0.

Далее в цикле, который повторяется 10 раз, проверяется условие:

если Dat[к] m то

m : = Dat[к]

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

При выполнении первого шага цикла Dat [i] = 12, а m = 0, то в переменную m запоминается значение первого элемента массива – 12.

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

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

Ответ: 17

Вывод: Данный алгоритм находит и выводит значение максимального элемента массива.

Если знак в условном операторе поменять на минимального элемента.