Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория_информатика.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5.34 Mб
Скачать

18.2.2 Оператор goto

18.2.2.1 Назначение

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

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

Пример:

goto имя-метки;

...

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

18.2.3 Оператор continue

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

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

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

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;)

18.3.1.1 Назначение

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

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

Begin

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

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

End;

Пример:

if x=0 then

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

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

Goto 1;

End;

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

18.3.2.1 Назначение

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

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

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)

18.3.3.1 Назначение

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

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

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)

18.3.4.1 Назначение

Оператор цикла 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

18.3.5.1 Назначение

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

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

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

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

Пример:

a:=5000;

While Abs(a)>0.0001 do

a:=a*0.99;

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

18.3.6.1 Назначение

Оператор цикла 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

18.3.7.1 Назначение

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

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

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

18.4.1.1 Назначение

В операторе 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++; }