Алгоритм и его свойства
Определение алгоритма
- Алгоритм – это понятное и точное предписание исполнителю выполнить определенную последовательность действий для решения некоторой задачи за конечное число шагов
- Исполнитель алгоритма – абстрактная или реальная система, способная выполнить действия, предписанные алгоритмом
- Исполнителя характеризуют
- Исполнителя характеризуют
- Среда Система команд Отказы
- Среда Система команд Отказы
- Среда
- Система команд
- Отказы
Свойства алгоритма
- Понятность – алгоритм должен состоять из команд, понятных исполнителю
- Дискретность – алгоритм должен представлять процесс решения задачи как последовательность отдельных действий (алгоритм состоит из отдельных команд)
- Определенность (точность) – каждое правило алгоритма должно быть однозначным и не оставлять места для произвола (исполнитель точно знает, какое действие выполнить следующим)
- Результативность – алгоритм должен приводить к решению задачи за конечное число шагов
- Массовость – алгоритм решения задачи разрабатывается в общем виде и применим для целого класса задач, различающихся исходными данными
Формы записи алгоритмов
- Словесная
- Графическая (Блок-схема)
- Псевдокоды
- На языке программирования (программа)
Базовые алгоритмические структуры
- Линейная алгоритмическая структура – последовательность действий, следующих одно за другим
- Ветвление - в зависимости от результата проверки условия производится выбор одного из 2-х альтернативных путей работы алгоритма
- Цикл – обеспечивает многократное выполнение некоторой совокупности действий, которое называется телом цикла
- Цикл с условием – тело цикла выполняется до тех пор, пока истинно или ложно некоторое условие Цикл с заданным числом повторений – тело цикла повторяется заранее определенное число раз
- Цикл с условием – тело цикла выполняется до тех пор, пока истинно или ложно некоторое условие
- Цикл с заданным числом повторений – тело цикла повторяется заранее определенное число раз
Операторы языка PascalABC.NET
Структура программы
Программа содержит ключевые слова , идентификаторы , комментарии .
Ключевые слова используются для выделения синтаксических конструкций и
подсвечиваются жирным шрифтом в редакторе.
Идентификаторы являются именами объектов программы и не могут совпадать с ключевыми словами.
Программа на языке PascalABC.NET имеет следующий вид:
program имя программы; раздел описаний begin операторы end .
Описание переменных
Переменные могут быть описаны в разделе описаний,
а также непосредственно внутри любого блока begin / end .
Раздел описания переменных начинается с ключевого слова var ,
после которого следуют элементы описания вида
список имен: тип;
или
имя: тип := выражение;
или
имя: тип = выражение; // для совместимости с Delphi
или
имя := выражение;
Типы данных
Тип
Размер, байт
shortint
Диапазон значений
1
smallint
2
-128..127
integer, longint
-32768..32767
4
int64
8
byte
-2147483648..2147483647
-9223372036854775808..9223372036854775807
1
word
2
0..255
longword, cardinal
uint64
4
0..65535
8
0..4294967295
BigInteger
0..18446744073709551615
переменный
неограниченный
Типы integer и longint , а также longword и cardinal являются синонимами.
Типы данных
Типы real и double являются синонимами. Самое маленькое положительное число типа real приблизительно равно 5.0∙10 -324 , для типа single оно составляет приблизительно 1.4∙10 -45 .
Тип
Размер, байт
real
8
double
Количество значащих цифр
Диапазон значений
15-16
8
single
-1.8∙10 308 .. 1.8∙10 308
4
decimal
15-16
7-8
16
-1.8∙10 308 .. 1.8∙10 308
-3.4∙10 38 .. 3.4∙10 38
28-29
-79228162514264337593543950335 .. 79228162514264337593543950335
Типы данных
- Значения логического типа boolean занимают 1 байт и принимают одно из двух значений, задаваемых предопределенными константами True (истина) и False (ложь).
- Символьный тип char занимает 2 байта и хранит Unicode-символ. Символы реализуются типом System.Char платформы .NET.
- Строки имеют тип string , состоят из набора последовательно расположенных символов char и используются для представления текста.
Оператор присваивания
Оператор присваивания имеет вид:
переменная := выражение
Условный оператор
Условный оператор имеет полную и краткую формы.
Полная форма условного оператора выглядит следующим образом:
if условие then оператор1 else оператор2
В качестве условия указывается некоторое логическое выражение.
Если условие оказывается истинным, то выполняется оператор1 ,
в противном случае выполняется оператор2 .
Краткая форма условного оператора имеет вид:
if условие then оператор
Если условие оказывается истинным, то выполняется оператор ,
в противном случае происходит переход к следующему оператору программы.
Оператор выбора
Оператор выбора выполняет одно действие из нескольких в зависимости от значения некоторого выражения, называемого переключателем . Он имеет следующий вид:
case переключатель of список выбора 1: оператор1; ... список выбора N: операторN; else список операторов end ;
Переключатель представляет собой выражение порядкового типа или строкового типа, а списки выбора содержат константы совместимого по присваиванию типа. Как и в операторе if , ветка else может отсутствовать.
Оператор case работает следующим образом. Если в одном из списков выбора найдено текущее значение переключателя, то выполняется оператор, соответствующий данному списку. Если же значение переключателя не найдено ни в одном списке, то выполняется список операторов по ветке else или, если ветка else отсутствует, оператор case не выполняет никаких действий.
Список выбора состоит либо из одной константы, либо для перечислимого типа из диапазона значений вида a..b (константа a должна быть меньше константы b ); можно также перечислить несколько констант или диапазонов через запятую.
Оператор цикла for
Оператор цикла for имеет одну из двух форм:
for переменная := начальное значение to конечное значение do оператор
или
for переменная := начальное значение downto конечное значение do оператор
Кроме того, переменную можно описать непосредственно в заголовке цикла:
for переменная: тип := начальное значение to или downto конечное значение do оператор
или
for var переменная := начальное значение to или downto конечное значение do оператор
Операторы цикла while и repeat
Оператор цикла while имеет следующую форму:
while условие do оператор
Условие представляет собой выражение логического типа, а оператор после do называется телом цикла . Перед каждой итерацией цикла условие вычисляется, и если оно истинно, то выполняется тело цикла, в противном случае происходит выход из цикла.
Если условие всегда оказывается истинным, то может произойти зацикливание :
Оператор цикла repeat имеет следующую форму:
repeat операторы until условие
В отличие от цикла while , условие вычисляется после очередной итерации цикла, и если оно истинно, то происходит выход из цикла. Таким образом, операторы, образующие тело цикла оператора repeat , выполняются по крайней мере один раз.
Обычно оператор repeat используют в ситуациях, где условие нельзя проверить, не выполнив тело цикла.
Контрольные вопросы
- Что такое алгоритм? Какими свойствами он обладает?
- Исполнитель алгоритма и его система команд
- Расскажите об основных алгоритмических структурах
- Какова структура программы на языке Pascal?
- Какие типы переменных вы знаете?
- Условный оператор
- Операторы цикла for
- Операторы цикла с условием
- Описание переменных в программе.