Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_лекций Информатика.doc
Скачиваний:
2
Добавлен:
26.09.2019
Размер:
970.75 Кб
Скачать
  1. Цикл с постусловием.

Для реализации цикла используется оператор repeat. В общем виде цикл записывается так:

    repeat   <оператор 1>;

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

……….     until <условие>;

Читается так: "Выполнять оператор 1, оператор 2, … до выполнения условия".

Здесь не требуется использование операторных скобок begin и end. Обратите внимание также на то, что новая итерация (повторное выполнение тела цикла) происходит не тогда, когда условие справедливо, а как раз тогда, когда оно ложно. Поэтому цикл и получил свое название (выполнять тело цикла до выполнения соответствующего условия).

Интересно, что в случае, когда условие цикла изначально истинно, тело цикла все равно будет выполнено хотя бы один раз.

Пример.

Program Summa;

Var A : Integer;

S : Longint;

Begin

A:=1; S:=0;

Repeat

S:=S+A*A;

A:=A+1

Until A>100;

Writeln(S)

End.

3. Цикл с параметром.

Для его реализации в языке Pascal используется оператор for. Переменная параметр обязательно объявляется в декларационной части программы и должна быть целого типа.

В общем виде цикл записывается так:

  

 for i:= k to n do       begin         <оператор 1>;         <оператор 2>;         ...         <оператор n>;       end;

Пример:

Program Ex3;

Var A : Integer;

S : Longint;

Begin

S:=0; For A:=1 To 100 Do S:=S+A*A;

Writeln(S)

End.

Пример. Разработать программу табулирования (вычисления таблицы зна­чений) функции для произвольного диапазона изменения неза­висимого параметра или аргумента. Выполнить расчет для задан­ных значений исходных данных.

Результаты расчетов вывести в табличной форме

  1. Контрольный расчет.

program my_third_prog;

const l=-1.21;

var a,t,x,dx,xk,xn:real;

begin

writeln('xn, xk, dx');

readln(xn,xk,dx);

writeln('| a | x | t |');

writeln('-------------------------');

a:=sqr(arctan(l));

x:=xn;

while x<=xk do

begin

t:=(x+a)/(0.1*sqrt(sin(x)+5*sin(exp(0.6*ln(2*x)))));

writeln('|',a:7:3,'|',x:7:3,'|',t:7:3,'|');

writeln('-------------------------');

x:=x+dx;

end;

readln;

end.

program my_third_prog;

const l=-1.21;

var a,t,x,dx,xk,xn:real;

begin

writeln('xn, xk, dx');

readln(xn,xk,dx);

writeln('| a | x | t |');

writeln('-------------------------');

a:=sqr(arctan(l));

x:=xn;

repeat

t:=(x+a)/(0.1*sqrt(sin(x)+5*sin(exp(0.6*ln(2*x)))));

writeln('|',a:7:3,'|',x:7:3,'|',t:7:3,'|');

writeln('-------------------------');

x:=x+dx;

until x>xk;

readln;

end.

program my_third_prog;

const l=-1.21;

var a,t,x,dx,xk,xn:real;

i,n:integer;

begin

writeln('xn, xk, dx');

readln(xn,xk,dx);

writeln('| a | x | t |');

writeln('-------------------------');

a:=sqr(arctan(l));

x:=xn;

n:=round((xk-xn)/dx);

for i:=1 to n do

begin

t:=(x+a)/(0.1*sqrt(sin(x)+5*sin(exp(0.6*ln(2*x)))));

writeln('|',a:7:3,'|',x:7:3,'|',t:7:3,'|');

writeln('-------------------------');

x:=x+dx;

end;

readln;

end.