Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Структурные схемы алгоритмов

Читайте также:
  1. C. Ветвящихся алгоритмов
  2. V2: Схемы повторных испытаний
  3. А) для схемы рисунка 1
  4. Алгоритм решения в виде блока схемы.
  5. Алгоритм, виды алгоритмов. Алгоритмизация поиска правовой информации.
  6. Алгоритм. Основные способы описания алгоритмов.
  7. Алгоритмы и их свойства. Представление алгоритмов
  8. Алгоритмы и их свойства. Представление алгоритмов
  9. Анализ данных и алгоритмов
  10. АНАЛИЗ КИНЕМАТИЧЕСКОЙ СХЕМЫ ЭЛЕКТРОПРИВОДА НАСОСА ПОДАЧИ ОБОРОТНОЙ ВОДЫ

Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых элементов. Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование, ветвление, цикл. Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.

В теории алгоритмов доказано, что любой, сколь угодно сложный алгоритм, может быть составлен из этих трех базовых алгоритмических структур:

           
   
   
 
 

 


- + –

               
     
 
       
 
 

 


+

                   
   
   
 
     
 
     
 
 

 


Линейная структура Ветвление Цикл "пока"

 

Линейная структура (следование) предполагает последовательное выполнение действий, без их повторения или пропуска некоторых действий.

Базовая структура ветвление предполагает выполнение одной из двух групп действий в зависимости от истинности или ложности некоторого условия в блоке ветвления.

Структура ветвление существует в четырех основных вариантах:

· если-то;

· если-то-иначе;

· выбор;

· выбор-иначе.

Базовая структура цикл. Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Структура цикл имеет несколько разновидностей. На рис. 3 показан цикл типа "пока" с предусловием.

       
   
 
 

 

 


       
 
   
 


+

Рис. 5 Цикл "до" Рис. 6 Цикл с параметром

 

Любой вычислительный процесс может быть представлен как комбинация этих элементарных алгоритмических структур. Соответственно, вычислительные процессы, выполняемые на ЭВМ по заданной программе, можно разделить на три основных вида:

- линейные;

- разветвляющиеся;

- циклические.

Линейным принятоназывать вычислительный процесс, в котором операции выполняются последовательно, в порядке их записи. Каждая операция является самостоятельной, независимой от каких-либо условий. На схеме блоки, отображающие эти операции, располагаются в линейной последовательности.

Линейные вычислительные процессы используются при вычислении арифметических выражений.

Вычислительный процесс называется разветвляющимся, если для его реализации предусмотрено несколько направлений (ветвей). Каждое отдельное направление процесса обработки данных является отдельной ветвью вычислений. Разветвляющийся процесс, включающий в себя две ветви, называется простым, более двух ветвей — сложным. Сложный разветвляющийся процесс можно представить с помощью простых разветвляющихся процессов.

Циклическим называется вычислительный процесс, содержащий многократно повторяющиеся фрагменты программы (циклы).

Интерпретаторы и компиляторы

Для выполнения компьютером программа должна быть представлена в машинном коде — последовательности чисел, понимаемых процессором. Написать программу в машинных кодах вручную достаточно сложно. Поэтому сегодня практически все программы создаются с помощью языков программирования, которые по своим синтаксису и семантике приближены к естественному человеческому языку. Это снижает трудоемкость программирования. Однако, текст программы, записанный с помощью языка программирования, должен быть преобразован в машинный код. Эта операция выполняется автоматически с помощью специальной служебной программы, называемой транслятором.

Трансляторы делятся на два типа: интерпретаторы и компиляторы.

Интерпретатор переводит в машинный код и выполняет очередной оператор программы. Только после того, как текущий оператор успешно выполнен, интерпретатор перейдёт к следующему. При этом, если один и тот оператор должен выполняться в программе многократно, интерпретатор всякий раз будет выполнять его так, как будто встретил впервые. Вследствие этого, программы, в которых выполняется большой объём повторяющихся вычислений, могут работать медленно.

Компилятор переводит в машинный код исходный текст программы целиком. При использовании компиляторов скорость работы прикладных программ во много раз больше, чем при использовании интерпретаторов. Действительно, компилятор транслирует исходный текст прикладной программы только один раз - при "переводе" в машинные коды. Интерпретатору же приходится транслировать программу построчно при каждом ее выполнении, и время этой трансляции входит во время работы прикладной программы.

Поэтому достоинство компиляторов — быстродействие и автономность получаемых программ. Достоинство интерпретаторов — их компактность, возможность остановить в любой момент выполнение программы, выполнить различные преобразования данных и продолжить работу программы.

Нисходящий метод проектирования алгоритма

 

К основным методам структурного программирования относится, прежде всего, отказ от бессистемного употребления оператора безусловного перехода и преимущественное использование других структурированных операторов, методы нисходящего проектирования разработки программы, идеи пошаговой детализации. Всякая программа, в соответствии с структурным подходом к программированию, может быть построена только с использованием комбинацией трех базовых структур: следования, ветвления и цикла.

При нисходящем методе проектирования алгоритма ("проектирование сверху-вниз") первоначально рассматривается вся задача в целом. На каждом последующем этапе задача разбивается на более мелкие подзадачи, каждая подзадача, в конечном итоге на еще более мелкие подзадачи и так до тех пор, пока не будут получены такие подзадачи, которые легко кодируются на выбранном языке программирования. При этом на каждом шаге уточняются все новые и новые детали («пошаговая детализация»). В процессе нисходящего проектирования сохраняется строгая дисциплина программирования, то есть разбиение на подзадачи осуществляется путем применения базовых алгоритмических конструкций (следования, ветвления и цикла), поэтому, в конечном итоге, получается хорошо структурированная программа.

 




Дата добавления: 2015-01-29; просмотров: 94 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.465 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав