Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
§ 1. Алгоритмы и их свойства
Людям в повседневной жизни приходится решать различные задачи. Это могут быть бытовые (приготовить обед), профессиональные (изготовить деталь) и т. д. Все задачи можно разделить по определенным признакам на группы: математические, инженерные, экономические и т. д. Одни задачи решаются легко, другие сложнее. Решить задачу - это значит получить результат, отвечающий целям задачи. Для каждой задачи всегда должно быть известно, что считать исходными данными, а что результатом.
Процесс решения задачи представляет собой совокупность вполне определенных действий над исходными данными. В большинстве случаев эта совокупность может быть задана в виде инструкций настолько подробно, что ее исполнение становится механическим процессом. Полученная инструкция может быть пригодна для решения целого класса однотипных задач. Такая инструкция называется алгоритмом. Понятие алгоритма возникло и используется давно. В настоящее время это одно из основных понятий информатики. Широким распространением это понятие обязано идее автоматизации поведения исполнителя-автомата. В ряду всевозможных исполнителей автоматов компьютер является лишь частным примером.
Под алгоритмом понимают понятное и точное предписание (указание) исполнителю совершить конечную последовательность однозначно трактуемых действий, направленных на решение поставленной задачи.
Понятие алгоритма относится к числу фундаментальных математических понятий. Термин "алгоритм" происходит от имени узбекского математика IX века Аль–Хорезми, который разработал правила выполнения четырех арифметических действий над числами в десятичной системе счисления. Совокупность этих правил в Европе стали называть "алгоризм". Впоследствии слово переродилось в "алгоритм" и в 30-х годах XX века понятие алгоритма стало объектом математического изучения, а с появлением ЭВМ получило широкую известность.
Свойства алгоритма
1. дискретность – каждый алгоритм – это последовательность четко разделенных друг от друга команд, образующих дискретную (прерывистую) структуру. Только выполнив одну команду можно перейти к другой;
2. определенность (детерминированность) – каждая команда понятна исполнителю, однозначно им трактуема, не возникает разночтений в трактовке порядка выполнения команд;
3. массовость – один и тот же алгоритм может быть использован для решения целого класса однотипных задач;
4. результативность – алгоритм всегда приводит за конечное число действий к правильному решению в случае точного его исполнения;
5. однозначность - при одних и тех же условиях алгоритм должен приводить к одному результату.
Способы описания алгоритмов
Существует несколько способов записи алгоритмов, отличающихся друг от друга наглядностью, компактностью, степенью формализации. Способ записи алгоритма – это язык определенных символов, правил и т. д. Естественный человеческий язык не является формализованным, и поэтому может содержать выражения, имеющие неоднозначный смысл. Подобные явления должны быть полностью исключены в языках, используемых для общения с исполнителями-автоматами. Приходится соблюдать ряд требований:
· при формулировании предписаний можно требовать от исполнителя выполнения лишь тех операций, которые жестко определены для данного исполнителя;
· можно использовать лишь принятые для языка исполнителя правила построения предписаний;
· нельзя использовать ничего не предусмотренного правилами, ибо исполнитель все равно такие предписания не выполнит.
Формализация языка обедняет его выразительные способности по сравнению с естественным языком человека. Основными способами описания алгоритмов являются:
1. словесный;
2. табличный;
3. графический;
4. программа.
1. Словесный способ описания алгоритмов ориентирован, прежде всего, на исполнителя-человека и допускает различные варианты записи указаний (команд). Но при этом запись должна быть достаточно точна, чтобы человек-исполнитель мог понять суть команд и выполнить их. Один из недостатков этого способа – многословие. Но этот способ описания алгоритмов обладает и большой универсальностью: словами можно выразить то, что нельзя записать с помощью формул. А это особенно ценно при работе с алгоритмами не вычислительных процессов.
Примеры: инструкция сборки шкафа, велосипеда, порядок постройки дома, рецепт приготовления торта.
2. Табличный способ описания алгоритма удобен при массовых вычислениях по одной и той же формуле.
Пример: вычислить значение функции
при разных значениях аргумента х.
x | 2x | 2x + 3 | 3x | 3x – 5 |
|
5 | 10 | 13 | 15 | 10 | 1.3 |
-3 | -6 | -3 | -9 | -14 | 0.21428... |
0 | 0 | 3 | 0 | -5 | -0.6 |
3. Графический способ описания предполагает запись алгоритма в виде блок-схемы.
Блок-схема – это способ представления алгоритма с помощью геометрических фигур заданного набора, изображающих отдельные шаги алгоритма и соединенных между собой линиями (стрелками), указывающими порядок реализации алгоритма.
Для изображения блок–схемы любого алгоритма ограничимся следующим набором геометрических фигур:
| или |
| начало (конец) |
| выполнение действий | ||
| ввод (вывод) данных | ||
| проверка условия | ||
| подпрограмма | ||
| начало цикла |
Графический способ записи отличается наглядностью и очень полезен на начальной стадии разработки алгоритма.
4. Программа представляет собой способ записи алгоритма с помощью операторов (команд) языка программирования (Паскаль, Бейсик, Cи++, Фортран, Пролог, Ассемблер)
В таблице приведены примеры записей алгоритма вычисления суммы квадратов первых 100 натуральных чисел с помощью различных языков программирования:
Алгоритмический языкАЛГ сумма квадратов НАЧ ЦЕЛ s, i s: = 0 НЦ ДЛЯ i ОТ 1 ДО 100 s: = s + i * i КЦ ВЫВОД «Сумма квадратов= »,s КОН | Паскаль (Pascal)REM Вычисление суммы квадратов S = 0 FOR I=1 TO 100 S = S + I * I NEXT I PRINT «Сумма квадратов= »,S END |
Бейсик (Basic)Program sum; var s, i: integer; Begin s: = 0; for i: = 1 to 100 do s: = s + i * i; writeln(‘сумма квадратов= ’,s); End. | Cи++ (С++)// summa. cpp # include <iostream. h> main () {for (int i = 1, s = 0; i<=100, i++) s+ = i * i; {cout<< «\ n Сумма квадратов= »<<s; } } |
Структурный подход к составлению алгоритмов
Каждый алгоритм должен быть: легко воспринимаемым, легко проверяемым и допускать возможность его модификации без существенной перестройки всей структуры. Реализовать эти требования позволяет структурный подход к разработке алгоритма, который состоит в следующем:
любой алгоритм может быть реализован в виде комбинации трех базовых алгоритмических структур: линейной, разветвляющейся и циклической.
1. Линейная структура обеспечивает выполнение команд или операторов последовательно друг за другом
![]()
2. Разветвляющаяся структура обеспечивает выполнение одной из последовательностей действий (P1 или P2) в зависимости от выполнения условия S:
альтернатива (полная конструкция)
ЕСЛИ S ТО P1 ИНАЧЕ P2. | коррекция (неполная конструкция)
ЕСЛИ S ТО P |
3. Циклическая структура обеспечивает многократное повторение последовательности действий в зависимости от определенного условия (повторяй пока условие истинно) или определенное число раз (повторяй 15 раз).
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |





