АЛЬБОМ НАГЛЯДНЫХ ПОСОБИЙ по дисциплине «Основы алгоритмизации и программирования» Автор: Антропова Э.К. Сарапул, 2008 Массовость Корректность Результативность Определенность Понятность Дискретность ПОНЯТИЕ АЛГОРИТМА. СВОЙСТВА АЛГОРИТМА. Алгоритм – это понятное и точное указание исполнителю совершить последовательность действий, направленных на решение поставленной задачи. Исполнителем может являться как техническое устройство, так и человек. Все алгоритмы обладают некоторыми общими свойствами: Процесс решения задачи должен быть разбит на последовательность отдельных шагов, каждый из которых называется командой. Наиболее существенным здесь является тот факт, что алгоритм есть последовательность четко выделенных пунктов,- такие объекты принято называть дискретными. Таким образом, разделение информационного процесса в алгоритме на отдельные команды является важным свойством алгоритма и называется дискретностью Чтобы исполнитель мог выполнить преобразование объекта согласно алгоритму, он должен быть в состоянии понять и выполнить каждую команду. Поэтому каждый алгоритм должен составляться в расчете на конкретного исполнителя с учетом его возможностей. Это свойство алгоритма называется понятностью. У каждого исполнителя имеется перечень команд, которые он может исполнить. Такой перечень называется системой команд исполнителя. Понятными исполнителю будут являться только те команды, которые попадают в этот список. Команды, образующие алгоритм, должны быть предельно четкими и однозначными. Их результат не может зависеть от какой-либо дополнительной информации извне алгоритма. Сколько бы раз вы не запускали программу, для одних и тех же исходных данных всегда будет получаться один и тот же результат. Такое свойство называется определенностью (детерминированностью) Результат выполнения алгоритма должен быть обязательно получен, т.е. правильный алгоритм не может обрываться безрезультатно из-за какого-либо непреодолимого препятствия в ходе выполнения. Кроме того, любой алгоритм должен завершиться за конечное число шагов. Такое свойство алгоритма называют результативностью. Любой алгоритм создан для решения той или Ионой задачи, поэтому необходима уверенность, что это решение будет правильным для любых допустимых исходных данных. Указанное свойство алгоритма принято называть его корректностью. В связи с этим большое значение имеет тщательное тестирование алгоритма перед его использованием. Грамотная и всесторонняя отладка для сложных алгоритмов часто требует значительно больших усилий, чем собственно разработка этих алгоритмов. Алгоритм имеет смысл разрабатывать только в том случае, когда он будет применяться многократно для различных наборов исходных данных. Массовость алгоритма в отдельных случаях может нарушаться: к числу подобных исключений можно отнести алгоритмы пользования некоторыми простыми автоматами (для них входными данными служит единственный тип монет) УСЛОВНЫЕ ОБОЗНАЧЕНИЯ АЛГОРИТМОВ Обозначение Комментарии Начало и конец алгоритма Действия, вычисления Разветвление в алгоритме, проверка условия Ввод(Вывод) данных Комментарии Блок цикла ВИДЫ АЛГОРИТМОВ АЛГОРИТМ ЛИНЕЙНЫЙ ВЕТВЛЕНИЯ ЦИКЛИЧЕСКИЙ ЛИНЕЙНАЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА Линейным называется алгоритм, в котором все этапы решения задачи выполняются строго последовательно, без пропусков и повторений Пример линейного алгоритма- Словесная запись данного задача вычисления площади алгоритма: квадрата S при заданной длине стороны квадрата a. 1. Прочесть значение А. Блок-схема: 2. Умножить значение А на А 3. Сохранить полученный Начало результат на предыдущем шаге как значение S A S:=A*A S Конец СТРУКТУРА АЛГОРИТМА ВЕТВЛЕНИЯ Блок-схема Описание на алгоритмическом языке Если логическое выражение То команда1 Иначе команда 2 Конец ветвления Условие Команда1 Команда2 Блок-схема Условие Команда1 Описание на алгоритмическом языке Если логическое выражение То команда1 Конец ветвления АЛГОРИТМЫ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ Алгоритмическая структура «Цикл» обеспечивает многократное выполнение некоторой последовательности действий, которая называется телом цикла. ЦИКЛЫ С определенным числом повторений(цикл с параметром или цикл со счетчиком) Цикл с предусловием (цикл «Пока») Цикл с постусловием (цикл «До») Блок-схема Словесное описание 1. Вычисляются значения выражений, определяющие начальное и конечное значение параметра цикла; 2. параметру цикла присваивается начальное значение; 3. параметр цикла сравнивается с конечным значением; 4. если параметр цикла превосходит конечное значение параметра цикла, то переход к п.8 иначе к след. пункту; 5. выполняется тело цикла; 6. параметр цикла автоматически изменяется на значение шага; 7. переход к п.3; 8. конец цикла. 1. Выполняется значение логического выражения; 2. если значение логического выражения истинно, то переход к следующему пункту, иначе – переход к п.5; 3. выполняется серия команд(тело цикла); 4. переход к п.1; 5. конец цикла. Начальное значение параметра цикла: ;конечное значение; шаг Серия команд Условие Нет Да Серия команд 1. Выполняется серия команд; 2. вычисляется значение логического выражения; 3. если значение логического выражения истинно, переход к п.1, иначе – к следующему пункту; 4. конец цикла. Серия команд Да Условие Нет ЯЗЫК TURBO PASCAL Алфавит Языка: 1. Символы, используемые для составления идентификаторов: Латинские строчные и прописные буквы; Арабские цифры от 0 до 9; Символ подчеркивания; 2. Символы-разделители: Символ пробела; Управляющие символы; 3. Специальные символы: + - * / { } [ ] ( ) < > . , ‘ : ; ^ @ # $ 4. Составные символы- группа символов, которые воспринимаются компилятором как единое целое: >= =< := (* *) (. .) .. 5. Неиспользуемые символы. Символы расширенной таблицы ASCII, т.е. символы имеющие коды 128255( в этой области находятся символы алфавита русского языка и символы псевдографики). 6. Зарезервированные слова. ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА ABSOLUTE AND ARRAY ASM ASSEMBLER BEGIN CASE CONST CONSTRUCTOR DESTRUCTOR DIV DO DOWNTO ELSE END EXTERNAL FAR FILE FOR FORWARD FUNCTION GOTO IF IMPLEMENTATION IN INHERITED INLINE INTERFACE INTERRUPT LABEL MOD NEAR NIL NOT OBJECT OF OR PACKED PRIVATE PROCEDURE PROGRAM PUBLIC RECORD REPEAT SET SHL SHR STRING THEN TO TYPE UNIT UNTIL USES VR VIRTUAL WHILE WITH XOR ОБЩАЯ СТРУКТУРА ПРОГРАММЫ TURBOPASCAL РАЗДЕЛ ОБЪЯВЛЕНИЙ И СОГЛАШЕНИЙ Program Заголовок программы; {$.......} Глобальные директивы компилятора; Uses Подключаемые библиотеки; Label Подраздел объявления глобальных меток; Const Подраздел объявления глобальных констант; Type Подраздел объявления глобальных типов; Var Подраздел объявления глобальных переменных; РАЗДЕЛ ТЕКСТОВ ПРОЦЕДУР И ФУНКЦИЙ Procedure (Function) Заголовок процедуры(функции); Label Подраздел объявления локальных меток; Const Подраздел объявления локальных констант; Type Подраздел объявления локальных типов; Var Подраздел объявления локальных переменных; Begin Основной блок процедуры или функции; End; РАЗДЕЛ ОСНОВНОГО БЛОКА ПРОГРАММЫ Begin Основной блок программы; End. ТИПЫ ДАННЫХ На что указывает тип: 1. Тип указывает на то какого вида информация заносится в переменную(число или символ). 2. Какой должен быть размер памяти уделяемой переменной. 3. Какие операции можно выполнять над значениями этого типа. Классификация типов данных Простые Структурированные Определяемые пользователем Стандартные Множество Вещественный Перечисляемый Массив Порядковый Диапазон Запись Целый Указатель Логический Файл Литерный ОПЕРАЦИИ И ФУНКЦИИ 1. Для целого типа + - сложение - - вычитание *- умножение Div – целочисленное деление Mod- остаток от деления Succ- нахождение следующего значения Pred- нахождение предыдущего значения Ord- порядковый номер Sqr- возведение в квадрат Abs- получение абсолютного значения 2. Для вещественного типа + - сложение - - вычитание *- умножение / - деление Sqrt- квадратный корень Sin-синус Cos-косинус Arctan-арктангенс Ln- натуральный логарифм Exp-экспонента Abs-модуль числа Int- целая часть Frac-дробная часть Round- округление Trunc- отбрасывание дробной части 3. Для строкового типа Length(s)- функция нахождения длины строки t:=Copy(s,i,j)- функция копирования подстроки в новую переменную s- исходная строка, i- индекс, с которого надо начать копирование, j- количество символов, которые необходимо скопировать. t- скопированная часть строки, Delete(s,i,j)- удаляет подстроку из строки, Insert(s,t,i)- вставка строки s в t c позиции t, Pos(s,t)- ищет подстроку в строке ЭЛЕМЕНТЫ ИНТЕРФЕЙСА DELPHI В главном окне реализуются основные функции управления проектом создаваемой программы. Это окно содержит: Строку заголовка; Строку меню; Панель инструментов; Палитру компонентов. Строка заголовка главного окна отображает имя открытого в данный момент проекта. По заголовку главного окна можно определить, в каком режиме открыт проект: Текст заголовка Режим работы Delphi – Project1 Редактирование Delphi – Project1 [Running] выполнение Строка меню содержит команды, необходимые для разработки и тестирования приложений, и используется так же, как любое стандартное меню WINDOWS. Панель инструментов предназначена для выполнения некоторых команд, реализуемых главным меню. На этой панели есть, в частности, кнопка сохранения проекта на диске , кнопка открытия проекта , кнопка запуска программы на выполнение . Окно проектировщика формы – главное место, где происходит сборка программы из компонентов, содержащихся в палитре компонентов. Сама форма – это уже готовая к выполнению программа. В указанное место формы будет вставляться объект – экземпляр компонента выбранного типа. Окно инспектора объектов отображает свойства активизированного щелчком мышью какого-либо компонента или самой формы. Имя активизированного компонента находится под заголовком окна. Это окно имеет две вкладки – Properties (Свойства) и Events (События). Свойства определяет атрибут компонента, например размер кнопки или шрифт метки. Событие означает, например, такие действия, как щелчок мышью на кнопке или закрытия окна. По ходу работы система формирует в окне редактора кода текст программы на языке Паскаль, связанной с формой. После загрузки Delphi это окно спрятано за окном формы, и его можно увидеть, щелкнув на кнопке Toggle Form/Unit панели инструментов. на