Программа и этапы ее разработки. Структура программы — КиберПедия 

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Программа и этапы ее разработки. Структура программы

2017-09-27 406
Программа и этапы ее разработки. Структура программы 0.00 из 5.00 0 оценок
Заказать работу

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

Совокупность средств и правил представления алгоритма в виде, пригодном для выполнения компьютером, называется языком программирования.

Программа – это запись алгоритма на языке программирования.

В процессе создания любой программы можно выделить несколько этапов.

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

2. Анализ задачи и моделирование – определяются исходные данные и результат решения задачи, выявляются ограничения на их значения, выполняется формализованное описание задачи и построение математической модели, пригодной для решения на компьютере.

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

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

5. Кодирование – запись алгоритма на языке программирования. Современные системы программирования (Delphi) позволяют ускорить процесс разработки программы, автоматически создавая часть ее текста, однако вся творческая работа по-прежнему лежит на программисте. Для успешной реализации целей проекта программисту необходимо использовать современные технологии и методы программирования: структурное, модульное и объектно-ориентированное программирование.

6. Отладка и тестирование программы. Под отладкой понимается устранение ошибок в программе, не выявленных в процессе компиляции. Тестирование позволяет вести их поиск и, в конечном счете, убедиться в том, что полностью отлаженная программа дает правильный результат. Для этого разрабатывается система тестов – специально подобранных контрольных примеров с такими наборами параметров, для которых решение задачи известно. Тестирование должно охватывать все возможные ветвления в программе, то есть проверять все ее инструкции, и включать такие исходные данные, для которых решение невозможно. Проверка особых, исключительных ситуаций, необходима для анализа корректности. В ответственных проектах большое внимание уделяется так называемой защите от дурака (fool-tolerance), подразумевающей устойчивость программы к неумелому обращению пользователем. Использование специальных программ-отладчиков, которые позволяют выполнять программу по отдельным шагам, просматривая при этом промежуточные результаты, значительно упрощает этот этап.

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

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

Таким образом, программа реализует алгоритм решения задачи. Основными характеристиками программы являются следующие:

· точность полученного результата,

· время выполнения,

· объем требуемой памяти.

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

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

Таким образом, в программе выполняются следующие действия:

1. ввод данных,

2. определение представления этих данных в памяти компьютера (создание структур данных),

3. определение операций по обработке структур данных в соответствии с заданным алгоритмом – создание базовых структур,

4. вывод результатов работы.

Типовой алгоритм вычислительного процесса, реализованного в программе, имеет вид:

 

 

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

Любая программа состоит из заголовка и разделов.

Заголовок записывается как первая строка программы и начинается со слова Program, за которым следует имя программы:

Program Summa;

Program Primer_1;

Выбор заголовка программы подчиняется правилам выбора имени переменной. Заголовок заканчивается точкой с запятой.

За заголовком следуют разделы программы:

Uses раздел используемых модулей

В нем указываются имена стандартных и пользовательских модулей, используемых программой:

Uses CRT, Graph;

Label раздел описания меток

В нем перечисляются метки, используемые в программе. Любой оператор программы можно выделить, поставив перед ним метку – целое число без знака от 0 до 9999 или идентификатор. Метками снабжаются операторы программы, на которые осуществляется переход операторами GoTo, и отделяются от помеченного оператора двоеточием:

10: f:= f + 1;

Метки, объявленные в этом разделе, обязательно должны использоваться в программе. С другой стороны, все имеющиеся в программе метки должны быть обязательно описаны в этом разделе. Метки не должны повторяться. Раздел заканчивается точкой с запятой:

Label 20, 5, metka;

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

Const раздел определения поименованных и типизированных констант

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

Const eps = 2.71;

Тип константы определяется типом ее значения. Как правило, в этом разделе определяются размеры массивов, которые далее описываются в разделах Type или Var:

Const row = 2;

col = 3;

Значения констант, описанных в этом разделе, в программе изменять нельзя. Такие константы называются поименованными. В этом же разделе могут быть заданы типизированные константы, значения которых можно далее изменять, например, массивы:

Const mass: Array [1..row,1..col] Of Integer =((5,-2,0),(12,1,-20));

Заданы элементы массива mass, состоящего из двух строк и трех столбцов. Использование констант делает программу наглядной и удобной для отладки и внесения изменений.

Type раздел определения типов

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

Если мы хотим объяснить кому-нибудь новое для него понятие, то в простейшем случае перечисляем реальные объекты, охватываемые этим понятием. Например, как пояснить, что такое время года? Это, говорим мы, весна, лето, осень и зима. А сторона света? Это север, юг, восток и запад. В Паскале такие понятия можно выразить через перечисляемый тип данных:

Type TStorona = (sever, yug, vostok, zapad);

Конкретные значения типа перечисляются в скобках через запятую. Переменные заданного типа описываются далее в разделе Var. По принятому соглашению, имена новых типов начинаются с буквы T.

Таким образом, перечисляемый тип представляет собой упорядоченное множество значений, образуемое перечислением имен, входящих в этот тип. В программе с этими значениями можно оперировать, как с обычными константами, однако к ним нельзя применять арифметические и логические операции, но можно применять операции сравнения (значения считаются упорядоченными по возрастанию в порядке их перечисления), определять их порядковые номера функцией Ord, предшествующее и последующее значения функциями Pred и Succ:

yug > sever = True

Ord(sever) = 0 нумерация значений начинается с нуля!

Ord(zapad) = 3

Pred(vostok) = yug

Succ(vostok) = zapad

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

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

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

В ряду значений любого упорядоченного типа можно выделить более узкий диапазон или интервал:

2.. 5

-10.. 20

‘a’..’d’

Yug.. zapad

Эти значения образуют интервальный тип данных – тип, формируемый несколькими подряд идущими значениями одного упорядоченного типа. Границы значений интервального типа определяются наименьшей и наибольшей константами, ограничивающими выделенный интервал:

Type TIndex = 1..10;

TYear = 1970..2000;

TDay = 1..31;

TLitera = ‘a’..’z’;

Внимание! Между границами диапазона (интервала) ставятся две точки.

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

для TIndex - от 1 до 10

для TYear - от 1970 до 2000

для TDay - от 1 до 31

для TLitera - от ‘a’ до ‘z’

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

Внимание! Нельзя определять интервальный тип для вещественных данных.

Если переменной интервального типа данных присваивается значение, не соответствующее диапазону данного типа, то программа прерывается, и выдается ошибка:

Error 201: Range check errorошибка проверки диапазона возможных значений.

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

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

Var раздел описания переменных

В этом разделе перечисляются имена используемых в программе переменных с указанием их типов:

Var i, j: Integer; переменные целого типа

alfa: Real; переменная вещественного типа

b: Boolean; переменная логического типа

n, m: TIndex; переменные типа TIndex

x: TLitera; переменная типа TLitera

st: TStorona; переменная типа TStorona

k: 1..100; переменная интервального типа

В программе эти переменные могут принимать значения констант только своих типов,

Function, Procedure раздел описания функций и процедур

В программе он появляется только тогда, когда в ней используются функции и процедуры, написанные программистом.

Begin... End раздел операторов

В нем записываются операторы программы в соответствии с алгоритмом ее работы. Каждый оператор заканчивается точкой с запятой. На одной строке помещается по одному оператору. Раздел операторов заканчивается словом End, после которого ставится точка – это физический конец программы.

Пример: написать программу, определяющую сумму цифр целого трехзначного числа x = 543:

Program Summa;

Uses CRT;

Var x, s: Word;

Begin

ClrScr; очистка экрана

x:= 534;

s:= 0;

s:= s + x Mod 10;

s:= s + x Div 10 Mod 10;

s:= s + x Div 10 Div 10 Mod 10;

WriteLn(‘s=’,s); вывод результата работы программы на экран

ReadLn;

End.

Комментарии

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

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

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

Комментарием считается последовательность произвольных фраз, заключенных в символы {...} или (*...*):

{ это комментарий }

(* это комментарий *)

Поместить комментарий можно между любыми двумя соседними операторами программы или в конце оператора:

x:=x+1; {увеличиваем счетчик на единицу}

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

Ввод данных

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

Под вводом данных понимается передача информации из внешних устройств в оперативную память компьютера.

Ввод информации в программе осуществляется операторами:

Read(x1, x2, x3, …);

ReadLn(x1, x2, x3, …);

где x1, x2, x3, …- список ввода – перечень имен переменных, значения которых вводятся.

Пример: ReadLn(n, m, r); - ввести значения переменных

n, m, r.

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

Пользователь должен ввести с клавиатуры необходимое количество данных в соответствии с типами переменных, перечисленных в операторе ввода (чисел, символов, строк):

· если переменные целого или вещественного типа, то их значения можно вводить одной строкой, разделяя пробелами:

Е-12

· если переменные символьного типа, то при вводе одной строкой их значения записываются без апострофов и каких бы то ни было разделителей (пробелов или запятых), которые в этом случае будут восприниматься как символы,

· строки вводятся в соответствии с описанной длиной: если вводимая строка длиннее описанной, то она обрезается, если меньше, то пробелами недополняется,

· значения переменных логического типа нельзя вводить с клавиатуры,

· в любом случае значения переменных можно вводить по одному в строке:

1.5

-2.21

Е-12

· после выполнения оператора Read курсор на новую строку не переводится, а оператора ReadLn - переводится в начало новой строки и очищается буфер ввода,

· оператор ReadLn без списка ввода останавливает выполнение программы до тех пор, пока не будет нажата клавиша ENTER.

 

Вывод данных

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

Вывод информации в программе осуществляется операторами:

Write(x1, x2, x3, …);

WriteLn(x1, x2, x3, …);

где x1, x2, x3, … - список вывода – перечень имен переменных, значения которых выводятся.

Оператор WriteLn после вывода значения последней переменной списка вывода переводит курсор в начало следующей строки на экране монитора или в текстовом файле.

Вывод данных может быть осуществлен бесформатным и форматным способами.

 

Бесформатный способ вывода

В этом случае для вывода данных различных типов компьютер автоматически отводит заранее определенное число позиций на экране:

· для целых чисел отводится столько позиций, сколько в числе значащих цифр плюс позиция для знака ” минус ”: например, число +025 будет выведено как 25.

Таким образом, знак + при выводе не печатается, а само число занимает столько позиций на экране, сколько в нем значащих цифр,

· для данных вещественного типа отводится 17позиций:

±d.ddddddddddE±dd

Позиции распределяются следующим образом:

1-я - знак числа (если число положительное, то выводится пробел),

2-я - первая значащая цифра числа,

3-я - десятичная точка,

4 - 13-я - десять цифр дробной части с округлением,

14-я - буква E,

15-я - знак показателя степени,

16 – 17-я - две цифры показателя степени.

Пример: следующие числа

3,14159265358979

-798,344

9112,0789

-0,00598×10-5

бесформатным способом будут выведены так:

3.1415926536E+00

-7.9834400000E+02

9.1120789000E+03

-5.9800000000E-08

Таким образом, вещественные числа при выводе округляются или дополняются нулями до 10 цифр после запятой.

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

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

 

Форматный способ вывода

В этом случае программист сам задает формат вывода – количество позиций для вывода значения переменной.

Для целых чисел указывается длина поля вывода – общее количество позиций для вывода числа:

i:=-12;

WriteLn(i);

WriteLn(i:3);

WriteLn(i:7);

WriteLn(i:1);

На экран будет выведено:

-12

-12

-12

-12

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

Для данных вещественного типа необходимо указать как общую длину числа, включая его знак и десятичную точку, так и количество цифр в его дробной части – точность вывода:

Pi:=3.14159265358979;

WriteLn(Pi);

WriteLn(Pi:6:2);

WriteLn(Pi:7:4);

WriteLn(Pi:2:1);

WriteLn(Pi:0:2);

WriteLn(Pi:3:0);

 

На экран будет выведено:

3.1415926536e+00

3.14

3.1416

3.1

3.14

Таким образом, при некорректном задании формата вывода (вторая цифра формата больше или равна первой) определяющей для вывода числа является заданная точность вывода.

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

WriteLn(‘Pi=’,Pi:7:4);

На экран будет выведено:

Pi=3.1416

Для отступа от левого края экрана нужно указать необходимое количество пробелов слева от выводимого значения:

WriteLn(‘ ‘:30,‘Pi=’,Pi:7:4);

На экран будет выведено:

Pi=3.1416

30 пробелов

Оператор WriteLn без списка вывода пропускает на экране одну чистую строку.

 

Алгоритм и его свойства

Алгоритм – это последовательность предписаний (команд), точное выполнение которых приводит к решению поставленной задачи.

Правильно построенные алгоритмы должны обладать следующими свойствами:

дискретность - алгоритм разбит на отдельные элементарные этапы (шаги), возможность выполнения которых не вызывает сомнений,

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

детерминированность - повтор результатов при повторе исходных данных,

результативность - алгоритм должен приводить к результату за конечное число шагов,

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

 

Схемы алгоритмов

Любой алгоритм можно представить или записать тремя способами:

· словесным (вербальным) - с использованием слов и предложений,

· табличным (аналитическим) - с помощью формул и таблиц,

· графическим - с помощью рисунков, геометрических фигур и символов.

Самым наглядным из них является графический способ – представление алгоритма схемой.

Схема алгоритма – это графическое изображение его структуры, отдельных составных частей и взаимосвязей между ними.

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

 

Правила выполнения схем алгоритмов устанавливает Единая система программной документации (ЕСПД), в которую входят:

ГОСТ 19002-80 “Схемы алгоритмов и программ. Правила выполнения”

ГОСТ 19003-80 “Схемы алгоритмов и программ. Обозначения условные графические”

Перечень, наименование, обозначение и размеры наиболее употребляемых символов и отображаемых ими функций:

процесс - выполнение операции или группы операций, в результате которых изменяется значение, форма представления или расположение данных,

решение - выбор направления выполнения программы или алгоритма в зависимости от некоторых переменных условий,

модификация – выполнение операций, меняющих команды или группу команд, изменяющих программу,

 

предопределенный процесс – использование ранее созданных или отдельно описанных алгоритмов или программ,

 

данные - преобразование данных в форму, пригодную для обработки (ввод) или регистрации результатов обработки (вывод),

дисплей - вывод данных на дисплей (монитор).

 

терминатор - начало, конец, прерывание процесса обработки данных при выполнении программы,

линии потока - линии, связывающие символы схемы: линии,

идущие справа налево или снизу вверх, должны иметь стрелки.

 

комментарий - добавление описательных комментариев или пояснительных записей

 

Пример записи

алгоритма:

 

 

Для построения удобных в работе схем алгоритмов необходимо руководствоваться следующими правилами:

ü каждая схема должна иметь точку начала и точку конца,

ü от точки начала блоки располагаются сверху вниз и слева направо,

ü направление линий потока сверху вниз и слева направо принимается за основное и, если линия потока не имеет излома, то стрелками ее можно не обозначать,

ü расстояние между параллельными линиями потока должно быть не менее 3 мм, между остальными линями схемы – не менее 5 мм,

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

ü запись в блоках должна быть словесной или математической, а не в виде операторов конкретного алгоритмического языка: нужно показать, что делается в блоке, а не как это делается,

ü записи внутри блоков должны быть расположены так, чтобы их можно было читать слева направо и сверху вниз независимо от направления линий потока,

ü схема должна читаться без дополнительных пояснений автора,

ü используемые в некотором блоке переменные должны получать конкретные значения в предыдущих или в том же блоке,

ü входные и выходные блоки подпрограмм должны содержать перечень соответственно входных и выходных параметров,

ü блоки можно объединять в более крупные пунктирными линиями, при этом необходимо описать назначение объединенных блоков,

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

 

Базовые структуры

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

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

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

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

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

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

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

Цепочка

Самой простой базовой структурой является цепочка – последовательность операторов присваивания.

Цепочку можно представить следующей схемой:

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

 

Алгоритм циклического обмена в этом случае будет выглядеть следующим образом:

Переменные a и b обмениваются своими значениями через переменную x.

По этому алгоритму можно написать последовательность операторов на Паскале:

x:= a;

a:= b;

b:= x;

Ветвления

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

Выбор пути решения осуществляется в алгоритмических языках ветвлениями, которые могут быть представлены в двух формах:

· альтернатива,

· переключатель.

Альтернатива

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

истина (да)ложь (нет)

 

 

Альтернативу можно описать словесно:

ЕСЛИ (условие)

ТО цепочка-1

ИНАЧЕ цепочка-2

В альтернативе может отсутствовать часть (ветвь) ИНАЧЕ, тогда она приобретает вид усеченной альтернативы:

истина (да) ложь (нет)

 

 

ЕСЛИ (условие)

ТО цепочка-1

В альтернативе в качестве условия используется логическое выражение, которое, как известно, может быть истинным или ложным.

 

Действие альтернативы:

1. проверяется выполнение условия,

2. если условие истинно, то выполняется следующая за ним цепочка-1, а цепочка-2, если она имеется, не выполняется,

3. если условие ложно, то выполняется цепочка-2, если она имеется.

В Паскале альтернатива реализуется условным оператором:

If (условие)

Then оператор-1

Else оператор-2;

где условие – это любое логическое выражение.

После ключевых слов Then и Else в Паскале может следовать только один оператор языка, причем перед Else точка с запятой не ставится.

Примеры:

1. определить значения переменной z после выполнения операторов:

x:= 1;

z:= 3;

If (x


Поделиться с друзьями:

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.237 с.