русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Оператор циклу з передумовою


Дата додавання: 2013-12-23; переглядів: 1519.


Д/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.


<== попередня лекція | наступна лекція ==>
Циклічні процеси. | Оператор безумовного переходу.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн