Алгоритм – система точно сформулированных правил, определяющая процесс преобразования допустимых исходных данных (входной информации) в желаемый результат (выходную информацию) за конечное число шагов.
Алгоритм решения задачи имеет ряд обязательных свойств:
1. Дискретность (прерывность, раздельность) - алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов. Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.
2. Определенность - каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.
3. Результативность (конечность) - алгоритм должен приводить к решению задачи за конечное число шагов.
4. Массовость - алгоритм решения задачи разрабатывается в общем виде, то есть, он должен быть применим для некоторого класса задач, различающихся только исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.
5. Формализованность – предписания алгоритма должны быть записаны на некотором формальном (искусственном) языке.
В алгоритме отражаются логика и способ формирования результатов решения с указанием необходимых расчетных формул, логических условий, соотношений для контроля достоверности выходных результатов. В алгоритме обязательно должны быть предусмотрены все ситуации, которые могут возникнуть в процессе решения комплекса задач.
Алгоритм решения комплекса задач и его программная реализация тесно взаимосвязаны. Специфика применяемых методов проектирования алгоритмов и используемых при этом инструментальных средств разработки программ может повлиять на форму представления и содержание алгоритма обработки данных.
Алгоритм применительно к вычислительной машине – точное предписание, т.е. набор операций и правил их чередования, при помощи которого, начиная с некоторых исходных данных, можно решить любую задачу фиксированного типа.
Виды алгоритмов как логико-математических средств отражают указанные компоненты человеческой деятельности и тенденции, а сами алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя подразделяются следующим образом:
1) Механические алгоритмы, или иначе детерминированные, жесткие (например алгоритм работы машины, двигателя и т.п.);
2) Гибкие алгоритмы, например стохастические, т.е. вероятностные и эвристические.
Механический алгоритм задает определенные действия, обозначая их в единственной и достоверной последовательности, обеспечивая тем самым однозначный требуемый или искомый результат, если выполняются те условия процесса, задачи, для которых разработан алгоритм.
3) Вероятностный (стохастический) алгоритм дает программу решения задачи несколькими путями или способами, приводящими к вероятному достижению результата.
4) Эвристический алгоритм (от греческого слова «эврика») – это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений.
5) Линейный алгоритм – набор команд (указаний), выполняемых последовательно во времени друг за другом.
6) Разветвляющийся алгоритм – алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов.
7) Циклический алгоритм – алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов.
Цикл программы – последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторого условия.
Вспомогательный (подчиненный) алгоритм (процедура) – алгоритм, ранее разработанный и целиком используемый при алгоритмизации конкретной задачи. В некоторых случаях при наличии одинаковых последовательностей указаний (команд) для различных данных с целью сокращения записи также выделяют вспомогательный алгоритм.
2.3.2 Алгоритм работы программы
Программа «Информационная система ГИБДД» выполняется по следующему алгоритму:
1. Загрузка программы в оперативную память;
2. Ожидание реакции пользователя;
3. В начале загружается главная форма. В главной форме пользователь может выбрать нужную базу данных, просмотреть справку и информацию о программе.
4. При выборе базы данных «Справочник частных владельцев» пользователь может просмотреть информацию о владельце, редактировать таблицу, добавить новые номера и закрыть эту форму.
5. При выборе базы данных «Справочник организации» пользователь также сможет редактировать таблицу, просмотреть информацию или закрыть эту форму.
6. При выборе базы данных «Регистрация ДТП» загружается форма базы данных ДТП, где пользователь может редактировать таблицу, просмотреть информацию или закрыть эту форму.
7. При выборе базы данных «Угон автомобилей» загружается форма, в которой хранятся данные об угонах или скрывшихся с места ДТП автомобилях. Здесь пользователь также может редактировать таблицу, просмотреть информацию или закрыть эту форму.
8. При выборе пункта меню «Справка » отобразится окно с подсказками по работе в программе.
9. При выборе пункта «О программе» будет выведена информация о разработчике программы.
10. При нажатии кнопки «Выход» загружается форма, предупреждающая о действительности выхода из программы. При нажатии кнопки «нет» пользователь вернется в главную форму, а при нажатии кнопки «да» пользователь выйдет из программы.
2.4 Инструментальные средства разработки
2.4.1 Анализ инструментальных средств
При выборе программных средств, для разработки программы «Информационная система ГИБДД», необходимо учитывать возможности описания структуры данных, определение модулей программы и связи между ними, оценки развитости аппарата структур и типов данных.
Учёт этих возможностей позволит сделать программу легкодоступной для использования, позволит предупредить возникновение логических ошибок, обеспечить надёжность программного обеспечения и его модифицируемость.
Для написания программы «Информационная система ГИБДД» была выбрана среда программирования Delphi.
Существует несколько способов решения поставленной задачи:
- Flash-программирование;
- языки программирования (Паскаль, Си, VisualBasic);
- среда объектного визуального программирования Delphi;
Flash – программирование
MacromediaFlash – очень мощное, при этом простое в использовании, средство создания анимированных проектов на основе векторной графики с встроенной поддержкой интерактивности.
Flash не требует ничего дополнительного для перехода со ссылке, открытия окна браузера или выполнения чего-либо посредством HTML.
Имеется возможность создавать кнопки, нажатие которых приводит к выдаче информации и воспроизведению звука или переносящее в другое место фильма проекта. Поэтому презентация в проекте может проходить в предопределённой последовательности или по пути указанному пользователем.
Для разработки интерактивных элементов во Flash используют три основных компонента: событие (event), порождающее определённое действие; действие (action), порождающее тем или иным образом событием; целевой объект (target), выполняющий действие или изменяемый событием.
Языки программирования
Прогресс компьютерных технологий определил процесс появления новых разнообразных звуковых систем для записи алгоритмов – языков программирования. Смысл появления такого языка – оснащённый набор вычислительных формул дополнительной информации, превращает данный набор в алгоритм.
Можно писать программы непосредственно на машинном языке, хотя это и сложно. В начале 1950-х г.г. машинный язык был единственным языком. Далее были созданы языки высокого уровня, работающие через трансляционные программы, которые вводят «исходный код» (гибрид английских слов и математических выражений, которые считает машина), и в конечном итоге заставляет компьютер выполнять соответствующие команды, которые даются на машинном языке.
Существуют также другие среды программирования, с помощью которых можно было бы разработать данную программу. Такие как:
- среда программирования С++ - это универсальный язык программирования, который позволяет разрабатывать программы в соответствии с разными типами программирования: процедурным, объектно-ориентированным, параметрическим.
- система программирования MicrosoftVisualBasicforWindows, обладая простыми в обращении средствами визуального проектирования, позволяет в полной мере использовать преимущества графической системы Windows и быстро конструировать эффективные приложения.
2.4.2 Среда программирования Delphi
Для реализации решаемой задачи в дипломном проекте необходимо осуществление следующих операций:
1) Добавление и удаление в базе данных записей.
2) Изменение и обновление записей.
3) Быстрое осуществление поиска нужных записей по критериям.
Все эти операции должны осуществляться в удобной для пользователя форме и не вызывать затруднений при работе. Поэтому я выбрал среду программирования BorlandDelphi 7.0.