что такое графический алгоритм

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

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

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

что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм

Терминатора (пуск – останов). Элемент отображает вход из внешней среды или выход из нее (наиболее частое применение − начало и конец программы). Внутри фигуры записывается соответствующее действие.

Процесс. Выполнение одной или нескольких операций, обработка данных любого вида. Внутри фигуры записывают непосредственно сами операции, например, a:= a+SQRT(C).

Решение. Отображает решение или функцию переключательного типа с одним входом и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определенных внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. Если выходов два или три, то обычно каждый выход обозначается линией, выходящей из оставшихся вершин (боковых и нижней). В программировании данный блок соответствует условному оператору if (два выхода: true, false) и case (множество выходов).

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

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

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

Источник

Алгоритмы

Алгоритмы. Способы записи алгоритмов

Выделяют три наиболее распространенные на практике способа записи алгоритмов:

Словесный способ записи алгоритмов

Словесный способ – способ записи алгоритма на естественном языке. Данный способ очень удобен, если нужно приближенно описать суть алгоритма. Однако при словесном описании не всегда удается ясно и точно выразить логику действий.

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

где S – площадь прямоугольника; а, b – длины его сторон.

Очевидно, что a, b должны быть заданы заранее, иначе задачу решить невозможно.

Словестный способ записи алгоритма выглядит так:

Графический способ описания алгоритмов

Для более наглядного представления алгоритма используется графический способ. Существует несколько способов графического описания алгоритмов. Наиболее широко используемым на практике графическим описанием алгоритмов является использование блок-схем. Несомненное достоинство блок схем – наглядность и простота записи алгоритма.

Каждому действию алгоритма соответствует геометрическая фигура (блочный символ). Перечень наиболее часто употребляемых символов приведен в таблице:

Название символаОбозначение
и пример заполнения
Пояснения
Пуск-остановчто такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмНачало, завершение алгоритма или подпрограммы
Ввод-вывод данныхчто такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмВвод исходных данных или вывод результатов
Процессчто такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмВнутри прямоугольника записывается действие, например, расчетная формула
Решениечто такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмb» width=»219″ height=»65″ />Проверка условия, в зависимости от которого меняется направление выполнения алгоритма
Модификациячто такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмОрганизация цикла
Предопределенный процессчто такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмИспользование ранее созданных подпрограмм
Комментарийчто такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмПояснения

что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм

что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм

Если условие выполняется, то есть a>b, то следующим выполняется действие по стрелке «Да». Если условие не выполняется, то осуществляется переход по стрелке «Нет».

что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм

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

что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм

Внутри каждого блока записывается соответствующее действие. Последовательность выполнения задается соединительной линией со стрелочкой.

Последовательность выполнения сверху вниз и слева направо принята за основную.

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

Программный способ записи алгоритмов

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

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

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

Запись алгоритма на языке программирования называется компьютерной программой.

Источник

Графический способ записи алгоритмов

что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм

что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм

что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм

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

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

Такое графическое представление называется схемой алгоритма или блок-схемой.

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

Можно встретить даже такое утверждение: “Внешне алгоритм представляет собой схему – набор прямоугольников и других символов, внутри которых записывается, что вычисляется, что вводится в машину и что выдается на печать и другие средства отображения информации“. Здесь форма представления алгоритма смешивается с самим алгоритмом.

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

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

При решении задач на компьютере необходимо не столько умение составлять алгоритмы, сколько знание методов решения задач (как и вообще в математике). Поэтому изучать нужно не программирование как таковое (и не алгоритмизацию), а методы решения математических задач на компьютере. Задачи следует классифицировать не по типам данных, как это обычно делается (задачи на массивы, на символьные переменные и т. д.), а по разделу “Требуется”.

ГОСТ 19.701-90 (обозначение символов соответствует международному стандарту ИСО 5807-85) распространяется на условные обозначения (символы) в схемах алгоритмов, программ, данных и систем и устанавливает правила выполнения схем, используемых для отображения различных видов задач обработки данных и средств их решения.

В таблице 1 приведены наиболее часто употребляемые блоки и даны пояснения к ним [1,2].

Графические символы на схеме соединяются линиями потока информации. Основное направление потока информации идет сверху вниз и слева на право (стрелки на линиях могут не указываться). В других случаях применение стрелок обязательно. По отношению к блоку линии потока могут быть входящими или выходящими. Количество входящих линий для блока принципиально не ограничено. Выходящая линия может быть только одна. Исключение оставляют логические блоки, имеющие не менее двух выходящих линий потока, каждая из которых соответствует одному из возможных исходов проверки логического условия, а также блоки модификации.

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

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

Блоки ввода – вывода

№ п/пНазвание символаСимволОтображаемая функция
1Блок вычислений что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмВычислительное действие или последовательность вычислительных действий
2Логический блок что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмВыбор направления выполнения алгоритма в зависимости от некоторых условий
что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмОбщее обозначение ввода или вывода данных
что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмВывод данных, носителем которых служит документ
4Начало-конец что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмНачало или конец программы, останов, вход или выход в подпрограммах
5Предопределенный процесс что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмВычисления по стандартной подпрограмме или подпрограмме пользователя
6Блок модификации что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмВыполнение действий, изменяющих пункты алгоритма
7Соединитель что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмУказание связи между прерванными линиями потока информации в пределах одной страницы
8Межстраничный соединитель что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмУказание связи между частями схемы, расположенными на разных листах
9Магнитный диск что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмВвод-вывод данных, носителем которых служит магнитный диск

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

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

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

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

что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм

Если схема располагается на нескольких листах, переход линий потока с одного листа на другой обозначается с помощью символа «межстраничный соединитель» (рис. 2). При этом на листе с блоком – источником соединитель содержит номер листа и координаты блока-приемника, а на листе с блоком–приемником – номер листа и координаты блока – источника.

что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм

Рис. 2. Межстраничный соединитель

Внутри блоков и рядом с ними делают записи и обозначения (для уточнения выполняемых ими функций) так, чтобы их можно было читать слева направо и сверху вниз независимо от направления потока. Например, на (рис. 3) вид 1 и вид 2 читаются идентично.

что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм

Порядковые номера блоков проставляют в верхней части графического символа в разрыве его контура (рис. 1 и 4).

что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм

При выполнении схем алгоритмов необходимо выдерживать минимальное расстояние 3 мм между параллельными линиями потоков и 5 мм между остальными символами. В блоках приняты размеры: что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм=10, 15, 20 мм; что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм=1.5 что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритм(рис.3). Если необходимо увеличить размер схемы, то допускается увеличивать что такое графический алгоритм. Смотреть фото что такое графический алгоритм. Смотреть картинку что такое графический алгоритм. Картинка про что такое графический алгоритм. Фото что такое графический алгоритмна число кратное пяти.

Схема является исключительно наглядным и простым способом представления алгоритма. При этом не накладывается никаких ограничений на степень детализации в изображении алгоритма. Выбор ее целиком зависит от программиста. Но, нужно иметь ввиду, что излишне общий характер схемы нежелателен из-за малой информативности, а очень детальная схема проигрывает в наглядности. Для особенно сложных и больших алгоритмов, целесообразно составлять несколько схем различных уровней детализации. Схема 1-го уровня отображает весь алгоритм целиком. Схемы 2-го уровня раскрывают логику отдельных блоков схемы 1-го уровня. При необходимости могут быть составлены схемы последующих уровней с еще большей степенью детализации. Такое пошаговое уточнение схемы алгоритма составляет сущность метода нисходящего проектирования, который, в свою очередь, является основой структурного программирования.

Псевдокод

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

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

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

Источник

Глава 7. Алгоритмы. Алгоритмизация. Алгоритмические языки


7.1. Что такое алгоритм?

Понятие алгоритма такое же основополагающее для информатики, как и понятие информации. Именно поэтому важно в нем разобраться.

Название «алгоритм» произошло от латинской формы имени величайшего среднеазиатского математика Мухаммеда ибн Муса ал-Хорезми (Alhorithmi), жившего в 783—850 гг. В своей книге «Об индийском счете» он изложил правила записи натуральных чисел с помощью арабских цифр и правила действий над ними «столбиком», знакомые теперь каждому школьнику. В XII веке эта книга была переведена на латынь и получила широкое распространение в Европе.

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

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

Алгоpитм — заранее заданное понятное и точное пpедписание возможному исполнителю совеpшить определенную последовательность действий для получения решения задачи за конечное число шагов.

Это — не определение в математическом смысле слова, а, скорее, описание интуитивного понятия алгоритма, раскрывающее его сущность.

Понятие алгоритма является не только одним из главных понятий математики, но одним из главных понятий современной науки. Более того, с наступлением эры информатики алгоритмы становятся одним из важнейших факторов цивилизации [56].

7.2. Что такое «Исполнитель алгоритма»?

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

Отказы исполнителя возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды.

Обычно исполнитель ничего не знает о цели алгоpитма. Он выполняет все полученные команды, не задавая вопросов «почему» и «зачем».

В информатике универсальным исполнителем алгоритмов является компьютер.

7.3. Какими свойствами обладают алгоpитмы?

Основные свойства алгоритмов следующие:

1. Понятность для исполнителя — исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма.

2. Дискpетность (прерывность, раздельность) — алгоpитм должен пpедставлять пpоцесс pешения задачи как последовательное выполнение пpостых (или pанее опpеделенных) шагов (этапов).

3. Опpеделенность — каждое пpавило алгоpитма должно быть четким, однозначным и не оставлять места для пpоизвола. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или сведений о pешаемой задаче.

4. Pезультативность (или конечность) состоит в том, что за конечное число шагов алгоpитм либо должен пpиводить к pешению задачи, либо после конечного числа шагов останавливаться из-за невозможности получить решение с выдачей соответствующего сообщения, либо неограниченно продолжаться в течение времени, отведенного для исполнения алгоритма, с выдачей промежуточных результатов.

5. Массовость означает, что алгоpитм pешения задачи pазpабатывается в общем виде, т.е. он должен быть пpименим для некотоpого класса задач, pазличающихся лишь исходными данными. Пpи этом исходные данные могут выбиpаться из некотоpой области, котоpая называется областью пpименимости алгоpитма.

7.4. В какой форме записываются алгоритмы?


7.5. Что такое словесный способ записи алгоритмов?

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

Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел (алгоритм Эвклида).

Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи. Убедитесь в этом самостоятельно, определив с помощью этого алгоритма наибольший общий делитель чисел 125 и 75.

7.6. Что такое графический способ записи алгоритмов?

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

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

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

Блок «решение» используется для обозначения переходов управления по условию. В каждом блоке «решение» должны быть указаны вопрос, условие или сравнение, которые он определяет.

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

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

7.7. Что такое псевдокод?

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

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

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

Примером псевдокода является школьный алгоритмический язык в русской нотации (школьный АЯ), описанный в учебнике А.Г. Кушниренко и др. «Основы информатики и вычислительной техники», 1991. Этот язык в дальнейшем мы будем называть просто «алгоритмический язык».

7.8. Как записываются алгоритмы на школьном алгоритмическом языке?


Основные служебные слова


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

Общий вид алгоритма:

Примеры предложений алг:

алг Объем и площадь цилиндра ( арг вещ R, H, рез вещ V, S )
алг Корни КвУр ( арг вещ а, b, c, рез вещ x1, x2, рез лит t )
алг Исключить элемент ( арг цел N, арг рез вещ таб А[1:N] )
алг Диагональ ( арг цел N, арг цел таб A[1:N, 1:N], рез лит Otvet )

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

Команды школьного АЯ

Команды если и выбор. Применяют для организации ветвлений.

Команды для и пока. Применяют для организации циклов.

Пример записи алгоритма на школьном АЯ


7.9. Что такое базовые алгоритмические структуры?

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

Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.

7.10. Какие циклы называют итерационными?

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

Пример. Составить алгоритм вычисления бесконечной суммы

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

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

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

Сравните эти два подхода по числу операций.

Алгоритм на школьном АЯБлок-схема алгоритма

Пример вложенных циклов пока

Вычислить произведение тех элементов заданной матрицы A(10,10), которые расположены на пересечении четных строк и четных столбцов.

7.12. Чем отличается программный способ записи алгоритмов от других?

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

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

Следовательно, язык для записи алгоритмов должен быть формализован. Такой язык принято называть языком программирования, а запись алгоритма на этом языке — программой для компьютера.

7.13.Что такое уровень языка программирования?

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

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

7.14. Какие у машинных языков достоинства и недостатки?

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

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

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

7.15. Что такое язык ассемблера?

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

Программы, написанные на языке ассемблера, требуют значительно меньшего объема памяти и времени выполнения. Знание программистом языка ассемблера и машинного кода дает ему понимание архитектуры машины. Несмотря на то, что большинство специалистов в области программного обеспечения разрабатывают программы на языках высокого уровня, таких, как Object Pascal или C, наиболее мощное и эффективное программное обеспечение полностью или частично написано на языке ассемблера.

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

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

7.16. В чем преимущества алгоритмических языков перед машинными?


7.17. Какие компоненты образуют алгоритмический язык?

Алгоритмический язык (как и любой другой язык) образуют три его составляющие: алфавит, синтаксис и семантика.

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

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

7.18. Какие понятия используют алгоритмические языки?

Каждое понятие алгоритмического языка подразумевает некоторую синтаксическую единицу (конструкцию) и определяемые ею свойства программных объектов или процесса обработки данных.

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

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

1. Имена (идентификаторы) — употpебляются для обозначения объектов пpогpаммы (пеpеменных, массивов, функций и дp.).

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

Операторы подpазделяются на исполняемые и неисполняемые. Неисполняемые опеpатоpы пpедназначены для описания данных и стpуктуpы пpогpаммы, а исполняемые — для выполнения pазличных действий (напpимеp, опеpатоp пpисваивания, опеpатоpы ввода и вывода, условный оператор, операторы цикла, оператор процедуры и дp.).

7.19. Что такое стандартная функция?

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

Таблица стандартных функций школьного алгоритмического языка


Название и математическое обозначение функцииУказатель функции
Абсолютная величина (модуль)| х |abs(x)
Корень квадратныйsqrt(x)
Натуральный логарифмln xln(x)
Десятичный логарифмlg xlg(x)
Экспонента (степень числа е

Каждый язык программирования имеет свой набор стандартных функций.

7.20. Как записываются арифметические выражения?


Примеры записи арифметических выражений

Типичные ошибки в записи выражений:

5x + 1
a + sin x
((a + b)/c**3
Пропущен знак умножения между 5 и х
Аргумент x функции sin x не заключен в скобки
Не хватает закрывающей скобки

7.21. Как записываются логические выражения?

В записи логических выражений помимо арифметических операций сложения, вычитания, умножения, деления и возведения в степень используются операции отношения (больше), >= (больше или равно), = (равно), <> (не равно), а также логические операции и, или, не.

Примеры записи логических выражений, истинных при выполнении указанных условий.


7.22. Упражнения

7.1. Запишите по правилам алгоритмического языка выражения:

a)e)
б)ж)
в)з)
г)и)
д)к)

[ Ответ ]

7.2. Запишите в обычной математической форме арифметические выражения:

а) a / b ** 2;
б) a+b/c+1;
в) 1/a*b/c;
г) a**b**c/2;
д) (a**b)**c/2;
е) a/b/c/d*p*q;
ж) x**y**z/a/b;
з) 4/3*3.14*r**3;
и) b/sqrt(a*a+b);
к) d*c/2/R+a**3;
л) 5*arctg(x)-arctg(y)/4;
м) lg(u*(1/3)+sqrt(v)+z);
н) ln(y*(-sqrt(abs(x))));
о) abs(x**(y/x)-(y/x)**(1/3));
п) sqrt((x1-x2)**2+(y1-y2)**2);
р) exp(abs(x-y))*(tg(z)**2+1)**x;
c) lg(sqrt(exp(x-y))+x**abs(y)+z);
т) sqrt(exp(a*x)*sin(x)**n)/cos(x)**2;
у) sqrt(sin(arctg(u))**2+abs(cos(v)));
ф) abs(cos(x)+cos(y))**(1+sin(y)**2);

[ Ответ ]

7.3. Вычислите значения арифметических выражений при x=1:
а) abs(x-3)/ln(exp(3))*2/lg(10000);
Решение: abs(1-3)=2; ln(exp(3))=3; lg(10000)=4; 2/3*2/4=0.33;

7.4. Запишите арифметические выражения, значениями которых являются:
а) площадь треугольника со сторонами a, b, c (a, b, c>0) и полупериметром p;
Ответ: sqrt(p*(p-a)*(p-b)*(p-c));

б) среднее арифметическое и среднее геометрическое чисел a, b, c, d;
в) расстояние от точки с координатами (x,y) до точки (0,0);
г) синус от x градусов;
д) площадь поверхности куба (длина ребра равна а);
е) радиус описанной сферы куба (длина ребра равна а);
ж) координаты точки пересечения двух прямых, заданных уравнениями
a 1 x+b 1 y+c 1 =0 и a 2 x+b 2 y+c 2 =0 (прямые не параллельны).
[ Ответ ]

7.7. Начертите на плоскости (x,y) область, в которой и только в которой истинно указанное выражение. Границу, не принадлежащую этой области, изобразите пунктиром.

а) (x =0)
Ответ:

е) ((x-2)**2+y*y x/2)
Ответ:

б) (x>=0) или (y =0
г) (x+y>0) и (y =1
ж) (x*x+y*y x*x);
з) (y>=x) и (y+x>=0) и (y 1);

[ Ответ ]

7.8. Запишите логическое выражение, которое принимает значение «истина» тогда и только тогда, когда точка с координатами (x, y) принадлежит заштрихованной области.

[ Ответ ]

в противном случае
[ Ответ ]

7.12. Постройте графики функций y(x), заданных командами если:

Решение

[ Ответ ]

7.13. Определите значение целочисленной переменной S после выполнения операторов:

Решение
iS
128
1128/2=64
264/2=32
332/2=16
416/2=8
Ответ: S=8
Решение
ijS
0
120+1+2=3
33+1+3=7
227+2+2=11
311+2+3=16
Ответ: S=16

[ Ответ ]

7.14. Определите значение переменной S после выполнения операторов:

Решение
Условие iiS
00
010+1 2 =1
121+2 2 =5
235+3 2 =14
3
Ответ: S=14
Решение
Условие N > 0SN
0125
125 > 0? да0+5=512
12 > 0? да5+2=71
1 > 0? да7+1=80
0 > 0? нет (кц)
Ответ: S=8

[ Ответ ]

7.15. Составьте алгоритмы решения задач линейной структуры (условия этих задач заимствованы из учебного пособия В.М. Заварыкина, В.Г. Житомирского и М.П. Лапчика «Основы информатики и вычислительной техники», 1989):

в) в треугольнике известны три стороны a, b и c; найти радиус описанной окружности и угол A (в градусах), используя формулы: где

г) в правильной треугольной пирамиде известны сторона основания a и угол A (в градусах) наклона боковой грани к плоскости основания; найти объем и площадь полной поверхности пирамиды, используя формулы:

V=S ocн · H/2;
где

д) в усеченном конусе известны радиусы оснований R и r и угол A (в радианах) наклона образующей к поверхности большего основания; найти объем и площадь боковой поверхности конуса, используя формулы:

где

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

а) определить, является ли треугольник с заданными сторонами a, b, c равнобедренным;
Решение:

б) определить количество положительных чисел среди заданных чисел a, b и c;

в) меньшее из двух заданных неравных чисел увеличить вдвое, а большее оставить без изменения;

г) числа a и b — катеты одного прямоугольного треугольника, а c и d — другого; определить, являются ли эти треугольники подобными;

д) даны три точки на плоскости; определить, какая из них ближе к началу координат;

е) определить, принадлежит ли заданная точка (x, y) плоской фигуре, являющейся кольцом с центром в начале координат, с внутренним радиусом r1 и внешним радиусом r2 ;

ж) упорядочить по возрастанию последовательность трех чисел a, b и c.
[ Ответ ]

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *