KNOWLEDGE HYPERMARKET


Алгоритмы с ветвящейся структурой
 
(20 промежуточных версий не показаны.)
Строка 1: Строка 1:
 +
<metakeywords>Информатика, класc, урок, на тему, 9 класc, Алгоритмы с ветвящейся структурой, Ветвление, базы данных, логическое выражение, Блок-схема</metakeywords>
 +
'''[[Гипермаркет знаний - первый в мире!|Гипермаркет знаний]]&gt;&gt;[[Информатика|Информатика]]&gt;&gt;[[Информатика 9 класс|Информатика 9 класс]]&gt;&gt;Информатика: Алгоритмы с ветвящейся структурой'''  
'''[[Гипермаркет знаний - первый в мире!|Гипермаркет знаний]]&gt;&gt;[[Информатика|Информатика]]&gt;&gt;[[Информатика 9 класс|Информатика 9 класс]]&gt;&gt;Информатика: Алгоритмы с ветвящейся структурой'''  
-
<br>  
+
<br> <br>  
-
<metakeywords>Информатика, класc, урок, на тему, 9 класc, Алгоритмы с ветвящейся структурой.</metakeywords>АЛГОРИТМЫ С ВЕТВЯЩЕЙСЯ СТРУКТУРОЙ
+
'''§ 36. Алгоритмы с ветвящейся структурой'''
-
 
+
-
<br>
+
-
<u>§ 36. Алгоритмы с ветвящейся структурой</u>
 
Основные темы параграфа:<br>  
Основные темы параграфа:<br>  
-
♦ представление ветвлений на АЯ. Трассировка ветвящихся алгоритмов; <br>♦ сложные ветвящиеся алгоритмы.<br>  
+
♦ представление '''[[Ветвление и последовательная детализация алгоритма|ветвлений]]''' на АЯ. Трассировка ветвящихся алгоритмов; <br>♦ сложные ветвящиеся алгоритмы.<br>  
-
''Представление ветвлений на АЯ. Трассировка ветвящихся алгоритмов''<br>
 
-
Рассмотрим несколько задач, решение которых на компьютере получается с помощью ветвящихся алгоритмов.<br>  
+
 
 +
'''Представление ветвлений на АЯ. Трассировка ветвящихся алгоритмов'''<br>
 +
 
 +
Рассмотрим несколько задач, решение которых на компьютере получается с помощью ветвящихся '''[[Циклiчнi алгоритми. Повні уроки|алгоритмов]]'''.<br>  
Первая задача: даны два числа; выбрать большее из них.<br>  
Первая задача: даны два числа; выбрать большее из них.<br>  
-
Пусть исходными данными являются переменные А и В. Их значения будут задаваться вводом. Значение большего из них должно быть присвоено переменной С и выведено на экран компьютера. Например, если A = 5, В = 8, то должно получиться: С = 8.<br>  
+
Пусть исходными данными являются переменные А и В. Их значения будут задаваться вводом. Значение большего из них должно быть присвоено переменной С и выведено на экран [http://xvatit.com/it/comp_primochki/ '''компьютера''']. Например, если A = 5, В = 8, то должно получиться: С = 8.<br>  
Блок-схема алгоритма решения этой задачи изображена на рис. 6.2.<br>  
Блок-схема алгоритма решения этой задачи изображена на рис. 6.2.<br>  
-
[[Image:Informatika_9_207f.jpg]]<br>  
+
 
 +
 
 +
[[Image:Informatika 9 207d.jpg|420px|Алгоритм выбора большего из двух чисел]]<br>  
Нетрудно понять смысл этого алгоритма. Если значение переменной А больше, чем B, то переменной С присвоится значение А. В противном случае, когда А <u>&lt;</u> В, переменной С присвоится значение В.<br>  
Нетрудно понять смысл этого алгоритма. Если значение переменной А больше, чем B, то переменной С присвоится значение А. В противном случае, когда А <u>&lt;</u> В, переменной С присвоится значение В.<br>  
-
Условием, по которому разветвляется алгоритм, является отношение неравенства А &gt; В. Изучая базы данных и электронные таблицы, вы узнали, что такое отношение является логическим выражением. Если оно справедливо, то результатом будет логическая величина «истина» и выполнение алгоритма продолжится по ветви «да»; в противном случае логическое выражение примет значение «ложь» и выполнение алгоритма пойдет по ветви «нет».<br>  
+
Условием, по которому разветвляется алгоритм, является отношение неравенства А &gt; В. Изучая '''[[Создание и заполнение баз данных|базы данных]]''' и электронные таблицы, вы узнали, что такое отношение является логическим выражением. Если оно справедливо, то результатом будет логическая величина «истина» и выполнение алгоритма продолжится по ветви «да»; в противном случае '''[[Условия выбора и простые логические выражения|логическое выражение]]''' примет значение «ложь» и выполнение алгоритма пойдет по ветви «нет».<br>  
До выполнения на компьютере правильность алгоритма можно проверить путем заполнения трассировочной таблицы. Вот как будет выглядеть трассировка нашего алгоритма для исходных значений A = 5, В = 8. <br>  
До выполнения на компьютере правильность алгоритма можно проверить путем заполнения трассировочной таблицы. Вот как будет выглядеть трассировка нашего алгоритма для исходных значений A = 5, В = 8. <br>  
 +
 +
{| width="500" cellspacing="1" cellpadding="1" border="1"
 +
|-
 +
| Шаг
 +
| Операция
 +
| ''A''
 +
| ''B''
 +
| ''C''
 +
| Проверка условия
 +
|-
 +
| 1
 +
| ввод''&nbsp; А, В''
 +
| 5
 +
| 8
 +
|
 +
|
 +
|-
 +
| 2
 +
| А&gt;B
 +
| 5
 +
| 8
 +
|
 +
| 5 &gt; 8, нет (ложь)
 +
|-
 +
| 3
 +
| C:=B
 +
| 5
 +
| 8
 +
| 8
 +
|
 +
|-
 +
| 4
 +
| вывод С
 +
| 5
 +
| 8
 +
| 8
 +
|
 +
|}
Ветвление является структурной командой. Его исполнение происходит в несколько шагов; проверка условия (выполнение логического выражения) и выполнение команд на одной из ветвей «да» или «нет». Поэтому в трассировочной таблице записываются не команды алгоритма, а отдельные операции, выполняемые компьютером на каждом шаге.<br>  
Ветвление является структурной командой. Его исполнение происходит в несколько шагов; проверка условия (выполнение логического выражения) и выполнение команд на одной из ветвей «да» или «нет». Поэтому в трассировочной таблице записываются не команды алгоритма, а отдельные операции, выполняемые компьютером на каждом шаге.<br>  
-
В алгоритме на рис. 6.2 используется полное ветвление. Эту же самую задачу можно решить, применяя структурную команду неполного ветвления. Блок-схема такого алгоритма изображена на рис. 6.3.  
+
В алгоритме на рис. 6.2 используется полное ветвление. Эту же самую задачу можно решить, применяя структурную команду неполного ветвления. '''[[Цикли. Блок–схеми алгоритмів з циклами|Блок-схема]]''' такого алгоритма изображена на рис. 6.3.  
Выполните самостоятельно трассировку этого алгоритма для вариантов 1) А = 0,2, В = 0,3; 2) А = 7, В = 4; 3) А = 5, В = 5. Если вы все проделаете правильно, то убедитесь, что алгоритм верный.  
Выполните самостоятельно трассировку этого алгоритма для вариантов 1) А = 0,2, В = 0,3; 2) А = 7, В = 4; 3) А = 5, В = 5. Если вы все проделаете правильно, то убедитесь, что алгоритм верный.  
Строка 39: Строка 80:
А теперь запишем рассмотренные алгоритмы на Алгоритмическом языке (АЯ). Во-первых, нужно решить вопрос о том, как описать переменные в этом алгоритме. Вспомним, что для всех переменных в алгоритме на Алгоритмическом языке необходимо указать их тип.  
А теперь запишем рассмотренные алгоритмы на Алгоритмическом языке (АЯ). Во-первых, нужно решить вопрос о том, как описать переменные в этом алгоритме. Вспомним, что для всех переменных в алгоритме на Алгоритмическом языке необходимо указать их тип.  
-
Переменные А, В, С — числовые величины. В этой задаче они могут принимать любые значения. В программировании числовые величины, которые могут иметь любые значения — целые, дробные, — называются вещественными. Им ставится в соответствие вещественный тип. На Алгоритмическом языке этот тип указывается служебным словом вещ.  
+
[[Image:Informatika 9 209y.jpg|420px|Алгоритм выбора большего из двух значений]]<br>
 +
 
 +
Переменные А, В, С — числовые величины. В этой задаче они могут принимать любые значения. В [http://xvatit.com/it/fishki-ot-itshki/ '''программировании'''] числовые величины, которые могут иметь любые значения — целые, дробные, — называются вещественными. Им ставится в соответствие вещественный тип. На Алгоритмическом языке этот тип указывается служебным словом вещ.  
Как выглядит команда ветвления, вы уже знаете. Вот два алгоритма на АЯ, соответствующие блок-схемам на рис. 6.2 и 6.3:  
Как выглядит команда ветвления, вы уже знаете. Вот два алгоритма на АЯ, соответствующие блок-схемам на рис. 6.2 и 6.3:  
 +
 +
 +
 +
[[Image:Informatika 9 209.2h.jpg|420px|Алгоритмы]]<br>
Под сокращенным названием алгоритмов БИД подразумевается «Большее из двух».  
Под сокращенным названием алгоритмов БИД подразумевается «Большее из двух».  
Строка 52: Строка 99:
В алгоритме решения данной задачи используется неполное ветвление. Приведем блок-схему (рис. 6.4) и алгоритм на АЯ.  
В алгоритме решения данной задачи используется неполное ветвление. Приведем блок-схему (рис. 6.4) и алгоритм на АЯ.  
 +
 +
 +
 +
[[Image:Informatika 9 210.jpg|420px|Блок-схема алгоритма упорядочения двух величин]]
Здесь роль вспомогательной переменной для обмена выполняет С.  
Здесь роль вспомогательной переменной для обмена выполняет С.  
-
''Сложные ветвящиеся алгоритмы''  
+
 
 +
 
 +
'''Сложные ветвящиеся алгоритмы'''  
Получим алгоритм решения еще одной задачи: найти наибольшее значение среди трех величин: А, В, С.  
Получим алгоритм решения еще одной задачи: найти наибольшее значение среди трех величин: А, В, С.  
Строка 62: Строка 115:
Решение задачи сводится к двукратному применению уже знакомого алгоритма нахождения большего из двух значений. Блок-схема алгоритма — на рис. 6.5.  
Решение задачи сводится к двукратному применению уже знакомого алгоритма нахождения большего из двух значений. Блок-схема алгоритма — на рис. 6.5.  
 +
 +
[[Image:Informatika 9 211.jpg|420px|Блок-схема алгоритма]]
Нетрудно догадаться, что «БИТ» обозначает «Большее из трех». В структуре этого алгоритма содержатся два последовательных ветвления: первое — полное, второе — неполное.  
Нетрудно догадаться, что «БИТ» обозначает «Большее из трех». В структуре этого алгоритма содержатся два последовательных ветвления: первое — полное, второе — неполное.  
Строка 69: Строка 124:
А вот как выглядят описание этого алгоритма на АЯ и трассировочная таблица при А = 5, В = 7, С = 2.  
А вот как выглядят описание этого алгоритма на АЯ и трассировочная таблица при А = 5, В = 7, С = 2.  
-
<u>''Коротко о главном''</u>
+
 
 +
 
 +
[[Image:Informatika 9 212.jpg|420px|Алгоритм]]
 +
 
 +
{| width="500" cellspacing="1" cellpadding="1" border="1"
 +
|-
 +
| Шаг
 +
| Операция
 +
| A
 +
| B
 +
| C
 +
| D
 +
| Проверка условия
 +
|-
 +
| 1
 +
| ввод A, B, C
 +
| 5
 +
| 7
 +
| 2
 +
| -
 +
|
 +
|-
 +
| 2
 +
| A &gt; B
 +
| 5
 +
| 7
 +
| 2
 +
| -
 +
| 5 &gt; 7, нет
 +
|-
 +
| 3
 +
| B &gt;C
 +
| 5
 +
| 7
 +
| 2
 +
| -
 +
| 7 &gt; 2, да
 +
|-
 +
| 4
 +
| D:=B
 +
| 5
 +
| 7
 +
| 2
 +
| 7
 +
|
 +
|-
 +
| 5
 +
| вывод D
 +
| 5
 +
| 7
 +
| 2
 +
| 7
 +
|
 +
|}
 +
 
 +
<u</u>
 +
 
 +
'''Коротко о главном'''
В команде ветвления в качестве условия может использоваться отношение неравенства между величинами.  
В команде ветвления в качестве условия может использоваться отношение неравенства между величинами.  
Строка 79: Строка 191:
Несколько ветвлений в одном алгоритме могут быть последовательными и вложенными.  
Несколько ветвлений в одном алгоритме могут быть последовательными и вложенными.  
-
<u>''Вопросы и задания''</u>
 
-
1. Какую структуру имеет алгоритм нахождения большего из двух значений?<br>2. Почему отношение неравенства можно назвать логическим выражением?<br>3. В каком случае для числовой переменной следует указывать целый тип, в каком — вещественный?<br>4. Составьте алгоритм (в виде блок-схемы и на АЯ) нахождения меньшего из двух значений.<br>5. Составьте алгоритм нахождения наименьшего из трех значений.<br>6. Для вывода на экран произвольной символьной строки нужно в команде вывода записать эту строку в апострофах. Например, по команде
 
-
вывод "ОТВЕТ"
+
'''Вопросы и задания'''
-
на экран выведется слово ОТВЕТ.  
+
''1. Какую структуру имеет алгоритм нахождения большего из двух значений?<br>2. Почему отношение неравенства можно назвать логическим выражением?<br>3. В каком случае для числовой переменной следует указывать целый тип, в каком — вещественный?<br>4. Составьте алгоритм (в виде блок-схемы и на АЯ) нахождения меньшего из двух значений.<br>5. Составьте алгоритм нахождения наименьшего из трех значений.<br>6. Для вывода на экран произвольной символьной строки нужно в команде вывода записать эту строку в апострофах. Например, по команде''
-
Определите, какая задача решается по следующему алгоритму:
+
''вывод "ОТВЕТ"''
-
алг Задача-6 <br>вещ&nbsp; X<br>нач&nbsp; ввод X<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; если Х&lt;0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; то вывод "отрицательное число' <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; иначе вывод “положительное число” <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; кв<br>кон
+
''на экран выведется слово ОТВЕТ.''
-
7. Составьте алгоритм, по которому на компьютере будет происходить следующее: в переменную S вводится возраст Саши, в переменную М вводится возраст Маши. В качестве результата на экран выводится фраза «Саша старше Маши» или «Маша старше Саши» (предполагаем, что кто-нибудь из них обязательно старше).<br>8. Решите предыдущую задачу, учитывая возможность одинакового возраста Саши и Маши. В таком случае может быть получен ответ: «Саша и Маша — ровесники».<br>9. Составьте алгоритм упорядочения значений трех переменных по возрастанию, т. е. при любых исходных значениях А, B, C отсортируйте их так, чтобы стало: А <u>&lt;</u> В <u>&lt;</u> С. Проверьте алгоритм трассировкой при разных вариантах значений исходных данных.<br>
+
''Определите, какая задача решается по следующему алгоритму:''
-
<br>  
+
''алг Задача-6 <br>вещ&nbsp; X<br>нач&nbsp; ввод X<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; если Х&lt;0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; то вывод "отрицательное число' <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; иначе вывод “положительное число” <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; кв<br>кон''
-
''И. Семакин, Л. Залогова, С. Русаков, Л. Шестакова, Информатика, 9 класс<br>Отослано читателями из интернет-сайтов''  
+
''7. Составьте алгоритм, по которому на компьютере будет происходить следующее: в переменную S вводится возраст Саши, в переменную М вводится возраст Маши. В качестве результата на экран выводится фраза «Саша старше Маши» или «Маша старше Саши» (предполагаем, что кто-нибудь из них обязательно старше).<br>8. Решите предыдущую задачу, учитывая возможность одинакового возраста Саши и Маши. В таком случае может быть получен ответ: «Саша и Маша — ровесники».<br>9. Составьте алгоритм упорядочения значений трех переменных по возрастанию, т. е. при любых исходных значениях А, B, C отсортируйте их так, чтобы стало: А <u>&lt;</u> В <u>&lt;</u> С. Проверьте алгоритм трассировкой при разных вариантах значений исходных данных.''<br>
-
<br>
 
-
<sub>Сборник конспектов уроков информатики, учебная программа по информатике 9 класс, материалы для подготовки к урокам, готовые домашние задания</sub>  
+
 
 +
<br> ''И. Семакин, Л. Залогова, С. Русаков, Л. Шестакова, Информатика, 9 класс<br>Отослано читателями из интернет-сайтов''
 +
 
 +
<br> <sub>Сборник конспектов уроков [[Інформатика|информатики]], [[Гипермаркет знаний - первый в мире!|учебная программа]] [[Информатика 9 класс|по информатике 9 класс]], материалы для подготовки к урокам, готовые домашние задания</sub> <br>  
<br>  
<br>  
  '''<u>Содержание урока</u>'''
  '''<u>Содержание урока</u>'''
-
  '''[[Image:1236084776 kr.jpg|10x10px]] конспект урока                      '''
+
  '''[[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] конспект урока                      '''
-
  [[Image:1236084776 kr.jpg|10x10px]] опорный каркас   
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] опорный каркас   
-
  [[Image:1236084776 kr.jpg|10x10px]] презентация урока
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] презентация урока
-
  [[Image:1236084776 kr.jpg|10x10px]] акселеративные методы  
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] акселеративные методы  
-
  [[Image:1236084776 kr.jpg|10x10px]] интерактивные технологии  
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] интерактивные технологии  
   
   
  '''<u>Практика</u>'''
  '''<u>Практика</u>'''
-
  [[Image:1236084776 kr.jpg|10x10px]] задачи и упражнения  
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] задачи и упражнения  
-
  [[Image:1236084776 kr.jpg|10x10px]] самопроверка
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] самопроверка
-
  [[Image:1236084776 kr.jpg|10x10px]] практикумы, тренинги, кейсы, квесты
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] практикумы, тренинги, кейсы, квесты
-
  [[Image:1236084776 kr.jpg|10x10px]] домашние задания
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] домашние задания
-
  [[Image:1236084776 kr.jpg|10x10px]] дискуссионные вопросы
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] дискуссионные вопросы
-
  [[Image:1236084776 kr.jpg|10x10px]] риторические вопросы от учеников
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] риторические вопросы от учеников
-
 
+
  '''<u>Иллюстрации</u>'''
  '''<u>Иллюстрации</u>'''
-
  '''[[Image:1236084776 kr.jpg|10x10px]] аудио-, видеоклипы и мультимедиа '''
+
  '''[[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] аудио-, видеоклипы и мультимедиа '''
-
  [[Image:1236084776 kr.jpg|10x10px]] фотографии, картинки  
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] фотографии, картинки  
-
  [[Image:1236084776 kr.jpg|10x10px]] графики, таблицы, схемы
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] графики, таблицы, схемы
-
  [[Image:1236084776 kr.jpg|10x10px]] юмор, анекдоты, приколы, комиксы
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] юмор, анекдоты, приколы, комиксы
-
  [[Image:1236084776 kr.jpg|10x10px]] притчи, поговорки, кроссворды, цитаты
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] притчи, поговорки, кроссворды, цитаты
   
   
  '''<u>Дополнения</u>'''
  '''<u>Дополнения</u>'''
-
  '''[[Image:1236084776 kr.jpg|10x10px]] рефераты'''
+
  '''[[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] рефераты'''
-
  [[Image:1236084776 kr.jpg|10x10px]] статьи  
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] статьи  
-
  [[Image:1236084776 kr.jpg|10x10px]] фишки для любознательных  
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] фишки для любознательных  
-
  [[Image:1236084776 kr.jpg|10x10px]] шпаргалки  
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] шпаргалки  
-
  [[Image:1236084776 kr.jpg|10x10px]] учебники основные и дополнительные
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] учебники основные и дополнительные
-
  [[Image:1236084776 kr.jpg|10x10px]] словарь терминов                           
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] словарь терминов                           
-
  [[Image:1236084776 kr.jpg|10x10px]] прочие  
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] прочие  
   
   
  <u>Совершенствование учебников и уроков
  <u>Совершенствование учебников и уроков
-
  </u>'''[[Image:1236084776 kr.jpg|10x10px]] исправление ошибок в учебнике'''
+
  </u>'''[[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] исправление ошибок в учебнике'''
-
  [[Image:1236084776 kr.jpg|10x10px]] обновление фрагмента в учебнике  
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] обновление фрагмента в учебнике  
-
  [[Image:1236084776 kr.jpg|10x10px]] элементы новаторства на уроке  
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] элементы новаторства на уроке  
-
  [[Image:1236084776 kr.jpg|10x10px]] замена устаревших знаний новыми  
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] замена устаревших знаний новыми  
-
 
+
  '''<u>Только для учителей</u>'''
  '''<u>Только для учителей</u>'''
-
  '''[[Image:1236084776 kr.jpg|10x10px]] идеальные уроки '''
+
  '''[[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] идеальные уроки '''
-
  [[Image:1236084776 kr.jpg|10x10px]] календарный план на год   
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] календарный план на год   
-
  [[Image:1236084776 kr.jpg|10x10px]] методические рекомендации   
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] методические рекомендации   
-
  [[Image:1236084776 kr.jpg|10x10px]] программы
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] программы
-
  [[Image:1236084776 kr.jpg|10x10px]] обсуждения
+
  [[Image:1236084776 kr.jpg|10x10px|1236084776 kr.jpg]] обсуждения
   
   
   
   

Текущая версия на 18:32, 3 июля 2012

Гипермаркет знаний>>Информатика>>Информатика 9 класс>>Информатика: Алгоритмы с ветвящейся структурой



§ 36. Алгоритмы с ветвящейся структурой


Основные темы параграфа:

♦ представление ветвлений на АЯ. Трассировка ветвящихся алгоритмов;
♦ сложные ветвящиеся алгоритмы.


Представление ветвлений на АЯ. Трассировка ветвящихся алгоритмов

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

Первая задача: даны два числа; выбрать большее из них.

Пусть исходными данными являются переменные А и В. Их значения будут задаваться вводом. Значение большего из них должно быть присвоено переменной С и выведено на экран компьютера. Например, если A = 5, В = 8, то должно получиться: С = 8.

Блок-схема алгоритма решения этой задачи изображена на рис. 6.2.


Алгоритм выбора большего из двух чисел

Нетрудно понять смысл этого алгоритма. Если значение переменной А больше, чем B, то переменной С присвоится значение А. В противном случае, когда А < В, переменной С присвоится значение В.

Условием, по которому разветвляется алгоритм, является отношение неравенства А > В. Изучая базы данных и электронные таблицы, вы узнали, что такое отношение является логическим выражением. Если оно справедливо, то результатом будет логическая величина «истина» и выполнение алгоритма продолжится по ветви «да»; в противном случае логическое выражение примет значение «ложь» и выполнение алгоритма пойдет по ветви «нет».

До выполнения на компьютере правильность алгоритма можно проверить путем заполнения трассировочной таблицы. Вот как будет выглядеть трассировка нашего алгоритма для исходных значений A = 5, В = 8.

Шаг Операция A B C Проверка условия
1 ввод  А, В 5 8
2 А>B 5 8 5 > 8, нет (ложь)
3 C:=B 5 8 8
4 вывод С 5 8 8

Ветвление является структурной командой. Его исполнение происходит в несколько шагов; проверка условия (выполнение логического выражения) и выполнение команд на одной из ветвей «да» или «нет». Поэтому в трассировочной таблице записываются не команды алгоритма, а отдельные операции, выполняемые компьютером на каждом шаге.

В алгоритме на рис. 6.2 используется полное ветвление. Эту же самую задачу можно решить, применяя структурную команду неполного ветвления. Блок-схема такого алгоритма изображена на рис. 6.3.

Выполните самостоятельно трассировку этого алгоритма для вариантов 1) А = 0,2, В = 0,3; 2) А = 7, В = 4; 3) А = 5, В = 5. Если вы все проделаете правильно, то убедитесь, что алгоритм верный.

А теперь запишем рассмотренные алгоритмы на Алгоритмическом языке (АЯ). Во-первых, нужно решить вопрос о том, как описать переменные в этом алгоритме. Вспомним, что для всех переменных в алгоритме на Алгоритмическом языке необходимо указать их тип.

Алгоритм выбора большего из двух значений

Переменные А, В, С — числовые величины. В этой задаче они могут принимать любые значения. В программировании числовые величины, которые могут иметь любые значения — целые, дробные, — называются вещественными. Им ставится в соответствие вещественный тип. На Алгоритмическом языке этот тип указывается служебным словом вещ.

Как выглядит команда ветвления, вы уже знаете. Вот два алгоритма на АЯ, соответствующие блок-схемам на рис. 6.2 и 6.3:


Алгоритмы

Под сокращенным названием алгоритмов БИД подразумевается «Большее из двух».

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

Следующая задача: упорядочить значения двух переменных X и Y по возрастанию. Смысл этой задачи следующий: если для исходных значении переменных справедливо отношение X < Y (например, X = 1, Y = 2), то оставить их без изменения; если же X > Y (например, X = 2, Y = 1), то выполнить обмен значениями.

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

В алгоритме решения данной задачи используется неполное ветвление. Приведем блок-схему (рис. 6.4) и алгоритм на АЯ.


Блок-схема алгоритма упорядочения двух величин

Здесь роль вспомогательной переменной для обмена выполняет С.


Сложные ветвящиеся алгоритмы

Получим алгоритм решения еще одной задачи: найти наибольшее значение среди трех величин: А, В, С.

Естественно, возникает следующая идея этого алгоритма: сначала нужно найти большее из значений A и В и присвоить его какой-то дополнительной переменной, например D; затем найти большее среди D и С. Это значение можно присвоить той же переменной D.

Решение задачи сводится к двукратному применению уже знакомого алгоритма нахождения большего из двух значений. Блок-схема алгоритма — на рис. 6.5.

Блок-схема алгоритма

Нетрудно догадаться, что «БИТ» обозначает «Большее из трех». В структуре этого алгоритма содержатся два последовательных ветвления: первое — полное, второе — неполное.

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

А вот как выглядят описание этого алгоритма на АЯ и трассировочная таблица при А = 5, В = 7, С = 2.


Алгоритм

Шаг Операция A B C D Проверка условия
1 ввод A, B, C 5 7 2 -
2 A > B 5 7 2 - 5 > 7, нет
3 B >C 5 7 2 - 7 > 2, да
4 D:=B 5 7 2 7
5 вывод D 5 7 2 7

<u</u>

Коротко о главном

В команде ветвления в качестве условия может использоваться отношение неравенства между величинами.

Числовые величины, которые могут принимать любые значения (целые и дробные), имеют вещественный тип.

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

Несколько ветвлений в одном алгоритме могут быть последовательными и вложенными.


Вопросы и задания

1. Какую структуру имеет алгоритм нахождения большего из двух значений?
2. Почему отношение неравенства можно назвать логическим выражением?
3. В каком случае для числовой переменной следует указывать целый тип, в каком — вещественный?
4. Составьте алгоритм (в виде блок-схемы и на АЯ) нахождения меньшего из двух значений.
5. Составьте алгоритм нахождения наименьшего из трех значений.
6. Для вывода на экран произвольной символьной строки нужно в команде вывода записать эту строку в апострофах. Например, по команде

вывод "ОТВЕТ"

на экран выведется слово ОТВЕТ.

Определите, какая задача решается по следующему алгоритму:

алг Задача-6
вещ  X
нач  ввод X
        если Х<0
        то вывод "отрицательное число'
        иначе вывод “положительное число”
        кв
кон

7. Составьте алгоритм, по которому на компьютере будет происходить следующее: в переменную S вводится возраст Саши, в переменную М вводится возраст Маши. В качестве результата на экран выводится фраза «Саша старше Маши» или «Маша старше Саши» (предполагаем, что кто-нибудь из них обязательно старше).
8. Решите предыдущую задачу, учитывая возможность одинакового возраста Саши и Маши. В таком случае может быть получен ответ: «Саша и Маша — ровесники».
9. Составьте алгоритм упорядочения значений трех переменных по возрастанию, т. е. при любых исходных значениях А, B, C отсортируйте их так, чтобы стало: А < В < С. Проверьте алгоритм трассировкой при разных вариантах значений исходных данных.



И. Семакин, Л. Залогова, С. Русаков, Л. Шестакова, Информатика, 9 класс
Отослано читателями из интернет-сайтов


Сборник конспектов уроков информатики, учебная программа по информатике 9 класс, материалы для подготовки к урокам, готовые домашние задания


Содержание урока
1236084776 kr.jpg конспект урока                       
1236084776 kr.jpg опорный каркас  
1236084776 kr.jpg презентация урока
1236084776 kr.jpg акселеративные методы 
1236084776 kr.jpg интерактивные технологии 

Практика
1236084776 kr.jpg задачи и упражнения 
1236084776 kr.jpg самопроверка
1236084776 kr.jpg практикумы, тренинги, кейсы, квесты
1236084776 kr.jpg домашние задания
1236084776 kr.jpg дискуссионные вопросы
1236084776 kr.jpg риторические вопросы от учеников

Иллюстрации
1236084776 kr.jpg аудио-, видеоклипы и мультимедиа 
1236084776 kr.jpg фотографии, картинки 
1236084776 kr.jpg графики, таблицы, схемы
1236084776 kr.jpg юмор, анекдоты, приколы, комиксы
1236084776 kr.jpg притчи, поговорки, кроссворды, цитаты

Дополнения
1236084776 kr.jpg рефераты
1236084776 kr.jpg статьи 
1236084776 kr.jpg фишки для любознательных 
1236084776 kr.jpg шпаргалки 
1236084776 kr.jpg учебники основные и дополнительные
1236084776 kr.jpg словарь терминов                          
1236084776 kr.jpg прочие 

Совершенствование учебников и уроков
1236084776 kr.jpg исправление ошибок в учебнике
1236084776 kr.jpg обновление фрагмента в учебнике 
1236084776 kr.jpg элементы новаторства на уроке 
1236084776 kr.jpg замена устаревших знаний новыми 

Только для учителей
1236084776 kr.jpg идеальные уроки 
1236084776 kr.jpg календарный план на год  
1236084776 kr.jpg методические рекомендации  
1236084776 kr.jpg программы
1236084776 kr.jpg обсуждения


Интегрированные уроки


Если у вас есть исправления или предложения к данному уроку, напишите нам.

Если вы хотите увидеть другие корректировки и пожелания к урокам, смотрите здесь - Образовательный форум.