Добавил:
github.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технология программирования / 1_predstavlenie_algoritmov_31_08_19_-_4_Chasa.doc
Скачиваний:
12
Добавлен:
30.09.2023
Размер:
181.25 Кб
Скачать

Лабораторная работа №1 Способы представления алгоритмов.

Одним из базовых понятий в программировании является понятие алгоритма.

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

Инструкция или оператор (statement) — наименьшая автономная часть языка программирования; команда. Программа обычно представляет собой последовательность инструкций.

Виды алгоритмов

Линейный алгоритм — набор команд (указаний), выполняемых последовательно во времени друг за другом.

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

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

Способы представления алгоритмов.

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

Рассмотрим каждую следующие формы представления алгоритмов:

1. Словесно-формульное описание алгоритма.

2. Графические способы представления алгоритмов.

3. Представление алгоритмов в виде логических схем (по А.А. Ляпунову).

4. Представление алгоритмов в виде программ.

  1. Словесно-формульное описание алгоритма.

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

Пример 1.2. Записать алгоритм перехода улицы без светофора.

Начало.

1.Подойти к краю дороги.

2.Посмотреть налево.

3.Если есть идущие машины, то пропустить их.

4.Дойти до середины улицы.

5.Посмотреть направо.

6.Если есть идущие машины, то пропустить их.

7.Дойти до края дороги.

8.Конец.

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

Пример 1.3. Найти наибольший общий делитель целых чисел А и В по алгоритму Евклида.

Начало.

1.Х=А.

2.У=В.

3.Если Х=У, то перейти к пункту 6.

4.Если Х>У, то Х=Х-У, иначе У=У-Х.

5.Перейти к пункту 3.

6.Наибольший общий делитель чисел А и В равен Х.

7.Конец.

Этот алгоритм кроме слов русского языка использует математическую символику.

  1. Графические способы представления алгоритмов.

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

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

На этой стадии иерархические диаграммы обычно представляют все подпрограммы или алгоритмы (согласно концепции "черного ящика"), необходимые для реализации программы, и их приоритеты.

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

Рассмотрим краткий обзор символов структурных диаграмм.

Л

Инициализировать счетчик числом действительных позиций массива

инейные операторы.

Символ линейной структуры:

Условные операторы

Символ условной структуры:

Операторы выбора

Символ структуры выбора

Операторы итерации

В большинстве языков программирования имеется два типа итерации: с предварительной проверкой (в С это for и while) и с завершающей проверкой (do...while).

Символ структуры цикла с предварительной проверкой for.

Символ структуры цикла с предварительной проверкой while.

Символ структуры цикла с завершающей проверкой do...while.

Оператор вызова подпрограммы

Для вызова функций и методов (функций-элементов классов) структурные символы одинаковы и напоминают символ линейной структуры с небольшой модификацией: