Разработать алгоритм вычисления гипотенузы прямоугольного треугольника по

Разработать алгоритм вычисления гипотенузы прямоугольного треугольника по

Цель: — отработка навыка в составлении алгоритмов

  1. Повторение изученного материала /фронтальная работа с классом/
    • Что называется алгоритмом?
    • Как вы понимаете аббревиатуру СКИ?
    • Какими свойствами должны обладать алгоритмы?
    • Перечислите способы записи алгоритмов.
    • Объясните назначение следующих блоков используемых при построении блок-схем.

      • Перечислите основные алгоритмические структуры.
    1. Отработка навыков составления алгоритмов

    Задача 1. Составьте алгоритм вычисления гипотенузы прямоугольного треугольника, если известны катеты.

    Блок-схема Словесный алгоритм

    алг гипотенуза (А,В,С: вещ)

    нач

    После построения блок-схемы разобрать:

    Какие значения могут принимать переменные А, В, С /тип – вещ/

    Команда присвоить в алгоритме записывается :=

    Возведение в степень запишем: А*А

    х запишем SQRT(X)
    Д/З

    Дано А,В,С – стороны треугольника. Вычислить площадь треугольника по формуле Герона S=p(p-a)(p-b)(p-c), где p-полупериметр треугольника. Составить блок-схему алгоритма.

    /Для решения следующих задач используется алгоритмическая пакет «Роботландия»/
    Задача 2. На шахматной доске стоят 3 белых и три черных коня. Поменять местами белых и черных коней. 3
    2

    а b c Пример записи команды: a3-c2

    Выполнить алгоритм на ЭВМ, алгоритм записать в тетрадь./файл HORSE/
    Задача 3. «Переливашка». У вас есть 3 сосуда на 8, 5 и 3 литра. Ваша задача получить 7л.

    Пример записи команды: А — С

    Выполнить алгоритм на ЭВМ, алгоритм записать в тетрадь./файл WATER/

    Исключительно важно использовать язык блок-схем при разработке алгоритма решения задачи. Решение одной и той же задачи может быть реализовано с помощью различных алгоритмов, отличающихся друг от друга как по времени счета и объему вычислений, так и по своей сложности. Запись этих алгоритмов с помощью блок-схем позволяет сравнивать их, выбирать наилучший алгоритм, упрощать, находить и устранять ошибки.

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

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

    Читайте также:  Itunes не является приложением win32 что делать

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

    • Этап 1 . Математическое описание решения задачи.
    • Этап 2 . Определение входных и выходных данных.
    • Этап 3 . Разработка алгоритма решения задачи.

    Базовые алгоритмические конструкции

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

    • следование (линейный алгоритм);
    • ветвление (разветвляющийся алгоритм);
    • цикл-пока (циклический алгоритм).

    Линейные алгоритмы

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

    Пример

    ЗАДАЧА. Разработать алгоритм вычисления гипотенузы прямоугольного треугольника по известным значениям длин его катетов a и b.

    На примере данной задачи рассмотрим все три этапа разработки алгоритма решения задачи:

    Этап 1. Математическое описание решения задачи.

    Математическим решением задачи является известная формула:

    ,

    где с-длина гипотенузы, a, b – длины катетов.

    Этап 2. Определение входных и выходных данных.

    Входными данными являются значения катетов a и b. Выходными данными является длина гипотенузы – c.

    Этап 3. Разработка алгоритма решения задачи.

    Словесное описание алгоритма Запись алгоритма на языке блок-схем
    1. Начало алгоритма.
    2. Ввод значений длин катетов a и b.
    3. Вычисление длины гипотенузы с по формуле
    4. Вывод значения длины гипотенузы.
    5. Конец алгоритма

    На данной схеме цифрами указаны номера элементов алгоритма, которые соответствуют номерам пунктов словесного описания алгоритма.

    Разветвляющиеся алгоритмы

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

    Пример

    ЗАДАЧА. Разработать алгоритм вычисления наибольшего числа из двух чисел x и y.

    Этап 1. Математическое описание решения задачи.

    Из курса математики известно, если x > y, то наибольшее число x, если x y, то переход к шагу 6, иначе к шагу 7.

  2. Вывод информации: число x больше y. Переход к шагу 8.
  3. Вывод информации: число y больше x. Переход к шагу 8.
  4. Конец алгоритма.
  5. В схеме алгоритма решения задачи цифрами указаны номера элементов алгоритма, которые соответствуют номерам шагов словесного описания алгоритма

    Читайте также:  Момо номер телефона казахстан

    В рассматриваемом алгоритме (рис.3) имеются три ветви решения задачи:

    • первая: это элементы 1, 2, 3, 4, 8.
    • вторая: это элементы 1, 2, 3, 5, 6, 8
    • третья: это элементы 1, 2, 3, 5, 7, 8.

    Выбор ветви определяется значениями x и y в элементах 3 и 5, которые являются условиями, определяющими порядок выполнения элементов алгоритма. Если условие (равенство), записанное внутри символа «решение», выполняется при введенных значениях x и y, то следующими выполняется элементы 4 и 8. Это следует из того, что они соединены линией с надписью «да» и направление (последовательность) вычислений обозначена стрелочкой.

    Если условие в элементе 3 не выполняется, то следующим выполняется элемент 5. Он соединен с элементом 3 линией с надписью «нет». Если условие, записанное в элементе 5, выполняется, то выполняется элементы 6 и 8, в противном случае выполняются элементы 7 и 8.

    Циклические алгоритмы

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

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

    При разработке алгоритма циклической структуры выделяют следующие понятия:

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

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

    В подготовку цикла входят действия, связанные с заданием исходных значений для параметров цикла:

    • начальные значения цикла;
    • конечные значения цикла;
    • шаг цикла.

    В тело цикла входят:

    • многократно повторяющиеся действия для вычисления искомых величин;
    • подготовка следующего значения параметра цикла;
    • подготовка других значений, необходимых для повторного выполнения действий в теле цикла.

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

    Пример

    ЗАДАЧА. Разработать алгоритм вычисления суммы натуральных чисел от 1 до 100.

    Читайте также:  Как поменять логин в ростелекоме

    Этап 1. Математическое описание решения задачи.

    Обозначим сумму натуральных чисел через S. Тогда формула вычисления суммы натуральных чисел от 1 до 100 может быть записана так:

    где Xi – натуральное число X c номером i, который изменяется от 1 до n, n=100 – количество натуральных чисел.

    Этап 2. Определение входных и выходных данных.

    Входными данными являются натуральные числа: 1, 2, 3, 4, 5, …, 98, 99, 100.

    Выходные данные – значение суммы членов последовательности натуральных чисел.

    Параметр цикла величина, определяющая количество повторений цикла. В нашем случае i – номер натурального числа.

    Подготовка цикла заключается в задании начального и конечного значений параметра цикла.

    • начальное значение параметра цикла равно 1,
    • конечное значение параметра цикла равно n,
    • шаг цикла равен 1.

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

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

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

    Этап 3. Разработка алгоритма решения задачи.

    Введем обозначения: S – сумма последовательности, i – значение натурального числа.

    Начальное значение цикла i=1, конечное значение цикла i =100, шаг цикла 1.

    По двум введенным пользователем катетам вычислить длину гипотенузы.

    Катеты и гипотенуза — это стороны прямоугольного треугольника. Если известны длины катетов, то длина гипотенузы находится по теореме Пифагора:

    "Квадрат гипотенузы равен сумме квадратов катетов"

    С помощью формулы это выражается так:
    c 2 = a 2 + b 2

    Отсюда следует, что длина гипотенузы равна квадратному корню из суммы квадратов катетов:
    c = sqrt(a 2 + b 2 )
    (sqrt() — обозначение функции извлечения корня).

    Обычно в языках программирования предусмотрен оператор возведения в степень. Например, в языке программирования Python он обозначается двумя звездочками (**), а в Basic знаком ^. Однако в Pascal нет операции возведения в степень.

    Для извлечения корня обычно существует специальная функция, а не оператор.

    Ссылка на основную публикацию
    Adblock detector