Автор работы: Пользователь скрыл имя, 16 Ноября 2012 в 10:48, контрольная работа
Любой человек ежедневно встречается с множеством задач от самых простых и хорошо известных до очень сложных. Для многих задач существуют определенные правила (инструкции, предписания), объясняющие исполнителю, как решать данную задачу. Эти правила человек может изучать заранее или формулировать сам в процессе решения задач. Чем точнее и понятнее будут описаны правила решения задач, тем быстрее человек овладеет ими и будет эффективнее их применять.
Введение
Глава 1 принципы структурной алгоритмизации
Глава 2 Требования и преимущества структурной алгоритмизации
Глава 3 Базовый набор структур для построения алгоритма
3.1 Линейные и разветвляющиеся структуры
3.2 Ветвящейся структурой
3.3 Организация циклических структур алгоритма
Заключение
Библиографический список
Содержание
Введение
Глава 1 принципы структурной алгоритмизации
Глава 2 Требования и преимущества структурной алгоритмизации
Глава 3 Базовый набор структур для построения алгоритма
3.1 Линейные и разветвляющиеся структуры
3.2 Ветвящейся структурой
3.3 Организация циклических структур алгоритма
Заключение
Библиографический список
Введение
Любой человек ежедневно
встречается с множеством задач
от самых простых и хорошо известных
до очень сложных. Для многих задач
существуют определенные правила (инструкции,
предписания), объясняющие исполнителю,
как решать данную задачу. Эти правила
человек может изучать заранее
или формулировать сам в
Решение многих задач человек
может передавать техническим устройствам
- ПК, автоматам, роботам и т.д. Применение
технических устройств
На сегодняшний день самой популярной методикой программирования является структурное программирование "сверху – вниз". Эта технология программирования представляет собой процесс пошагово разбиения алгоритма на все более мелкие части с целью получить такие элементы, для которых можно легко написать конкретные предписания. Таким образом, простота чтения, понимания и исправления структурированных описаний позволяет существенно уменьшить количество ошибок в алгоритмах и программах и сократить время их отладки на ЭВМ.
Глава 1 ПРИНЦАПЫ СТРУКТУРНОЙ АЛГОРИТМИЗАЦИИ
Английский математик Чарлз Бэббидж (Charles Babbage, 1792-1871) выдвинул идею создания программно-управляемой счетной машины, имеющей арифметическое устройство, устройство управления, ввода и печати.
Первая спроектированная Бэббиджем машина, Разностная машина, работала на паровом двигателе. Она высчитывала таблицы логарифмов методом постоянной дифференциации и заносила результаты на металлическую пластину. Работающая модель, которую он создал в 1822 г., была шестицифровым калькулятором, способным производить вычисления и печатать цифровые таблицы.
Одновременно с английским ученым работала леди Ада Лавлейс (Ada Byron, Countess of Lovelace, 1815-1852 гг.), дочь известного английского поэта лорда Байрона. Она разработала первые программы для машины, заложила многие идеи и ввела ряд понятий и терминов, сохранившихся до настоящего времени. Именно ее многие считают первым программистом в мире. В ее честь один из процедурных языков программирования, разработанный в США в 1969 г. был так и назван — АДА.
Свое понятие программистской
деятельности ввели инженеры, обслуживающие
цифровой компьютер «Марк-1» в
Гарвардском университете (1944 г.). При
написании программ для вычисления
артиллерийских баллистических таблиц
впервые стали применять
Появление языков программирования высокого уровня дало мощный импульс развитию программного обеспечения. Однако первоначально не было выработано подходов (методологий) к программированию, использование которых позволило бы уменьшить вероятность пропуска ошибок в программах, упрощало бы их понимание, облегчило бы модификацию программ и их сопровождение.
Значительный вклад в теорию программирования внес научный сотрудник фирмы «Барроуз» (Burroughs), голландский ученый Эдсгер Дийкстра. В 1968 г. в работе под названием «Заметки по структурному программированию» он доказал, что большинство программ неоправданно сложны из-за отсутствия в них четкой математической структуры. По мнению Дийкстры, использование трех типов управляющих структур — простой последовательности, альтернативы и повторения — позволило бы программистам обходиться без операторов безусловного перехода (goto) и тем самым преодолеть сложность и запутанность программ, добиться простоты их модификации. Проверку программ Дийкстра предложил производить математическими методами, а не просто тестированием, которое, по его мнению, может показать лишь наличие ошибок, а не их отсутствие.
На сегодняшний день
В основу структурной алгоритмизации положены следующие требования:
По своей сути структурное программирование является воплощением принципов системного подхода к процессу создания и эксплуатации математического обеспечения компьютера.
Другими словами, алгоритм надо писать так, как мы его понимаем и как хотели бы объяснить его другим людям.
Структурная алгоритмизация основывается на двух принципах:
Можно перечислить основные свойства и достоинства структурного программирования:
Составление алгоритма с
применением структурной
1. Начало.
2. Список данных: данные: тип; … ; данные: тип.
3. Ввод (исходные данные).
4. Вывод (исходные данные).
5. Обработка результатов испытаний.
6. Оценка надежности
7. Выбор оптимальных параметров.
8. Вывод (результат).
9. Конец.
Затем следует определить, какие из использованных нами конструкций «понятны» компьютеру, имеющемуся в нашем распоряжении. Дело в том, что алгоритм может быть реализован в компьютере, если он содержит только элементарные предписания и структуры, входящие в базовый набор (о них речь пойдет ниже). Элементарными, т.е. не требующими детализации, мы будем считать следующие предписания или операции: Начало; Конец; Список данных; Ввод; Вывод; вычислительные операции, реализуемые операторами присваивания (:=). Сложные конструкции, которые компьютер не может реализовать сразу, разбиваются на более простые. Например, предписание 5 для рассматриваемого алгоритма может быть записано так:
5.1. Начало 5.
5.2. Операции, раскрывающие
смысл обработки результатов.
5.N. Конец 5.
Количество шагов при последовательной детализации не ограничивается. Детализация заканчивается, когда конструкции алгоритма будут содержать только элементарные предписания и структуры, входящие в базовый набор.
Предписания 1 — 4 и 8 — 9, как правило, присутствуют в каждом алгоритме, разрабатываемом методом структурной алгоритмизации.
Глава 2 ТРЕБОВАНИЯ И ПРЕИМУЩЕСТВА СТРУКТУРНОЙ АЛГОРИТМИЗАЦИИ
Структурное программирование
до настоящего времени остается основой технологии программирования.
Соблюдение его принципов позволяет программисту
быстро научиться писать ясные , безошибочные,
надёжные программы.
В основе
структурного программирования заложена
теорема, которая была строго доказана
в теории программирования. Она утверждает,
что алгоритм для решения любой
логической задачи можно составить
только из структур «следование, ветвление, цикл»..
Структурная алгоритмизация основывается на двух принципах:
Из принципов вытекают требования структурного программирования:
Базовый набор структурной алгоритмизации содержит линейные, разветвляющиеся и циклические структуры.
Можно перечислить основные свойства и достоинства структурного программирования:
Глава 3 БАЗОВЫЙ НАБОР СТРУКТУР ДЛЯ
ПОСТРОЕНИЯ АЛГОРИТМА
Теория структурного программирования доказывает, что алгоритм любой степени сложности можно построить с помощью основного базового набора структур:
Поскольку каждая типовая структура имеет 1 вход и 1 выход, то любой операционный блок может быть, в свою очередь, представлен в виде последовательности любых базовых структур (в общем случае с любой глубиной вложения). Эта возможность и обеспечивает, в конечном счете, построение алгоритмов любой степени сложности только из основных базовых структур.
3.1 Линейные и разветвляющиеся структуры
Наиболее простыми для
понимания и использования
Предписание «Список данных» содержит сведения об именах и типах данных, обрабатываемых в этом алгоритме. Предписание «Ввод(исходные данные)» определяет, какие исходные данные и в каком порядке должны быть введены в компьютер. Предписание «Вывод (исходные данные)» позволяет проконтролировать правильность ввода информации. Предписания 5 и 6 позволяют получить требуемые результаты и выдать их пользователю. Рассматриваемый алгоритм относится к линейным.
Линейной называется алгоритмическая структура (см. рис. 6а), в которой отдельные предписания выполняются в естественном порядке (в порядке записи) независимо от значений исходных данных и промежуточных результатов.
Линейной, например, является
последовательность вычислений
X:=A;
которая читается следующим образом: «Переменной X присвоить значение, равное результату, полученному при вычислении по формуле A». В этом предписании: X — переменная; A — может быть любым, сколь угодно сложной математической формулой. В процессе выполнения этого предписания компьютером A вычисляется, и результат вычисления присваивается содержимому ячейки памяти (помещается в эту ячейку), отведенной для хранения переменной X. При этом переменная X теряет свое предыдущее значение и приобретает новое. Таким образом, символ «:=» употребляется как предписание «присвоить». Как следствие этого, бессмысленное, с точки зрения алгебры, выражение: