Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оператор цикла REPEAT

Оператор WHILE

Оператор FOR

Оператор IF

Операторы

Лекция 3

Существует две формы оператора IF:

 

if <ВЫРАЖЕНИЕ> then <ОПЕРАТОР>;

if <ВЫРАЖЕНИЕ> then <ОПЕРАТОР1> else <ОПЕРАТОР2>;

 

Выражение должно быть логического типа. Перед else нельзя ставить “;”.

Пример 1: if J <> 0 then A:= I/J;

Пример 2: if J <> 0 then A:= I/J else A:= 0;

 

Пример 3. Решение квадратного уравнения Ax2+Bx+C=0.

Листинг 7. Решение квадратного уравнения

program PrSqr;

{$APPTYPE CONSOLE}

var

A,B,C,D: real;

begin

Write(‘A=’); Readln(A);

Write(‘B=’); Readln(B);

Write(‘C=’); Readln(C);

if A = 0 then

if B = 0 then

if C = 0 then

Writeln(‘X - любое’)

else

Writeln(‘нет корней’)

else

Writeln(‘X = ’,-C/B:8:2)

else

begin

D:= B*B-4*A*C;

if D < 0 then

Writeln(‘Нет вещественных корней’)

else

begin

D:=Sqrt(D);

Writeln(‘X1=’,(-B+ D)/(2*A),‘X2=’,(-B-D)/(2*A));

end;

end;

end.

 

Пример 4. Даны длины трех отрезков. Если они могут образовать треугольник, то вычислить его площадь.

Листинг 8. Площадь треугольника

program Pr8;

{$APPTYPE CONSOLE}

var

a,b,c,p,S: real;

begin

Write(‘a=’); Readln(a);

Write(‘b=’); Readln(b);

Write(‘c=’); Readln(c);

if (a>0) and (b>0) and (c>0) and (a+b>c) and (a+c>b)

and (b+c>a) then

begin

P:=(a+b+c)/2;

S:=Sqrt(p*(p-a)*(p-b)*(p-c));

Writeln(‘S=’,S:8:2);

end

else

Writeln(‘Не треугольник’);

Readln;

end.

 

 

for <count>:= <Нач_Значение> to <Кон_Значение> do <Оператор>;

 

for <count>:= <Нач_Значение> downto <Кон_Значение> do <Оператор>;

 

Счетчик countлокальная переменная перечислимого типа.

Нач_Значение и Кон_Значение – выражения того же типа, что и счетчик count.

Пример 1. Вычислить сумму

Листинг 9. Сумма ряда

program Pr9;

{$APPTYPE CONSOLE}

const

n=20;

var

S,x,a: real;

i,Sign: integer;

begin

x:=0.2; Sign:=1; a:=1; S:=a;

for i:=1 to n do

begin // составной оператор

Sign:=-Sign;

a:=Sign*a*x/i;

S:=S+a;

end;

Writeln(‘S = ’, S:8:2);

Readln;

end.

 

while <УСЛОВИЕ> do <ОПЕРАТОР>;

 

где УСЛОВИЕ - выражение логического типа. Цикл while выполняется до тех пор, пока УСЛОВИЕ = true.

Пример 2. Вычислить сумму

Листинг 10. Сумма ряда

program Pr10;

{$APPTYPE CONSOLE}

const

n=20;

var

S,x,a: real;

i,Sign: integer;

begin

x:=0.2; Sign:=1; a:=1; S:=a; i:=0;

while i < n do

begin // составной оператор

i:=i+1;

Sign:=-Sign;

a:=Sign*a*x/i;

S:=S+a;

end;

Writeln(‘S = ’, S:8:2);

Readln;

end.

Пример 3. Вычислить сумму

Листинг 11. Сумма ряда

program Pr11;

{$APPTYPE CONSOLE}

const

n=20;

Eps=1.0e-6;

var

S,x,a: real;

i,Sign: integer;

begin

x:=0.2; Sign:=-1; a:=1; S:=a; i:=0;

while Abs(a) > Eps do

begin

i:=i+1; Sign:=-Sign; a:=Sign*a*x/i;

S:=S+a;

end;

Writeln(‘S = ’, S:8:2);

Readln;

end.

 

 

где УСЛОВИЕ - выражение логического типа. Цикл repeat…until выполняется до тех пор, пока УСЛОВИЕ = false.

 

Листинг 12. Сумма ряда

x:=0.2; Sign:=1; a:=1; S:=a; i:=0;

repeat

i:=i+1;

Sign:=-Sign; a:=Sign*a*x/i;

S:=S+a;

    A X B
until Abs(a)<=Eps;

 
 

 

 


Пример 4. Методом деления отрезка пополам с точностью Eps=10-6 решить уравнение ex-2=0.

Листинг 13. Метод деления пополам

program Pr13;

{$APPTYPE CONSOLE}

const

Eps=1.0e-6;

var

x,a,b: real;

 

function F(x: real): real;

begin

Result:=Exp(x)-2;

End;

 

begin

a:=0; b:=10;

repeat

x:=(a+b)/2;

y:=F(x);

if F(a)*F(x)<0 then b:=x else a:=x;

until Abs(b-a) < Eps;

 

Writeln(‘x = ’, (a+b)/2:8:2);

Readln;

end.

Пример 5. Вычислить сумму цифр числа.

Листинг 14. Сумма цифр числа

var

n,Sum: integer;

begin

Write(‘N=’); Readln(N);

Sum:=0;

repeat

Sum:= Sum + N mod 10;

N:= N div 10;

until N=0;

 

Writeln(‘Sum = ’, Sum);

Readln;

End.

Пример 5. Вычислить максимальное значение функции (x^2-3x+2)/Sqrt(x^3-1) в узловых точках на интервале [a,b], если он разбит на n частей.

Листинг 15. Максимум функции

const

n=20;

var

i: integer;

X,Y,h,MaxValue: real;

 

function F(x: real): real;

begin

Result:= (x*x-3*x+2)/Sqrt(x*x*x-1);

end;

 

begin

Write(‘A=’); Readln(A);

Write(‘B=’); Readln(B);

h:= (B-A)/n;

x:= A;

MaxValue:= F(x);

 

while x<B do

begin

X:= x+h; y:= F(x);

if y > MaxValue then MaxValue:= y;

end;

 

Writeln(‘MaxValue = ’, MaxValue:8:2);

Readln;

End.

<== предыдущая лекция | следующая лекция ==>
Кривые Энгеля | Оператор выбора CASE
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 274; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.