Линейный алгоритм
Линейный алгоритм – это тип алгоритма, в котором последовательность действий не меняется в процессе его выполнения.
В алгоритмах линейной структуры инструкции выполняются последовательно, одна за другой, т.е. линейно. Алгоритмы и программы с линейной структурой являются простейшими используются, как правило, для реализации простых вычислений по формулам.
Пример:
Составить блок-схему алгоритма вычисления значения переменной x по формуле: 𝑥 = 32 − 2 ∗ 3
Решение 1:
Решение 2:
Пример:
Составить блок-схему алгоритма для решения следующей задачи:
Даны три стороны треугольника a, b, c. Вычислить площадь треугольника по формуле
Геро́на:
где p – полупериметр треугольника. Длины сторон треугольника будет вводить пользователь.
Решение:
Ветвление
Алгоритм разветвляющейся структуры содержит как минимум одно условие, в зависимости от которого будет выполнено одно или другое действие.
Общая схема алгоритма разветвляющейся структуры:
Пример:
Написать алгоритм вычисления функции Y, используя систему:
Решение:
Алгоритм обхода является разновидностью разветвляющегося алгоритма и применяется, когда одна из ветвей не содержит ни одного действия.
Пример:
Даны числа x, y, z. Найти максимальное значение.
Решение:
Цикл
Алгоритм циклической структуры – это такой алгоритм, в котором повторяются одни и те же действия. Существует два типа циклических алгоритмов:
- цикл с предусловием,
- цикл с постусловием.
Алгоритм подготовки домашнего задания – цикл с предусловием: сначала задается условие, затем выполняются действия.
Таким образом, в цикле с предусловием тело цикла может не выполниться ни разу.
Блок-схема цикла с предусловием:
Алгоритм поиска Золушки включает в себя цикл с постусловием: сначала выполняются 2 действия (встретить и примерить), а затем уже проверяется условие.
Таким образом, действия в цикле с постусловием всегда будут выполнены хотя бы 1 раз.
Блок-схема цикла с постусловием:
Пример:
Дано целое положительное число N. Найти N! (факториал).
Факториал числа N – это произведение всех натуральных чисел от 1 до N включительно. Факториал числа 0! = 1.
Если N=5, тогда N!=1*2*3*4*5=120
Для составления алгоритма понадобятся три переменные целого типа:
- N – аргумент,
- i – промежуточная переменная,
- F – факториал числа, т.е. результат.
Блок-схема алгоритма:
Пошаговое выполнение:
Шаг | N | F | i | Условие |
---|---|---|---|---|
1 | 3 | |||
2 | 1 | |||
3 | 1 | |||
4 | 1<=3, да | |||
5 | 1 | |||
6 | 2 | |||
7 | 2<=3, да | |||
8 | 2 | |||
9 | 3 | |||
10 | 3<=3, да | |||
11 | 6 | |||
12 | 4 | |||
13 | 4<=3, да | |||
14 | вывод |
Пошаговая детализация
Пошаговая детализация (программирование сверху вниз, нисходящая разработка) представляет собой процесс поэтапного решения сложной задачи. На первом этапе алгоритм описывает решение задачи в самых общих чертах. Далее процесс детализации повторяется по отношению к новым вариантам схемы алгоритма до тех пор, пока не будет достигнут такой уровень ясности решения, который позволит приступить непосредственно к программированию.
Пример:
Составить алгоритм нахождения суммы квадратов чисел от 1 до 10.
Исходная схема алгоритма:
Детализированная схема алгоритма:
Итоговая схема алгоритма:
В программе Visio нарисовать блок-схемы алгоритмов для решения следующих задач (по вариантам):
- Даны два действительных числа. Получить их сумму, разность и произведение.
- Даны два действительных числа. Получить их среднее арифметическое.
- Даны катеты прямоугольного треугольника. Найти площадь треугольника и его гипотенузу.
- Написать алгоритм деления одной обыкновенной дроби на другую обыкновенную дробь.
- Дано действительное число a. Не пользуясь никакими арифметическими операциями, кроме умножения, получить: a) a4 за две операции; b) a6 за три операции; c) a7 за четыре операции; d) a9 за четыре операции.
- Даны два действительных числа. Вывести первое число, если оно больше второго, и оба числа, если это не так.
- Даны два действительных числа. Заменить первое число нулем, если оно меньше или равно второму, и оставить числа без изменения в противном случае.
- Даны три действительных числа. Вывести на экран те из них, которые принадлежат интервалу [1..5].
- Даны действительные числа a, b, c. Удвоить числа, если 𝑎≥𝑏≥𝑐a≥b≥c, и заменить их абсолютными значениями, если это не так.
- Даны два действительных числа x, y. Меньшее из этих двух чисел заменить их полусуммой, а большее – их удвоенным произведением.
- Даны три действительных числа. Возвести в квадрат те из них, значения которых не отрицательны.
- Составить блок-схему алгоритма для решения следующей задачи. Из трех монет одинакового достоинства одна фальшивая (более легкая). Как ее найти с помощью одного взвешивания на чашечных весах без гирь?
- Одна штука некоторого товара стоит 20,4 рубля. Напечатать таблицу стоимости от 2 до 30 штук товара.
- Спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал норму на 10% от нормы предыдущего дня. Какой путь пробежит спортсмен на 7 день.
- Спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал норму на 10% от нормы предыдущего дня. Определить, через сколько дней спортсмен будет пробегать более 20 км.
- Найти сумму всех целых чисел от 1 до 10.
- Найти среднее арифметическое всех целых чисел от 30 до 100.
- Известна масса каждого из 12 предметов. Определить общую массу всего набора предметов.
- Найти сумму всех целых чисел от 20 до 50.
- Найти сумму всех целых чисел от значения A до значения B.
- Найти произведение всех целых чисел от 3 до 10.
- Найти сумму всех четных чисел от 1 до 50.
- Найти сумму всех чисел, кратных трем, от значения A до значения B.
- Вывести на экран все целые числа от 100 до 200, кратные трем.