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

ЗАДАЧИ ЦЕЛОЧИСЛЕННОЙ АРИФМЕТИКИ

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

Для организации цикла необходимо выполнить следующие действия:

перед началом цикла задать начальное значение параметра;

внутри цикла изменять параметр цикла с помощью оператора присваивания;

проверять условие повторения или окончания цикла;

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

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

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

Если в цикле изменяется простая переменная, то она является параметром цикла; если в цикле изменяется переменная с индексом, то индекс этой переменной является параметром цикла.

Для организации цикла с известным числом повторений в Pascal используется оператор for.

Структура цикла, организованного с помощью этого оператора, имеет вид:

               For I := A To B Do Begin End;

или

               For I := A DownTo B Do Begin End;   

Здесь I — параметр, изменяющийся в цикле; A, B — выражения порядкового типа, обозначающие начальное, конечное значение параметра цикла. Шаг изменения номера параметра цикла равен 1, если в заголовке цикла стоит To (т.е. реально следующее значение параметра цикла вычисляется с помощью функции succ); и -1 — при DownTo (вычисление производится с помощью функции pred).

Порядок выполнения цикла с шагом 1 следующий: вычисляются значения начального и конечного значений параметра цикла; параметр если I принимает начальное значение; если I меньше или равно конечному значению, исполняется тело цикла; значение параметра цикла увеличивается, т.е. I := succ(I); проверяется условие I=B) и при его выполнении цикл повторяется. Выход из цикла осуществляется, если I>B (IB (или A Sum_Max Then Begin Sum_Max := Sum; Ch := I End;

     End;

     WriteLn('Максимальную сумму делителей ', Sum_Max, ' имеет число ',Ch)

  End.

Задача 4. Дано натуральное число n. Получить все простые делители этого числа.

{Программа отыскания простых делителей данного числа}

Program Pr_Del;

 Var N, I, Vsp : Integer;

     Log_Per, Priznak : Boolean;

   Begin

    Write('Введите натуральное число: ');

    ReadLn(N);

     Priznak := True; {Признак того, не является ли введенное число простым}

      {Пока параметр цикла не превысил квадратного корня из данного числа,

       продолжаем поиск простых делителей}

     For I := 2 To Round(Sqrt(N)) Do

       If N Mod I = 0 Then

         Begin

           Priznak := False;   {Введенное число не является простым}

           Log_Per := False;   {Логическая переменная, принимающая значение True,

                                если нашлись делители I, отличные от 1 и I}

           Vsp := 2;

            Repeat

              If (I Mod Vsp = 0) And (I Vsp) Then Log_Per := True;

              Vsp := Vsp + 1

            Until  (Vsp > I Div 2 + 1) Or Log_Per;

            If Not(Log_Per) Then WriteLn(I)  {Если число I простое, печатаем его}

         End;

     If Priznak Then WriteLn(N)

   End.

Предлагаем читателю самостоятельно разобраться с представленным решением.

Контрольные вопросы и задания

Назовите отличия итерационных циклов и цикла с параметром.

Какова структура оператора цикла с параметром? Как выполняется цикл с парметром?

Какого типа должны быть пареметр цикла, его начальное и конечное значения в цикле с параметром в языке Pascal?

Могут ли параметр цикла, его начальное и конечное значения в цикле с параметром в языке Pascal быть разных типов? Обоснуйте ответ.

Может ли один цикл быть вложен внутрь другого? Если да, то какова глубина этой вложенности?

Какова структура циклов с пред- и постусловием? как выполняются эти циклы?

Каково минимальное и максимальное количество исполнений циклов с пред- и постусловием? С чем это связано?

Сколько раз исполнится фрагмент программы?

               For i := 1 to -1 Do k:=k*i;

Сколько раз исполнится фрагмент программы?

               For i := -1 to 1 Do k:=k*i;

Сколько раз исполнится фрагмент программы?

               For i := 1 downto -1 Do k:=k*i;

Сколько раз исполнится фрагмент программы?

               M := 123; While M 0 Do M := M Mod 10;

Для цикла с параметром запишите его полный эквивалент с помощью циклов с пред- и постусловием.

Для цикла с предусловием запишите его полный эквивалент с помощью цикла с постусловием.

Для цикла с постусловием запишите его полный эквивалент с помощью цикла с предусловием.

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: