Главная

Язык программирования Pascal

Что такое Паскаль

Запись числовых констант, переменных и выражений.

Типы данных. Операции и функции над данными разных типов.

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

Операторы присваивания, ввода и вывода

Простейшие программы

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

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

Массивы

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

Строки.

Множества

Записи

Файлы

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

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

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

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

<имя переменной> - параметр цикла
<выражение1> - начальное значение параметра цикла
<выражение2> - конечное значение параметра цикла
Все три указанных выше объекта должны быть одного порядкового типа.
<оператор> - тело цикла.

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

1. Вычисляются значения выражения 1 и выражения 2.
2. Параметру цикла присваивается начальное значение.
3. Параметр цикла сравнивается с конечным значением. Если параметр цикла меньше или равен конечному значению, то перейти к п.4, иначе - конец цикла (переход на следующий оператор после оператора цикла).
4. Выполнить тело цикла. Параметр цикла принимает следующее значение, полученное с помощью функции
Succ. Перейти к п.3.
Есть еще один вариант этого оператора цикла, когда параметр цикла после каждого выполнения тела цикла принимает следующее значение, полученное с помощью функции
Pred. В этом случае служебное слово 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; {точность вычислений}
Var U,S,F:Real; {очередное слагаемое и сумма ряда}
n:Integer;
Begin
        n:=1; S:=1; U:=1; F:=1;
        Repeat
            n:=n+1;
            F:=F*n;{вычисление факториала}
            U:=U/F; {вычисление очередного слагаемого}
            S:=S+U; {вычисление суммы ряда}
        Until Abs(S)<e;
        Writeln(‘Сумма ряда S=‘, S:7:4);
End.

Сайт управляется системой uCoz