Циклические алгоритмические конструкции

Автор: Пользователь скрыл имя, 11 Января 2012 в 18:22, лекция

Описание работы

В языке Паскаль имеется три различных оператора цикла, с помощью которых можно запрограммировать повторяющиеся фрагменты программы.

Оператор цикла с параметром:
Шаг равен +1


FOR i:=n TO m DO <оператор>;

Где: FOR –для

i – параметр цикла

n – начальное значение параметра цикла

to - до

m – конечное значение параметра цикла

do - делать

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

При этом должно выполняться условие: n<m

Работа содержит 1 файл

Циклические алгоритмические конструкции.doc

— 63.00 Кб (Скачать)

Циклические алгоритмические  конструкции.

      В языке Паскаль имеется три  различных оператора цикла, с  помощью которых можно запрограммировать  повторяющиеся фрагменты программы.

Оператор  цикла с параметром:

  • Шаг равен +1
 

FOR   i:=n   TO   m   DO   <оператор>;

Где: FOR –для

      i – параметр цикла

      n – начальное значение параметра цикла

      to - до

     m – конечное значение параметра цикла

      do - делать

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

При этом должно выполняться условие: n<m

Если  тело цикла состоит из нескольких операторов, то они заключаются в операторные скобки begin … end:

          FOR   i:=n   TO   m   DO   begin

                                  <оператор 1>;

                                  <оператор 2>;

                                        ……….

               <оператор N>;

                                  end;

      Переменная  i (счетчик) увеличивается на единицу от начального значения n до конечного значения m при каждом новом значении i исполняется оператор внутри цикла. Параметр цикла, начальное и конечное его значения должны быть описаны как integer.

      Если  n=m, то цикл выполняется один раз.

      Если  n>m, то цикл не выполняется ни разу. 

  • Шаг равен -1:
 

FOR   i:=n DOWNTO   m   DO   <оператор>;

Где  DOWNTO – переводиться как до.

При этом должно выполняться условие:  n>m.

Примеры вычисления сумм, количеств  и произведений.

Алгоритм  подсчета:

  • Сумм

Первоначальное  значение S:=0.

Подсчет в цикле:   S:=S+{текущее значение}

Пример:

{Вычислить S=1+2+3+….N }

WRITELN ( ´введите натуральное число N=   ´ );

READLN(n);

S:=0;

FOR   i:=1   TO   n   DO S:=S+i ; 
 

  • Количества

Первоначальное значение k:=0.

Подсчет в цикле:   k:=k+1

Пример:

    {определить, сколько из заданных точек принадлежит графику }

Program zadacha;

Uses crt;

Var k,i,n:integer;

      x,y:real;

begin  clrscr;

  writeln (‘введите количество точек N= ‘);

readln (n);

k:=0;

      For  i:=1  to  n  do  begin

            Writeln (‘введите координаты’ , i, ‘- ой точки x  и y’ );

            Readln (x,y);

            If  y=abs(x)  then k:=k+1

                        end;

if   k=0  then  writeln  (‘таких точек нет’)

            else  writeln (‘k=’,k);

readkey;

end.  
 

  • Произведений

Первоначальное значение p:=1.

Подсчет в цикле:   p:=p*{множитель}

Пример:

{Вычислить N!}

      Program zadacha;

      Uses crt;

      Var p,i,n:integer;

      begin  clrscr;

            writeln (‘введите число  N= ‘);

            readln (n);

              p:=1;

             For  i:=1  to  n  do  p:=p*i;

                     Writeln (‘факториал числа ‘ , n,  ‘=’ , p);

           Readkey;

      End. 

 

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

Формат  оператора: While   <условие>   do   <оператор>;

Где: While - пока

      <условие>   - логическое выражение

      do  - делать

     Оператор  выполняется до тех пор, пока <условие>, имеет значение истина, прекращает выполняться, если <условие> принимает  значение ложь.

Пример:

Оператор  For v:=E1  to   E2  do S;

Эквивалентен

V:=E1;

While   v<=E2 do  begin

                  S;

                  v:=succ (v);

                  End;

Пример:

{подсчитать сумму всех нечетных числе от 101 до 301}

      Program zadacha;

      Uses crt;

      Var s,i:integer;

begin  clrscr;

      s:=0;

      i:=101;

      while  i<=301  do  begin

                        s:=s+i;

                        i:=i+2;

                        end;

     writeln (‘сумма кубов нечетных числе от 101 до 301=  ‘ , s);

readkey;

end. 

Пустой  оператор

Не задает никаких действий, кроме определения  своего преемника. Если пустой оператор фигурирует среди последовательности операторов, отделения друг от друга “i”, то его преемником является следующий по порядку оператор. 

Оператор  варианта (выбора)

  Этот оператор представляет собой обобщение условного  оператора:

  if <условие 1> then <onepaтop 1> else

               if <условие2> then <оператор2> else

                      - - -  - - - - - - - - - - - - -

                        if <условие N> then <onepaтop N>; 

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

ВНИМАНИЕ!

    Входить внутрь оператора варианта можно  только через символ CASE - входить внутрь по какому - либо оператору перехода, находящемуся вне оператора варианта, запрещается.

CASE <ключ выбора>   OF   <список варианта>

                         ELSE   <onepaтop> end;

где:

CASE -случай

<ключ - выражение любого типа кроме типов

выбора> REAL и STRING

OF - из

<список - одна или более конструкций вида:

варианта> < константа выбора>: <оператор>;

ELSE - иначе

<оператор> - произвольный оператор Турбо Паскаля

end; - конец 

  Оператор  выбора работает следующим образом. В начале вычисляется значение выражения  <ключ выбора>, а затем в последовательности операторов <список варианта> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в <списке варианта> не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается оператору, стоящему за словом ELSE.

  Часть ELSE <onepaтop> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу.

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

Пример.

1. Программа  вводит два числа в первой  строке и один из знаков  +, -, *, / во второй строке и выводит на экран результат соответствующего арифметического действия.

2. При вводе  одного из символов "у" или  "Y" выводится на экран слово "ДА", а при вводе "n" или "N" слово "НЕТ".

 
 

 
 
 
 
 

Метки и операторы перехода

  Хотя  современная технология структурного программирования основана на принципе "программировать без GOTO", считается, что злоупотребление операторами перехода затрудняет понимание программы, делает ее путаной и сложной в отладке. Тем не менее, в некоторых случаях оператор безусловного перехода используется в программе.

Формат  оператора перехода

GOTO <метка>;

  Метка - это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. Метка располагается непосредственно перед помеченным оператором и отделяется от него ,

двоеточием.

   Действие  оператора GOTO состоит в передаче управления соответствующему помеченному оператору.

   Правила при использовании меток:

  • метка, на которую ссылается оператор GOTO, должна быть описана в разделе описаний и она обязательно должна встретиться где-нибудь в теле программы;
  • метки,    описанные    в    процедуре    (функции), локализуются в ней, поэтому передача управления

   извне процедуры (функции) на метку внутри нее невозможна.

   Пример:

   

Информация о работе Циклические алгоритмические конструкции