1

К оглавлению

   

81. Процедурное программирование

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

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

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

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

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

Процедурные языки характеризуются следующими особенностями:

•   необходимостью явного управления памятью, в частности, описанием переменных;

•   малой пригодностью для символьных вычислений;

•   отсутствием строгой математической основы;

•   высокой эффективностью реализации па традиционных ЭВМ.

Различают такие языки процедурного программирования:

 Язык Фортран создан в начале 50-х годов 20-го века для программирования научно-технических задач;

 Кобол – создан в конце 60-х годов 20-го века для решения задач обработки больших объемов данных, хранящихся на различных носителях данных;

 Алгол (1960 год) – это многоцелевой расширенный язык программирования. В нем впервые введены понятия «блочная структура программы» и «динамическое распределение памяти»;

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

Все перечисленные выше языки были ориентированы на различные классы задач, но они в той или иной мере были привязаны к конкретной архитектуре ЭВМ.

 В 1963-1966гг был создан многоцелевой универсальный язык PL-1. Этот язык хорошо приспособлен для исследования и планирования вычислительных процессов, моделирования, решения логических задач, разработки систем математического обеспечения.

 Язык Паскаль (PASCAL) (1968-1971гг)- язык процедурного программирования наиболее популярный для ПК, который и в настоящее время успешно применяется.

К языкам процедурного программирования можно отнести язык АДА (1979 г) Язык назван в честь первой программистки Ады Лавлейс- дочери Байрона. Его отличает модульность конструкций.

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

Язык Паскаль

Pascal является одним из наиболее популярных среди прикладных программистов процедурным языком программирования, особенно для ПЭВМ.

 В основу языка Pascal положен подход от общей задачи к частным (более простым и меньшим по объему).

 К основным принципам, которыми обладает Паскаль, можно отнести:

 а) Структурное программирование, которое основано на использовании подпрограмм и независимых структур данных;

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

Pascal реализован на ЭВМ различных типов, но наиболее распространен и развит для ПЭВМ. В настоящее время широко используются такие версии этого языка для ПЭВМ, как Borland Pascal и TurboPascal.

Язык Pascal содержит удобные средства для представления данных. Развитая система типов позволяет адекватно описывать данные, подлежащие обработке, и конструировать структуры данных произвольной сложности.

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

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

Основная структура программы.

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

Program <Имя программы>;     {заголовок}

<Раздел описаний>  

Begin

<Тело программы>

End.

В начале программы пишется заголовок, состоящий из зарезервированного слова program и имени программы, которое придумывает программист,

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

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

Константа - явное представление значения. При выполнении программы значение константы никогда не меняется.

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

Переменные отличаются от констант тем, что им можно присваивать новые значения при исполнении программы.  Подраздел описания переменных начинается со служебного слова var. Следом идут описания переменных, каждое из которых начинается со списка имен переменных, разделяемых запятыми, затем идет символ «:», затем указывается тип этих переменных. Завершается каждое описание точкой с запятой. Тип данных характеризует множество значений, которые может принимать объект; множество операций, которые могут применяться к объекту; размер памяти, занимаемый объектом. В программе на Паскале можно использовать много типов переменных и создавать свои типы. В стандарте Паскаля определено 4 простых типа: integer- целый, real- вещественный, char - символьный и boolean - логический.

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

Целочисленный тип определяет все целые числа в диапазоне от -32768 до +32767.
Формат: <идентификатор, . . .>: integer;

Байтовый тип аналогичен целочисленному, но охватывает более узкий диапазон значений от 0 до 255. Описывается стандартным идентификатором byte.

Вещественный тип данных включает все положительные числа от 1Е-38 до 1Е+38, соответствующие отрицательные числа и 0. Мантисса может содержать до 11 значащих цифр. Описываются стандартным идентификатором real.

Логический (Булевский) тип данных описывается стандартным идентификатором boolean. Переменные и константы этого типа могут принимать одно из двух значений: True - истина и False - ложь.

Символьный тип данных описывается стандартным идентификатором char. Константы и переменные этого типа могут принимать одно из значений кодовой таблицы ПЭВМ.

Основные операторы

1) Операторы ввода/вывода: read, readln, write, writeln.

2) Оператор присваивания. Оператор присваивания (:=) предписывает вычислить выражение, заданное в его правой части, и присвоить результат вычисления переменной, идентификатор которой расположен слева от символа присваивания. Переменная и результат вычисления выражения должны иметь совместимые типы данных.

3) Составной оператор или последовательность объявляет некоторую последовательность операторов в виде одного оператора. Это необходимо при использовании последовательностей операторов в других управляющих операторах. 

Формат составного оператора:

Begin
  [<оператор>;]

end;

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

4) Условный оператор

Для задания ветвящихся алгоритмов в языке Паскаль используется условный оператор. 

Условный оператор предписывает выбор направления выполнения алгоритма в зависимости от некоторых условий. Условный оператор может иметь две формы: полную и неполную.

5) Оператор выбора Case является обобщением оператора if и позволяет сделать выбор из произвольного количества возможных вариантов. Он состоит из выражения, называемого селектором, и списка операторов, каждому из которых предшествует список констант выбора. Как и в операторе if, в операторе Case может присутствовать часть else (“иначе”), имеющая тот же смысл.

 Формат оператора выбора:

case <выражение-селектор> of

< список_констант _1> : <оператор_1>;

< список_констант _2> : <оператор_2>;

 . . .

< список_констант _N> : <оператор_N>

else 

  <оператор>

end;

6) Операторы цикла

Цикл предписывает многократное выполнение одной и той же последовательности действий.

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

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

Формат оператора цикла с параметром:

for <параметр цикла> := <N> to <K> do <оператор>;

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

for <параметр цикла> := <N> downto <K> do <оператор>;

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

Формат оператора цикла с предусловием: 

while <условие> do <оператор>;

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

Формат оператора цикла с постусловием:

Repeat [<оператор>;]

until <условие>;

При выполнении этого оператора цикла последовательность операторов, находящихся между символами repeat и until, выполняется один или более раз. Этот процесс завершается, когда после очередного выполнения заданной последовательности операторов логическое выражение, записанное в <условии>, впервые принимает значение True.

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

Формат объявления функции:

Function <имя> [(формальные параметры)] : <тип результата>;

[<разделы объявления данных>]

Begin

<исполняемый раздел>

end;
где тип результата – тип данных возвращаемого результата.

Остальные элементы объявления функции имеют тот же смысл и формат, как и в процедуре.

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

Формат вызова функции: <имя функции> [(фактические параметры)]

В среде Турбо-Паскаль вы можете иметь любое количество открытых окон, но в любой момент времени может быть активным только одно окно. Активное окно - это окно, с которым вы работаете в настоящий момент. Любая команда или вводимый текст относятся только к активному окну.

Окна в среде Турбо-Паскаль имеют следующие компоненты:

1. Заголовок окна.

2. Закрывающая кнопка.

3. Полосы скроллинга (прокрутки).

4. Уголок для изменения размеров окна.

5. Кнопка масштабирования.

6. Номер окна.

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

 

К оглавлению

Hosted by uCoz