Ветвление в с доклад

Обновлено: 27.04.2024

1. Информатика. Базовый курс/ Под ред. С. В. Симоновича. СПб: Питер,2000.

2. Степанов А.Н. Информатика: Учебник для вузов. 4-е изд. - СПб.: Питер, 2005.- 684 с.: ил.

3. Попов В.Б. TurboPascal для школьников: Учеб. пособие. – 3-е доп. изд. – М.: Финансы и статистика, 2002. – 528 с.: ил.

1. Свойства алгоритма 3-4

2. Алгоритмическая структура ветвления 5- 7

4. Необходимость структуризации в программирование 10-12

1. СВОЙСТВА АЛГОРИТМА.

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

Можно утверждать, что алгоритмы – это способ фиксации и передачи знаний, накопленных человечеством, это богатство культуры, науки и техники. Роль алгоритмов в жизни человека весьма многогранна и не сводится только к обработке информации. Однако в процессе обработки информации алгоритмы играют первостепенную роль. Алгоритмы обладают важнейшим качеством – исполнение одного того же алгоритма в одних и тех же условиях различными людьми (в общем случае – исполнителями), как правило, приводит к одинаковым результатам. Следовательно, можно утверждать, что алгоритма обладают ( точнее, должны обладать) некоторыми свойствами, которые обеспечивают этот эффект.

Свойства алгоритма. При составлении и записи алгоритма необходимо обеспечить, чтобы он обладал рядом свойств.

Однозначность алгоритма , под которой понимается единственность толкования исполнителем правил выполнения действий и порядка их выполнения. Чтобы алгоритм обладал этим свойством, он должен быть записан командами из системы команд исполнителя.

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

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

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

2. АЛГОРИТМИЧЕСКАЯ СТРУКТУРА ВЕТВЛЕНИЯ.

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

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

1. Если чувствует себя хорошо, то собирается в школу.

2. Иначе – остается дома.

дискретность – разбиение процесса обработки информации на более простые этапы (шаги выполнения), выполнение которых компьютером или человеком не вызывает затруднений;

определенность алгоритма – однозначность выполнения каждого отдельного шага преобразование информации;

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

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

Для этого в C++ есть так называемые операторы ветвления — особые команды, которые показывают компилятору, что можно выбирать из тех или иных вариантов. Сегодня мы поговорим о том, какие есть операторы ветвления в C++, как они функционируют, также приведем примеры их использования.

Конструкция ветвления в C++. Операторы условного ветвления if/else

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

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

Само собой, это умозрительный пример ветвления, но, надеюсь, идею вы поняли. Давайте перейдем к практической стороне реализации.

Блок-схема простейшего варианта ветвления выглядит следующим образом:

Здесь все просто и понятно: если выражение принимает положительное значение — выполняется одна инструкция. Отрицательное — другая. В качестве наглядного примера возьмем вот такую небольшую программу на С++. В ней надо ввести любое произвольное число, которое может быть меньше 100, или же больше/равно 100.

Здесь, как видим, реализован простейший вариант — проверка идет по принципу больше/меньше. Помимо этого, никаких проверок. Ниже мы рассмотрим вариант, когда программа будет различать более точные вводные данные — меньше, больше или равно.

Само собой, эта простейшая программа не включает проверку корректности символов — туда можно ввести любые данные — цифры, буквы, символы из ASCII и так далее. Однако корректные результаты получить можно будет только на цифрах.

Использование нескольких операций в ветвлениях if/else

Бывает так, что нужно выбрать не из двух, а из большего числа вариантов — трех и так далее. Давайте посмотрим, как это можно сделать:

Мы добавили новое условие, которое позволяет уточнить результат — число строго больше 100 или строго равно ему. Как видите, ничего сложного. Это также называется связыванием стейтментов.

Вложенные ветвления if/else

Еще один способ сломать себе мозг осуществить выбор в программе — вложенные ветвления. Суть понятна из названия — внутри одной пары if/else есть другая или другие пары. Выглядит это логически примерно так:

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

И вот здесь надо быть внимательным, поскольку количество if и else должно быть одинаковым — как и фигурных скобок. Иначе говоря, оператор else всегда относится только к последнему незакрытому оператору if в том же блоке.

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

Неявное указание блоков if/else

Бывает так, что разработчик не указывает фигурные скобки для блока стейтментов if или else . Однако некоторые компиляторы C++ позволяют сделать это и без ручного труда. То есть налицо некоторая автоматизация процесса (которой, впрочем, лучше не злоупотреблять).

Таким образом, блок кода…

…превращается в такую конструкцию:

С точки зрения компилятора ничего не поменялось — логика та же самая, только изменилось написание. Это можно сравнить с синонимами в естественном языке — допустимо, но не обязательно, и не влияет на восприятие в целом.

Нулевые стейтменты

Помимо этого, в C++ можно использовать null-стейтменты (нулевые). Суть их состоит в том, что они заменяют основную часть оператора if . Для их объявления можно использовать точку с запятой — ; — что позволяет также визуально указать на явное применение нулевого стейтмента.

Пример неправильного кода:

Здесь мы закрыли оператор if с помощью точки с запятой, то есть фактически дополнили его нулевым стейтментом. В этом случае программа будет выполняться неверно, поскольку проверка, равна ли переменная a нулю, уже не проводится. Тут переменная получит значение 1 в любом случае.

А вот правильный код:

В этом случае только если a равно нулю, произойдет присваивание нового значения 1 . Поэтому, будьте внимательны, чтобы не допустить таких детских ошибок.

Вывод

И да, это тоже можно реализовать с помощью if/else , однако такой стиль программирования довольно громоздкий и не приветствуется.

К слову, то же самое, что было в статье, но более подробно, есть в этом тематическом видео:

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

В предыдущей статье шла речь об алгоритмах, их особенностях и свойствах. Особое внимание было уделено линейной структуре как самому простому способу реализации. Сегодня поговорим о более сложных алгоритмах, обладающих разветвлённой структурой. Но прежде чем продолжать, следует кое-что вспомнить.

Алгоритм – это ясный перечень действий, который направлен на решение какой-либо задачи. Одно из свойств алгоритма — дискретность. Дискретность связана с наличием в алгоритмической последовательности ряда операций (этапов, действий), выполняемых пошагово, то есть дискретно. Алгоритм обладает свойством дискретности, так как он представляет собой процесс решения задачи в виде последовательного выполнения простых шагов. И каждое действие исполняется лишь после окончания исполнения предыдущего. Также предполагается наличие определённых исходных данных и результата выполнения.

Блок-схема — графический способ описания алгоритмов. Графическое представление обеспечивает наглядность и упрощает запись, делая последовательность более понятной. При использовании схемы каждому действию соответствует определённая геометрическая фигура (эти фигуры называют блоками). Вот наиболее часто употребляемые:

1-1801-45f906.jpg

Ещё раз о линейности

Линейная последовательность — самая простая из возможных структур. При наличии линейности команды выполняются в чёткой последовательности и в порядке их записи, то есть друг за другом. Вот линейная алгоритмическая последовательность посадки дерева: 1) выкапывание ямки в земле; 2) размещение в ямке саженца; 3) закапывание ямки; 4) поливание места посадки водой.

Такой линейный алгоритм имеет следующую блок-схему:

2-1801-c5c0b7.jpg

А вот и общая схема линейного алгоритма:

3-1801-35f267.jpg

Ветвление в алгоритмических последовательностях

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

4-1801-2c4a5c.jpg

Компьютерные программы и игры тоже построены на выборе действий. А блок-схема при наличии ветвления приобретает иной вид:

4.1-1801-fa94a6.jpg

Логика разветвляющих алгоритмов

Логику можно описать следующим образом:

Ветвление — метод и форма организации действий, когда в зависимости от выполнения определённого условия совершается та либо иная последовательность шагов.

В результате совсем несложно составить алгоритм покупки мороженого с учётом наличия необходимой суммы денег. Описать эту алгоритмическую последовательность с помощью схемы и блоков тоже не составит труда:

5-1801-c7b186.jpg

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

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

Решение легко описывается посредством схематических блоков:

6-1801-145fea.jpg

Следующий пример легко экстраполируется в жизнь. Речь идёт об алгоритме для перехода дороги при наличии светофора. Он имеет следующий вид: 1. Подходим к светофору. 2. Смотрим, какой горит свет. 3. Если зелёный, переходим дорогу. 4. Если красный, ждём, пока загорится зелёный, а потом переходим дорогу.

7-1801-391350.jpg

Программный способ записи

Чтобы алгоритм было понятен компьютеру, машине и любой другой цифровой системе, следует оформить его в таком виде, который эта система способна воспринимать. То есть надо написать программу, используя для этого команды из СКИ. СКИ — это список команд исполнителя — перечень команд, ему понятных. А любой исполнитель способен исполнить лишь те команды, которые включены в его СКИ, а если говорить человеческим языком — входят в набор его компетенций.

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

Простейший пример описания алгоритма с разветвляющейся структурой — условный оператор IF. Полная конструкция этого условного оператора имеет следующий вид:

Условный оператор работает просто: — вычисляется значение логического выражения, которое расположено после служебного слова IF; — если результат — истина, выполняется оператор 1, который размещён после THEN, причём действие после ELSE пропускается; — если результат — ложь, пропускается уже действие после THEN, а действие после ELSE выполняется с помощью оператора 2.

Теперь можно вспомнить пресловутого витязя на распутье и написать простую программу, реализующую этот алгоритм с помощью соответствующих условных операторов.

Попробовать этот алгоритм в работе можно на любом онлайн-компиляторе, поддерживающим Pascal. Но не стоит на этом останавливаться — лучше всего написать собственную программу, что позволит получить максимальную пользу от урока.


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


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

Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобретя в каталоге.

Получите невероятные возможности




Конспект урока "Основные алгоритмические конструкции. Ветвление"

· Составление разветвляющихся алгоритмов.

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

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

Рассмотрим пример. На уроке русского языка для того чтобы применить правило правописания приставок на "з-" и "с-" вы будете действовать по алгоритму:


Для принятия решения ход рассуждений может быть таким:

Полная форма ветвления:


Графически, полная форма структуры ветвление представляется следующим образом:


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

Иногда, встречаются ситуации, когда вторая последовательность команд отсутствует, то есть сокращённая форма записи.



Графически, неполная форма структуры ветвление представляется следующим образом:


В данный блок входит одна линяя связи, а выходят две линии, возле которых записываются результаты проверки условия да или нет. Здесь, в зависимости от выполнения или невыполнения некоторого условия приводится к исполнению только одна последовательность команд, либо алгоритм будет завершён.

Операции сравнения на алгоритмическом языке можно записать при помощи следующих знаков: меньше; меньше или равно; равно; больше; больше или равно; не равно.


С помощью этих знаков можно сравнивать любые переменные, числа и арифметические выражения, символьные переменные.

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


Обратите внимание на второй блок данной блок-схемы. Здесь записаны имена и типы величин (данных), которые обрабатываются в алгоритме.

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

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

При решении различных задач иногда возникает необходимость проверять выполнение двух (как например, 0

Так как разветвляющийся алгоритм должен работать для различных обстановок, давайте проверим его. Для этого загрузим обстановку Коридор 2 и запустим на выполнение наш алгоритм. Как мы можем видеть, алгоритм написан правильно, так как все необходимые клетки закрашены и робот оказался в конце коридора.

Рассмотрим следующее задание: Из ряда чисел 15, 16, 17 и 18 выписать значения х, удовлетворяющие условию из блок-схемы.


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


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

Читайте также: