Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Блок-схемы алгоритмов и программ




 

Наименование блока Графическое представление блока Функция блока
  Линейный процесс Выполнение операции или группы операций, в результате которых изменяются значение, форма представления или расположение данных
  Проверка условия, решение Выбор направления выполнения алгоритма в зависимости от некоторых переменных условий
  Ввод — вывод Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод)
  Начало — конец алгоритма Начало, конец процесса обработки данных
  Предопределенный (заранее описанный) процесс, модуль Использование ранее созданных или отдельно описанных алгоритмов (модулей)
  Соединитель Указание связи между прерванными линиями потока обработки данных
  Комментарий Связь между элементом схемы и пояснением

3.10. Типы алгоритмов

Различают три основные структуры в построении алгоритмов: линейная, разветвленная и циклическая. Все реальные алгоритмы строятся на основе сочетания этих основных типов.

АЛГОРИТМ ЛИНЕЙНОЙ СТРУКТУРЫ

Алгоритм линейной структуры состоит из последовательности действий, формирующих одну ветвь вычислений. Примером линейного алгоритма может быть алгоритм расчета Y по формуле Y = X2 (рис. 1).

РАЗВЕТВЛЯЮЩИЙСЯ АЛГОРИТМ

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

ЦИКЛИЧЕСКИЙ АЛГОРИТМ

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

Цикл организуют по определенным правилам. Циклический алгоритм состоит из подготовки цикла; тела цикла; условия продолжения цикла.

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

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

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

АЛГОРИТМЫ СЛОЖНОЙ СТРУКТУРЫ

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

 

3.11. Классификация языков программирования

Программа — один из способов записи алгоритма, записанный по правилам какого-либо языка программирования.

Традиционно под программой понимают последовательность операторов (команд, выполняемых компьютером). Этот стиль программирования принято называть императивным. Программируя в императивном стиле, программист должен объяснить компьютеру, как нужно решать задачу.

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

Соответственно и языки программирования можно поделить на императивные и декларативные.

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

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

Известна классификация языков программирования по их близости либо к машинному языку, либо к естественному человеческому языку. Те, что ближе к компьютеру, относят к языкам низкого уровня, а те, что ближе к человеку, называют языками высокого уровня.

Машинно-ориентированные языки программирования включают в себя собственно машинные коды и язык Ассемблер. Каждая команда на языке Ассемблера представляет одну машинную команду. Этот язык очень эффективен, так как приближен к машинным кодам. Программирование на этом языке называется «программированием на низком уровне» и требует высокой квалификации программиста. Решение сложных прикладных задач на таких языках очень трудоемко. Чаще всего эти языки используются для написания операционных систем (ОС) и программ-оболочек для ОС.

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

Эта группа языков называется проблемно-ориентированными языками. Языки этой группы разрабатывались специально для программирования прикладных задач, имеющих сложный алгоритм решения. Условно их называют языками «высокого уровня». Каждой команде в языке высокого уровня соответствует несколько машинных команд. Текст программы, написанный на языке высокого уровня, называется исходным модулем. Язык высокого уровня «не понятен» машине, поэтому существуют специальные программы — трансляторы, переводящие операторы языка высокого уровня в машинные коды. Существуют два типа программ-трансляторов: компилятор и интерпретатор.

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

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




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 3757; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.