КАТЕГОРИИ: Архитектура-(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;
Пример 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.
Дата добавления: 2014-01-07; Просмотров: 295; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |