Алгоритмическая структура «ветвление». Команда ветвления. Привести пример



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

Разветвляющийся алгоритм — такой, в котором выполняется либо одна, либо другая последовательность действий, в зависимости от усло­вия.

Здесь важно правильно сформулировать условие. В программирова­нии под условием понимается предположение, начинающееся со слова «если» и заканчивающееся словом «то». Условие может принимать одно из двух значений — «истина», если оно выполнено, и «ложь», когда не выполнено. От выполнения этого условия зависит дальнейший порядок действий.

В качестве простейшего примера можно привести следующее усло­вие: «Если идет дождь, то берем зонт».

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

Одним из примеров такой разветвляющейся структуры может быть алгоритм решения квадратного уравнения ах2+Ьх+с=0:

Рис.14. Разветвляющаяся структура алгоритма

 

Выполнение алгоритма осуществляется в следующем порядке. После ввода значений коэффициентов производится проверка значения а. При а=0 уравнение становится линейным и дальнейшие действия не имеют смысла. Компьютер сообщает нам об этом, и выполнение алгоритма пре­кращается. Если значение а отлично от 0, производится вычисление дис­криминанта, а затем — его проверка. При D<0 уравнение корней не име­ет, о чем сообщается пользователю, и выполнение алгоритма опять-таки должно прекратиться. В другом случае производится вычисление значе­ний xl и х2.

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

 

Задание 2.

 


К билету №16.

Задание 1.

Алгоритмическая структура «цикл». Команда повторения. Привести пример

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

Пример 1.Цикл со счетчиком.

Подсчет суммы квадратов всех целых чисел от kдо l.

Нач

S:=0

От N = k до l

Цикл

S = S + N2

N = N + 1

Конец цикла

Сумма = S

Кон

До начала цикла счетчик получает начальное значение N = k. Далее выполняются действия, а затем проверяется, достиг ли счетчик конечно­го значения. Если не достиг, то он увеличивается на единицу и действия выполняются еще раз. Если достиг, то выполнение цикла завершается. Таким образом, действия в цикле со счетчиком выполняются (l - k)+1 раз.

Пример2. Цикл «пока». Применяется в задачах с неопределенным числом членов. В задаче нужно найти для заданного числа N ближайшей степени двойки, не превышающей этого числа.

Нач

m = 1

Пока2m <=N

Цикл

m = 2m

Конец цикла

Рез = m

Кон

 

Первое присваивание записывает в переменную т начальное значение 1. Если значение N меньше или разно 1, то цикл вообще не будет выпол­няться, так как условие 2m <= N не будет выполнено для начального зна­чения переменной. Если исходное число больше или равно 2, то цикл начнет выполняться. На первом шаге будет вычислено 21 = 2.

 

Задание 2.

 


К билету №17.

Задание 1.

Основные этапы решения задач на компьютере

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

Задача.Определить дальность полета тела, брошенного под углом к горизонту.

I этаппостроение описательной модели. Из условия можно вы­вести следующие предположения:

- размеры тела малы по сравнению с траекторией полета, поэтому тело можно считать материальной точкой;

- сопротивлением воздуха можно пренебречь.

II этапформализация (запись задачи с помощью формул).

Дано:V0— начальная скорость (м/с), α— угол бросания (рад).

Найти:L — дальность полета (м).

Решение:    L = Vx* t, где t— время полета.

0 = Vy*t-gt2/2 — координата точки падения,

Vx = V0*Cos α— горизонтальная проекция вектора скорости,

Vy = V0*Sin α — вертикальная проекция вектора скорости,

g = 9,81 — ускорение свободного падения.

Ограничения: при V0>0 и 0< α <π/2

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

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

1. g = 9,81

2. Vy = V0.sin a

3. Vx = V0.cos a

4. t = 2*Vy/g

5. L = Vx.t

III этапалгоритмизация — построение алгоритма решения зада­чи. Собственно алгоритм решения данной задачи состоит из последова­тельного решения наших уравнений.

IV этапсоставление программы, т.е. запись задачи на понятном компьютеру языке. В качестве примера выбран QBasic.

INPUT; "V0=", V0; "A=", A

VY = V0*SIN(A)

VX = V0*COS(A)

T = 2*VY/9.81

L = VX*T

PRINT "L=",L

END

V этап— компьютерный эксперимент — запуск программы на вы­полнение, если нужно — отладка программы и получение результатов.

VI этапанализ полученных результатов и корректировка модели. В нашем случае можно попробовать запустить программу с различными исходными данными.

 

Задание 2.

 


К билету №18.

Задание 1.


Дата добавления: 2018-05-02; просмотров: 1417; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!