Pascal - Предусловный оператор WHILE

Практическая работа №43 

Предусловный оператор цикла WHILE

 

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

 

Обеспечивающие средства: Сборник  описаний  практических работ по программированию на Turbo-Pascal; персональный компьютер.

 

Задание: Составить программы, используя оператор цикла WHILE.

 

Требования к отчету:  Итоги практической работы представить в виде блок-схемы алгоритма и текста программы, привести значения исходных данных и значения полученных результатов, ответить на контрольные вопросы.

 

Технология работы:

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

Структура оператора такова:

WHILE <условие> DO <оператор>

Здесь WHILE, DO – зарезервированные слова (пока [выполняется условие], выполнить);

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

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

 

Если выражение <условие > имеет значение TRUE, то выполняется <оператор>, после чего вычисление выражения <условие >  и его проверка повторяются. Если <условие > имеет значение FALSE, оператор WHILE прекращает свою работу.

 

В качестве иллюстрации рассмотрим программу, которая находит так называемое «машинное эпсилон» - такое минимальное, не равное нулю вещественное число, которое после прибавления его к 1,0 еще дает результат, отличный от 1,0.


Выполните следующее упражнение:

Упражнение 1. Наберите текст программы,  с использованием изученного оператора

 

Program Tp7pr1;                               {Название программы}

Var

epsilon: real;                         {Объявление переменной epsilon}

Begin                                                 {Начало программы}

epsilon :=1;

While epsilon/2+1 > 1  do      {Проверка условия цикла}

Begin

epsilon := epsilon/2;             {Выполнение оператора}

Writeln (‘Машинное эпсилон = ’, epsilon)                        {Выводим результат}

end

end.                                                    {Конец программы}

 

Сохраните программу под именем TP7PR1. Выполните программу. Проанализируйте результат.

При выполнении оператора цикла WHILE могут быть случаи, когда цикл будет выполнятся бесконечно. Например, при задании такого условия достижение которого не возможно:

 

Упражнение 2. Наберите текст программы,  с использованием изученного оператора

 

 Program Tp7pr2;                                  

Var

x: real;                        

Begin                                                 

x :=0;

While x <> 2  do       

Begin

Writeln (x);               

x := x+0.1            

end

end.                                               

Сохраните программу под именем TP7PR2. Выполните программу.

Остановить выполнение программы, можно нажав комбинацию клавиш Ctrl-Break. Проанализируйте результат.

 

Создайте и выполните следующие программы самостоятельно.


  1. Создать программу, в которой печатается бесконечный ряд нечетных чисел, их квадратов и кубов. Результат вычисления вывести на экран. Сохраните программу под именем TP7PR3.
  2. Создать программу, в которой выводится ряд чисел, кратных 5 и разность куба и квадрата каждого числа. Когда напечатается число 150 – остановить программу. Результат вывести на экран. Сохраните программу под именем TP7PR4.

 

 Окончание работы:


  1. Сохраните созданные программы.
  2. Покажите работу преподавателю.
  3. Завершите работу Turbo-Pascal.

 

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


  1. Какова функция предусловного оператора цикла?
  2. В программах какого типа используется предусловный оператор цикла?
  3. Каким образом можно создать бесконечную программу?
  4. Как прервать выполнение бесконечного цикла?