Добавил:
kostikboritski@gmail.com Выполнение курсовых, РГР технических предметов Механического факультета. Так же чертежи по инженерной графике для МФ, УПП. Писать на почту. Дипломы по кафедре Вагоны Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

информатика (не сорт) / Запишите в тетрадь и запомните 3 оператора

.doc
Скачиваний:
16
Добавлен:
12.08.2017
Размер:
323.07 Кб
Скачать

Запишите в тетрадь и запомните 3 оператора!

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

while условие do   оператор

Условие представляет собой выражение логического типа, а оператор после do называется телом цикла. Перед каждой итерацией цикла условие вычисляется, и если оно истинно, то выполняется тело цикла, в противном случае происходит выход из цикла.

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

repeat   операторы until условие

В отличие от цикла while, условие вычисляется после очередной итерации цикла, и если оно истинно, то происходит выход из цикла. Таким образом, операторы, образующие тело цикла оператора repeat, выполняются по крайней мере один раз.

 

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

Оператор цикла for имеет одну из двух форм:

for переменная:=начальное значение to конечное значение do   оператор

или

for переменная:=начальное значение downto конечное значение do   оператор

Текст от слова for до слова do включительно называется заголовком цикла, а оператор после do - телом цикла. Переменная после слова for называется параметром цикла. Для первой формы цикла с ключевым словом to параметр цикла меняется от начального значения до конечного значения, увеличиваясь всякий раз на единицу, а для второй формы ключевым словом downto - уменьшаясь на единицу. Для каждого значения переменной-параметра выполняется тело цикла. Однократное повторение тела цикла называется итерацией цикла.

Значение параметра цикла после завершения цикла считается неопределенным.

 

Организация циклических вычислений

Большинство вычислительных процессов имеют следующую особенность: отдельные участки вычислений повторяются многократно, при этом всякий раз используются новые значения при вычислении. Повторяющиеся участки вычислений называют циклами, а вычислительные процессы, содержащие циклы – циклическими.

Различают циклы с известным и с неизвестным числом повторений.

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

Циклы с неизвестным числом повторений (итерационные циклы).

Итерационным называется вычислительный процесс, в котором для определения последующего значения переменной используется ее предыдущее значение. В итерационных циклах реализуется метод последовательных приближений. К итерационным циклам относят цикл с предусловием и цикл с постусловием.

Цикл с предусловием while…do

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

while <условие>  do  <оператор>;

где

  while, do – служебные слова (пока [выполняется условие] делать);

  <условие> – выражение логического типа (например, b <= 5);

  <оператор> –  произвольный оператор языка Pascal, называемый телом цикла. Оператор может быть простым, составным или структурированным.

Принцип действия оператора whiledo:

1 Вычисляется значение логического выражения (проверяется условие).

2 Если результатом вычисления значения логического выражения (проверки условия) является ответ true (истина), то выполняется оператор, составляющий тело цикла, и стоящий после служебного слова do. Происходит возврат к пункту 1.

3 Если результатом вычисления значения логического выражения (проверки условия) является ответ false (ложь), то оператор whiledo заканчивает свою работу и управление передается на следующий оператор.

Исходя из описанного алгоритма, повторение действий 1, 2 продолжается, пока результатом вычисления значения логического выражения (проверки условия) не станет ответ false (ложь). Вообще говоря, оператор цикла whiledo может не выполниться ни разу (если значением логического выражения сразу является false).

Примечание − Тело цикла обязательно должно содержать оператор, действие которого влияет на значение логического выражения (изменяет значения входящих в него операндов). Иначе неизбежна ситуация «зацикливания» − бесконечного повторения операторов тела цикла, приводящая зачастую к зависанию среды программирования.

 

Пример 1. Составить программу для вычисления и вывода на экран значений функции

при х, изменяющемся в диапазоне от -3 до 6 с шагом 0,3, используя оператор с предусловием.

Решение.

Program prim_w;

var x, y: real;

begin

     x:=-3;            {левая граница диапазона изменения переменной}

     while x<=6 do         {условием выхода из цикла ставится достижение переменной x правой границы диапазона}

         begin

              y:=cos(exp(x*ln(5))/abs(x+2));

              writeln('x=',x:4:2,'     y=',y:7:3);

              x:=x+0.3 {увеличение значения переменной x на величину шага}

         end;

end.

Цикл с постусловием repeat…until

Цикл с постусловием, в котором сначала выполняется оператор или группа операторов, а затем проверяется условие. Формат оператора:

repeat

<операторы цикла>

until <условие>;

где

  repeat, until – служебные слова (повторять до тех пор, пока не будет выполнено условие);

  <операторы цикла> – повторяющаяся в цикле последовательность операторов (тело цикла). Использовать в качестве тела цикла операторные скобки begin…end нецелесообразно, т. к. роль скобок в данном случае играют зарезервированные слова repeat и until;

  <условие> – выражение логического типа.

Принцип действия оператора repeat…until:

1 Выполняются операторы, расположенные между операторами repeat…until, составляющие тело цикла.

2 Вычисляется значение логического выражения (проверяется условие), стоящего после слова until. Если результатом вычисления значения логического выражения (проверки условия) является ответ false (ложь), то операторы, составляющие тело цикла, выполняются вновь.

3 Если результатом вычисления значения логического выражения (проверки условия) является ответ true (истина), то оператор repeat…until заканчивает свою работу, и управление передается на следующий за ним оператор.

Как следует из описанного алгоритма, повторение действий 1, 2 продолжается до тех пор, пока результатом вычисления логического выражения не станет ответ true (истина), т. е. пока не выполнится условие.

Примечания.

1 Тело цикла оператора repeat…until обязательно должно содержать оператор, действие которого влияет на значение логического выражения (изменяет значения входящих в него операндов). Иначе неизбежно «зацикливание».

2 Тело цикла repeat…until обязательно повторится хотя бы один раз при любом значении логического выражения.

 

Пример 2. Составить программу для вычисления и вывода на экран значений функции

при х, изменяющемся в диапазоне от -3 до 6 с шагом 0,3, используя оператор с постусловием.

Решение.

Program prim_r;

var x, y: real;

begin

     x:=-3;       {левая граница диапазона изменения переменной}

     repeat

         y:=cos(exp(x*ln(5))/abs(x+2));

         writeln('x=',x:4:2,'     y=',y:7:3);

         x:=x+0.3 {увеличение значения переменной x на шаг}

until x>6        {условием выхода из цикла является превышение переменной x значения правой границы диапазона}

end.

Цикл с параметром for…to…do

Цикл с заранее известным числом повторений. Формат оператора:

for <параметр цикла> :=<нач_знач> to <кон_знач> do <оператор>;

где

  for, to, do – служебные слова (для, до, выполнить);

  <параметр цикла> – параметр цикла, в качестве которого выступает переменная типа integer (byte);

  <нач_знач> – начальное значение параметра цикла: константа, переменная или выражение типа integer (byte);

  <кон_знач> – конечное значение параметра цикла: константа, переменная или выражение типа integer (byte);

  <оператор> – простой, составной или структурированный оператор (тело цикла).

Принцип действия оператора for… to… do:

1 Параметру цикла присваивается начальное значение, и операторы цикла выполняются в первый раз.

2 Параметр цикл увеличивается на единицу, т. е. <параметр_цикла> := <нач_знач> + 1. Тело цикла выполняется во второй раз.

3 При каждом увеличении параметра цикла на единицу, тело цикла повторяется вновь.

4 В последний раз тело цикла выполняется при достижении параметром цикла конечного значения, т. е. <параметр_цикла> := <кон_знач>.

Таким образом, операторы тела цикла for… to… do выполнятся ровно <кон_знач> − <нач_знач> + 1 раз.

Если конечное значение параметра цикла меньше начального, то можно использовать иной формат оператора:

for <параметр цикла> :=<нач_знач> downto <кон_нач> do <оператор>;

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

Примечание − В некоторых версиях среды Turbo или Free Pascal параметр цикла может быть использован в качестве операнда выражений и операторов, составляющих тело цикла, но не может быть изменен.

 

Пример 3. Составить программу для вычисления и вывода на экран значений функции

при х, изменяющемся в диапазоне от -3 до 6 с шагом 0,3, используя оператор с известным числом повторений.

Решение.

Program prim_f;

var x, y: real;

begin

     x:=-3;                    {левая граница диапазона изменения переменной}

     n:=round((6-(-3))/0.3)+1; {количество повторений цикла}

for i:=1 to n do

begin

      y:=cos(exp(x*ln(5))/abs(x+2));

      writeln('x=',x:4:2,'     y=',y:7:3);

      x:=x+0.3

end

end.

 

 

Пример 1. Составить программу для вычисления и вывода на экран значений функции с помощью цикла While do .   Решение приведено в таблице 1.

Вычислить и напечатать значение функции  ,

где a1=2,8; b изменяется в интервале 2; 5 с шагом b = 0,5.

 

Таблица 1 −  Пример на цикл While do

Program primer1;

var a1, b, p5:real;

 

Begin

a1:=2.8; b:=2;

        While b<=5 do

                begin

                p5:=sin(a1/b);

                writeln (b, p5:8:5);

                b:=b+0.5;

                end;

End.

 

 

 

Пример 2. Составить программу для вычисления и вывода на экран значений функции с помощью цикла Repeatuntil  . Решение приведено в таблице 2.

Вычислить и напечатать значение функции  ,

где a1=2,8; b изменяется в интервале 2; 5 с шагом b = 0,5.

 

 

Таблица 2 −  Пример на цикл  Repeatuntil 

Program primer2;

var a1, b, p5:real;

 

Begin

a1:=2.8; b:=2;

Repeat

     p5:=sin(a1/b);

     writeln (b:4:1,p5:14:7);

     b:=b+0.5;

Until b>5;                      

 

End.

 

 

 

 

Пример 3. Составить программу для вычисления и вывода на экран значений функции с помощью цикла Fortodo  . Решение приведено в таблице 3.

Вычислить и напечатать значение функции  ,

где a1=2,8; b изменяется в интервале 2; 5 с шагом b = 0,5.

 

 

Таблица 3 −  Пример на цикл  Fortodo 

Program primer3;

var

a1, b, p5:real;

i, ik:integer;

 

Begin

 a1:=2.8; b:=2;

 ik:=round((5-2)/0,5)+1

 For i :=1 to ik do

                begin

                p5:=sin(a1/b);

                writeln (b,p5);

                b:=b+0.5;

                end;

End.

 

 

 

 

Задание 13_1

Используя примеры напишите программы. Вычислить тремя способами при помощи операторов цикла while dorepeat..until, Fortodo  (таблице 4).

 Сохраните в файлах с именами по образцу Prg_13_1_1_mt11_Иванов_Иван.pas, Prg_13_1_2_mt11_Иванов_Иван.pas, Prg_13_1_3_mt11_Иванов_Иван.pas

Периодически сохраняйте файл в процессе работы.

Таблица 4 −  Составить программу для вычисления

1

Вычислить ,

если   p1=0,8;    3<=y5<=4,5 ;   y5=0,25 

9

Вычислить dp = lg ,

если  f = 0,3;   2  5;   s = 0,25

2

Вычислить set=,

если y=1,3;  2,5<=z<=3,5;  z=0,125

10

Вычислить LP = ,

если p3 = 1,6;   39;  p = 2 

3

Вычислить om1=,

если t4=2,9;      

11

Вычислить og  = b,

если a = 0,26;   2  3,5;     b = 0,25

4

Вычислить c=,

если z= 0,8;  ;  

12

Вычислить pl =  sin ( w +2d ),

если  w = 0,48;  1,5   5 ;    d = 0,5

5

Вычислить a2=,

если t=1,4;     ;  

13

Вычислить sm =  ,

если b  =  1,68;    2   3  ;  c5 = 0,125

6

Вычислить OMEG=,

если  p=0,8;  ;    

14

Вычислить Dg =  ,

если  pm = 1,63;   -3  9 ;       a = 2

7

Вычислить f=,

если    ;  

15

Вычислить k9 = ,

если  b = 0,95;  0  1,5 ;  = 0,25

8

Вычислить Dg =  ,

если  pm = 1,63;   -3  9 ;       a = 2

16

Вычислить b7 = ,

если  d = 1,3;   -2  1;       m6 = 0,5

 

Задание 13_2. Вычислить при помощи оператора цикла Fortodo  (таблице 5).

Сохраните в файле с именем по образцу Prg_13_2_mt11_Иванов_Иван.pas

 

Таблица 5 −  Составить программу для вычисления

1.     

Дано n . Вычислить 

2.     

Дано n .

Вычислить 

3.     

Дано n . Вычислить 

4.     

Дано   n.   Вычислить 

5.     

Дано действительное а  .  Вычислить  …+

6.     

Дано: n – натуральное, а – вещественное.

Вычислить

7.     

Дано: а - вещественное,  n - натуральное. 

Вычислить             

8.     

Даны а - вещественное , n - натуральное.  Вычислить                

9.     

Вычислить 

10.                        

Дано вещественное  х,  натуральное n.  

Вычислить

11.                        

Дано вещественное  х  .   Вычислить            

12.                        

Даны x- вещественное , n - натуральное. 

Вычислить

13.                        

Вычислить

14.                        

Вычислить 

15.                        

Вычислить  ,

где

 Контрольные вопросы

1    Основные циклические конструкции.

2     Формат и принцип действия оператора с предусловием whiledo. Особенности применения.

3    Формат и принцип действия оператора с постусловием repeatuntil. Особенности применения.

4    Формат и принцип действия оператора fortodo. Особенности применения.