Словесно-формульный способ.
Присловесно-формульном способе алгоритм записывается в виде текста с формулами по пунктам, определяющим последовательность действий.
Пусть, например, необходимо найти значение следующего выражения:
Словесно-формульным способом алгоритм решения этой задачи может быть записан в следующем виде:
1. Ввести значения а и х.
2. Сложить х и 6.
3. Умножить а на 2.
4. Вычесть из 2а сумму (х+6).
5. Вывести у как результат вычисления выражения.
Блок-схемы.
Приблок-схемном описании алгоритм изображается геометрическими фигурами (блоками), связанными по управлению линиями (направлениями потока) со стрелками. В блоках записывается последовательность действий.
Данный способ по сравнению с другими способами записи алгоритма имеет ряд преимуществ. Он наиболее нагляден: каждая операция вычислительного процесса изображается отдельной геометрической фигурой. Кроме того, графическое изображение алгоритма наглядно показывает разветвления путей решения задачи в зависимости от различных условий, повторение отдельных этапов вычислительного процесса и другие детали.
Оформление программ должно соответствовать определенным требованиям. В настоящее время действует единая система программной документации (ЕСПД), которая устанавливает правила разработки, оформления программ и программной документации. В ЕСПД определены и правила оформления блок-схем алгоритмов (ГОСТ 10.002-80 ЕСПД, ГОСТ 10.003-80 ЕСПД).
Операции обработки данных и носители информации изображаются на схеме соответствующимиблоками. Большая часть блоков по построению условно вписана в прямоугольник со сторонами а и b. Минимальное значение а равно 10 мм, увеличение а производится на число, кратное 5 мм. Размер b=1,5 мм. Для отдельных блоков допускается соотношение между а и b, равное 1:2. В пределах одной схемы рекомендуется изображать блоки одинаковых размеров. Все блоки нумеруются. Виды и назначение основных блоков приведены в табллице.
Линии, соединяющие блоки и указывающие последовательность связей между ними, должны проводится параллельно линиям рамки. Стрелка в конце линии может не ставиться, если линия направлена слева направо или сверху вниз. В блок может входить несколько линий, то есть блок может являться преемником любого числа блоков. Из блока (кроме логического) может выходить только одна линия. Логический блок может иметь в качестве продолжения одни из двух блоков, и из него выходят две линии. Если на схеме имеет место слияние линий, то место пересечения выделяется точкой. В случае, когда одна линия подходит к другой и слияние их явно выражено, точку можно не ставить.
Схему алгоритма следует выполнять как единое целое, однако в случае необходимости допускается обрывать линии, соединяющие блоки.
Если при обрыве линии продолжение схемы находится на этом же листе, то на одном и другом конце линии изображается специальный символсоединитель — окружность диаметром 0,5 мм. Внутри парных окружностей указывается один и тот же идентификатор. В качестве идентификатора, как правило, используется порядковый номер блока, к которому направлена соединительная линия. Если схема занимает более одного листа, то в случае разрыва линии вместо окружности используется межстраничный соединитель. Внутри каждого соединителя указывается адрес — откуда и куда направлена соединительная линия. Адрес записывается в две строки: в первой указывается номер листа, во второй — порядковый номер блока.
Блок-схема должна содержать все разветвления, циклы и обращения к подпрограммам, содержащиеся в программе.
Таблица. Условные обозначения блоков схем алгоритмов.
Наименование | 0бозначенне | Функции |
Процесс | Выполнение операции или группы операции, в результате которых изменяется значение, форма представления или расположение данных. | |
Ввод-вывод | Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод). | |
Решение | Выбор направления выполнения алгоритма в зависимости от некоторых переменных условии. | |
Предопределенный процесс | Использование ранее созданных и отдельно написанных программ (подпрограмм). | |
Документ | Вывод данных на бумажный носитель. | |
Магнитный диск | Ввод-вывод данных, носителем которых служит магнитный диск. | |
Пуск-останов | Начало, конец, прерывание процесса обработки данных. | |
Соединитель | Указание связи между прер ванными линиями, соединяющими блоки. | |
Межстраничный соединитель | Указание связи между прерванными линиями, соединяющими блоки, расположенные на разных листах. | |
Комментарий | Связь между элементом схемы и пояснением. |
20)Структурные схемы алгоритмов.
Одним из свойств алгоритма является дискретность — возможность расчленения процесса вычислений, предписанных алгоритмом, на отдельные этапы, возможность выделения участков программы с определенной структурой. Можно выделить пять простейших структур:
@ Следование (последовательность двух или более операций);
@ Ветвление (выбор направления);
@ Повторение (цикл «до» и цикл «пока»).
Заметим при этом, что две последние структуры можно реализовать, используя структуру типа ветвление. Таким образом, любой вычислительный процесс может быть представлен как комбинация трёх элементарных алгоритмических структур. Соответственно, вычислительные процессы, выполняемые на ЭВМ по заданной программе, можно разделить на три основных вида:
Линейные процессы.
Линейным принято называть вычислительный процесс, в котором операции выполняются последовательно, в порядке их записи. Каждая операция является самостоятельной, независимой от каких-либо условий. На схеме блоки, отображающие эти операции, располагаются в линейной последовательности.
Линейные вычислительные процессы имеют место, например, при вычислении арифметических выражений, когда имеются конкретные числовые данные и над ними выполняются соответствующие условию задачи действия. На рисунке показан пример линейного алгоритма, определяющего процесс вычисления арифметического выражения .
Ветвящиеся процессы.
Вычислительный процесс называется ветвящимся, если для его реализации предусмотрено несколько направлений (ветвей). Каждое отдельное направление процесса обработки данных является отдельной ветвью вычислений. Ветвление в программе — это выбор одной из нескольких последовательностей команд при выполнении программы. Выбор направления зависит от заранее определенного признака, который может относиться к исходным данным, к промежуточным или конечным результатам. Признак характеризует свойство данных и имеет два или более значений.
Ветвящийся процесс, включающий в себя две ветви, называется простым, более двух ветвей — сложным. Сложный ветвящийся процесс можно представить с помощью простых ветвящихся процессов.
Направление ветвления выбирается логической проверкой, в результате которой возможны два ответа: «да» — условие выполнено и «нет» — условие не выполнено.
Следует иметь в виду,что, хотяна схеме алгоритма должны быть показанывсевозможные направления вычислений в зависимости от выполнения определенного условия (или условии), при однократном прохождении программы процесс реализуется только по одной ветви, а остальные исключаются. Любая ветвь, по которой осуществляются вычисления, должна приводить к завершению вычислительного процесса. На рисунке показан пример алгоритма с разветвлением для вычисления следующего выражения:
Циклические процессы.
Циклическими называются программы, содержащие циклы. Цикл — это многократно повторяемый участок программы.
В организации цикла можно выделить следующиеэтапы:
@ подготовка (инициализация) цикла (И);
@ выполнение вычислений цикла (тело цикла) (Т);
@ модификация параметров (М);
@ проверка условия окончания цикла (У).
Порядок выполнения этих этапов, например, Т и М, может изменяться. В зависимости от расположения проверки условия окончания цикла различают циклы с нижним и верхним окончаниями. Для цикла с нижним окончанием тело цикла выполняется как минимум один раз, так как сначала производятся вычисления, а затем проверяется условие выхода из цикла.
В случае цикла с верхним окончанием тело цикла можетне выполниться ни разу в случае, если сразу соблюдается условие выхода.
Цикл называетсядетерминированным, если число повторений тела цикла заранее известно или определено. Цикл называетсяитерационным, если число повторений тела цикла заранее неизвестно, а зависит от значений параметров (некоторых переменных), участвующих в вычислениях.
Решение задач на ЭВМ.
21)Этапы подготовки и решения задач на ЭВМ.
На ЭВМ могут решаться задачи различного характера, например: научно-инженерные; разработки системного программного обеспечения; обучения; управления производственными процессами и т. д. В процессе подготовки и решенияна ЭВМ научно-инженерных задач можно выделить следующиеэтапы:
1. постановка задачи;
2. математическое описание задачи;
3. выбор и обоснование метода решения;
4. алгоритмизация вычислительного процесса;
5. составление программы;
6. отладка программы;
7. решение задачи на ЭВМ и анализ результатов.
В задачах другого класса некоторые этапы могут отсутствовать, например, в задачах разработки системного программного обеспечения отсутствует математическое описание.
Перечисленные этапы связаны друг с другом. Например, анализ результатов может показать необходимость внесения изменений в программу, алгоритм или даже в постановку задачи. Для уменьшения числа подобных изменений необходимо на каждом этапе по возможности учитывать требования, предъявляемые последующими этапами. В некоторых случаях связь между различными этапами, например, между постановкой задачи и выбором метода решения, между составлением алгоритма и программированием, может быть настолько тесной, что разделение их становится затруднительным.
Постановка задачи.
На данном этапе формулируется цель решения задачи и подробно описывается ее содержание. Анализируются характер и сущность всех величин, используемых в задаче, и определяются условия, при которых она решается. Корректность постановки задачи является важным моментом, так как от нее в значительной степени зависят другие этапы.
Источник
18.Словесно формульный способ описания алгоритмов.
При словесно-формульном способе алгоритм записывается в виде текста с формулами по пунктам, определяющим последовательность действий.
Пусть, например, необходимо найти значение следующего выражения:
Словесно-формульным способом алгоритм решения этой задачи может быть записан в следующем виде:
1. Ввести значения а и х.
2. Сложить х и 6.
3. Умножить a на 2.
4. Вычесть из 2а сумму (х+6).
5. Вывести у как результат вычисления выражения.
19.Графический способ описания алгоритмов.
Графический способ описания (блок-схема)
Для составления алгоритма в виде блок-схемы применяются следующие основные графические изображения.
20.Псевдокоды.
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов.
Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой строны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя.
Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются.
Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.
Примером псевдокода является школьный алгоритмический язык в русской нотации (школьный АЯ), описанный в учебнике А.Г. Кушниренко и др. «Основы информатики и вычислительной техники», 1991. Этот язык в дальнейшем мы будем называть просто «алгоритмический язык».
21.Структура данных. Классификация структур данных.
Структура данных (англ.data structure) — программная единица, позволяющая хранить и обрабатывать множество однотипных и/или логически связанных данныхввычислительной технике. Для добавления, поиска, изменения и удаления данных структура данных предоставляет некоторый набор функций, составляющих её интерфейс.
Структуры данных формируются с помощью типов данных,ссылоки операций над ними в выбранномязыке программирования.
Массив(функция с конечной областью определения) — простая совокупность элементов данных одного типа, средство оперирования группой данных одного типа. Отдельный элемент массива задается индексом. Массив может быть одномерным, двумерным и т.д. Разновидностями одномерных массивов переменной длины являются структуры типа кольцо, стек, очередь и двухсторонняя очередь.
Запись(декартово произведение) — совокупность элементов данных разного типа. В простейшем случае запись содержит постоянное количество элементов, которые называют полями. Совокупность записей одинаковой структуры называется файлом. (Файлом называют также набор данных во внешней памяти, например, на магнитном диске). Для того, чтобы иметь возможность извлекать из файла отдельные записи, каждой записи присваивают уникальное имя или номер, которое служит ее идентификатором и располагается в отдельном поле. Этот идентификатор называют ключом.
Классификация структур данных м.б. выполнена по различным признаками.
1) По сложности: простые и интегрированные. Простые (базовые, примитивные) структуры — это такие, которые не могут быть распределены на составные части. Структурированные(интегрированные, композитные, сложные) — такие структуры данных, составными частями которых есть другие структуры данных — простые ли, в свою очередь, интегрированные. Интегрированные структуры данных конструируются программистом.
2). По способу представления: физическая и логическая. Физическая структура данных — это способ физического представления данных в памяти компьютера. Логическая или абстрактная структура — это рассмотрение структуры данных без учета его представления в машинной памяти. В общем случае между логической и соответствующей ей физической структурами существует расхождения, степень которого зависит от самой структуры и особенностей той среды, в котором она должна быть отображенной. Вследствие этого расхождения существуют процедуры, которые осуществляют отображение логической структуры в физическую, и, наоборот, физической структуры в логическую.
3). По наличию связей между элементами данных: несвязные и связные. Несвязные структуры характеризуются отсутствием связей между элементами структуры. Связные структуры характеризуются наличием связи. Примерами несвязных структур есть векторы, массивы, строки, стеки, очереди; примеры связных структур — связные списки.
4). По изменчивости: статические, полустатические, динамические. Изменчивость, то есть изменение числа элементов и (ли) связей между элементами структуры. Статические — к этой группе относят массивы, множества, записи, таблицы. Полустатические — это стеки, очереди, деки, дерева. Динамические — линейные и разветвленные связные списки, графы, дерева.
5). По характеру упорядоченности элементов в структуре: линейные инелинейные. Линейные структуры в зависимости от характера взаимного расположения элементов в памяти разделяют на структуры с последовательнымраспределением элементов в памяти (векторы, строки, массивы, стеки, очереди) иструктуры с произвольным связным распределением элементов в памяти (односвязные и двусвязные линейные списки). Нелинейные структуры — многосвязные списки, дерева, графы.
6). По виду памяти, используемой для сохранности данных: структуры данных для оперативной и для внешней памяти. Структуры данных для оперативной памяти — это данные, размещенные в статической и динамической памяти компьютера. Все вышеприведенные структуры данных — это структуры для оперативной памяти. Структуры данных для внешней памяти называют файловыми структурами или файлами. Примерами файловых структур есть последовательные файлы, файлы, организованные разделами, В- деревья.
Источник