ПЗ №11 ЦИКЛЫ

ПЗ № 11      


1. ЦИКЛ С ПРЕДУСЛОВИЕМ или цикл "ПОКА".


       Сначала проверяется условие и тело цикла выполняется ПОКА УСЛОВИЕ ИСТИННО,

если условие становится ЛОЖНЫМ, то происходит выход из цикла.


Реализуется этот цикл инструкцией:


                 WHILE <условие> DO <тело цикла>


                while - (вайл) - пока,  do - (ду) – делать (выполнять).

       В тело цикла входит только один оператор! Если нужно объединить в тело цикла несколько операторов, то применяются операторные скобки begin-end.

       Условие может быть простым или сложным, если применить слова: NOT, AND, OR.


Пример 1. Вывести 20 одинаковых символов на экран.


Program Simwol; 

Uses crt;

  var i,h,n: integer;

Begin                                            {Действительно ли на экране 20 символов?}

  clrscr;                                    {пронумеруем символы:}

  i:=1; h:=1; n:=20;

  while i<=n do                      while i<=n do

    begin                                       begin

      write('* ');                                   writeln(i,'- * ');

      i:=i+h;                                     i:=i+h;

    end;                                         end;

  readkey;

End.


Пример 2. Вывести на экран числа от 1 до 20.

Пример 3. Вывести на экран числа от 20 до 1.


Program Ch; 

Program Ch; 

Uses crt;

Uses crt;

var i,h,n: integer;

var i,h,n: integer;

Begin        

Begin

Clrscr;

    Clrscr;

i:=1; h:=1; n:=20;

    i:=20; h:=-1; n:=1;

while i<=n do

while i>=n do

        begin

      begin

          write(i,' ');

         write(i,' ');

           i:=i+h;

          i:=i+h;

         end;

       end;

readkey;

readkey;

End.

   End.


ПРИЛОЖЕНИЕ К ПРАКТИЧЕСКОМУ ЗАНЯТИЮ № 11

       Пример 4. Вывести на экран числа, оканчивающиеся на 7 на интервале от -100 до 100.


Program Ch;        

Uses crt;

  var i,h,n: integer;

Begin

  clrscr;

  i:=-100; h:=1; n:=100;

  while i<=n do 

    begin

      if i mod 10=7 then write(i,' ');

      i:=i+h;

    end;

  readkey;

End.


нечетные:                                                if odd(i) then write(i,' ');

четные:                                                if not(odd(i)) then write(i,' ');

делящиеся на 7:                                if i mod 7=0 then write(i,' ')

нечетные и делящиеся на 7:        if (odd(i)) and (i mod 7=0) then write(i,' ');


Пример5. Найти сумму ряда: 1, 2, ..20. 

Тип переменной S может быть integer, если сумма чисел не более 32767.

Program Summa; 

Uses crt;

  var i,n,h,s: integer;

Begin

  clrscr;

  i:=1; n:=20; h:=1; s:=0;                { s:=0 -обнуление суммы }

  while i<=n do

    begin

      s:=s+i;                                        { процесс суммирования  }

      i:=i+h;

    end;

  write('Сумма чисел натурального ряда от 1 до 20 равна ',s);

  readkey;

End.


Пример 6. Найти сумму ряда: 0.1, 0.3, 0.5, .. , 32.5

  Program Summa; 

Uses crt;                                           { s - сумма }

    var x,h,n,s: real;                { h - шаг   }

  Begin                                        { x – начальное значение параметра цикла}

    ClrScr;                                        { n - конечное значение параметра цикла.}

    s:=0; x:=0.1; h:=0.2; n:=32.5;

    while (x<=n) do

           begin

                 s:=s+x;                        { -суммирование очередного элемента }

                 x:=x+h;                { -изменение параметра цикла на шаг }

          end;

    writeln('Сумма  ряда: 0.1, 0.3,.., 32.5 S=',s); readkey;

  End.



Пример 7. Вывести на экран таблицу функции Y=sin(х), где х изменяется от 10 до 90 градусов с шагом 5 .


 Program Tabl; 

Uses crt;

   var  x, h, n, y: real;

 Begin

   ClrScr; 

       writeln('   Таблица функции y=sin(х)');

   x:=10; h:=5; n:=90;

   while x<=n do

     begin

       y:=sin(x*pi/180);

       writeln('X=',x,'   Y=',y);

       x:=x+h;

     end;

  readkey;

 End.


З  А  Д  А  Н  И  Я:


1. Найти сумму ряда: 5.6, 5.9, .. ,9.7

   2

2. Получить таблицу функции y=cos(5?х), где х изменяется от 1 до 10 с шагом 0.5


3. Найти произведение чисел от 6.7 до 7.8 с шагом 0.4


4. Сравнить, что больше сумма ряда 8.5, 8.6,...,40.9 или произведение чисел от 1 до 3 с шагом 0.25