Обращение к процедуре (функции)


Назначение

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

Формат записи

<имя процедуры> [ (<Список параметров>) ]

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

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

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

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

Формальные параметры, передаваемые в списке параметров, будут рассмотрены в последующих лекциях.

Пустой оператор

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

Простые операторы C

Пустой оператор

Назначение

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

- в операторах do, for, while, if в строках, когда место оператора не требуется, но по синтаксису требуется хотя бы один оператор;

- при необходимости пометить фигурную скобку.

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

Пример:

int main ( )

{

:

{ if (...) goto a; /* переход на скобку */

{ ...

}

a:; }

return 0;

}

Оператор goto

Назначение

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

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

Пример:

goto имя-метки;

...

имя-метки: оператор;

Оператор continue

18.2.3.1 Назначение:

Оператор continue, как и оператор break, используется только внутри операторов цикла, но в отличие от него выполнение программы продолжается не с оператора, следующего за прерванным оператором, а с начала прерванного оператора.

Формат записи

continue;

Пример:

int main()

{ int a,b;

for (a=1,b=0; a<100; b+=a,a++)

{ if (b%2) continue;

... /* обработка четных сумм */

}

return 0;

}

18.3 Структурированные операторы Turbo Pascal

18.3.1 Составной оператор (Begin End;)

Назначение

Составной оператор служит для объединения произвольного числа операторов в группу. Фактически составной оператор является операторными скобками.

Формат записи

Begin

<оператор1>;

<операторN>;

End;

Пример:

if x=0 then

Begin Writeln ('Деление на ноль');

Writeln ('Введите новое значение Х');

Goto 1;

End;

18.3.2 Оператор одного условия (If)

Назначение

Оператор If реализует алгоритмическую конструкцию «ветвление» и изменяет порядок выполнения операторов в зависимости от истинности или ложности заданного условия.

Формат записи

If <условие> then <оператор1>

[else <оператор2>]

<Условие> - выражение булевского типа, может быть простым или сложным ;

<Оператор1>, <оператор2> простые или составные операторы.

Пример:

if x=0 then Begin Writeln ('Деление на ноль');

Writeln ('Введите новое значение Х');

Goto 1;

End

else Begin Y:=(a+b)/x;

Writeln (‘Y = ’,Y);

End;

18.3.3 Оператор выбора (Case)

Назначение

С помощью этого оператора можно выбрать выполнение одного оператора из любого количества вариантов.

Формат записи

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

<список1> : <оператор1;>

<список2> : <оператор2;>

……

<списокN> : <операторN;>

[ else <оператор>]

End; {Case}

При использовании оператора Case необходимо помнить, что:

- тип выражения–селектора и типы констант списков выбора должны быть одинаковы;

- все операторы могут быть как простыми таки составными.

Пример:

Case I of

0,2,4,6,8: Writeln ('Четная цифра');

1,3,5,7,9: Writeln ('Нечетная цифра');

10..100: Writeln (‘Число от 10 до 100’)

else

Writeln (‘Отрицательное число или больше 100’)

End;

18.3.4 Оператор цикла (Repeat)

Назначение

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

18.3.4.2 Формат записи

Repeat <Оператор1;>

<Оператор2;>

…..

<ОператорN>

until <условие>;

Группа операторов от 1 до N образует тело цикла.

Пример:

Repeat

Write (‘Введите числа X и Y ’);

Readln (X,Y);

Sum:=X+Y;

Writeln (‘Сумма чисел X+Y равна ’, Sum);

Write (‘Завершить программу? ’);

Readln (Ch);

Until (UpCase(Ch) = ‘Y’) or (Ch = ‘д’) or (Ch = ‘Д’);

{UpCase – получение заглавной буквы}

18.3.5 Оператор цикла While

Назначение

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

Формат записи

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

Оператор образует тело цикла, он может быть простым или составным.

Пример:

a:=5000;

While Abs(a)>0.0001 do

a:=a*0.99;

18.3.6 Оператор цикла For

Назначение

Оператор цикла For организует выполнение одного оператора заранее известное число раз.

Различают две формы записи оператора For.

Формат записи 1:

For <параметр цикла> := <S1> to <S2> do <оператор>;

Формат записи 2:

For <параметр цикла> := <S1> Downto <S2> do <оператор>;

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

Необходимо помнить, что после каждого шага цикла:

- при использовании формата записи 1 параметр цикла увеличивается на 1, следовательно, всегда S2 должно задавать большим или равным S1,

- а при использовании формата записи 2 параметр цикла уменьшается на 1, следовательно, всегда S1 должно задавать большим или равным S2.

Пример:

For I:=1 to 9 do Write (‘I = ‘,I);

For j:=’Z’ downto ‘A’ do Write (j);

18.3.7 Оператор обращения к записям и объектам With

Назначение

Оператор With применяется для упрощения доступа к полям записи.

Формат записи

With <Имя записи> do

< выражение, использующее <поле записи>>

Пример:

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

With Comp1 do

Begin

Amplitude:=Sqrt(Sqr(Re)+Sqr(Im));

Angle:=Atan(Im/Re);

End

18.4 Структурированные операторы C

18.4.1 Оператор if

Назначение

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

18.4.1.2 Общая форма записи оператора if:

if (выражение) оператор–1; [else оператор–2;]

Выполнение оператора if начинается с вычисления выражения.

Далее выполнение осуществляется по следующей схеме:

- - если выражение истинно (т.е. отлично от 0), то выполняется оператор–1.

- - если выражение ложно (т.е. равно 0), то выполняется оператор–2.

- - если выражение ложно и отсутствует оператор–2 (в квадратные скобки заключена необязательная конструкция), то выполняется следующий за if оператор.

Пример:

if (i < j) i++:

else { j = i-3; i++; }

18.4.2 Оператор switch

Назначение

Оператор switch предназначен для организации выбора из множества различных вариантов.

18.4.2.2 Форма записи:

switch (expression) {

case value1:

program statement;

...

break;

case value2:

program statement;

...

break;

...

case valuen:

program statement;

...

break;

default:

program statement;

...

break;

}

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

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

Пример:

int i=2;

switch (i)

{

case 1: i += 2;

case 2: i *= 3;

case 0: i /= 2;

case 4: i -= 5;

default: ;

}

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



Дата добавления: 2021-03-18; просмотров: 533;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.034 сек.