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

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

Анализ алгоритма

Читайте также:
  1. Cпектральный анализ - способ определения химического состава вещества по его спектру.
  2. E) биохимические анализы крови.
  3. I. Дистрибутивный анализ. Дистрибутивная структура языка на фонемном уровне.
  4. II. Метод синтаксического анализа по непосредственно составляющим.
  5. II. Основные теории по анализу международных отношений.
  6. II.1. Оценка финансовой деятельности строительной организации с помощью финансового анализа.
  7. II.1.2.2. Анализ финансовой устойчивости предприятия
  8. II.1.2.3. Анализ ликвидности
  9. II.1.2.6. Анализ показателей рентабельности
  10. II.1.2.Методика финансового анализа

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

Каждое реальное вычисление характеризуется:

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 | Поможем написать вашу работу | Нарушение авторских прав




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