34656

Операторы организации циклов

Реферат

Информатика, кибернетика и программирование

Операторы ограничения и прерывания цикла Цикл с параметром Оператор цикла применяется при выполнении расчетов или других действий повторяющихся определенное количество раз. Оператор имеет вид: For i:= N1 To N2 Do оператор ; либо For i:= N1 DownTo N2 Do оператор ; Здесь i параметр цикла переменная порядкового типа N1 N2 начальное и конечное значения параметра цикла i. Напомним что оператор может иметь вид: Begin операторы end; Схема выполнения оператора цикла с параметром имеет вид: В случае связки To цикл...

Русский

2013-09-08

57 KB

10 чел.

исциплина «Основы алгоритмизации и программирование»  Операторы организации циклов

Операторы организации циклов

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

2. Цикл с условием

3. Операторы ограничения и прерывания цикла

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

Оператор цикла применяется при выполнении расчетов или других действий, повторяющихся определенное количество раз. Оператор имеет вид:

For  i:= N1    To    N2  Do  "оператор";

либо 

For  i:= N1  DownTo  N2  Do "оператор";

Здесь i - параметр цикла (переменная порядкового типа),

N1, N2 - начальное и конечное значения параметра цикла i.

N1, N2 могут быть константами, переменными или выражениями порядкового типа.

Напомним, что "оператор" может иметь вид: Begin "операторы" end;

Схема выполнения оператора цикла с параметром имеет вид:

В случае связки "To" цикл выполняется при условии N1 <= N2 и происходит с единичным возрастанием параметра цикла i от N1 до N2. В случае связки DownTo цикл выполняется при условии N1 >= N2 и происходит с единичным уменьшением параметра цикла i от N1 до N2.

В операторе цикла не разрешается присваивать параметру цикла какое-либо значение.

После окончания цикла значение параметра цикла "i" неопределенно.

Оператор цикла часто применяется для суммирования значений некоторой последовательности чисел или значений функции при известном числе операций суммирования. Напомним некоторые определения, связанные с расчетом суммы последовательности.

Сумма членов последовательности величин

a1, a2, a3, . . . , an

называется конечной суммой

Sn = a1 + a2 + a3+ . . . + an

Для некоторых последовательностей известны формулы расчета конечных сумм, например:

при an = an-1 + d; Sn = (a1 + an)*n/2; - арифметическая прогрессия,

при an = an-1 * q; Sn= (a1 - an*q)/(1-q); - геометрическая прогрессия,

где d и q - постоянные числа.

Здесь N-ый член последовательности выражается через (N-1)-ый член. Такие зависимости называются реккурентными.

Конечная сумма последовательности может быть неизвестна, тогда для ее расчета применяется алгоритм суммирования членов последовательности в цикле от 1 до N. Приведем пример расчета конечной суммы последовательности: 12 + 32 + 52 +. . . + (2*N-1)2; Sn = N*(4*N2-1)/3;

PROGRAM SUM_K;                     { расчет конечной суммы }

var

 a, S, Sn, i, N : word;

Begin   

 write('Введите число членов суммы N=');

 readln(N);

 S:= 0;

 For i:= 1 to N do

   begin                          {  цикл суммирования }

     a := Sqr(2*i-1);

     S:= S+a

   end;

 Sn := N*(4*N*N-1) div 3;

 Writeln('Конечная сумма S=',  S:10:2);        

 Writeln('Расчет конечной суммы по формуле Sn=',  Sn:10:2);

 Writeln('Нажми Enter');

 ReadLn   

End.

В некоторых случаях "N"-ый член последовательности определяется через сумму предыдущих членов, например,

an= p*Sn-1,

тогда 

Sn= Sn-1 + an = Sn-1*(1+р),

и конечную сумму можно рассчитать по формуле:

Sn = S0*(1+p)N,

где "S0" - начальная сумма.

Рассмотрим программу вычисления конечной суммы денежного вклада в банк через N месяцев при ежемесячной процентной ставке "pr" (5% cоответствует pr=5).

PROGRAM VKLAD;        { расчет конечной суммы вклада в банк }

var

 S, Sn, pr : Real;

 i, N      : Integer;

Begin

 Write('Введите начальную сумму вклада S=');

 readln(S);

 Write('Введите процент по вкладу pr=');

 readln(pr);

 Write('Введите количество месяцев вклада N=');

 readln(N);

 For i:= 1 to N do S:= S*(1+pr/100);     { цикл произведений }

 Writeln('Конечная сумма вклада S=',  S:10:2);

 { Оператор для расчета "Sn" напишите самостоятельно }

 Writeln('Расчет конечной суммы вклада по формуле Sn=', Sn:10:2);

 Writeln('Нажмите Enter');         

 readln  

End.

Часто применяются вложенные операторы цикла. Например, если необходимо провести все варианты расчета при изменении нескольких параметров в заданных диапазонах.

Составим программу расчета функции y = A*sin(x) - cos(x)/A; при изменении аргумента "x" в диапазоне от 0 до Pi с шагом Pi/100 и при изменении параметра "A" в диапазоне от 1 до 3 с шагом 0.5.

Program tabl;

var

 y, x, a, dx : real;

 i, j: integer;

Begin

 Writeln(' Расчет по формуле:  y=A*sin(x)-cos(x)/A; ');

 Writeln('--------------------------------------------------');

 Writeln('|   X   |  A=1.0 | A=1.5 | A=2.0 | A=2.5 | A=3.0 |');

 Writeln('--------------------------------------------------');

 dx := pi/100;

 for i:= 0 to 100 do

    begin    { внешний цикл изменения аргумента "X" }

      x:= dx*i;

      Write( x:8:4 );

      for j := 1 to 5 do

        begin{ вложеннный цикл изменения параметра "A" }  

          A := 0.5*(j+1);

          y := A*sin(x)-cos(x)/A;    Write(y:8:4)  

        end;

      Writeln;                                   {перевод курсора на новую строчку}

      if ((i+1) mod 20) = 0 then readln{задержка прокрутки экрана до нажатия Enter}

    end;

 readln;

End.

Операторы цикла с условием

В Турбо-Паскале применяются два оператора цикла с условием:

While  "условие"  DO  "оператор";   

- цикл с предусловием: проверка условия перед каждым выполнением "оператора",

Repeat  "операторы"  Until  "условие";  

- цикл с постусловием: проверка условия после каждого выполнения "операторов".

Здесь "условие" - выражение логического типа (Boolean).

Схема выполнения операторов имеет вид:

Цикл WHILE

Цикл REPEAT

В цикле While "оператор" выполняется если условие верно (True), если условие ложно (False), то цикл заканчивается, т. е. цикл While повторяется пока выполняется условие. Цикл While начинается проверкой условия, поэтому, если начальное условие ложно, то "оператор" не выполняется ни разу. Для включения в тело цикла нескольких операторов применяется составной оператор: Begin "операторы" end.

Цикл Repeat повторяется, если условие ложно (False), и заканчивается, если условие верно (True), т. е. цикл Repeat повторяется до выполнения условия.

Цикл Repeat заканчивается проверкой условия, поэтому "операторы" выполняются не менее одного раза. В теле цикла может записываться более одного оператора.

Циклы с условием обычно используются в тех случаях, если количество повторений блока операторов заранее не известно, например, при расчете суммы членов бесконечного ряда с заданной погрешностью.

Сумма членов бесконечной последовательности

a1, a2, a3, ... , an, ...

называется бесконечным рядом и записывается в виде:

a1 + a2 + a3 +... + an+...

Здесь an - общий член ряда.

Сумма конечного числа членов ряда называется частичной суммой и обозначается "Sn".

Если сумма членов бесконечного ряда имеет конечный предел "S", то ряд называется сходящимся. Для некоторых рядов получены формулы расчета суммы членов ряда. Например, сумма членов числового ряда:

1 + 1/32 + 1/52 + . . . + 1/(2*N-1)<SUP2< sup> + ...

имеет предел S = Pi2/8 и общий член an = 1/(2*N-1)2, где N = 1, 2, 3, ...

Для сходящегося ряда вычисляется последовательность частичных сумм с заданной погрешностью. Абсолютная погрешность расчетов определяется по формуле Eps=abs(S-Sn), либо Eps=abs(an), если значение S неизвестно. Относительная погрешность расчетов определяется по формуле Eps_o=abs((S-Sn)/S), либо Eps_o=abs(an/Sn).

Частичные суммы вычисляются по формуле: Sn = Sn-1 + an 

Для знакопеременного ряда следует добавить k1=-1, а в цикле: k1:=-k1, an=k1*an. В некоторых случаях "N"-ый член ряда выражается через "N-1"-ый, например, для ряда:

1 + 1/2! + 1/4! + 1/6! + ... + 1/(2*N)! + ... ; N = 0, 1, 2, ...

общий член ряда вычисляется по формуле: an = an-1*k;

Параметр k = an/an-1 - коэффициент роста вычисляется предварительно (до написания программы).

Для данного ряда

an = 1/(2*N)! = 1/( 1*2*...*(2*N-2)*(2*N-1)*2*N)
a
n-1 = 1/(2*(N-1))! = 1/((2*N-2))! = 1/(1*2*...*(2*N-2))
k = a
n/an-1 = 1/((2*N-1)*2*N)

Здесь N! = 1*2*3*...*N; - вычисление факториала числа "N", причем 0! = 1.

Расчет частичных сумм производится в цикле с условием, например, для данного ряда операторами:

 N  := 0;

 a  := 1;

 SN := 1;

 S  := (e+1)/e;

 e := 2.7182828;

 Repeat

   N := N+1;

   k := 1/((2*N-1)*2*N);

   a := a*k;    

   SN := SN+a;

   Writeln('Частичная сумма Sn= ',  Sn:11:6);

 Until abs(S-Sn) < eps;              { eps - допустимая погрешность расчетов}

 Writeln('Сумма ряда S = ', SN:11:6);

Операторы ограничения и прерывания цикла

Данные операторы применяются внутри операторов цикла с параметром или условием. Операторы имеют вид:

    Continue;   -  ограничение цикла,

    Break;      -  прерывание цикла.    

Операторы Continue и Break позволяют производить действия не для всех операторов внутри цикла. Действие оператора Continue заключается в передаче управления на начало цикла, при этом контролируется условие выхода из цикла. Действие оператора Break заключается в передаче управления оператору, следующему за последним оператором цикла, при этом не контролируется условие выхода из цикла. Во вложенных циклах операторы Continue и Break действуют только на цикл в котором они записаны. Приведем пример использования операторов для блокировки несанкционированного доступа в программу.

For i := 1 to 3 do

 begin       

   Write( 'Введите ПАРОЛЬ:' );    Readln(S); {S и Parol - переменные одного типа}

   If S = Parol  Then  Break                                 { прерывание цикла }

   else  If   i <> 3  Then Continue;                        { ограничение цикла }

   Writeln( 'Доступ к программе ЗАПРЕЩЕН' );

   Writeln( 'Нажмите Enter' );

   Readln;

   Halt                                                  { прерывание программы }

 end;                                                   { продолжение программы }


 

А также другие работы, которые могут Вас заинтересовать

81324. Витрати виконавчого провадження 27.08 KB
  До інших витрат на організацію виконавчих дій належать витрати на виплату винагороди державним виконавцям відповідно до статті 47 Закону; придбання службових житлових приміщень; придбання службових приміщень; страхування державних виконавців; забезпечення державних виконавців форменим одягом
81325. Ускладнення у виконавчому провадженні. Відкладення провадження виконавчих дій 21.48 KB
  Відкладення провадження виконавчих дій. За наявності обставин що перешкоджають провадженню виконавчих дій або несвоєчасного одержання сторонами документів виконавчого провадження внаслідок чого вони позбавлені можливості використати надані їм Законом права державний виконавець може відкласти виконавчі дії за заявою стягувача або за заявою боржника або з власної ініціативи на строк до 10 днів. Про відкладення провадження виконавчих дій державний виконавець виносить відповідну постанову про що негайно повідомляє сторони суд або інший...
81326. Відстрочка або розстрочка виконання, встановлення чи зміна способу і порядку виконання рішення 21.43 KB
  За наявності обставин що ускладнюють виконання рішення або роблять його неможливим державний виконавець за власною ініціативою або за заявою сторін а також самі сторони мають право звернутися до суду який видав виконавчий документ із заявою про відстрочку або розстрочку виконання а також про встановлення чи зміну способу й порядку виконання Рішення суду чи іншого органу посадової особи про відстрочку або розстрочку виконання встановлення чи зміну способу й порядку виконання має бути прийнято в 10денний строк і може бути оскаржено у...
81327. Зупинення виконавчого провадження (поняття, види, порядок і строки зупинення) 29.99 KB
  Виконавче провадження підлягає обовязковому зупиненню у випадках: смерті стягувача або боржника оголошення померлим чи визнання безвісно відсутнім стягувача або боржника або припинення існування сторони юридичної особи якщо установлені судом правовідносини допускають правонаступництво; визнання стягувача або боржника недієздатним; проходження боржником строкової військової служби в Збройних Силах України та інших військових формуваннях якщо за умовами служби провадження виконавчих дій неможливе чи на прохання стягувача який проходить...
81328. Підстави та порядок повернення виконавчого документа стягувачеві 27.76 KB
  Виконавчий документ який прийнятий державним виконавцем до виконання і за яким стягнення не провадилося або було проведено частково повертається стягувачеві: за письмовою заявою стягувача; якщо в боржника відсутнє майно на яке може бути звернено стягнення і здійснені державним виконавцем відповідно до Закону заходи щодо розшуку такого майна виявилися безрезультатними; якщо стягувач відмовився залишити за собою майно боржника не реалізоване під час виконання рішення одержати певні предмети що повинні бути передані йому від боржника...
81329. Повернення виконавчого документу до суду або іншого органу (посадовій особі), який його видав 22.35 KB
  Виконавчий документ прийнятий державним виконавцем до виконання повертається до суду який його видав у разі відновлення судом строку для подання апеляційної скарги на рішення за яким видано виконавчий документ та прийняття такої апеляційної скарги до розгляду крім виконавчих документів що підлягають негайному виконанню.
81330. Оголошення розшуку боржника, дитини та розшуку транспортних засобів боржника 26.22 KB
  Підставами для оголошення розшуку є відсутність в ході виконавчого провадження відомостей про місце проживання місцезнаходження боржника його майна а також дитини. У разі відсутності відомостей про місце проживання місцезнаходження боржника за виконавчими документами про стягнення аліментів...
81331. Поворот виконання 28.31 KB
  Поворот виконання це спосіб захисту майнових прав відповідача який полягає у поверненні позивачем стягувачем відповідачу боржнику всього одержаного за скасованим рішенням. Загальних правил які б передбачали поворот виконання немає що примушує знову звертатися до процесуального процедурного чи іншого законодавства яке передбачає винесення і виконання юрисдикційного рішення яке підлягає виконанню у порядку ст. Питання про поворот виконання вирішує суд який переглядає судові рішення постанови і до компетенції якого входить...
81332. Виконавчий збір 28.08 KB
  Виконавчий збір не стягується із страховиків які здійснюють державне обовязкове особисте страхування при виконанні державними виконавцями рішень про стягнення коштів за державним обовязковим особистим страхуванням та з осіб звільнених від його сплати згідно з законодавством а також за виконавчими документами про конфіскацію майна стягнення періодичних платежів стягнення виконавчого збору накладення арешту на майно для забезпечення позовних вимог. Постанова про стягнення виконавчого збору виноситься при першому надходженні виконавчого...