Алгоритм и его свойства, способы записи алгоритма; стандартные типы данных; представление основных структур: следование, ветвление, повторение
Алгоритмом называется точная инструкция исполнителю, определяющая процесс достижения поставленной цели на основе имеющихся исходных данных за конечное число шагов.
Основными свойствами алгоритмов являются:
Универсальность (массовость) - применимость алгоритма к различным наборам исходных данных.
Дискретность - процесс решения задачи по алгоритму разбит на отдельные действия.
Однозначность - правила и порядок выполнения действий алгоритма имеют единственное толкование.
Конечность - каждое из действий и весь алгоритм в целом обязательно завершаются.
Результативность - по завершении выполнения алгоритма обязательно получается конечный результат.
Выполнимость - результата алгоритма достигается за конечное число шагов.
Алгоритм считается правильным, если его выполнение дает правильный результат.
Выделяют три крупных класса алгоритмов:
- вычислительные алгоритмы, работают с простыми видами данных: числа и матрицы, хотя сам процесс вычисления может быть долгим и сложным;
- информационные алгоритмы- набор простых процедур, работающих с большими объемами информации (алгоритмы баз данных);
- управляющие алгоритмы, генерирующие различные управляющие воздействия на основе данных, полученных от внешних процессов, которыми алгоритмы управляют.
Виды алгоритмов:
Разветвляющийся алгоритм - действия выполняются в зависимости от условия (можно ответить "да" или "нет"). Каждая такая последовательность действий называется ветвью алгоритма.
|
|
Линейный алгоритм - действия следуют друг за другом.
Циклический алгоритм -действия повторяются. Вложенным называется цикл, находящийся внутри тела другого цикла. Различают циклы с предусловием и послеусловием: Итерационным называется цикл, число повторений определяется в ходе выполнения цикла. Одно повторение цикла называется итерацией.
Разнообразие же алгоритмов определяется тем, что любой алгоритм распадается на части, фрагменты и каждый фрагмент представляет собой алгоритм одного из трех указанных видов.
Способы записи алгоритмов
Распространены следующие формы представления алгоритмов:
словесная (запись на естественном языке);
графическая (изображения из графических символов);
псевдокоды (включающие в себя элементы языка программирования, и фразы естественного языка)
программная (тексты на языках программирования).
Общепринятыми способами записи являются графическая запись с помощью блок-схем и символьная запись - алгоритмического языка.
Описание алгоритма с помощью блок схем осуществляется рисованием последовательности геометрических фигур. Порядок действий указывается стрелками. Написание алгоритмов с помощью блок-схем регламентируется ГОСТом.
|
|
Cловесный способ - описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке.
Словестный способ не имеет широкого распространения, так как такие описания:
строго не формализуемы;
страдают многословностью записей;
допускают неоднозначность толкования отдельных предписаний.
Псевдокод - система обозначений и правил предназначена для единообразной записи алгоритмов. Псевдокод занимает промежуточное место между естественным и формальным языками. Алгоритмы могут на нем записываться и читаться как обычный текст. В псевдокоде не приняты строгие синтаксические правила для записи команд, что облегчает запись алгоритма на стадии его проектирования. В псевдокоде, есть служебные слова, смысл которых определен. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются.
Графически алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий (операторов). Такое графическое представление называется схемой алгоритма или блок-схемой.
|
|
В блок-схеме каждому типу действий соответствует геометрическая фигура, представленная в виде блочного символа. Эти символы соединяются линиями переходов, определяющими очередность выполнения действий.
В таблице приведены наиболее часто употребляемые символы.
Название символа | Обозначение и пример заполнения | Пояснение |
Процесс | Вычислительное действие или последовательность действий | |
Решение | Проверка условий | |
Модификация | Начало цикла | |
Предопределенный процесс | Вычисления по подпрограмме, стандартной подпрограмме | |
Ввод-вывод | Ввод-вывод в общем виде | |
Пуск-останов | Начало, конец алгоритма, Вход и выход в подпрограмму |
Стандартные типы данных;
Целочисленный тип - содержит числовые значения, целые числа. Числа упорядочены по возрастанию:..., -2, -1, 0, 1, 2, 3..
Логический тип - содержит всего 2 значения - True, False, которые тоже упорядочены: False, True (следует из соответствия False - 0, True - 1).
Символьный тип - символы кодовой таблицы. Поскольку каждому символу соответствует свой код, то символы расположены в порядке увеличения кода.
|
|
Из того, что перечисленных типы данных упорядочены, следует, что все значения образуют конечную последовательность.
Целочисленные типы. позволяют хранить целые числа. Они хранят числа положительные или отрицательные, а некоторые хранят только положительные. Чем больше значений содержит тип, тем больше он памяти занимает. Рассмотрим целочисленные типы данных.
Сначала рассмотрим беззнаковые типы- хранят только положительные числа и ноль:
Byte - значения 0..255 - занимает в памяти 1 байт.
Word - значения 0..65535 - 2 байта.
LongWord - значения 0..4294967295 - 4 байта.
Теперь типы со знаком (отрицательные "-" впереди, неотрицательные "+", так и без него):
ShortInt - значения -128..127 - 1 байт.
SmallInt - значения -32768..32767 - 2 байта.
LongInt - значения -2147483648..2147483647 - 4 байта.
Int64 - значения -2^53..2^53-1 - 8 байт.
Рекомендуется использовать именно эти типы, т.к. компилятор создаёт более быстрый код:
Integer - значения -2147483648..2147483647 - 4 байта.
Cardinal - значения 0..4294967295 - 4 байта.
Целые числа представляются как в десятичной, так шестнадцатеричной системе счисления, $xxxxxxxx, где x - один из символов 0, 1,..E, F. Все цвета представляются в виде шестнадцатеричных чисел.
Логические типы. Существуют следующие логические типы: Boolean, принимает значение True и False, ByteBool, WordBool и LongBool, Последние для обеспечения совместимости с другими языками и системами программирования. Используется только Boolean. Логическое значение в памяти занимает 1 байт.
Символьные типы. Обеспечивают хранение отдельных символов. Основной тип данных - Char, который содержит символы с кодами 0..255. Существуют ещё типы AnsiChar и WideChar. Тип AnsiChar эквивалентен типу Char. Занимает в памяти 1 байт.
Для кодирования используется код ANSI (American National Standards Institute). Тип WideChar кодируется международным кодом Unicode и занимает в памяти 2 байта. Таблица Unicode включает символы практически всех языков мира.
Вещественные типы. Для хранения вещественных- действительных чисел. Отличаются, числом цифр после запятой. Вот эти типы:
Real (он же Double) - значения от 5.0x10^-324 до 1.7x10^308, точность - 15-16 цифр, занимает в памяти 8 байт.
Real48 - значения от 2.9x10^-39 до 1.7x10^38, точность - 11-12 цифр, 6 байт памяти.
Single - значения от 1.7x10^-45 до 3.4x10^38, точность - 7-8 цифр, 4 байта.
Extended - от 3.6x10^-4951 до 1.1x10^4932, точность - 19-20 цифр, 10 байт памяти.
Comp - от -2x10^63+1 до 2x10^63-1, точность - 19-20 цифр, 8 байт.
Currency - от -922337203685477.5808 до 922337203685477.5807, точность - 19-20 цифр, в памяти занимает 8 байт.
Перед вещественными числами может стоять знак "+" или "-". Возможны 2 записи вещественных чисел - с фиксированной точкой и с плавающей.
С фиксированной точкой целая и дробная части отделяются точкой или запятой.
С плавающей точкой, запись которая отделяется от самого числа буквой "E". Например, запись 1.5e2 означает число 1.5 с порядком +2, т.е. это 1.5x10^2 = 150.
Типы Comp и Currency служат для точных денежных расчётов. Comp, хранит целые числа, при задании чисел с дробной частью они преобразуются в целое число.
Интервальные типы данных. (ограниченные) получаются из имеющихся типов путём ограничения диапазона значений. Интервал задаётся двумя константами - начальной и конечной границей. При присвоении значения переменной выполняется проверка нового значения. Если значение не попадает в диапазон, выдаётся сообщение об ошибке. Ограниченный тип данных задается на основе простого упорядоченного типа. Значение правой границы должно быть больше значения левой границы.
Ограниченные типы данных также описывают в разделе type, между константами-границами ставятся две точки.
Например, мы хотим в программе работать с датами. Можно создать ограниченные типы данных для значений дня, месяца и года
type
TDay = 1..31;
TMonth = 1..12;
TYear = 1900..2100;
Дата добавления: 2020-01-07; просмотров: 271; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!