Главная страница
Навигация по странице:

  • «данные»

  • «подготовка»

  • «соединитель»

  • «линия»

  • Пример выполнения работы Пример 1.

  • Список индивидуальных заданий

  • Контрольные вопросы к защите

  • 1_Лаб_раб_Алгоритмизация. Алгоритмы линейной структуры


    Скачать 114.5 Kb.
    НазваниеАлгоритмы линейной структуры
    Дата13.10.2022
    Размер114.5 Kb.
    Формат файлаdoc
    Имя файла1_Лаб_раб_Алгоритмизация .doc
    ТипДокументы
    #732487



    Алгоритмы линейной структуры


    Цель и содержание работы: приобретение навыков составления алгоритмов линейной структуры.

    Общая постановка задачи

    1. Изучите теоретическую часть с основными символами, применяемыми в схемах алгоритмов согласно ГОСТ 19.701 - 90.

    2. Изучите алгоритмы линейной структуры на примерах.

    3. Разработайте алгоритмы линейных структур и составить их блок-схемы в электронном виде согласно вариантам заданий. Исходные данные вводятся с клавиатуры, результат выводится на экран.

    4. Оформите отчет, который должен состоять из:

    • темы, цели лабораторной работы;

    • все блоки по ГОСТ 19.701 – 90 и их значение в виде таблицы (вид таблицы представлен в таблице 1);

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

    5. Ответьте на контрольные вопросы и защитите лабораторную работу.

    Теоретическая часть


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

    Одним из наиболее распространенных способов представлений алгоритмов является графический способ, где алгоритм представляется в виде блок-схем. Построение блок-схем алгоритмов регламентируется ГОСТ 19.701-90 «Единая система программной документации. Схемы алгоритмов программ, данных и систем. Условные обозначения и правила выполнения».

    Приведем символы, употребляющиеся в схемах программ согласно ГОСТ 19.701-90 (таблица 1).

    Символ «терминатор» отображает выход во внешнюю среду и вход из внешней среды. Используется для обозначения начала или конца программы или подпрограммы (процедуры или функции).

    Символ «процесс» отображает обработку данных любого вида, например, выполнение операции или группы операций, приводящее к изменению значения, формы или размещения информации. Чаще всего этим символом обозначают операцию присваивания.

    Символ «данные» отображает данные, носитель которых не определен. Используется для обозначения операций ввода и вывода данных.

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

    Таблица 1 – ГОСТ 19.701-90 Схемы алгоритмов, программ, данных и систем

    Наименование

    Символ

    Функция

    Терминатор




    Начало или конец

    Процесс




    Обработка данных любого вида

    Данные




    Данные, носитель не определен, указывает ввод и вывод данных

    Предопределенный процесс





    Процедура или функция

    Подготовка




    Цикл с заданным числом повторений


    Граница цикла




    Символ, состоящий из двух частей, отображает начало и конец цикла.

    Обе части имеют один и тот же идентификатор. Условия завершения в начале или конце (цикл с предусловием или с постусловием).

    Решение




    Условный оператор или переключатель

    Соединитель




    Обрыв и продолжение линии


    Комментарий




    Пунктирные линии связаны с соответствующим символом

    Линия




    Поток управления

    Символ «подготовка» отображает модификацию команды или группы команд. Используется для заголовков циклов с заданным числом повторений (циклов с параметром).

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

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

    Символ «соединитель» применяется, если схема состоит из нескольких страниц.

    Символ «комментарий» используют для пояснительных записей в целях объяснения или примечания. Пунктирные линии в символе комментария связаны с соответствующим символом или могут обводить группу символов, текст комментария помещается около ограничивающей фигуры.

    Символ «линия» отображает поток данных или управления. При необходимости (направления влево или вверх) добавляются стрелки-указатели.

    Алгоритмы линейной структуры

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

    Пример выполнения работы

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

    Разработка модели и выбор способа решения.

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

    S = (1/2)aha = (1/2)bhb =(1/2)chc ;

    ,

    где p - полупериметр, p=(a+b+c)/2. Из этих формул можно получить выражения для высот треугольника ha, hb, hc.

    p:=(a+b+c)/2;

    t:=2*√(p*(p-a)*(p-b)*(p-c));

    ha:=t/a; hb:=t/b; hc:=t/c
    Схема алгоритма нахождения высот треугольника по заданным сторонам показана рисунке 1.



    Рисунок 1 – Блок-схема алгоритма нахождения высот треугольника

    В этом алгоритме вводятся стороны треугольника a, b, c (по свойству массовости алгоритм должен быть пригоден для целого класса однотипных задач, поэтому стороны треугольника не задаются в алгоритме, а вводятся с устройства ввода, причем носитель данных в символе «данные» не определен, это может быть клавиатура, файл и т.п.).

    Далее вычисляется полупериметр p и удвоенная площадь треугольника t. Далее вычисляются высоты по формуле ha=t/a и аналогичным для b и c.

    Возникает вопрос, зачем вычислять удвоенную площадь треугольника. Дело в том, что в этом случае умножение на 2 производится один раз при вычислении промежуточной переменной t. Далее t делится на стороны треугольника. Если же вычислять площадь треугольника S, то умножение на два придется выполнить три раза по формулам ha=2S/a, hb=2S/b, hc=2S/c. Введение таких промежуточных переменных сокращает число действий в алгоритме и время работы программы, разработанной по этому алгоритму.

    По этой причине, прежде чем разрабатывать алгоритм, следует внимательно рассмотреть встречающиеся в формулах выражения и отметить повторяющиеся выражения (в приведенном примере это 2S). Для повторяющихся выражений целесообразно ввести промежуточную переменную, в рассматриваемом случае это t=2S.

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

    Пример 2. Вычислить длину окружности, площадь круга и объем шара, имеющих радиус R (R- любое целое число, введенное с клавиатуры).

    Разработка модели и выбор способа решения.

    Для вычислений используем формулы

    L=2πR, S=πR2, V=πR3×4/3= RS× 4/3.

    Блок-схема решения задачи представлена на рисунке 2, из которого видно, что алгоритм имеет линейную структуру.


    Обратите внимание, что при вычислении V используется значение S, позволяющее упростить вычисления и не использовать операцию возведения в степень. Блоки 3,4,5,6 можно изображать в отдельных блоках (рисунок 2) или в одном, как на рисунке 1.

    Список индивидуальных заданий

    Разработайте алгоритмы для четырех заданий, указанных в соответствии с вариантом, из таблиц 2 и 3.

    Таблица 2 – Варианты и задания

    варианта

    задания

    варианта

    задания



    1, 3, 2, 15

    13

    13, 1, 5, 18



    2, 5, 8, 17

    14

    14, 3, 10, 17



    3, 10,13,18

    15

    15, 2, 6, 16



    4, 6, 9, 13

    16

    16, 8 ,7, 14



    5, 11,14,19

    17

    17, 3, 5, 9



    6, 10, 15, 20

    18

    18, 2, 7,21



    7, 11,14, 16

    19

    19, 12, 4, 9



    8, 12 ,15,17

    20

    20, 11, 1, 3



    9, 12, 16, 20

    21

    1, 7, 12, 5



    10, 13, 16, 19

    22

    2, 10, 14, 16



    11, 2, 4, 13

    23

    3, 12, 19, 20



    12, 6, 8, 16

    24

    4, 22, 16, 18

    25.

    5, 21, 3, 9

    26

    6, 7, 21, 10

    27.

    3, 15,20,18

    28.

    2,7, 12,21

    29.

    22, 5, 6,21

    30

    4, 16,7, 5

    31

    9,12, 22, 13








    Таблица 3 – Условия заданий

    № вар.

    Условия заданий

    1

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

    2

    С клавиатуры вводятся: целые числа А и В выражающие объем информации в мегабайтах. Перевести А в байты, В в гигабайты. Найти их сумму в килобайтах.

    3

    Дано четырехзначное число. Найти среднеарифметическое первой и последней цифр в этом числе. Остальные цифры вывести на экран.

    4

    С клавиатуры вводятся: величины углов треугольника а, в, с (значения в градусах) и радиусом описанной окружности R. Вычислить стороны треугольника.

    5

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

    6

    С клавиатуры вводится сторона равностороннего треугольника А. Вычислить радиус вписанной rи описанной Rокружностей этого треугольника.

    7

    С клавиатуры вводится трехзначное число A. Поменять местами первую и последнюю цифры в этом числе.

    8

    С клавиатуры вводятся: длины катетов прямоугольного треугольника АВ и ВС. Вычислить гипотенузу и площадь треугольника.

    9

    С клавиатуры вводятся: площадь боковой поверхности(в метрах) и радиус(в сантиметрах) основания R. Вычислить высоту конуса H и объем конуса.

    10

    С клавиатуры вводятся: координаты вершин треугольника X1,Y1, X2, Y2 иX3, Y3. Вычислить периметр этого треугольника.

    11

    С клавиатуры вводятся: длины катета прямоугольного треугольника АВ (в сантиметрах) и гипотенузы АС(в метрах). Вычислить длину катета ВС и периметр треугольника.

    12

    С клавиатуры вводятся: первый член геометрической прогрессии b1 и третий b3.. Вычислить знаменатель q и сумму первых трёх членов этой прогрессии.

    13

    С клавиатуры вводятся: координаты концов отрезка X1,Y1 и X2, Y2. Вычислить координаты середины отрезка.

    14

    С клавиатуры вводится коэффициент b. Решить уравнение ах = b, где а = cos(b) + 5* b.

    15

    С клавиатуры вводятся высота(в миллиметрах) и площадь (в сантиметрах) равнобедренного треугольника. Вычислить его стороны и периметр.

    16

    С клавиатуры вводится радиус вписанной в квадрат окружности r. Вычислить сторону квадрата А и радиус описанной окружности квадратаR.

    17

    С клавиатуры вводится периметр правильного треугольника а. Вычислить стороны и площадь треугольника.

    18

    С клавиатуры вводятся: высота цилиндра H(в сантиметрах) и объем (в метрах). Вычислить площадь боковой поверхности и радиус основания R цилиндра.

    19

    С клавиатуры вводятся: внутренний радиус кольца R1 (в сантиметрах) и внешний (в метрах) – R2. Вычислить площадь кольца.

    20

    Даны два момента времени ( часы и минуты для каждого). Найти разность между ними, выраженную в часах и минутах

    21

    Дан первый член арифметической прогрессии, равный а1 . Каждый следующий член на р процентов больше от первого. Найти четвертый, шестой и десятый члены прогрессии.

    22

    С клавиатуры вводится трехзначное число A. Поменять местами первую и вторую цифры в этом числе.

    Контрольные вопросы к защите

    1. Дайте понятие алгоритма.

    2. Перечислите свойства алгоритмов.

    3. Какие существуют способы описания алгоритмов.

    4. Какие алгоритмы являются линейными?

    5. Какие блоки используются в линейных алгоритмах?

    6. Назначение основных блоков, используемых для изображения алгоритмов в блок-схемах?


    написать администратору сайта