Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_k_gosam (1).doc
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
4.61 Mб
Скачать

12. Основные типы вычислительных процессов.

Решение задач на компьютере основано на понятии алгоритма. Алгоритм – это точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к исходному результату. Алгоритм означает точное описание некоторого процесса, инструкцию по его выполнению. Разработка алгоритма является сложным и трудоемким процессом. Алгоритмизация – это техника разработки (составления) алгоритма для решения задач на ЭВМ. Для записи алгоритма решения задачи применяются следующие изобразительные способы их представления:

 Словесно- формульное описание

 Блок-схема (схема графических символов)

 Алгоритмические языки

 Операторные схемы

 Псевдокод

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

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

По структуре выполнения алгоритмы и программы делятся на три вида:

 Линейные

 Ветвящиеся

Циклические

13. Основные принципы и приемы процедурного программирования.

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

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

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

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

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

  1. Программа работает и решает поставленную задачу. Ясно, что эта характеристика программы является самой важной. Требование, чтобы программа решала поставленную задачу является настолько очевидным, что вряд ли необходимо на нем останавливаться подробно. Отметим лишь, что аналитическое доказательство правильности программы - задача достаточно сложная, и для ее успешного разрешения необходимо, чтобы программа легко анализировалась, что и достигается за счет перехода к методам процедурного программирования.

  2. Минимальное время, затрачиваемое на тестирование и отладку программы.Характеристика программы с точки зрения ее отладки поддается количественному измерению, т.к. можно непосредственно измерить время, затраченное при работе за компьютером и общее время, затраченное программистом на отладку программы. Тестирование и отладка программы облегчаются, если программа просто анализируется и снабжена необходимыми комментариями, облегчающими ее понимание. Кроме того, понимание программы облегчается, если она имеет простую ясную структуру, в частности, если при использовании процедурного подхода ограничено использование операторов передачи управления (GOTO). Перегруженность программы этими операторами приводит к хаотической структуре и усложняет отладку. Общий принцип состоит в том, что если программа настолько сложна и изощренна, что понятна только разработчику, то она бесполезна, поскольку ею не могут воспользоваться другие пользователи.

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

  1. Гибкость программы. За время эксплуатации программы могут измениться требования к решаемой задаче, техническое задание, требование к программе в связи с включением ее в новый комплекс программ и т.д. Появляется необходимость внести некоторые изменения в программу, что в некоторых случаях бывает очень трудно сделать, т.к. разработчиками не предусмотрена такая возможность. Если программа написана так, что ее невозможно изменить, то она рано или поздно окажется бесполезной.

  2. Уменьшение затрат на разработку. Проектирование и разработка программы должны вестись так, чтобы было возможно, при необходимости, передать ее для завершения другому программисту.

  3. Простота и эффективность. Программа должна быть просто организована.Это может проявляться и в структуре программы, характерной для программ, созданных в рамках процедурной парадигмы программирования, и в использовании простых

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

Эффективность программы считается многими программистами одной из главных ее характеристик. Поэтому часто в ущерб другим качествам программы разработчики прибегают к различным приемам, чтобы уменьшить объем используемой памяти или сократить время работы программы. Следует отметить, что в большинстве случаев эти усилия не оправдывают себя. Разумный подход к повышению эффективности програм­мы состоит в том, чтобы после ее разработки выявить в ней наиболее «узкие» места и постараться их улучшить. Как правило, это приводит к достаточному повышению эф­фективности программ и не ухудшает других ее важных характеристик.

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

Таким образом, процедурное программирование является методом составления хорошо структурированных программ с выделенными замкнутыми по смыслу алгорит­мами-процедурами, удобных для чтения и понимания человеком, прослеживания логи­ки их работы, внесения в них исправлений и других изменений.

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

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

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

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

Написание программ. Этот этап часто называют «кодированием», подчеркивая тем самым, что эта работа носит в основном технический характер, хотя качественная запись алгоритма на языке программирования имеет немаловажное значение.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]