Тема 5. Алгоритмизация и программирование.
Алгоритмизация – это метод описания систем или процессов путем составления алгоритмов их функционирования.
Алгоритмом называется точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату (ГОСТ 19.781- 74).
Понятие алгоритма является центральным понятием информатики. Термин «алгоритм» своим происхождением связан с именем узбекского математика Аль – Хоремзи, который еще в IХ в. сформулировал правила выполнения четырех арифметических действий.
Алгоритм решения задачи имеет ряд обязательных свойств:
- дискретность - разбиение процесса обработки информации на более простые этапы (шаги выполнения), выполнение которых компьютером или человеком не вызывает затруднений;
- определенность алгоритма - однозначность выполнения каждого отдельного шага преобразования информации;
- выполнимость - конечность действий алгоритма решения задач, позволяющая получить желаемый результат при допустимых исходных данных за конечное число шагов;
- массовость - пригодность алгоритма для решения определенного класса задач.
В алгоритме отражаются логика и способ формирования результатов решения с указанием необходимых расчетных формул, логических условий, соотношений для контроля достоверности выходных результатов. В алгоритме обязательно должны быть предусмотрены все ситуации, которые могут возникнуть в процессе решения комплекса задач.
Алгоритм решения комплекса задач и его программная реализация тесно взаимосвязаны. Специфика применяемых средств проектирования алгоритмов и используемых при этом инструментальных средств разработки программ может повлиять на форму представления и содержание алгоритма обработки данных.
Из известных основных способов представления алгоритмов:
· словесный;
· структурно-стилизованный (псевдокод);
· графический;
· программный.
Графическая форма, в виде блок-схем наиболее удобна. Блок-схемой называется графическое изображение структуры алгоритма, в которой каждый этап процесса обработки данных представляется в виде графических символов (блоков)- геометрических фигур, в контуры которых вписано содержание операции. Фигура, представленная в виде блочного символа (блока) называется символом действия.
Форма и размеры блоков, их перечень, наименование, правила выполнения схем определены ГОСТом, Требованиями Единой системы программной документации (ЕСПД) ГОСТ 19.002-80 и ГОСТ 19-003-80.
Программирование (programming) - теоретическая и практическая деятельность, связанная с созданием программ.
Программирование является собирательным понятием и может рассматриваться и как наука и как искусство, на этом основан научно-практический подход к разработке программ. Программа - результат интеллектуального труда, для которого характерно творчество, а оно, как известно, не имеет четких границ. В любой программе присутствует индивидуальность ее разработчика, программа отражает определенную степень искусства программиста. Вместе с тем программирование предполагает и рутинные работы, которые могут и должны иметь строгий регламент выполнения и соответствовать стандартам.
Язык программирования — формальная знаковая система, предназначенная для описания алгоритмов в форме, которая удобна для исполнителя (например, компьютера). Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими данными при различных обстоятельствах.
Процесс решения задачи на компьютере - это совместная деятельность человека и ЭВМ. Этот процесс можно представить в виде нескольких последовательных этапов. На долю человека приходятся этапы, связанные с творческой деятельностью - постановкой, алгоритмизацией, программированием задач и анализом результатов, а на долю компьютера - этапы обработки информации в соответствии с разработанным алгоритмом:
1. Постановка задачи; 2. Анализ и исследование задачи, модели; 3. Разработка алгоритма; 4. Программирование; 5. Тестирование и отладка; 6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5; 7. Сопровождение программы.
ЭВМ непосредственно выполняет программы на машинном языке программирования данной ЭВМ. При этом программа представляет собой набор отдельных команд компьютера. Эти команды являются достаточно «простыми», например, сложение, умножение, сравнение или пересылка отдельных данных. Каждая команда содержит в себе сведения о том, какая операция должна быть выполнена (код операции), с какими операндами (адреса данных или непосредственно сами данные) выполняются вычисления и куда (адрес) должен быть помещен результат.
Человеку свойственно формулировать и решать задачи в выражениях более общего характера, чем команды ЭВМ. Поэтому с развитием программирования появились языки, ориентированные на более высокий уровень абстракции при описании решаемой на ЭВМ задачи. Эти языки получили название языков высокого уровня. Их теоретическую основу составляют алгоритмические языки, например, Паскаль, Си, Бейсик, Фортран, PL/1.
Каждый язык программирования может быть представлен в виде набора формальных спецификаций, определяющих его синтаксис и семантику
Эти спецификации обычно включают в себя описание:
· Типов и структур данных
· Операционную семантику (алгоритм вычисления конструкций языка)
· Семантические конструкции языка
· Библиотеки примитивов (например, инструкции ввода-вывода)
· Философии, назначения и возможностей языка
Последовательное выполнение операторов в языке программирования означает, что они выполняются в том порядке, как записаны в программе. В Паскале этот порядок подразумевается по умолчанию, если не применены структурные операторы, меняющие его.
Условное выполнение означает, что при определенных условиях должны выполняться одни операторы, а при других условиях - другие. Для организации такого порядка служат условные операторы. Условное выполнение также часто называют ветвлением.
При повторяющемся выполнении некоторые операторы выполняются несколько раз, несмотря на то, что в программе они записаны один раз. Такой рациональный способ записи и выполнения обеспечивается операторами цикла.
Литература: [1], с. 35-49; [3], с. 100-156.