
- •Переменные
- •Типы переменных и констант
- •Целые типы данных языка Turbo Pascal
- •Стандартные математические функции, используемые
- •Арифметические выражения
- •Операторы
- •Оператор присваивания
- •Ввод и вывод результатов вычислений
- •Общая структура программы на Turbo Pascal
- •Пример выполнения задания 1
- •Тема 2 Логические выражения Условный оператор
- •Условный оператор
- •Пример выполнения задания 2
- •Тема 3 Использование циклических структур. Операторы цикла с предусловием и с постусловием
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Пример выполнения задания 3
- •Тема 4 Использование циклических структур. Оператор цикла с параметром
- •Пример выполнения задания 4
- •Тема 5 Использование и обработка одномерного массива
- •Описание одномерного массива
- •Часто встречающиеся задачи на одномерный массив
- •Пример выполнения задания 5
- •Тема 6 Использование и обработка двумерного массива
- •Задачи с использованием главной или побочной диагонали матрицы
- •Пример выполнения задания 6
- •Тема 7 Организация программ с использованием функций
- •Пример выполнения задания 7
- •Тема 8 Организация программ с использованием процедур
- •Параметры
- •Пример выполнения задания 8
- •Тема 9 Текстовые файлы
- •Символьный тип данных
- •Операции над строками
- •Особенности работы со строками
- •Редактирование строк
- •Сору (s:string; start, len:integer):string;
- •Преобразование строк
- •Процедуры и функции для работы с текстовыми файлами
- •Примеры выполнения задания 9
- •Тема 10
- •Работа с комбинированными типами данных
- •(Записями)
- •Общие сведения
- •Особенности работы с записями
- •Пример выполнения задания 10
- •Тема 11 Типизированные файлы
- •Процедуры и функции для работы с типизированными файлами
- •Прямой доступ к элементам файла
- •Примеры выполнения задания 11
Оператор цикла с предусловием
Оператор цикла с предусловием имеет вид:
while A do S;
где А – выражение логического типа;
S – простой или составной оператор.
Выполнение оператора начинается с вычисления значения выражения А. Если оно имеет значение true (истина), то выполняется оператор S. Затем выполнение оператора цикла повторяется до тех пор, пока значение выражения А не станет равным false (ложь). Тогда управление передается оператору, следующему за оператором цикла, а оператор S внутри цикла выполняться не будет. Если А ложно при первом входе в цикл, то оператор S не выполняется ни разу. Очевидно, что один из операторов, находящихся внутри цикла, должен изменять значение выражения А, так как иначе цикл будет повторяться бесконечно.
Пример. Вычислить и вывести на экран значения аргумента х и функции у = х2 при изменении х от 0 до 1 с шагом 0.1 ( этот пример был рассмотрен выше, но с использованием оператора цикла с предусловием ).
х := 0;
while х <= 1 do
begin y:= sqr(x);
write(x:5:2, у:5:2);
х:=x + 0.1;
end.
Оператор цикла с постусловием
Оператор цикла с постусловием имеет вид:
repeat S1; S2; ... SN until A;
где S1, S2,…, SN – операторы тела цикла,
A – выражение логического типа.
Оператор цикла с постусловием начинается с выполнения операторов в теле цикла. Затем вычисляется значение логического выражения А, и, если получается истинное значение, то осуществляется выход из цикла. Если же значение А ложно, то выполнение операторов S1, S2, …, SN повторяется, а затем снова вычисляется выражение А.
Следует отметить, что в отличие от цикла с предусловием выход из цикла с постусловием осуществляется при истинности выражения А.
Пример. Вычислить и вывести на экран значения аргумента х и функции у = х2 при изменении х от 0 до 1 с шагом 0.1. (Это пример, рассмотренный выше, но с использованием оператора цикла с постусловием).
х := 0;
repeat
у:= sqr(x);
write(x:5:2, у:5:2);
х:=х + 0.1
until x > 1;
Операторы цикла с пред- и постусловием применяются тогда, когда число повторений тела цикла заранее неизвестно. При этом тело оператора цикла с постусловием всегда будет выполняться хотя бы один раз, а тело оператора цикла с предусловием может не выполняться ни разу.
Среди операторов цикла в Turbo Pascal оператор цикла с предусловием является наиболее универсальным.
В теле цикла среди операторов может находиться и оператор цикла, такие циклы называются вложенными (внешний и внутренний циклы).
При использовании вложенных циклов необходимо помнить, что тело внутреннего цикла должно находиться внутри внешнего.
Пример выполнения задания 3
Вычислить значение функции двух переменных
с использованием двойного оператора цикла: внешний оператор цикла с предусловием while, а внутренний – оператор цикла с постусловием.
Значение переменных x и y изменяются соответственно от xнач до xкон с шагом h, и от yнач до yкон с шагом h, и вводятся с клавиатуры. Все переменные относятся к вещественному типу.
Вывести на экран таблицу значений х, y, z.
Примечание. В программе фиксируется значение одной из переменных (например, хнач) во внешнем цикле, затем во внутреннем цикле берется первое значение унач и для пары хнач, унач вычисляется значение z по заданной формуле, выводятся на экран значения х, у, z, далее у увеличивается на шаг hy. Внутренний цикл будет работать, пока у не станет больше укон, затем выход во внешний цикл, увеличение х на шаг hx и т. Д. Двойной цикл закончится, когда х станет больше хкон.
рrogram Iab3;
uses crt;
var x, xn, xk, hx, y, yn, yk, hy, z:real;
begin clrscr;
writeln(Bвeдитe xn, xk, hx, yn, yk, hy);
readln(xn, xk, hx, yn, yk, hy);
x:=xn;
while x < xk + hx/2 do
begin у:=уп;
repeat
z:=sqrt(x*x*x + l)*exp(x)/(y*y + 2);
writeln (х =, x:6:2, y=, y:6:2, z=, z:6:2);
y:=y + hy
until у > yk
x:=x + hx;
writeln;
end;
readkey;
end.
Исходные данные:
-
xнач=1,
xкон=3,
hx=1,
yнач=2,
yкон=6,
hy=2.
Полученный результат:
-
x=1,
y=2
z=0.64
x=1
y=4
z=0.21
x=1
y=6
z=0.10
x=2
y=2
z=3.69
x=2
y=4
z=1.23
x=2
y=6
z=0.58
x=3
y=2
z=17.71
x=3
y=4
z=5.90
x=3
y=6
z=2.81