Читайте также:
|
|
Прежде чем приступить к реализации алгоритма для конкретной аппаратной платформы, следует провести оценку времени работы и объема требуемой памяти. Вполне вероятна ситуация, что для решения относительно простой задачи потребуются часы, дни и даже годы машинного времени. Анализ алгоритмов представляет собой раздел информатики, занимающийся выводом количественной информации об эффективности компьютерных методов.
Каждое реальное вычисление характеризуется:
1. Определенной длительностью, физическим временем выполнения (время);
2. Объемом требуемой памяти, физическим пространством (емкость).
Программная реализация алгоритма.
После того, как алгоритм разработан, доказана его правильность и проведен анализ, можно приступить к реализации алгоритма, т.е. созданию программы для ПК.
Из правильности алгоритма вовсе не следует правильность программы, созданной на основе этого алгоритма.
22.
- вербальный, когда алгоритм описывается на человеческом языке;
- символьный, когда алгоритм описывается с помощью набора символов;
- графический, когда алгоритм описывается с помощью набора графических изображений.
23. Однако все-таки сам по себе он не молчет гарантироватьправильности алгоритма. Ошибки, особенно при разработке нетривиальных алгоритмов, неизбежно возникают, например, при перфорации. Поэтому с самого начала необходимо применять дополнительные средства (так называемые стопоры ошибок), повышающие надежность алгоритма и позволяющие эффективнее вести поиск ошибок при последующей отладке. Одно из таких средств было упомянуто в конце предыдущего параграфа - это вставка утверждений в различные точки паскаль-программ, прежде всего в операторы цикла
24. Процесс решения задачи на компьютере - это совместная деятельность человека и ЭВМ. Этот процесс можно представить в виде нескольких последовательных этапов. На долю человека приходятся этапы, связанные с творческой деятельностью - постановкой, алгоритмизацией, программированием задач и анализом результатов, а на долю компьютера - этапы обработки информации в соответствии с разработанным алгоритмом.
Первый этап - Постановка задачи.
На этом этапе учавствует человек, хорошо представляющий предметную область задачи. Он должен четко определить цель задачи, дать словесное описание содержания задачи и предложить общий подход к ее решению.
Второй этап - Математическое или информационное моделирование.
Цель этого этапа - создать такую математическую модель решаемой задачи, которая может быть реализована в компьютере. Существует целый ряд задач,где математическая постановка сводиться к простому перечислению формул и логических условий. Этот этап тесно связан с первым этапом, и его можно отдельно не рассматривать, однако возможно, что для полученной модели известны несколько методов решения, и тогда предстоит выбрать наиболее эффективный.
Третий этап - Алгоритмизация задачи.
На основе математического описания необходимо разработать алгоритм решения. Более подробно этот этап будет рассмотрен в пункте "1.1.2 Основы алгоритмизации" данной главы.
Четвертый этап - Программирование.
Программой называется план действий, подлежащих выполнению некоторым сполнителем,в качестве которого выступает компьютер. Составление программы обеспечивает возможность выполнения алгоритма соответственно поставленной задачи исполнителем - компьютером.Во многих задачах при программировании на алгоритмическом языке часто пользуются заменой блока алгоритма на один или несколько операторов, введением новых блоков, заменой одних блоков другими. Процесс программирования заканчивается вводом программы и исходных данных в ЭВМ с клавиатуры с помощью редактора текстов, и для постоянного хранения осуществляется их запись на носитель.
Пятый этап - Тестирование и отладка программы.
На этом этапе производят выполнение алгоритма с помощью ЭВМ, поиск и исключение ошибок. При этом программисту приходиться выполнять рутинную работу по проверке работы программы, поиску и исключению ошибок, и поэтому для сложных программ этот этап часто требует гораздо больше времени и сил, чем написание первоначального текста программы.
Отладка программы - сложный и нестандартный процесс. Исходный план отладки заключается в том, чтобы протестировать программу на контрольных примерах. Контрольные примеры стремятся выбрать так, чтобы при работе с ними программа прошла все основные пути блок-схемы алгоритма, поскольку на каждом из путей могут быть свои ошибки, а детализация плана зависит от того, как поведет себя программа на этих примерах: на одном она может зациклиться (то есть бесконечно повторять одно и то же действие), на другом - дать явно неверный или бессмысленный результат и так далее. Сложные программы отлаживают отдельными фрагментами.
После тестирования и отладки происходит исполнение программы и анализ результатов. Полученные в результате решения выходные данные анализируются постановщиком задачи, и на основании этого анализа вырабатываются соответствующие решения, рекомендации, выводы.
Возможно, что по итогам анализа результатов потребуются пресмотр самого подхода к решению задачи и возврат к первому этапу для повторного выполнения всех этапов с учетом приобретенного опыта. Таким образом, в процессе создания программы некоторые этапы будут повторяться до тех пор, пока мы получим алгоритм и программу, удовлетворяющие указанным свойствам.
25. Главным квалификационным признаком языков и, следовательно, систем программирования является принадлежность к одному из оформившихся к настоящему времени стилей программирования, каждому из которых соответствует своя собственная модель вычислений.
Языки программирования | |||
Процедурные | Функциональные | Логические | Объектно-ориентированные |
26. Компиляция и интерпретация
Т ранслятор представляет собой программу, на основе которой машина преобразует вводимые в нее программы на машинный язык, поскольку вычислительная машина может выполнять программы, записанные только на языке машины, и алгоритмы, заданные на другом языке, должны быть перед их выполнением переведены на машинный язык.
Также система программирования может включать в себя:
· библиотеки стандартных подпрограмм,
· отладчик
· компоновщик
· и другие сервисные средства
Транслятор (англ. translator – переводчик) – это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.
Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.
Компилятор (англ. compiler – составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
Интерпретатор (англ. interpreter – истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.
После того, как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы.
Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.
Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию – в зависимости от того, для каких целей он создавался. Например, Паскаль обычно используется для решения довольно сложных задач, в которых важна скорость работы программ. Поэтому данный язык обычно реализуется с помощью компилятора.
С другой стороны, Бейсик создавался как язык для начинающих программистов, для которых построчное выполнение программы имеет неоспоримые преимущества.
Иногда для одного языка имеется и компилятор, и интерпретатор. В этом случае для разработки и тестирования программы можно воспользоваться интерпретатором, а затем откомпилировать отлаженную программу, чтобы повысить скорость ее выполнения.
27. Тестирование алгоритма – это проверка правильности или неправильности работы алгоритма на специально заданных тестах или тестовых примерах – задачах с известными входными данными и результатами (иногда достаточны их приближения). Тестовый набор должен быть минимальным и полным, то есть обеспечивающим проверку каждого отдельного типа наборов входных данных, особенно исключительных случаев. Тестирование алгоритма не может дать полной (100%-ой) гарантии правильности алгоритма для всех возможных наборов входных данных, особенно для достаточно сложных алгоритмов. Структурное программирование — метод написания программ небольшими независимыми частями — модулями, каждый из которых связан с какой-либо процедурой или функцией. При этом результирующая программа организуется в виде совокупности взаимосвязанных по определенным правилам момодулей. Это упрощает разработку сложных программных продуктов и их тестирование
28. Программа на языке Pascal всегда состоит из двух основных частей: описания последовательности действий, которые необходимо выполнить, и описания данных, с которыми оперируют действия. Действия представляются операторами языка, данные вводятся посредством описаний и определений. Кроме того, программа может быть снабжена заголовком, который задаст имя программы и ее параметры.
Описания данных текстуально предшествуют описанию действий и должны содержать упоминание всех объектов, используемых в действиях (операторах).
Рассмотрим полную структуру программы на языке Паскаль. В общем случае программа состоит из:
Определение констант задает в программе идентификаторы, являющиеся синонимами (представителями) некоторых значений.
Определение типов предназначено для задания конкретных множеств значений. Указанные множества обозначаются именами (идентификаторами) и в дальнейшем могут служить для описания переменных.
Описание переменных вводит совокупность данных, с которыми производятся действия. Переменная обозначается идентификатором; с каждой переменной связывается ее тип, определяющий множество допустимых значений этой переменной и, соответственно, набор допустимых операций.
Наконец, описание процедуры или функции определяет часть программы как отдельную синтаксическую единицу и сопоставляет с ней имя. Впоследствии действия, сосредоточенные в процедуре (функции), могут быть выполнены ("вызваны") посредством указания ее имени. Кроме действий, описание процедуры (функции) может содержать совокупность описаний локальных объектов, образующих собственный контекст имен. Процедуры и функции являются основным средством структурирования программы.
В авторской версии языка Pascal описания всех перечисленных объектов должны быть сосредоточены в соответствующих разделах, а порядок следования разделов фиксирован. Однако, современные реализации, в частности, Turbo Pascal, не содержат такого ограничения. Иными словами, описания и определения всех объектов в блоке могут следовать в произвольном порядке.
МОЖНО по ДОРУГОМУ записать!!!
Программы на языке Турбо Паскаль имеют блочную структуру:
1. Блок типа PROGRAM – имеет имя, состоящее только из латинских букв и цифр. Его присутствие не обязательно, но рекомендуется записывать для быстрого распознавания нужной программы среди других листингов.
2. Программный блок, состоящий в общем случае из 7 разделов:
Общая структура программы на языке Турбо Паскаль следующая:
Рrogram ИМЯ..; {заголовок программы в среде Турбо Паскаль}
Uses...; {раздел описания модулей}
Var..; {раздел объявления переменных}
...
Begin {начало исполнительной части программы}
... {последовательность операторов}
...
End. {конец программы}
Пример работающей программы на языке Турбо Паскаль:
Program first;
Uses Crt;
Var a: string;
BEGIN
a:= "Привет!";
writeln(a);
END.
29. 1. Простые типы (скалярные типы) - к таким типам данных относят типы данных таких величин, значения которых не содержит составных частей
Дата добавления: 2015-01-30; просмотров: 183 | Поможем написать вашу работу | Нарушение авторских прав |