Исполнение фрагментов программ

      Комментарии к записи Исполнение фрагментов программ отключены

Модуль 4. Алгоритмизация и программирование

1. Понятие алгоритма

1.1 Требования к алгоритмам

1.2 Способы записи алгоритмов

1.3 Блок-схемы

2. Алгоритмические конструкции

2.1 Ветвление

2.2 Цикл

3. Исполнение фрагментов программ

4. Анализ фрагментов программ. Обработка двумерных массивов

5. Оценка скорости работы алгоритмов

6. Работа с исполнителями

7. Задания для самостоятельного решения

Понятие алгоритма

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

Требования к алгоритмам

1) Ориентированность на конкретного исполнителя.

2) Понятность для исполнителя (алгоритм составляется в соответствии с системой команд исполнителя).

3) Точность (каждая команда должна определять однозначное действие исполнителя).

4) Конечность (наличие конца алгоритма через конечное число шагов).

5) Результативность (получение нужного результата по окончанию алгоритма).

6) Массовость (применимость для широкого класса задач).

7) Формальность исполнения (во время исполнения алгоритма исполнитель не должен задумываться над сутью выполняемых действий).

Способы записи алгоритмов

1) Словесный (описание алгоритма с помощью слов русского языка).

Пример. Алгоритм включения компьютера.

Подойти к компьютеру.

Включить монитор.

Включить системный блок.

2) Запись на алгоритмическом языке

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

Начало

Ввод числа х

Ввод числа у

Если х

ТоВывод х

ИначеВывод у

Все

Конец

3) Блок-схема (Графическое представление алгоритма)

(будет рассмотрен ниже)

4) Программа (запись алгоритма на языке программирования)

Пример. Определение четности введенного числа.

BASIC Pascal
INPUT “Введите целое число”; XA$=”четное”IF X MOD 20 THEN A$=”не”+A$PRINT “Введенное число ”, A$ Var x: Integer;Str: String;BeginWrite(‘Введите целое число’);ReadLn(x);If x Mod 20Then Str:=’не’+Str;WriteLn(‘Введенное число ‘, Str);End.

Блок-схемы

Блок-схемы являются одним из графических способов представления алгоритмов. Блок-схема состоит из блоков, соединенных линиями. Чаще всего используются блоки следующих типов:

— выполнение операции;

— выбор направления выполнения алгоритма в зависимости от выполнения условия;

— ввод/вывод данных;

— начало и конец алгоритма.

2. Алгоритмические конструкции

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

Ветвление представляет собой алгоритмическую конструкцию, в которой выполнение того или иного шага зависит от истинности условия. Говорят, что конструкция «ветвление» записана в полной форме, если в ней присутствуют команды как для случая истинного условия, так и для его ложности. На рис.2 приведена блок-схема ветвления в полной форме.

Конструкция ветвления в полной форме реализуется следующим образом. Если условие истинно, то выполняется действие 1, если условие ложно, то выполняется действие 2.

Если в ветвлении присутствуют действия только для истинности или только для случая ложности условия, то говорят, что она записана в неполной (в сокращенной) форме. На рис. 3 приведены две блок-схемы ветвления в сокращенной форме.

Конструкция ветвления в сокращенной форме реализуется следующим образом. Если выбрано направление, в котором отсутствует действие, то конструкция ветвления не выполняется и управление получает конструкция, следующая за ветвлением.

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

Различают два вида циклов: циклы с заранее известным числом повторений и циклы с заранее неизвестным числом повторений. Цикл с заранее известным числом повторений называют циклом с параметром. Блок-схема цикла с параметром помещена на рис.4.

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

Если при истинности условия цикл завершается, то такое условие называется условием завершения цикла. В этом случае цикл продолжается до тех пор, пока условие не станет истинным.

Различают циклы с проверкой условия перед выполнением очередной итерации и циклы с проверкой условия после выполнения очередной итерации. Первые называются циклами с предусловием (рис. 5), вторые – с постусловием (рис. 6).

Алгоритмическая конструкция называется вложенной, если она содержится внутри другой алгоритмической конструкции. На рис. 7 команда ветвления вложена в цикл.

Задание 1. (Задание А8 демоверсии 2004 г.)

Алгоритмическая конструкция какого типа изображена на фрагменте блок-схемы (см. рис. 8):

1) линейная;

2) циклическая;

3) разветвляющаяся;

4) вспомогательная.

Решение. На рис. 8 изображен ромб, внутри которого записано условие, и две исходящие из него стрелки. Фрагмент условия представляет собой блок ветвления в полной форме.

Ответ: №3.

Задание 2. (Задание А6 демоверсии 2005 г.)

Фрагмент блок-схемы (см. рис. 9) представляет алгоритм, который содержит команды ветвления:

1) команду ветвления в сокращенной форме, в которую вложена команда ветвления в полной форме;

2) две команды ветвления в полной форме, одна из которых вложена в другую;

3) две команды ветвления в сокращенной форме, одна из которых вложена в другую;

4) команду ветвления в полной форме, в которую вложена команда ветвления в сокращенной форме.

Решение. Обе команды ветвления, входящие в блок-схему на рис. 9, — полные, при чем одна из них вложена в другую. Поэтому верным будет вариант ответа №2.

Ответ: 2.

Задание 3. (Задания А29 демоверсии 2005 г., А6 демоверсии 2006 г.)

Определите значение целочисленной переменной х после выполнения следующего фрагмента блок-схемы (см. рис.10)

1) 1;

2) 5;

3) 10;

4) 15.

Решение. В блок-схеме присутствует повторяющаяся последовательность действий (цикл). Для того, чтобы не ошибиться при выполнении блок-схемы, составим таблицу (см. Таблицу 1), в которую будем заносить значения переменных и результаты проверки условий на каждом шаге.

Таблица 1.

№ итерации Значение х Значение у xy xy
5575 – даВыполняем тело цикла 5575 – нет,y:=y-x=75-55=20
5520 – даВыполняем тело цикла 5520 – даx:=x-y=55-20=35
3520 – даВыполняем тело цикла 3520 – даx:=x-y=35-20=15
1520 – даВыполняем тело цикла 1520 – нет,y:=y-x=20-15=5
155 – даВыполняем тело цикла 155 – даx:=x-y=15-5=10
105 – даВыполняем тело цикла 105 – даx:=x-y=10-5=5
55 – нетВыход их цикла; завершение алгоритма

Таким образом, переменная х после выполнения данного фрагмента программы приняла значение 5, что соответствует ответу под номером 2.

Ответ: 2.

Исполнение фрагментов программ

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

Задание 4. (Задание А9 демоверсии 2004 г.)

Определите значение целочисленных переменных x, y и t после выполнения фрагмента программы (ниже представлена одна и та же программа, представленная на разных языках программирования):

Бейсик Паскаль Алгоритмический
x=5y=7t=xx=y MOD xy=t x:=5;y:=7;t:=x;x:=y Mod x;y:=t; x:=5y:=7t:=xx:=mod (x,y)y:=t

1) x=2; y=5; t=5;

2) x=7; y=5; t=5;

3) x=2; y=2; t=2;

4) x=5; y=5; t=5.

Решение. Для решения этого задания удобно составить таблицу:

Шаг Значение хпосле шага Значение yпосле шага Значение tпосле шага
x=5 Не определено Не определено
y=7 Не определено
t=x
x=y MOD x
y=t

Таким образом, верным является вариант ответа №1.

Ответ: 1.

Задание 5. (Задание А7 демоверсии 2006 г.)

Определите значение целочисленных переменных a и b после выполнения фрагмента программы (ниже представлена одна и та же программа, представленная на разных языках программирования):

Бейсик Паскаль Алгоритмический
a=42b=14a=a\bb=a*ba=b\a a:=42;b:=14;a:=a Div bb:=a*ba:=b Div a a:=42b:=14a:=Div (a,b)b:=a*ba:=Div (b,a)

1) a=42; b=14;

2) a=1; b=42;

3) a=0; b=588;

4) a=14; b=42.

Решение. Для решения этого задания удобно составить таблицу:

Шаг Значение aпосле шага Значение bпосле шага
a=42 Не определено
b=14
a=a\b
b=a*b
a=b\a

Таким образом, верным является вариант ответа №4.

Ответ: 4.

Статьи к прочтению:

Любовьисполнение закона (фрагмент программы)


Похожие статьи: