Тема 1.2. Основные алгоритмические конструкции 1.2.webp
Описание блок-схемы алгоритма

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

Линейный алгоритм – это тип алгоритма, в котором последовательность действий не меняется в процессе его выполнения.

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

Пример:

Составить блок-схему алгоритма вычисления значения переменной x по формуле: 𝑥 = 32 − 2 ∗ 3

Решение 1:

121_02

Решение 2:

121_03

Пример:

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

Даны три стороны треугольника a, b, c. Вычислить площадь треугольника по формуле

Геро́на:

121_04

где p – полупериметр треугольника. Длины сторон  треугольника   будет    вводить пользователь.

Решение:

121_05

Ветвление

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

121_06

Общая схема алгоритма разветвляющейся структуры:

121_07

Пример:

Написать алгоритм вычисления функции Y, используя систему:

121_08

Решение:

121_09

Алгоритм обхода является разновидностью разветвляющегося алгоритма и применяется, когда одна из ветвей не содержит ни одного действия.

121_10

Пример:

Даны числа x, y, z. Найти максимальное значение.

Решение:

121_11

Цикл

Алгоритм циклической структуры – это такой алгоритм, в котором повторяются одни и те же действия. Существует два типа циклических алгоритмов: 

  • цикл с предусловием,
  • цикл с постусловием.

121_12

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

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

121_13

Блок-схема цикла с предусловием:

121_14

Алгоритм поиска Золушки включает в себя цикл с постусловием: сначала выполняются 2 действия (встретить и примерить), а затем уже проверяется условие.

Таким образом, действия в цикле с постусловием всегда будут выполнены хотя бы 1 раз.

Блок-схема цикла с постусловием:

121_15

Пример:

Дано целое положительное число N. Найти N! (факториал).

Факториал числа N – это произведение всех натуральных чисел от 1 до N включительно. Факториал числа 0! = 1.

Если N=5, тогда  N!=1*2*3*4*5=120

Для составления алгоритма понадобятся три переменные целого типа:

  • N – аргумент,
  • – промежуточная переменная,
  • – факториал числа, т.е. результат.

Блок-схема алгоритма:

121_16

Пошаговое выполнение:

ШагNFiУсловие
13   
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.

Исходная схема алгоритма:

121_18

Детализированная схема алгоритма:

121_19

Итоговая схема алгоритма:

121_20

Разработка алгоритма блок-схемным способом

В программе Visio нарисовать блок-схемы алгоритмов для решения следующих задач (по вариантам):

  1. Даны два действительных числа. Получить их сумму, разность и произведение.
  2. Даны два действительных числа. Получить их среднее арифметическое.
  3. Даны катеты прямоугольного треугольника. Найти площадь треугольника и его гипотенузу.
  4. Написать алгоритм деления одной обыкновенной дроби на другую обыкновенную дробь.
  5. Дано действительное число a. Не пользуясь никакими арифметическими операциями, кроме умножения, получить: a) a4 за две операции; b) a6 за три операции; c) a7 за четыре операции; d) a9 за четыре операции.
  6. Даны два действительных числа. Вывести первое число, если оно больше второго, и оба числа, если это не так.
  7. Даны два действительных числа. Заменить первое число нулем, если оно меньше или равно второму, и оставить числа без изменения в противном случае.
  8. Даны три действительных числа. Вывести на экран те из них, которые принадлежат интервалу [1..5].
  9. Даны действительные числа a, b, c. Удвоить числа, если 𝑎≥𝑏≥𝑐a≥b≥c, и заменить их абсолютными значениями, если это не так.
  10. Даны два действительных числа x, y. Меньшее из этих двух чисел заменить их полусуммой, а большее – их удвоенным произведением.
  11. Даны три действительных числа. Возвести в квадрат те из них, значения которых не отрицательны.
  12. Составить блок-схему алгоритма для решения следующей задачи. Из трех монет одинакового достоинства одна фальшивая (более легкая). Как ее найти с помощью одного взвешивания на чашечных весах без гирь?

    122_01 122_02

  13. Одна штука некоторого товара стоит 20,4 рубля. Напечатать таблицу стоимости от 2 до 30 штук товара.
  14. Спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал норму на 10% от нормы предыдущего дня. Какой путь пробежит спортсмен на 7 день.
  15. Спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал норму на 10% от нормы предыдущего дня.  Определить, через сколько дней спортсмен будет пробегать более 20 км.
  16. Найти сумму всех целых чисел от 1 до 10.
  17. Найти среднее арифметическое всех целых чисел от 30 до 100.
  18. Известна масса каждого из 12 предметов. Определить общую массу всего набора предметов.
  19. Найти сумму всех целых чисел от 20 до 50.
  20. Найти сумму всех целых чисел от значения A до значения B.
  21. Найти произведение всех целых чисел от 3 до 10.
  22. Найти сумму всех четных чисел от 1 до 50.
  23. Найти сумму всех чисел, кратных трем, от значения A до значения B.
  24. Вывести на экран все целые числа от 100 до 200, кратные трем.
Тренажёр