Алгоритм и его свойства, способы записи алгоритма; стандартные типы данных; представление основных структур: следование, ветвление, повторение



 

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

Основными свойствами алгоритмов являются:

Универсальность (массовость) - применимость алгоритма к различным наборам исходных данных.

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

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

Конечность - каждое из действий и весь алгоритм в целом обязательно завершаются.

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

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

Алгоритм считается правильным, если его выполнение дает правильный результат.

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

- вычислительные алгоритмы, работают с простыми видами данных: числа и матрицы, хотя сам процесс вычисления может быть долгим и сложным;

- информационные алгоритмы- набор простых процедур, работающих с большими объемами информации (алгоритмы баз данных);

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

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

Разветвляющийся алгоритм - действия выполняются в зависимости от условия (можно ответить "да" или "нет"). Каждая такая последовательность действий называется ветвью алгоритма.

Линейный алгоритм - действия следуют друг за другом.

Циклический алгоритм -действия повторяются. Вложенным называется цикл, находящийся внутри тела другого цикла. Различают циклы с предусловием и послеусловием: Итерационным называется цикл, число повторений определяется в ходе выполнения цикла. Одно повторение цикла называется итерацией.

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

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

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

словесная (запись на естественном языке);

графическая (изображения из графических символов);

псевдокоды (включающие в себя элементы языка программирования, и фразы естественного языка)

программная (тексты на языках программирования).

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

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

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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!