МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ [9.



Работа добавлена на сайт TXTRef.ru: 2019-10-29

ОГЛАВЛЕНИЕ

[1] ЯЗЫК ПРОГРАММИРОВАНИЯ

[2] КОМПИЛЯТОРЫ И ИНТЕРПРЕТАТОРЫ

[3] УРОВНИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

[4] ПОКОЛЕНИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

[5] ЯЗЫКИ ПРОГРАММИРОВАНИЯ БАЗ ДАННЫХ

[6] СИСТЕМЫ ПРОГРАММИРОВАНИЯ. СРЕДСТВА СОЗДАНИЯ ПРОГРАММЫ

[7] ИНТЕГРИРОВАННЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ

[8] ОСНОВНЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ

[9] АЛГОРИТМИЧЕСКОЕ (МОДУЛЬНОЕ) ПРОГРАММИРОВАНИЕ

[9.1] ПЕРЕМЕННЫЕ И КОНСТАНТЫ

[9.2] ЧИСЛОВЫЕ ДАННЫЕ

[9.3] АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ

[9.4] АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ

[9.5] ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ

[9.6] СТРОЧНЫЕ ВЫРАЖЕНИЯ

[10] СЛОЖНЫЕ ДАННЫЕ

[11] ПРАВИЛА РАБОТЫ СО СЛОЖНЫМИ ТИПАМИ

[12] ОПИСАНИЕ ПЕРЕМЕННЫХ

[13] НОВЫЕ ТИПЫ ДАННЫХ

[14] РАЗДЕЛЕНИЕ ОПЕРАТОРОВ

[15] БЛОК ОПЕРАТОРОВ

[16] ОБЛАСТЬ ДЕЙСТВИЯ ОПЕРАТОРОВ

[17] ОПЕРАТОР ПРИСВАИВАНИЯ

[18] КОММЕНТАРИИ

[19] УСЛОВНЫЙ ОПЕРАТОР (УСЛОВНЫЕ ВЫЧИСЛЕНИЯ)

[20] ОПЕРАТОРЫ ЦИКЛА

[21] ВВОД И ВЫВОД

[22] СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ

[22.1] Подпрограммы

[22.2] Нисходящее проектирование

[22.3] Процедуры и функции

[22.4] Параметры подпрограмм

[22.5] Структура подпрограммы:

[22.6] Формальные и фактические параметры

[23] ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ


ОСНОВЫ ПРОГРАММИРОВАНИЯ

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

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

Управлять компьютером можно по определенному алгоритму. Алгоритм — это точное описание способа решения задачи в виде конечной (по времени) последовательности действий (формальное описание). Для представления алгоритма в виде, понятном ПК, служат языки программирования. Текст программы трансляторами переводится в машинный код, либо исполняется.

ЯЗЫК ПРОГРАММИРОВАНИЯ

Машинный код сложен для использования, если размер программы велик. Языки программирования — это искусственные языки, они отличаются ограниченным числом «слов», значение которых понятно транслятору и подчиняются строгим правилам записи команд (операторов). Совокупность таких требований образует синтаксис языка программирования, а смысл каждой команды и конструкций языка — его семантику. Существует два вида ошибок: синтаксическая (нарушение формы записи) и семантическая (правильно написанное, но не отвечающее алгоритму использования команд или логическая ошибка, либо ошибка времени выполнения).

Процесс поиска ошибок называется тестированием, процесс устранения — отладкой.

КОМПИЛЯТОРЫ И ИНТЕРПРЕТАТОРЫ

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

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

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

Недостатками являются:

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

В современных системах программирования перемешаны технологии компиляции и интерпретации.

УРОВНИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

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

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

Недостатки: необходимы хорошие знания устройства ПК, отсутствует возможность переноса на систему с другим типом процессора.

Языки программирования высокого уровня понятнее человеку, чем ПК. Легко переносятся на другие платформы, ошибок допускается меньше.

ПОКОЛЕНИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

  1.  50-х годов — язык ассемблера (Fortran).
  2.  Начало 60-х — символический ассемблер (Cobol).
  3.  60-е годы — небольшие программы инженерного и экономического характера (Algol, Basic).
  4.  С начало 70-х и по настоящее время — предназначены для крупных проектов (Pascal, C, C++ [объектно-ориентированное расширение C]).
  5.  С середины 90-х — системы создания прикладных программ с помощью визуальных средств разработки без знания программирования (Java на основе C++).

ЯЗЫКИ ПРОГРАММИРОВАНИЯ БАЗ ДАННЫХ

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

При работе с БД выполняются следующие операции:

  •  создание/модификация/удаление таблиц в БД;
  •  поиск, отбор, сортировка информации;
  •  добавление новых записей;
  •  модификация и удаление существующих записей.

Структурированный язык запросов SQL (Structured Query Language). Для управления большими БД разработаны СУБД (Системы управления БД).

Ведущие производители СУБД: Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix, Sybase. В настоящее время dBasell, СУБД FoxPro и Clipper, Visual FoxPro фирмы Microsoft и Visual dBasell фирмы Inprise.

СИСТЕМЫ ПРОГРАММИРОВАНИЯ. СРЕДСТВА СОЗДАНИЯ ПРОГРАММЫ

  1.  Текстовый редактор — специализированные редакторы, ориентированные на конкретный язык программирования. Позволяет выделять ключевые слова и идентификаторы разными цветами и шрифтами.
  2.  Программа-компилятор выдает промежуточный объектный код (двоичный файл, стандартное расширение *.obj).
  3.  Исходный текст большой программы состоит из модулей, которые затем объединяются в одно целое, кроме того к ним добавляются подпрограммы стандартных функций (sin, ln и т.д.) - библиотеки (*.lib), которые поставляются поставляются вместе с компиляторами, т.е. получить на выходе программу определенного формата. Объектный код обрабатывается специальной программой — редактором связей или сборщиком.
  4.  Исполнительный код — это законченная программа, которую можно запустить на любом ПК и имеет расширение *.exe или *.com.

ИНТЕГРИРОВАННЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ

Таким образом для создания программы необходимы:

  •  тестовый редактор;
  •  компилятор;
  •  редактор связей;
  •  библиотеки функций.

Хорошая интегрированная системы включает все 4 составляющие, все этапы создания программы автоматизированы, компиляция и сборка выполняется одним нажатием клавиши.

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

ОСНОВНЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ

Наиболее популярны визуальные средства быстрого проектирования программ для Windows:

  •  Basic, Microsoft Visual Basic;
  •  Pascal, Borland Delphi;
  •  C++, Borland C++ Builder;
  •  Java, Symantec Cafe.

В дальнейшем рассматриваются возможности, характерные для Basic, Pascal, C++.

АЛГОРИТМИЧЕСКОЕ (МОДУЛЬНОЕ) ПРОГРАММИРОВАНИЕ

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

ПЕРЕМЕННЫЕ И КОНСТАНТЫ

Данные — это числа, строки и логические величины (1 и 0, да и нет, истина и ложь). Эти типы данных называют базовыми.

Переменные — английские буквы, цифры, символы подчеркивания (Hello, Sum, X1, H8_P4).

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

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

Статические — тип не меняется на всем протяжении работы программы.

Динамические — создаются и уничтожаются на разных этапах функционирования программы.

Константы (постоянные) — значения не меняются, тоже имеют тип и можно указывать явно (123, 2.87, «это строка», pi (или 3.1416).

ЧИСЛОВЫЕ ДАННЫЕ

  1.  Числа бывают двух видов: целые и дробные.
  2.  Очень большие или очень маленькие числа записываются указанием мантиссы — число со знаком, являющееся степенью числа 10.

100=1e+2

0.003=3e-3

Тип числа

Basic

Pascal

C++

Целое

INTEGER

integer

int

Дробное

DOUBLE

real

float

АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ

+, -, * ,/ - в большинстве языков программирования.

b*2+c/3

b*(2+c)-3

((y+2)*3+1)/2

АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ

Состоят из операций и операндов (переменных и констант): a2+2

ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ

True – истина, да, включена, 1.

False – ложь, нет, выключено, 0.

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

операция

Basic, Pascal

C++

равно

=

= =

не равно

<>

!=

меньше

<

<

меньше или равно

<=

<=

больше

>

>

больше или равно

>=

>=

Pi= = 3.14

x>0

a1<>b1

1 операнд

2 операнд

И

ИЛИ

исключ. ИЛИ

НЕ (только операнд 1)

true

true

true

true

false

false

true

false

false

true

true

false

false

true

false

true

true

true

false

false

false

false

false

true

Логическая операция

Basic

Pascal

C++

И

AND

and

&&

ИЛИ

OR

or

||

НЕ

NOT

not

!

Приоритеты всех логических операций ниже, чем приоритеты операций сравнения.

  •  Сравнения выполняются первыми. Логические операции выполняются в следующем порядке: НЕ, И, ИЛИ.

x1>=1 && x1<=10

(R>3.14) and (R<3.149)

(Value<oldValue) OR (Value<>0)

Логический тип

Basic

Pascal

C++

Базового типа нет, используется числовой тип INTEGER

boolean

bool

СТРОЧНЫЕ ВЫРАЖЕНИЯ

В C++ и Basic  ''это строка''  '' '' - пустая строка

В Pascal   'это строка'  '  ' - пустая строка

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

''123'' + ''4567'' = ''1234567''

Тип «строка»

Basic

Pascal

C++

STRING

string

Базового типа «строка» нет

Указатели — адрес физической памяти. Имеется специальная операция получения адреса конкретной переменной, что позволяет работать с памятью напрямую.

СЛОЖНЫЕ ДАННЫЕ

Структуры. Описание данных в виде максимально приближенных к их реальным аналогам. Например, чтобы организовать обработку данных по студентам, в программе удобно не просто описать десяток различных переменных, а объединить их в структуру (или запись) «студент», состоящего из полей разного типа «имя», «пол», «год рождения», «группа» и т.д. То есть сложные типы данных. В результате удается организовать структуры данных произвольной сложности: списки, деревья и т.п. Структура объединяет группу разных данных под одним названием. Получить доступ к отдельным составляющим (полям) этой структуры можно по их именам, т.е. имени структуры и имени поля через точку. Если происходит обращение к полю, которое само является структурой, то выделение нужного поля продолжается приписыванием справа имени вложенного поля через точку.

Синтаксис описания структуры

Basic

Pascal

C++

TYPE имя структуры

поле AS тип

END TYPE

type имя структуры = record

поле: тип;

end;

struct имя структуры

{ тип поле;

};

Пример:

Basic

Pascal

C++

TYPE Student

Name AS STRING

Sex AS INTEGER

BirthYear AS INTEGER

END TYPE

type Student = record

Name: string;

Sex: boolean;

BirthYear: integer

end;

struct Student

{ AnsiString Name;

bool Sex;

int BirthYear;

};

Доступ к содержимому структуры:

Student.BirthYear = 1980;

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

Синтаксис описания массива

Basic

DIM имя (число элементов) AS тип

Pascal

Имя = array [нижняя граница .. верхняя граница] of тип

C++

Тип имя [число элементов]

В Basic нижняя граница равна 1.

В C++ 0;

В Pascal она указывается явно.

Пример:

Basic

DIM IntArray (1000) AS INTEGER

Pascal

IntArray = array [1..1000] of integer

C++

int IntArray [1000]

Доступ к элементу массива осуществляется по его номеру. Этот номер указывается в круглых (для Basic), в квадратных [для Pascal и C++] - такое действие называется индексирование:

IntArray(12)

IntArray[i+1]

Массивы бывают статические и динамические.

ПРАВИЛА РАБОТЫ СО СЛОЖНЫМИ ТИПАМИ

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

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

a[0].Items.Strings[4].Value

Массив a состоит из структур, в описание которых есть поле Items, которое в свою очередь представляет собой массив структур, имеющих поле Value.

ОПИСАНИЕ ПЕРЕМЕННЫХ

Пока переменная не описана, обращаться к ней нельзя, кроме Basic и Fortran (по умолчанию имеют числовой тип).

  1.  Объявить (указать) тип.
  2.  Инициализировать — присвоить ей начальное значение.

Синтаксис команд описания данных

Basic

Pascal

C++

DIM имя AS тип

Var имя:тип;

Тип имя:

Пример

Basic

Pascal

C++

DIM x AS DOUBLE

Var x:real;

Var str=record

      pl:integer;

      s:string;

      end;

float x;

int a[20];

В Pascal и C++ можно указывать через запятую:

var xx, z2: integer; – Pascal

int xx, z2, yy[10]; - C++

НОВЫЕ ТИПЫ ДАННЫХ

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

Синтаксис описания нового типа

Basic

Pascal

C++

Аналогичен описанию структуры, который уже является описанием нового типа:

TYPE имя структуры

поле AS тип

END TYPE

Type имя = описание

Typedef struct имя структуры

{

тип поле;

} имя типа;

Имя структуры указывается только из-за требований синтаксиса. Реально оно нигде не применяется.

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

Pascal

type TMyArray = Array[0..99] og integer;

type TMyRecord = record

      Item1:integer;

      Item2: string;

      end;

var MyArray: TmyArray;

var R: TMyRecord;

C++

typedef struct name1

{

int i;

float x;

} TNewStruct;

TNewStruct NewStruct;

РАЗДЕЛЕНИЕ ОПЕРАТОРОВ

В Pascal и C++ отделяются «;», а в Basic «:» или переходом на новую строку.

БЛОК ОПЕРАТОРОВ

Для выполнения группы операторов (например в зависимости от какого-либо условия) необходимо их объединить в блок с помощью специальных скобок начала и конца блока — т.е. логическими скобками.

В Basic явного понятия «блок операторов» нет, в Pascal – ключевые слова begin, end. В C++ - фигурные скобки {}.

ОБЛАСТЬ ДЕЙСТВИЯ ОПЕРАТОРОВ

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

ОПЕРАТОР ПРИСВАИВАНИЯ

Оператор присваивания позволяет изменять текущее значение переменной. Синтаксис простой: слева имя переменной, а справа выражение, значение которого будет записано в переменную. В Basic и C++ обозначается знаком «=», а в Pascal «:=».

a23 = a22[12]+1; b1 = b1-1;

x[5] = y/3.33; y = z[0]-0.001;

a := b*2+c; d := (e[8]-f)*2.2;

КОММЕНТАРИИ

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

Синтаксис комментария

Basic

Pascal

C++

однострочный

REM или '

//

//

многострочный

нет

{} или (* *)

/* */

x = 5 ' комментарий до конца строки

x := 5; // комментарий до конца строки

/*

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

языка C++

*/

{

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

языка Pascal

(* а это вложенный комментарий*)

}

УСЛОВНЫЙ ОПЕРАТОР (УСЛОВНЫЕ ВЫЧИСЛЕНИЯ)

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

если условие истинно IF

то выполняется оператор1 THEN

иначе выполняется оператор2 ELSE

Синтаксис условного оператора

Basic

Pascal

C++

IF условие THEN

оператор1

ELSE

оператор2

END IF

if условие then

оператор1

else

оператор2;

if (условие)

оператор1;

else

оператор2;

Пример

Basic

Pascal

C++

IF A<>0 THEN

A=0

ELSE

a=-1

END IF

if a<>0 then

a:=0

else

a:=-1;

if (a!=0)

a=0;

else

a=-1;

ОПЕРАТОРЫ ЦИКЛА

Бывают двух видов: с фиксированным числом повторений и условные операторы цикла.

  1.  С фиксированным числом: при обработке массивов. Заголовок такого оператора состоит из 3 частей:
  •  инициализации переменной счетчика (или параметра цикла) (присваивания ей начального значения;
  •  определения конечного значения счетчика, по достижению которого тело цикла надо выполнить в последний раз;
  •  приращения счетчика, определяющего на сколько будет меняться значение счетчика после каждого выполнения тела цикла

Синтаксис оператора цикла

Basic

FOR счетчик = нач_зн TO кон_зн STEP приращение

группа операторов

NEXT

если приращение не указать, то оно равно 1

Pascal

for счетчик := нач_зн to кон_зн do

оператор или блок операторов;

приращение всегда равно 1

C++

for (счетчик = нач_зн; условие завершения; счетчик = счетчик + приращение)

оператор или блок операторов;

Пример

Basic

FOR I = 1 TO 1000 STEP

A(I)=0

NEXT

Pascal

for i := 1 to 1000 do

a[i] := 0;

C++

for (i = 0; i<1000; i++)

a[i] =0;

  1.  Условный оператор цикла — указывается условие (логическое выражение) — пока его значение равно true, цикл будет выполняться.

Синтаксис условного оператора цикла

Basic

Pascal

C++

DO WHILE условие

группа операторов

LOOP

while условие do

оператор или группа операторов;

while (условие)

оператор или группа операторов;

Пример

Basic

Pascal

C++

DO WHILE A>B

A = A-0.01

LOOP

while a>b do

a:= a-0.01;

while (a>b)

a = a-0.01;

Зацикливание

Basic

Pascal

C++

Do

' тело цикла

LOOP

while true do

// тело цикла

a=0; b=1;

while (a<b)

a = a-0.01;

Исключения: Управление порядком выполнения программы может происходить и при возникновении исключений (деление на «0»).

Параллельные вычисления-одновременное выполнение независимых частей на разных процессорах.

ВВОД И ВЫВОД

т.е. интерактивное общение с пользователем (общение в реальном времени) и средства для ввода данных из файлов и сохранения данных в файлах.

Интерактивное общение реализуется с помощью RAD-систем, позволяющих быстро спроектировать пользовательский интерфейс. Ввод и вывод информации осуществляется в разных языках по-разному.

В Pascal и Basic есть операторы, в C++ они выделены в специальные библиотеки. Введен специальный тип данных FILE.

Работа с файлами происходит в 3 этапа:

  1.  Файл открывается в одном из выбранных режимов (он рассматривается как последовательность строк или двоичных чисел, разрешается только считывать из него данные или только записывать). Файл может состоять из последовательности одинаковых блоков определенного типа. Каждый блок называется записью.
  2.  Выполняется считывание, обновление или удаление записей в файле.
  3.  Файл закрывается. Если этого не сделать, то он останется открытым, и в дальнейшем к нему нельзя будет обратиться из других программ.

СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ

Подпрограммы

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

Нисходящее проектирование

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

  1.  Небольшие подпрограммы проще отлаживать, что повышает общую надежность.
  2.  Возможность повторного использования подпрограммы.

С интегрированными системами программирования поставляются большие библиотеки стандартных подпрограмм.

Процедуры и функции

Подпрограммы бывают двух видов — процедуры и функции. Процедура просто выполняет группу операторов. Функция в добавок вычисляет некоторые значения и передает его обратно в главную программу.

В C++ понятия «процедура» нет — там имеются только функции, а если никакого значения функция не вычисляет, то считается, что она возвращает значения типа «никакое» (void).

Параметры подпрограмм

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

Управление последовательностью вызова подпрограмм

В Basic оператором CALL вызывается подпрограмма. Подпрограмма активизируется в момент их вызова.

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

Иногда бывает, что ПП вызывает сама себя — такой прием называется рекурсией. Опасен! - бесконечный самовызов.

Структура подпрограммы:

  •  заголовок с параметрами;
  •  тело (операторы);
  •  завершение.

Функции

Basic

Pascal

C++

Заголовок функции

FUNCTION имя (список параметров)

Тип возвращаемого значения определяется специальным символом после имени функции

function имя (список параметров): тип функции;

Тип функции

имя (список параметров)

Тело

последовательность операторов

begin

последовательность операторов

end;

{

последовательность операторов

};

Завершение

END FUNCTION

нет

нет

Процедуры

Basic

Pascal

C++

Заголовок процедуры

SUB имя (список параметров)

procedure имя (список параметров);

void имя (список параметров)

Тело

последовательность операторов

begin

последовательность операторов

end;

{

последовательность операторов

};

Завершение

END SUB

нет

нет

Как функция возвращает значение в основную программу? (в C++ - return) – т.е. специальный оператор или особая форма оператора присваивания: в левой части указывается имя функции, а справа - возвращаемое значение.

Basic

FUNCTION SQR% (X AS INTEGER)

SQR%=X*X

END FUNCTION

Pascal

function SQR (x: integer): integer;

begin

SQR:= X*X

end;

C++

int SQR (int x)

{

return x*x;

};

Формальные и фактические параметры

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

int a,y;

a=5;

y=SQR(a);

Внутри ПП формальный параметр «x» получает значение переменной «a». Результат «a» возвращается в программу и присваивается переменной «y».

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

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

Класс — объекты, имеющие единую структуры, отличающиеся значениями свойств.

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

В C++ и Pascal для описания класса используется ключевое слово class.

Pascal

class TMyClass

Item1: integer;

Item2: string;

function GetSum (n: integer): integer;

procedure Initialize;

end;

C++

class TMyClass

{

int Item1;

AnsiString Item2;

int GetSum(int n);

void Initialize();

};

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

Pascal

procedure TMyClass.Initialize;

begin

Item1:=1;

Item2:='' '';

end;

C++

void TMyClass :: Initialize()

{

Item1=1;

Item2= '' '';

};

PAGE   \* MERGEFORMAT 3

Другие работы

воспитательные формулировки.


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

Подробнее ...

Лабораторна робота ~~~ 41 Дослідження процеса...


Теоретичні відомості Сутність усіх видів прокатування полягає в пластичному деформуванні заготовки нагрітої або холодної між валками. Прокатний ...

Подробнее ...

20_г. Прошу выставить счет на приобретение ЗП...


Прошу выставить счет на приобретение ЗПУ: Наименование пломбы Колво ЗПУ для РЖД Спрут777 Спрут777м ТП280002 Скат ГазГарант ТП 35001 Клещ60СЦ ЛаВР...

Подробнее ...

Организация расчетов с поставщиками покупате...


Сущность цели и функции системы управления персоналом в организации предприятии. Основные функции системы управления персоналом непосредственно ...

Подробнее ...