- •1. Введение
- •2. Операторы языка
- •Var Описание переменных;
- •3. Организация ветвлений
- •4. Логические функции
- •5. Организация циклов
- •Оператор цикла с предусловием имеет вид
- •Var I,j:integer; X,y,r:real;
- •Program p5_8;
- •Var y,X,z: integer;
- •6. Массивы
- •Var I,j: integer;
- •Var n,I,j:integer; s,y,sr:real; X: array [1..10,1..5] of real;
- •Var I,j,n,m: integer;
- •X:array [1..10] of integer;
- •Var n,I,j,st,kl,k:integer;
- •7. Символьные данные
- •Var n:integer;y:string;
- •Var X:string[1]; d:string; I:integer;
- •8. Записи
- •Var X:vr; y:array [1..5] of vr;
- •9. Файлы
- •Ввод и вывод информации для типизированных и текстовых файлов производится процедурами:
- •10. Подпрограммы
- •11. Графика
- •Var d,I,m,rx,ry:integer;
- •Initgraph(d,m,''); {переход в графику}
- •Var d,m,rx,ry:integer;
- •X,y,xn,xk,ymin,ymax,dx:real; msy,msx:real;
Оператор цикла с предусловием имеет вид
WHILE условие DO оператор
Такая конструкция позволяет легко организовывать итерационные циклы (циклы с заранее неизвестным числом повторений). Оператор, входящий в тело цикла выполняются до тех пор, пока истинно условие. Для примера решим задачу 4 – вычислять и печатать Y=Х2 до обнаружения первого Х=0. Программа приведена ниже.

r
program
P5_2;
{другой
вариант} var
x,y: real; begin x:=3; while
x<=9 do begin
y:=sqr(x–6);
writeln(x,y); x:=x+2; end; end.
while x<>0 do begin
writeln(х, х*x);
readln(x)
end;
С помощью этого оператора гораздо удобнее программировать задачу 5-2 (program P5_2).
Оператор цикла с постусловием:
REPEAT оператор UNTIL условие
Оператор, в цикле выполняется до тех пор, пока истинно условие. В отличие от оператора WHILE здесь цикл будет выполнен хотя бы один раз. Структуру с постусловием удобно применять в случае, если цикл необходимо выполнить хотя бы раз независимо от значения условия или, если само условие формируется в цикле и не может быть оценено до входа в цикл.
Выход из цикла после выполнения всех его циклов называется естественным. Принудительный выход для всех видов циклов может быть выполнен специальным оператор выхода
program
P5_7; uses
crt;
const
e=0.001; {погрешность} begin clrscr;
write(‘введите
Х ’); readline(x); r:=1;
y:=r; i:=1; while
r>e do begin;
r:=r*x/i; y:=y+r;
i:=i+1;
writeln(i,'-ый
член=',r:6:4,' Y=',y:6:4); end;
write('exp(x)=',exp(x):8:4)
{проверка} end.
Var I,j:integer; X,y,r:real;
который переключает программу на оператор, следующий сразу за операторами, включенными в цикл. Принудительный выход из цикла в любое другое место, очевидно, может быть осуществлен и оператором GOTO. Если нужно, не выполняя до конца текущего цикла, начать следующий, следует воспользоваться оператором
СONTINUE
Действие указанных операторов (применительно к циклу FOR) иллюстрирует рисунок выше.
Задание. Написать программу в которой вводятся два операнда Х и Y и знак операции (+,–,/,*). Вычислить результат Z в зависимости от знака. Предусмотреть реакции на возможный неверный знак операции, а также на ввод Y=0 при делении. Организовать возможность многократных вычислений без перезагрузки программа (т.е. построить цикл). В качестве символа прекращения вычислений принять ‘0’.
Функциональные ряды. При работе с компьютером возникает впечатление его огромной интеллектуальной силы. На самом деле это совсем не так. Собственно процессор умеет (правда очень быстро) выполнять только четыре арифметических действия и логические операции, т.е. располагает возможностями ученика 1-го класса. Откуда же вся его математическая мощь. Ответ простой – от программистов. Разработчики компиляторов языков (в частности Паскаля) побеспокоились о том, чтобы в нем присутствовали многие математические функции. Когда мы используем выражениеexp(x)мы на самом деле вызываем подпрограмму вычисленияex, написанную для нас неизвестным автором из фирмыBorland. Однако мы можем и сами это сделать. Существует методы, позволяющие вычислять функции, используя лишь небогатые возможности процессора. Так из математики хорошо известны функциональные ряды Тейлора (здесь аргумент включен в члены ряда). Хотя такие ряды бесконечны, нам нет необходимости (и возможности) вычислять их целиком. Значения элементов ряда быстро убывают и мы можем прекратить вычисления в тот момент, когда очередной член станет меньше заданной погрешностиε.
Задача 5-7. Вычислить с заданной погрешностью функциюex для произвольного значения Х. Ряд Тейлора для нее выглядит следующим образом.
e
x
≈1+x+x2/2!+
x3/3!+
x4/4!+...
Отсюда можно записать аналитические зависимости (здесь у – искомая функция, r– элемент ряда,i– номер члена разложения):
Задание. Вычислить с заданной погрешностью функцию, отображаемую рядом:
y=x11!/2!–x32!/3!+ x43!/4!– x54!/5!+...
