metod_15.03.04_atppp_oaip_ump_2016 (1016599), страница 23
Текст из файла (страница 23)
Ветвящийся поток управления. В этом типе выполняется свойство (2), а свойство(1) не выполняется.НетДаРS2S1Данный тип потока управления организует выполнение одного из двухфункциональных блоков в зависимости от проверяемого логического условия.3. Циклический поток управления. Он организует многократное повторениефункционального блока, пока логическое условие его выполнения остается истинным.В данном типе потока управления выполняется свойство (1), но не выполняетсясвойство (2).НетРДаSЕсли алгоритм представляет собой комбинацию трех рассмотренных типов потоковуправления (базовых алгоритмических структур), то его называют структурнымалгоритмом.Структурные алгоритмы обладают рядом преимуществ по сравнению снеструктурными:1. понятность и простота восприятия алгоритма;2.
проверяемость (для проверки любой из основных структур достаточно убедиться вправильности входящих в нее функциональных блоков);3. модифицируемость.Структурная теорема: любой алгоритм может быть сведен к структурному.Значение структурной теоремы для практики программирования состоит в том, чтона ее основе разработан и широко используется структурный метод программирования.99Основой метода является использование принципа модульности построения сложныхпрограмм.
При этом каждый программный модуль организуется в виде стандартногофункционального блока (строится из трех базовых структур) и выполняет лишь однуфункцию по обработке данных. Модули обладают определенной автономностью, чтопозволяет их отладку (поиск и устранение ошибок) вести независимо от остальнойпрограммы и обеспечивает относительно простую модифицируемость как отдельногомодуля, так и программы в целом. Эффективность структурного программированияособенно заметна при разработке сложных программ – модульный принцип позволяетразбить общую задачу на составные и относительно автономные части, каждая изкоторых может создаваться и отлаживаться независимо. Безусловно, такое разбиениетребует согласования входных и выходных параметров модулей.Исходя из структурного подхода к разработке алгоритма, типовыми этапами этогопроцесса являются:1. Описание общего замысла алгоритма;2.
Формализация задачи;3. Разработка обобщенной схемы алгоритма;4. Разработка отдельных блоков алгоритма;5. Стыковка блоков;6. Определение возможности использования стандартных блоков;7. Разработка блоков логического контроля;8. Оптимизация схемы алгоритма;9. Уточнение параметров;10. Оценка машинного ресурса.8. ЯЗЫК ВЫСОКОГО УРОВНЯ ТУРБО ПАСКАЛЬ8.1. ВВЕДЕНИЕ В ТУРБО ПАСКАЛЬОсновные понятия программированияКлассификацию языков программирования, с каждым из которых можно связатьпрофильно–ориентированный курс информатики, можно представить следующейсхемой:ПРОГРАММИРОВАНИЕПроцедурноеОперациональноеНепроцедурноеСтруктурноеОбъектноеФункциональное100ДекларативноеЛогическоеПрограммирование – это раздел информатики, задача которого – разработкапрограммного обеспечения ЭВМ. В узком смысле слово программирование обозначаетпроцесс разработки программы на определенном языке программирования.На начальном этапе программирование было операциональным и одновременнопроцедурным, а в уже усовершенствованном виде – структурным (классический пример– Паскаль).
Процедурное программирование, в своей основе, сходится к следующему:программа представляет собой детальное описание решения задачи, т.е. алгоритм внекоторой специальной записи. Основные понятия – оператор и данные.Принципиально иное направление в программировании связано с методологиями(парадигмами) непроцедурного программирования. Объектно-ориентированнаяпрограмма – совокупность множества независимых объектов. Каждый объект можноиспользовать для решения задачи, не вникая во внутренние механизмы егофункционирования. Наиболее популярные языки объектного программирования – C++,Delphi, Visual Basic.При использовании декларативного языка программист указывает исходныеинформационные структуры, взаимосвязи между ними и то, какими свойствами долженобладать результат.
При этом процедуру его получения (алгоритм) программист нестроит. В этих языках отсутствует понятие «оператор» («команда»).Настоящая работа рассматривает структурное программирование на языке Паскаль.Программирование как процесс создания программы формально состоит из выбораязыкапрограммированияизаменыэлементовблок-схемыалгоритмасоответствующими элементами выбранного языка программирования. Правильнаяпрограмма на алгоритмическом языке представляет собой формальную записьконечной последовательности действий, приводящих к решению поставленной задачи.Программа непосредственно в процессорных кодах представляет собойпоследовательность из 0 и 1.
Команды машинного языка, в большинстве случаев,состоят из двух частей – кода операции (указание процессору, что сделать) и изоперандов (с чем нужно сделать операцию).Для ускорения процесса программирования сначала был разработан язык Ассемблер,а в дальнейшем языки высокого уровня (в т.ч. и Турбо Паскаль).
Программа на языкеАссемблер стала записываться как последовательность строк, каждая из которыхвключает содержание действия (имя операции) и обозначения операндов. Программына языках высокого уровня состоят уже из операторов (интегрированных команд),каждому из которых может соответствовать несколько машинных операций.Алгоритмический язык высокого уровня – это система правил для представленияданных и описания процесса их обработки.Система правил формирования множества конструкций языка (слов, выражений,операторов) - синтаксис языка.Систему правил однозначного истолкования исполнителем программы (человеком итехническим устройством) смысла синтаксических конструкций алгоритмическогоязыка определяет семантика.Чтобы программа, написанная на языке высокого уровня (например, Турбо Паскаль)однозначно воспринималась и истолковывалась процессором ее необходимо привести в101соответствие с его системой команд (СКИ).
Эту функцию выполняет специальнаяпрограмма – компилятор.При практической реализации разработанной программы существуют причины ееневыполнения при некотором наборе исходных данных (не достижениерезультативного окончания работы), которыми могут быть:ИсходнаяпрограммаКомпиляторГенератормашинногокодаСинтаксическийконтрольВыполняемаяпрограммаСообщения об ошибкахОшибки синтаксиса, т.е. нарушение формальных правил записи алгоритма;Выход начальных данных за пределы допустимого множества;Несоответствие алгоритма возможностям исполнителя.Именно поэтому кроме преобразования текста программы в машинный кодкомпилятор решает и вторую задачу: обнаруживает и сигнализирует о синтаксическихошибках программы (встреченной в исходном тексте программы недопустимойкомбинации символов).Генерация машинного кода и обнаружение синтаксических ошибок не можетсвидетельствовать об отсутствии в программе других ошибок и что она не нуждается вотладке.В том случае, когда ошибки имеют смысловой (семантический) характер для ихлокализации и исправления прибегают к тестированию программы.
Тестированиесостоит в проверке работоспособности алгоритма (программы) при таких значенияхисходных данных, которые охватили бы все возможные пути обработки данных. Напрактике тестирование проводят лишь на некоторых наборах исходных данных(предельных: минимальных и максимальных, недопустимых). Тестирование можетобнаружить ошибку, но не доказывает их полное отсутствие.Процесс обработки программы на языке Паскаль:Исходный модуль.Pas файлИсходныеданныеКомпиляторОбъектныймодульРедакторсвязейВыполняемый модуль.Exe или .tpu файлыРезультатПроцесс программирования на универсальном языке высокого уровня Паскальсостоит из следующих действий: ввода и редактирования текста программы,трансляции и отладки.
Для повышения качества и скорости разработки программ была102создана интегрированная система программирования Турбо Паскаль, представляющаясобой единство двух начал: компилятора и среды программирования –инструментальная программная оболочка языка, предоставляющая разнообразныесервисные услуги.Для выполнения каждого этапа применяются специальные средстваинтегрированной среды программирования: редактор текстов (editor), компилятор(compiler), компоновщик (linker), отладчик (debugger).Поскольку многие программы выполняют одни и те же действия (ввод/выводданных, вычисление математических функций и т.п.) были организованы библиотекиподпрограмм, когда алгоритмы этих действий хранятся уже в скомпилированном виде впамяти компьютера. При написании программы только требуется указать, из какойбиблиотеки какую подпрограмму вызвать, а связыванием программы и библиотек вединое целое производит специальная программа-компоновщик (редактор связей).Общие сведения об языке Турбо ПаскальСтруктуру языка Паскаль можно представить следующим образом:ПАСКАЛЬДанныеПроблемныеОператорыУправляющиеОбработкиданных:присваиванияМеткиУказателиПростые(скалярные)СложныеПорядковыеМассивыСтандартныеЗаписиОпределенныепользователемОрганизацияобработкиданныхВвода-выводаданныхФормированиемодулей ибиблиотекМножестваФайлы103МодулиПрограммаПроцедурыФункцииСтруктура различных языков программирования однотипна и включает следующиесредства:- строгое определения свойств объектов программы (вид информации,допустимое множество ее данных и допустимые действия над ними);- определения порядка обработки данных, т.е.














