Д/3 Обчислити S=1/1+1/2+...+1/n
Приклад №3: Написати програму обчислення р=n!
I=1
Приклад №2: Обчислити суму
S=
Для обчислення вказаної суми можливо організувати цикл з параметром і, в якому обчислювалось би значення наступного доданку=і2, а потім здійснювалось би накопичення суми, додаванням одержаного результату до суми всіх попередніх:
s=s+y, при чому перед початком циклу значення змінної s повинно бути нульовим.
Program SUM;
Var s,y:Real;
I: Integer;
Begin
S:=0;
For i: =1 to 20 do
Begin
y: =i*i;
s: =s+y;
End;
Writeln(‘S= ‘,S);
End.
Program Fak;
Var n,i,p: integer;
Begin
P:=1;
Writeln('Введіть n');
Read(n);
For i: =1 to n do
p:=p*i;
writeln ( 'n!=’,p) ;
End.
Оператор циклу зручно використовувати в тому випадку, коли число
необхідних
кроків зарані визначено.
Приклад №4; Написати програму обчислення суми 70 дійсних чисел.
Program suml;
Var a, s:Real;
і: Integer;
Begin
S: =0;
Writeln(‘Введіть числа');
For і: =1 to 70 do
Begin
Read(a);
s:=s+a;
End;
Writeln (‘s= ',s);
End.
Дуже важливі 2-а правила, що прийняті в Паскалі:
1. Після закінчення виконання оператора циклу з параметром значення параметру циклу вважається невизначеним.
2. Виконання оператора, що є тілом оператора циклу з параметром, не повинні приводити до зміни значення параметру циклу.
Program summa;
Var sum,y: real;
n,i: Integer;
Begin
Sum: =0;
Writeln ('Введіть значення п');
Readln (n);
For i: =1 to n do
Begin
Y: =1/i;
Sum: =sum+y;
end;
Write in ('sum=’,sum);
End..
Д/З Приклад №5 Написати програму обчислення суми, використовуючи оператор For і:=-10 downto 5 do
Приклад: Знайти суму ряду чисел :
Program A1;
Var S ,X, A :Real;
I, n :Integer;
Begin
Writeln (‘Введіть x, n’);
Read (x, n);
S:=0; I:=1; A:=x/I;
While I<=(2n+1) do
Begin
S:=S+A;
I:=I+2;
A:=A*SQR(x)/I*(I+1);
End;
Writeln(‘S=’,S:5:2);
End..
Приклад №6 Написати програму обчислення суми
SUM=1/1*1+1/2*2+1/3*3+...+1/5*5
Program SUM;
Var SUM,Al,A2:Real;
I: Integer;
Begin
SUM:=0;
For i: =1 to 5 do
Begin
A:=1/I;
A2:=A1*A1;
SUM: =SUM+A2;
END;
WRITELN('SUM= ',SUM);
END.
Часто стикаються з оператором циклу, коли число повторень невідоме, але зарані відома умова його закінчення. В Pascal таких операторів два. Розглянемо наступний оператор циклу WHILE.
While A do В
Поки умова викон. любий оператор
Працює так: Перевіряє умову А. Якщо вона виконується, то виконується В, знову перевіряється умова А і т.д. до тих пір, поки умова А вже не виконується, потім виконання оператора циклу зупиняється. Таким
чином, при використанні оператора WHILE перевіряється певний тип перевірки (умова закінчення циклу).
Приклад: Знайти суму ряду чисел. Кожний доданок на 1 менший попереднього. Додавання здійснювати до тих пір поки виконується умова: число, що додається більше 3. Перший доданок = 6.
Program Al;
Var x,sum:real;
Begin
Sum : =0; (Задання початкових значень)
Х:=6;
While x>3 do
Begin
SUM: =SUM+X;
X:=X-1;
END;
WRITELN('SUM= ',SUM);
END.
Приклад: Дано два числа а та Ь. Необхідно отримати всі члени
нескінченної послідовності менших числа b. (a, a2, a3, a........)
PROGRAM A2;
VAR A,B,C:REAL;
BEGIN
WRITELN('Bвeдimь значення А,В');
READ(A,B);
С: =А;
WHILE C<B DO
BEGIN
WRITELN(C:3:1);
С: =С*А;
END;
END.
Розглянемо ще один оператор циклу. Це
Оператор циклу з післяумовою.
Він має такий вигдяд :
Repeat <оператори> Unti <умова>;
Повторювати до тих пір поки
Дія цього оператора подібна дії оператора WHILE, але перевірка умови проводиться після чергового циклу, що забезпечує його виконання хоч би один раз. Між службовими словами Repeat та Until можливо помістити групу операторів, відокремлюючи їх один від одного ;
Приклад: Виводити та друкувати черговий символ із вхідного потоку даних до тих пір, поки не зустрінеться символ " * ".
PROGRAM PR1;
VAR SIM:CHAR;
BEGIN
WR1TELNCВведіть символи');
REPEAT
READ(SIM);
WRITELN(SIM);
UNTIL SIM= '* ';
END.
Приклад: Знайти суму ряда чисел. Кожен доданок на 1 менший за попередній. Процес виконується до тих пір, поки виконується умова: число, яке додається повинно бути >5.5. Перший доданок =10.
PROGRAM PR2;
VAR X,SUM:REAL;
BEGIN
SUM: =0;
X:=10;
REPEAT
SUM: =SUM+X;
X:=X-1
UNTIL X<5.5;
WRITELN('SUM=', SUM);
END.
(Оператор, що стоїть перед Until не закінчується;)
Приклад: Обчислити значення функції у=х при х-8,6,4,2
PROGRAM PR3;
VAR X,V: INTEGER;
BEGIN
X: =8;
REPEAT
Y:=SQR(X);
X: =X-2
UNTIL X<2
WRITELN('Y= ',Y:3);
END.
В одній програмі можливо використання різних операторів циклу.
Приклад: Обчислити середнє арифметичне п чисел.
PROGRAM PR4;
VAR N,I: INTEGER;
SA,A,S:REAL;
BEGIN
S:=0;
WRITELN(Bвeдimь значення N');
READ(N);
WRITELN(‘Введітьзначення чисел ');
FOR I:=1 TO N DO
BEGIN
READ(A);
S:=S+A;
END;
SA:=S/N;
WRITELN('SA= ',SA:4:1);
END.
Вкладені цикли.
Цикли можуть бути вкладені один в один. Тому їх називають вкладеними. При використанні вкладених циклів необхідно складати програму таким чином, щоб внутрішній цикл повністю вміщувався в циклічну частину зовнішнього циклу. Внутрішній цикл може також в свою чергу містити другий внутрішній цикл.
Приклад: Обчислити значення змінної y=3k+n при всіх значеннях змінних п=1,2,3, k=2,4,6,8,
п-параметр зовнішнього циклу; К-параметр внутрішнього циклу. (При одному значенню п змінна k буде приймати значення 2,4,6,8. При других значеннях п змінна k буде приймати ті ж самі значення).
PROGRAM PR5;
Var n,k,y: Integer;
Веgіп
For п: =1 to 3 do
Веgіп
k:=2;
while k< =8 do
Веgіп
y:=2*k+n;
writeln (n:4, k:4, y:4) ;
k:=k+2;
End;
End;
End.
Тут зовнішній цикл побудований з використанням оператора For, a внутрішній - за допомогою оператора While.