|
|
(24 промежуточные версии не показаны) | Строка 1: |
Строка 1: |
| + | <metakeywords>Информатика, класc, урок, на тему, 9 класc, Алгоритмы с ветвящейся структурой, Ветвление, базы данных, логическое выражение, Блок-схема</metakeywords> |
| + | |
| '''[[Гипермаркет знаний - первый в мире!|Гипермаркет знаний]]>>[[Информатика|Информатика]]>>[[Информатика 9 класс|Информатика 9 класс]]>>Информатика: Алгоритмы с ветвящейся структурой''' | | '''[[Гипермаркет знаний - первый в мире!|Гипермаркет знаний]]>>[[Информатика|Информатика]]>>[[Информатика 9 класс|Информатика 9 класс]]>>Информатика: Алгоритмы с ветвящейся структурой''' |
| | | |
- | <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 207d.jpg|420px|Алгоритм выбора большего из двух чисел]]<br> |
| | | |
| Нетрудно понять смысл этого алгоритма. Если значение переменной А больше, чем B, то переменной С присвоится значение А. В противном случае, когда А <u><</u> В, переменной С присвоится значение В.<br> | | Нетрудно понять смысл этого алгоритма. Если значение переменной А больше, чем B, то переменной С присвоится значение А. В противном случае, когда А <u><</u> В, переменной С присвоится значение В.<br> |
| | | |
- | Условием, по которому разветвляется алгоритм, является отношение неравенства А > В. Изучая базы данных и электронные таблицы, вы узнали, что такое отношение является логическим выражением. Если оно справедливо, то результатом будет логическая величина «истина» и выполнение алгоритма продолжится по ветви «да»; в противном случае логическое выражение примет значение «ложь» и выполнение алгоритма пойдет по ветви «нет».<br> | + | Условием, по которому разветвляется алгоритм, является отношение неравенства А > В. Изучая '''[[Создание и заполнение баз данных|базы данных]]''' и электронные таблицы, вы узнали, что такое отношение является логическим выражением. Если оно справедливо, то результатом будет логическая величина «истина» и выполнение алгоритма продолжится по ветви «да»; в противном случае '''[[Условия выбора и простые логические выражения|логическое выражение]]''' примет значение «ложь» и выполнение алгоритма пойдет по ветви «нет».<br> |
| | | |
| До выполнения на компьютере правильность алгоритма можно проверить путем заполнения трассировочной таблицы. Вот как будет выглядеть трассировка нашего алгоритма для исходных значений A = 5, В = 8. <br> | | До выполнения на компьютере правильность алгоритма можно проверить путем заполнения трассировочной таблицы. Вот как будет выглядеть трассировка нашего алгоритма для исходных значений A = 5, В = 8. <br> |
| + | |
| + | {| width="500" cellspacing="1" cellpadding="1" border="1" |
| + | |- |
| + | | Шаг |
| + | | Операция |
| + | | ''A'' |
| + | | ''B'' |
| + | | ''C'' |
| + | | Проверка условия |
| + | |- |
| + | | 1 |
| + | | ввод'' А, В'' |
| + | | 5 |
| + | | 8 |
| + | | |
| + | | |
| + | |- |
| + | | 2 |
| + | | А>B |
| + | | 5 |
| + | | 8 |
| + | | |
| + | | 5 > 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. Если вы все проделаете правильно, то убедитесь, что алгоритм верный. |
Строка 37: |
Строка 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> |
| | | |
| Под сокращенным названием алгоритмов БИД подразумевается «Большее из двух». | | Под сокращенным названием алгоритмов БИД подразумевается «Большее из двух». |
Строка 50: |
Строка 99: |
| | | |
| В алгоритме решения данной задачи используется неполное ветвление. Приведем блок-схему (рис. 6.4) и алгоритм на АЯ. | | В алгоритме решения данной задачи используется неполное ветвление. Приведем блок-схему (рис. 6.4) и алгоритм на АЯ. |
| + | |
| + | |
| + | |
| + | [[Image:Informatika 9 210.jpg|420px|Блок-схема алгоритма упорядочения двух величин]] |
| | | |
| Здесь роль вспомогательной переменной для обмена выполняет С. | | Здесь роль вспомогательной переменной для обмена выполняет С. |
| | | |
- | ''Сложные ветвящиеся алгоритмы'' | + | |
| + | |
| + | '''Сложные ветвящиеся алгоритмы''' |
| | | |
| Получим алгоритм решения еще одной задачи: найти наибольшее значение среди трех величин: А, В, С. | | Получим алгоритм решения еще одной задачи: найти наибольшее значение среди трех величин: А, В, С. |
Строка 60: |
Строка 115: |
| | | |
| Решение задачи сводится к двукратному применению уже знакомого алгоритма нахождения большего из двух значений. Блок-схема алгоритма — на рис. 6.5. | | Решение задачи сводится к двукратному применению уже знакомого алгоритма нахождения большего из двух значений. Блок-схема алгоритма — на рис. 6.5. |
| + | |
| + | [[Image:Informatika 9 211.jpg|420px|Блок-схема алгоритма]] |
| | | |
| Нетрудно догадаться, что «БИТ» обозначает «Большее из трех». В структуре этого алгоритма содержатся два последовательных ветвления: первое — полное, второе — неполное. | | Нетрудно догадаться, что «БИТ» обозначает «Большее из трех». В структуре этого алгоритма содержатся два последовательных ветвления: первое — полное, второе — неполное. |
Строка 67: |
Строка 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 > 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> |
| + | |
| + | '''Коротко о главном''' |
| | | |
| В команде ветвления в качестве условия может использоваться отношение неравенства между величинами. | | В команде ветвления в качестве условия может использоваться отношение неравенства между величинами. |
Строка 77: |
Строка 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>вещ X<br>нач ввод X<br> если Х<0<br> то вывод "отрицательное число' <br> иначе вывод “положительное число” <br> кв<br>кон
| + | ''на экран выведется слово ОТВЕТ.'' |
| | | |
- | 7. Составьте алгоритм, по которому на компьютере будет происходить следующее: в переменную S вводится возраст Саши, в переменную М вводится возраст Маши. В качестве результата на экран выводится фраза «Саша старше Маши» или «Маша старше Саши» (предполагаем, что кто-нибудь из них обязательно старше).<br>8. Решите предыдущую задачу, учитывая возможность одинакового возраста Саши и Маши. В таком случае может быть получен ответ: «Саша и Маша — ровесники».<br>9. Составьте алгоритм упорядочения значений трех переменных по возрастанию, т. е. при любых исходных значениях А, B, C отсортируйте их так, чтобы стало: А <u><</u> В <u><</u> С. Проверьте алгоритм трассировкой при разных вариантах значений исходных данных.<br>
| + | ''Определите, какая задача решается по следующему алгоритму:'' |
| | | |
- | <br> | + | ''алг Задача-6 <br>вещ X<br>нач ввод X<br> если Х<0<br> то вывод "отрицательное число' <br> иначе вывод “положительное число” <br> кв<br>кон'' |
| | | |
- | ''И. Семакин, Л. Залогова, С. Русаков, Л. Шестакова, Информатика, 9 класс<br>Отослано читателями из интернет-сайтов'' | + | ''7. Составьте алгоритм, по которому на компьютере будет происходить следующее: в переменную S вводится возраст Саши, в переменную М вводится возраст Маши. В качестве результата на экран выводится фраза «Саша старше Маши» или «Маша старше Саши» (предполагаем, что кто-нибудь из них обязательно старше).<br>8. Решите предыдущую задачу, учитывая возможность одинакового возраста Саши и Маши. В таком случае может быть получен ответ: «Саша и Маша — ровесники».<br>9. Составьте алгоритм упорядочения значений трех переменных по возрастанию, т. е. при любых исходных значениях А, B, C отсортируйте их так, чтобы стало: А <u><</u> В <u><</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 класс, материалы для подготовки к урокам, готовые домашние задания
Содержание урока
конспект урока
опорный каркас
презентация урока
акселеративные методы
интерактивные технологии
Практика
задачи и упражнения
самопроверка
практикумы, тренинги, кейсы, квесты
домашние задания
дискуссионные вопросы
риторические вопросы от учеников
Иллюстрации
аудио-, видеоклипы и мультимедиа
фотографии, картинки
графики, таблицы, схемы
юмор, анекдоты, приколы, комиксы
притчи, поговорки, кроссворды, цитаты
Дополнения
рефераты
статьи
фишки для любознательных
шпаргалки
учебники основные и дополнительные
словарь терминов
прочие
Совершенствование учебников и уроков
исправление ошибок в учебнике
обновление фрагмента в учебнике
элементы новаторства на уроке
замена устаревших знаний новыми
Только для учителей
идеальные уроки
календарный план на год
методические рекомендации
программы
обсуждения
Интегрированные уроки
Если у вас есть исправления или предложения к данному уроку, напишите нам.
Если вы хотите увидеть другие корректировки и пожелания к урокам, смотрите здесь - Образовательный форум.
|