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

5. Описание процедур и функций. Этот вопрос рассматривается в пункте 6.

6. Раздел операторов содержит список выполняемых операторов программы. Обязательным является наличие служебного слова Begin в начале и служебного слова End в конце раздела. Весь текст программы должен завершаться точкой.

4.2. Оператор присваивания. Оператор присваивания вычисляет значение выражения, стоящего справа от знака “ := “ и присваивает его переменной, указанной слева. Его общий вид

<имя переменной> := <выражение>;

Тип переменной и тип значения выражения должны совпадать за исключением того, что переменной типа Real может быть присвоено значение выражения типа Integer.

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

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

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

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

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

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

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

4.4. Ввод-вывод. В программах на Паскале для ввода и вывода данных используют операторы обращения к процедурам ввода:

Read (список ввода) ;            Readln (список ввода) ;

и процедурам вывода

Write (список вывода) ;        Writeln (список вывода) ;

Процедура Writeln после вывода элементов списка переводит курсор на новую строку. В список ввода могут входить переменные типа Integer, Real, Char. В списке вывода могут содержаться константы, переменные, выражения типа Integer, Real, Char и Boolean. При выводе данных можно задавать формат вывода сразу за объектом вывода:

<объект вывода> : <ширина поля>

где <ширина поля> - целое выражение, значение которого определяет количество знаков отводимое для объекта вывода.

Вещественные значения с <шириной поля> и без нее будут иметь экспоненциальную форму записи, поэтому для вывода значений с фиксированной точкой указанный формат вывода можно дополнить целым выражением через “ : ”, которое будет соответствовать количеству знаков после запятой:

<объект вывода> : <ширина поля> : <после точки>

Пример: Как будет выведено на экран:

a:=10; b:=2; c:=421.65;

Writeln(a,b,c);        1024.216500000E+02 Writeln(a,b:2,c:8:2)   10 2 421.65   4.5. Операторы цикла.

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

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

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.  

Пример.

Найти приближенное значение суммы ряда , учитывающее все слагаемые, от начала ряда до первого, величина которого меньше = 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]