Автор: Пользователь скрыл имя, 01 Ноября 2011 в 10:36, реферат
Структурное программирование – это технология создания программ, позволяющая путем соблюдения определенных правил уменьшить время разработки и количество ошибок, а также облегчить возможность модификации программы.
Процессор электронно-вычислительной машины, это чудо техники, умеет, тем не менее, выполнять лишь простейшие команды. Каким же обра-зом компьютер решает сложнейшие задачи обработки информации? Для ре-шения этих задач программист должен составить подробное описание после-довательности действий, которые необходимо выполнить центральному про-цессору компьютера. Составление такого пошагового описания процесса ре-шения задачи называется алгоритмизацией, а алгоритмом называется конеч-ный набор правил, расположенных в определённом логическом порядке, по-зволяющий исполнителю решать любую конкретную задачу из некоторого класса однотипных задач. В разных ситуациях в роли исполнителя может вы-ступать электронное или какое-либо иное устройство или человек (например, военнослужащий, охраняющий склад боеприпасов и действующий согласно алгоритмам, записанным в устав караульной службы).
Введение ………………………………………………………………… 2
Алгоритм и программа: ………………………………………………… 2
а. свойства алгоритма; ………………………………………………….. 2
б. форма алгоритма: …………………………………………………….. 3
3. Способы представления в алгоритмы: …………………………………. 3
а. графический; ………………………………………………………….. 4
б. неформальный; ……………………………………………………….. 4
в. запись на алгоритмическом языке: ………………………………….. 4
4. Сложность алгоритмов ………………………………………………….. 5
5. Жизненный цикл программного обеспечения …………………………. 7
6. Заключение ……………………………………………………………..... 9
7. Список литературы ……………………………………………………… 10
Как правило,
временная сложность алгоритма
зависит от исходных данных. Это
может быть зависимость как от
величины исходных данных, так и
от их объема. Если обозначить значение
параметра временной сложности
алгоритма αсимволом Tα, а буквой V обозначить
некоторый числовой параметр, характеризующий
исходные данные, то временную сложность
можно представить как функцию Tα(V). Выбор
параметра V зависит от решаемой задачи
или от вида используемого алгоритма для
решения данной задачи.
Пример
1. Оценим временную сложность алгоритма
вычисления факториала целого положительного
числа.
Function Factorial(x:Integer):
Integer;
Var m,i: Integer;
Begin m:=l;
For i:=2 To
x Do m:=ro*i;
Factorial:=m
End;
Подсчитаем
общее число операций, выполняемых
программой при данном значении x. Один
раз выполняется оператор m:=1; тело цикла
(в котором две операции: умножение и присваивание)
выполняется х — 1 раз; один раз выполняется
присваивание Factorial:=m. Если каждую из операций
принять за единицу сложности, то временная
сложность всего алгоритма будет 1 + 2 (x
— 1) + 1 = 2х Отсюда понятно, что в качестве
параметра следует принять значение х.
Функция временной сложности получилась
следующей:
Tα(V)=2V.
В этом
случае можно сказать, что временная
сложность зависит линейно от параметра
данных — величины аргумента функции
факториал.
Пример
2. Вычисление скалярного произведения
двух векторов А = (a1, a2, …, ak), В = (b1, b2, …,
bk).
АВ:=0;
For i:=l To
k Do AB:=AB+A[i]*B[i];
В этой
задаче объем входных данных п = 2k. Количество
выполняемых операций 1 + 3k = 1 + 3(n/2). Здесь
можно взять V= k= п/2. Зависимости сложности
алгоритма от значений элементов векторов
А и В нет. Как и в предыдущем примере, здесь
можно говорить о линейной зависимости
временной сложности от параметра данных.
С параметром
временной сложности алгоритма
обычно связывают две теоретические
проблемы. Первая состоит в поиске
ответа на вопрос: до какого предела
значения временной сложности можно
дойти, совершенствуя алгоритм решения
задачи? Этот предел зависит от самой задачи
и, следовательно, является ее собственной
характеристикой.
Вторая
проблема связана с классификацией
алгоритмов по временной сложности.
Функция Tα(V) обычно растет с ростом
V. Как быстро она растет? Существуют
алгоритмы с линейной зависимостью Тα
от V (как это было в рассмотренных нами
примерах), с квадратичной зависимостью
и с зависимостью более высоких степеней.
Такие алгоритмы называются полиномиальными.
А существуют алгоритмы, сложность которых
растет быстрее любого полинома. Проблема,
которую часто решают теоретики — исследователи
алгоритмов, заключается в следующем вопросе:
возможен ли для данной задачи полиномиальный
алгоритм?
Жизненный
цикл программного обеспечения
Жизненный цикл программного обеспечения включает в себя шесть этапов:
1) Анализ требований,
2) Определение спецификаций,
3) Проектирование,
4) Кодирование,
5) Тестирование,
6) Сопровождение.
Анализ требований. На этом этапе должны быть получены четкие ответы на следующие вопросы:
Что представляют собой
Что должна делать программа ?
Какими должны быть выходные данные ?
Часто при этом строится
Определение спецификаций. В определенной
степени этот этап можно рассматривать
как формулировку выводов, следующих из
результатов предыдущего этапа. Спецификации
отражают требования к программе и оформляются
в виде технического задания. Техническое
задание согласовывается и утверждается
исполнителем и заказчиком программного
продукта, в нем, в частности, оговариваются
требования к функциональным характеристикам,
составу и параметрам технических средств,
информационной и программной совместимости,
программной документации, порядку контроля
и приемки.
Проектирование. На этом этапе выбирается метод решения, составляется общий проект программы, выделяются основные части, их взаимодействие (интерфейс), уточняются входные и выходные данные.
Затем разрабатывается общий алгоритм решения, который постепенно детализируется. Кодирование. Детализация алгоритма должна быть закончена тогда, когда есть возможность реализовать его блоки средствами языка программирования. Кодирование заключается в переводе на язык
программирования конструкций алгоритма. Во время кодирования могут
быть, чисто визуально, обнаружены ошибки, неточности в алгоритме, что
может
потребовать уточнения
Тестирование (отладка). Для перевода
текста программы с языка высокого уровня
на машинный язык служат специальные программы
- трансляторы. Помимо трансляторов разработаны
и другие программы, облегчающие работу
человека на ЭВМ (загрузчики, отладчики
и т.п.). Эти программы объединяются в системы
программирования, их ещё называют средами
программирования (например, среда Турбо-Паскаля,
среда Делфи).
Во время трансляции
Процесс отладки имеет 3 основные цели:
1) обнаружение ошибок,
2) локализация ошибок,
3) исправление ошибок.
Всегда надо помнить золотое
правило программистов: «Каждая
программа содержит как минимум одну ошибку».
Ошибки весьма условно можно разделить на три группы.
1) алгоритмические,
2) ошибки программирования,
3) синтаксические ошибки
Синтаксические ошибки
исправляются и
программа перетранслируется. Содержательные
ошибки (алгоритма и программы) выявить
труднее. Для этого готовят систему тестов.
Каждый тест – набор исходных данных,
для которых известен результат. Если
результат прогона теста не совпадает
с ожидаемым, то это означает, что в программе
есть ошибка. Тесты необходимо готовить
так, чтобы они не только устанавливали
факт ошибки, но локализовали бы эту ошибку,
т.е. суживали бы подозреваемую часть программы.
Сопровождение.
Программные продукты разрабатываются
с учетом их длительного использования,
превращаются в интеллектуальный ресурс
общества. Большое значение, в связи с
этим, имеет сопровождение программ. Во
время сопровождения происходит настройка
программы на конкретные цели, обучение
пользователей, устранение мелких неточностей
и анализ результатов эксплуатации программы.
Если программа перестает удовлетворять
растущим требованиям пользователя, то
тогда опять повторяется цикл проектирования
и разработки новой версии программы.
Качественное проведение этапа сопровождения
в большой степени определяет коммерческий
успех программного продукта.
Заключение
Современный этап развития общества характеризуется
внедрением информационных технологий
во все сферы человеческой деятельности.
Новые информационные технологии оказывают
существенное влияние и на сферу образования.
Происходящие фундаментальные изменения
в системе образования вызваны новым пониманием
целей, образовательных ценностей, а также
необходимостью перехода к непрерывному
образованию, разработкой и использованием
новых технологий обучения, связанных
с оптимальным построением и реализацией
учебного процесса с учетом гарантированного
достижения дидактических целей.
Список
литературы.
1. Нестеренко А. В. ЭВМ и профессия программиста.
М., Просвещение, 1990.
2. Брудно А. Л., Каплан Л. И. Московские олимпиады по программированию.
М., Наука, 1990.
3. Кузнецов О. П., Адельсон-Вельский Г. М. Дискретная математика для инженера.
М., Энергоатомиздат, 1988.
4. Галин А.Б., Панов Ю.В. Информатика. Феникс - 2009 г.