Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Pascal.doc
Скачиваний:
5
Добавлен:
30.08.2019
Размер:
148.48 Кб
Скачать

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

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

Условный оператор имеет два варианта записи.

Полная форма:

If <логическое выражение> Then <оператор1>

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

В этом случае в зависимости от значения логического выражения выбирается для выполнения оператор1 или оператор2 .

 

 

Неполная форма:

If <логическое выражение> Then <оператор> ;

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

 

Если после Then или Else необходимо выполнить действия, описанные несколькими операторами, то эти операторы должны быть заключены в операторные скобки Begin - End. Такая конструкция называется составным оператором.

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

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

Оператор цикла с параметром (арифметический оператор цикла) имеет такую структуру:

For <имя переменной> := <выражение1> To <выражение2> Do <оператор> ;

<имя переменной> - параметр цикла

<выражение1> - начальное значение параметра цикла

<выражение2> - конечное значение параметра цикла

Все три указанных выше объекта должны быть одного порядкового типа.

<оператор> - тело цикла.

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

  1.       Вычисляются значения выражения 1 и выражения 2.

  2.       Параметру цикла присваивается начальное значение.

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

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

  5.       Переход к п.3.

 

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

Пример. Вычислить и напечатать первые 10 чисел Фибоначчи. Числа Фибоначчи образуют последовательность, в которой очередной член равен сумме двух предыдущих, а первые два равны единице.

Решение:

Program Fib;

Сonst n=10; {количество чисел}

Var i,f1,f2,f3:Integer;

Begin

        f1 := 1; f2 := 1; {первые два числа Фибоначчи}

        For i := 3 To n Do

        Begin

                f3 := f1 + f2; {следующее число}

                Writeln(f3);

                f1 := f2; f2 := f3

        End

End.

 

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

While <логическое выражение> Do <оператор> ;

Здесь, тело цикла выполняется до тех пор, пока логическое выражение возвращает значение True.

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

Repeat <операторы> Until <логическое выражение> ;

Здесь, тело цикла выполняется до тех пор, пока логическое выражение возвращает значение False.

Если в теле цикла операторов For и While более одного оператора, то необходимо использовать составной оператор.

Пример.

Напечатать таблицу значений функций sin x и cos x на отрезке [0,1] с шагом 0.1 в следующем виде:

x              sin(x)          cos(x)

---------------------------------

0.0000        0.0000        1.0000

0.1000        0.0998        0.9950

. . . . . . . . . . . . . . . . . . . . . . . . .

1.0000        0.8415        0.5403

Решение:

Program Table;

Const a=0; b=1; h=0.1; { границы и шаг табулирования}

Var x: Real;

Begin

        x:=a;

        Writeln(‘x   sin(x)   сos(x)‘); { заголовок таблицы}

        Writeln(‘---------------------------------‘);

        While x<=b Do

        Begin

                Writeln(x:7:4,sin(x):7:4,cos(x):7:4);

                {вывод значений аргумента и функций}

                x:=x+h {увеличение аргумента на шаг}

        End; Writeln(‘---------------------------------‘)

End.

 

Пример.

Найти приближенное значение суммы ряда  , учитывающее все слагаемые, от начала ряда до первого, величина которого меньше e = 0,0001 .

 Решение:

Program SumRow;

Сonst e=1E-4; {точность вычислений}