
- •3 Базовые структуры алгоритмов — это определенный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий.
- •4) Линейный алгоритм
- •5) Разветвляющийся алгоритм
- •6) Циклический алгоритм
- •Смысловые имена переменных
- •10) Функция стандартного вывода printf()
- •Функция стандартного ввода scanf()
- •13) Вложенные циклы
- •14) Массивы. Общие сведения
- •Описание массивов
- •1. Объявление массива
- •2. Инициализация массивов
- •16) Вычисление суммы элементов массива
- •Пример 2.3.
- •17) Перестановка двух элементов массива
- •18) Поиск минимального и максимального элемента массива и его порядкового номера (индекса)
- •Объявление функции
- •20) Понятие указателя
- •Адрес переменной и значение переменной по адресу
- •Применение указателей
- •Сбор информации
- •Хранение информации
- •Процесс передачи
- •Обработка информации
- •24) Архитектура эвм
- •25) Структурная схема и устройства пк
- •Микропроцессор
- •Оперативная память
- •Контроллеры
- •Системная магистраль
- •Внешняя память. Классификация накопителей
- •Дополнительные устройства
- •Десятичная система счисления
- •Двоичная система счисления
- •Из двоичной в десятичную систему счисления
- •Из десятичной в двоичную систему счисления
- •Заключение
!) Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад (в 825 году) ученый из города Хорезма Абдулла (или Абу Джафар) Мухаммед бен Муса аль-Хорезми создал книгу по математике, в которой описал способы выполнения арифметических действий над многозначными числами. Само слово алгоритм возникло в Европе после перевода на латынь книги этого математика.Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.
Вы постоянно сталкиваетесь с этим понятием в различных сферах деятельности человека (кулинарные книги, инструкции по использованию различных приборов, правила решения математических задач...). Обычно мы выполняем привычные действия не задумываясь, механически. Например, вы хорошо знаете, как открывать ключом дверь. Однако, чтобы научить этому малыша, придется четко разъяснить и сами эти действия и порядок их выполнения: 1. Достать ключ из кармана. 2. Вставить ключ в замочную скважину. 3. Повернуть ключ два раза против часовой стрелки. 4. Вынуть ключ.
Если вы внимательно оглянитесь вокруг, то обнаружите множество алгоритмов которые мы с вами постоянно выполняем. Мир алгоритмов очень разнообразен. Несмотря на это, удается выделить общие свойства, которыми обладает любой алгоритм.
Свойства алгоритмов: 1. Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке); 2. Детерминированность (любое действие должно быть строго и недвусмысленно определено в каждом случае); 3. Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения); 4. Массовость (один и тот же алгоритм можно использовать с разными исходными данными); 5. Результативность (отсутствие ошибок, алгоритм должен приводить к правильному результату для всех допустимых входных значениях).
Виды алгоритмов: 1. Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке); 2. Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено задание); 3. Разветвляющий алгоритм (алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий) 4. Вспомогательный алгоритм (алгоритм, который можно использовать в других алгоритмах, указав только его имя).
Для более наглядного представления алгоритма широко используется графическая форма - блок-схема, которая составляется из стандартных графических объектов.
Вид стандартного графического объекта |
Назначение |
|
Начало алгоритма |
|
Конец алгоритма |
|
Выполняемое действие записывается внутри прямоугольника |
|
Условие выполнения действий записывается внутри ромба |
|
Счетчик кол-во повторов |
|
Последовательность выполнения действий. |
Стадии создания алгоритма: 1. Алгоритм должен быть представлен в форме, понятной человеку, который его разрабатывает. 2. Алгоритм должен быть представлен в форме, понятной тому объекту (в том числе и человеку), который будет выполнять описанные в алгоритме действия.
Объект, который будет выполнять алгоритм, обычно называют исполнителем.
Исполнитель - объект, который выполняет алгоритм.
Идеальными исполнителями являются машины, роботы, компьютеры...
Исполнитель способен выполнить только ограниченное количество команд. Поэтому алгоритм разрабатывается и детализируется так, чтобы в нем присутствовали только те команды и конструкции, которые может выполнить исполнитель.
Исполнитель, как и любой объект, находится в определенной среде и может выполнять только допустимые в нем действия. Если исполнитель встретит в алгоритме неизвестную ему команду, то выполнение алгоритма прекратится.
Компьютер – автоматический исполнитель алгоритмов.
Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой.
Программирование - процесс составления программы для компьютера. Для первых ЭВМ программы записывались в виде последовательности элементарных операций. Это была очень трудоемкая и неэффективная работа. Поэтому в последствии были разработанные специальные языки программирования. В настоящее время существует множество искусственных языков для составления программ. Однако, так и не удалось создать идеальный язык, который бы устроил бы всех.
2 На практике наиболее распространены следующие формы представления алгоритмов:
Словесная – запись на естественном языке;
в псевдокодах – полуформализованное описание алгоритма на условном алгоритмическом языке, включающее в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и т.д.;
табличная;
графическая – с помощью графических символов;
программная – запись на искусственном языке (языке программирования).
Словесный способ не имеет широкого применения по следующим причинам:
· Описания не строго формализуемы;
· Страдают многословностью записей;
· Допускают неоднозначность толкования отдельных предписаний.
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных(базовых конструкций).
Графическое представление алгоритма является наиболее компактным и наглядным по сравнению со словесным и псевдокодами. При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа.
Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. В таблице 1 приведены наиболее часто употребляемые символы.
Таблица 1. Графические символы алгоритмов
Название символа |
Обозначение |
Пояснение |
Процесс |
|
Вычислительное действие или последовательность действий |
Решение |
|
Проверка условий |
|
|
Начало цикла |
|
|
Вычисления по подпрограмме, стандартной подпрограмме |
|
|
Ввод/Вывод данных в общем виде |
|
|
Начало, конец алгоритма, вход в подпрограмму и выход из нее |
|
|
Вывод результатов на печать |
Блок «процесс» применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Иногда для улучшения наглядности схемы несколько отдельных блоков объединяют в один блок.
Блок « решение» используется для обозначения переходов управления по условию. В каждом таком блоке должны быть указаны вопрос, условие или сравнение, которые он определяет.
Блок « модификация - видоизменение, преобразование» используется для организации циклических структур. Внутри блока записывается параметр цикла, для которого указывается его начальное значение, граничное условие и шаг изменения параметра цикла для каждого повторения.
Блок « предопределенный процесс» служит для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращения к библиотечным подпрограммам.
3 Базовые структуры алгоритмов — это определенный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий.
К основным структурам относятся следующие:
линейные
разветвляющиеся
циклические
Линейными называются
алгоритмы, в которых действия осуществляются
последовательно друг за другом.
Стандартная блок-схема линейного
алгоритма приводится ниже:
Разветвляющимся называется алгоритм, в котором действие выполняется по одной из возможных ветвей решения задачи, в зависимости от выполнения условий. В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в разветвляющиеся алгоритмы входит условие, в зависимости от выполнения или невыполнения которого выполняется та или иная последовательность команд (действий).
В качестве условия в разветвляющемся алгоритме может быть использовано любое понятное исполнителю утверждение, которое может соблюдаться (быть истинно) или не соблюдаться (быть ложно). Такое утверждение может быть выражено как словами, так и формулой. Таким образом, алгоритм ветвления состоит из условия и двух последовательностей команд.
В
зависимости от того, в обоих ветвях
решения задачи находится последовательность
команд или только в одной разветвляющиеся
алгоритмы делятся на полные и не полные
(сокращенные).
Стандартные блок-схемы
разветвляющегося алгоритма приведены
ниже:
Циклическим называется алгоритм, в котором некоторая часть операций (тело цикла — последовательность команд) выполняется многократно. Однако слово «многократно» не значит «до бесконечности». Организация циклов, никогда не приводящая к остановке в выполнении алгоритма, является нарушением требования его результативности — получения результата за конечное число шагов.
Перед операцией цикла осуществляются операции присвоения начальных значений тем объектам, которые используются в теле цикла. В цикл входят в качестве базовых следующие структуры:
блок проверки условия
блок, называемый телом цикла
Существуют три типа циклов:
Цикл с предусловием
Цикл с постусловием
Цикл с параметром (разновидность цикла с предусловием)
Если тело цикла расположено после проверки условий , то может случиться, что при определенных условиях тело цикла не выполнится ни разу. Такой вариант организации цикла, управляемый предусловием, называетсяциклом c предусловием.
Возможен другой случай, когда тело цикла выполняется по крайней мере один раз и будет повторяться до тех пор, пока не станет ложным условие. Такая организация цикла, когда его тело расположено перед проверкой условия, носит название цикла с постусловием.
Цикл
с параметром является
разновидностью цикла с предусловием.
Особенностью данного типа цикла является
то, что в нем имеется параметр, начальное
значение которого задается в заголовке
цикла, там же задается условие продолжения
цикла и закон изменения параметра цикла.
Механизм работы полностью соответствует
циклу с предусловием, за исключением
того, что после выполнения тела цикла
происходит изменение параметра по
указанному закону и только потом переход
на проверку условия.
Стандартные
блок-схемы циклических алгоритмов
приведены ниже: