Результативность (сходимость). 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Результативность (сходимость).



Конечный результат должен быть получен после выполнения определённого не бесконечного количества шагов.

 

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

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

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

Существуют стандартные структуры соединения блоков. Это последовательностные структуры (рис.2.1), когда блоки просто вызываются друг за другом. Ветвящиеся структуры - это структуры с возможностью нескольких вариантов продолжения (рис. 2.2). Циклические структуры, когда одни и те же действия повторяются несколько раз с небольшими изменениями.

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

Иногда блок-схему алгоритма дополняет словесное описание, необходимое для более чёткого представления действий, выполняемых отдельным блоком и группой блоков. Словесное описание сделать легче, если блоки пронумеровать.

На основании составленного алгоритма пишется программа на конкретном языке программирования.

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

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

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

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

Такой подход получил название модульной структуризации.

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

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

Рекомендуется каждый программный модуль писать и отлаживать отдельно с последующим присоединением его к остальной программе.

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

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

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

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


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

3 Краткие сведения о языке программирования
Общая структура программ

Простейшая программа на языке С выглядит так:

void main() { }

Операторы программы вставляются между фигурными скобками {} и выполняют действия основной(главной) функции программы. Некоторая информация может быть указана до main.

Более общая структура программы как правило содержит следующие элементы:

#include <имя заголовочного файла>

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

#define имя замещение

Директива препроцессора, задающая константы.

Объявления глобальных переменных и типизированных констант.

Опережающее объявление функций.

Основная функция main().

Определения функций

Условный оператор – оператор IF

 

if(условие) оператор1;

else оператор2;

Условие представляет собой логическое выражение, результат которого ЛОЖЬ (0) или ИСТИНА (не нулевое целое).

Например:

if((а<5)&& (b<7)) a=b+2;

else b+=2;

В случае если условие истинно, то выполняется оператор1 (a=b+2) иначе оператор2 (b=b+2). Перед ключевым словом else ставится точка с запятой. Существуют конструкции, когда ключевое слово ELSE отсутствует:

Например: if(a==5) a=0;

Если в случае выполнения или невыполнения условия надо выполнить несколько операторов, оператор 1 или 2 делается составным. Он начинается с { и заканчивается }.

if(а<0){

a=5;

b=7

}

else {

b=0;

a=7;

}

На практике часто используется конструкция if else if, в которой в случае не выполнения первого условия, после else идет проверка другого условия и т.д.

Например:

if(а>5) k=1;

else if(а<5) k=-1;

else if(а==5) k=0;



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 261; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.23.101.60 (0.008 с.)