42758

Построение циклов с инструкциями „while” и „repeat”

Лабораторная работа

Информатика, кибернетика и программирование

Инструкция whiledo Особенность этой инструкции состоит в том что условие проверяется перед входом в тело цикла поэтому цикл while называют еще циклом с предусловием.1 Синтаксис инструкции whiledo В этом описании условие продолжения это выражение логического типа определяющее условие при котором выполняются инструкции тела цикла . В целом инструкция while выполняется следующим образом: Вычисляется значение выражения условие продолжения . Если значение выражения условие равно flse то есть условие не выполняется выполнение...

Русский

2013-10-31

162.5 KB

4 чел.

Лабораторная работа № 5.
Построение циклов с инструкциями „while” и „repeat”

Цели работы:

  •  Ознакомиться с принципами использования циклов While и Repeat.
  •  Разработать проект, обеспечивающий решение математических задач численными методами.

5.1 Краткое описание инструкций whiledo и repeatuntil.

 Инструкция whiledo

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

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

Рисунок 5.1 – Синтаксис инструкции whiledo

В этом описании <условие продолжения> - это выражение логического типа, определяющее условие при котором выполняются <инструкции тела цикла>.

В целом, инструкция while выполняется следующим образом:

  •  Вычисляется значение выражения <условие продолжения>.
  •  Если значение выражения условие равно false, то есть условие не выполняется, выполнение <инструкций тела цикла>прекращается.
  •  Если значение выражения <условие продолжения> равно true (условие выполняется), то выполняются <инструкции тела цикла>, расположенные между словами begin и end.
  •  После этого снова все повторяется.

Следует заметить, что для того чтобы цикл завершился, нужно чтобы последовательность инструкций, расположенных между begin и end, влияла на значение <условия продолжения >.

 Инструкция repeatuntil

Особенность этой инструкции состоит в том, что условие проверяется после выполнения операторов тела цикла, поэтому <инструкции тела цикла> выполняются, как минимум, один раз. Цикл Repeat называют еще циклом с постусловием.

На языке Delphi в общем виде инструкция Repeat записывается следующим образом.

Рисунок 5.2 – Синтаксис инструкции Repeat

Здесь <условие выхода из цикла> это выражение логического типа, определяющее условие завершения цикла.

Инструкция выполняется следующим образом:

  •  Сначала выполняются <инструкции тела цикла> находящиеся между словами repeat и until.
  •  Затем вычисляется значение выражения <условие выхода из цикла>. Если оно не выполняется (значение выражения равно false), то инструкции тела цикла выполняются еще раз.
  •  Если условие выполняется (значение выражения равно true), то выполнение цикла прекращается.

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

5.2 Описание новых компонентов, используемых в создаваемом проекте.

 Таблица 5.1 Новые компоненты

Компонент

Описание

PageControl

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

CheckBox

Основное свойство этого компонента Checked может принимать значения true или false (включено или выключено).

5.3 Условия индивидуальных заданий и схемы алгоритмов их решения.

 Таблица 5.2 Итерационный  алгоритм

1

a>0,b>0

a/b>6, x0< π/2

Таюлица 5.3 Бесконечный ряд

1

, для х<1

5.4 Тексты процедур для индивидуальных заданий с пояснениями в виде комментариев.

procedure TfrmWhileRepeat.Button1Click(Sender: TObject); //процедура для вычисления итерационной формулы

var a,b,xnew,xold,eps:real;

begin

 memo1.Clear;

 a:=strtofloat(edta.Text); //ввод исходных данных

 b:=strtofloat(edtb.Text);

 eps:=strtofloat(edtEps1.Text);

 xnew:=a; //установка начального значения

 repeat

   xold:=xnew;

    if (a=0) then break;

   xnew:=sqrt(b*sin(Xold)/a);

    if checksteps.Checked then

   memo1.Lines.Append(floattostr(xnew));

 until abs(xold-xnew)<eps;

 edtResult1.Text:=floattostr(xnew); // вывод результатов

 edtControl1.Text:=floattostr(sqrt(b*sin(Xnew)/a));

end;

procedure TfrmWhileRepeat.Button2Click(Sender: TObject); //процедура для вычисления экспоненты

 var x,eps,u,s:real; i:integer; s1:string;

begin

 memo1.Clear;

 x:=strtofloat(edtx.Text); //исходные данные

 eps:=strtofloat(edteps2.Text);

 i:=1; u:=x; s:=u;

  if abs(x)>1 then showmessage('Неверные данные') else  //проверка значения Х

    while abs(u)>eps do

       begin

        i:=i+1;

        u:=-u*x/i;

        s:=s+u;

          if checksteps.Checked then

            begin

            s1:=format('%10.7f %10.7f',[u,s]);

            memo1.Lines.Append(s1);

            end;

       end;

edtresult2.Text:=floattostr(s); //вывод результатов

edtControl2.Text:=floattostr(exp(x));

end;

5.5 Результаты тестирования проекта.

 Рисунок 5.3 Результаты тестирования 1

Рисунок 5.4 Результаты тестирования 2

Выводы: ознакомился с принципами использования циклов whiledo и repeatuntil, создал проект по своему варианту для вычисления значений по формуле, ознакомился с новими компонентами.


Начало

Xnew:=a

old:=Xnew

A=0

    Xnew-Xold    <=eps

Конец

Начало

   X   >1

ShowMessage

(‘Неверные данные’)

i:=1;  u:=x;  s:=u;

i:=i+1

S:=S+U

Конец

      U  >eps


 

А также другие работы, которые могут Вас заинтересовать

47003. Причины первой мировой войны 43.5 KB
  Покровский Стремившийся доказать что царская Россия есть главная виновница войны Покровский в то же время признавал что в основе международных противоречий вызвавших империалистическую войну лежал англогерманский конфликт за которым по значению следовал германофранцузский. Гуч в книге Накануне войны вышедшей в 1938 г. предпринял попытку доказать что возникновение войны в 1914 г.
47006. ТЕОРИЯ ПОДОБИЯ В ПРИМЕНЕНИИ К ДИФФЕРЕНЦИАЛЬНОМУ УРАВНЕНИЮ ТЕПЛОПРОВОДНОСТИ 43.9 KB
  Считаем также что начальная температура тела одинакова и не зависит от координат т.4 где α коэффициент теплоотдачи от тела к омывающей среде Tw температура стенки тела . С другой стороны плотность теплового потока у стенки тела равна: ∂T ∂ϑ qw = −λ = −λ 4.5 ∂n ∂n w w где λ коэффициент теплопроводности тела ∂T производная температуры в теле по нормали к поверхности.
47009. СКРЫТЫЕ (УСЛОВНЫЕ) БАЗЫ 44.26 KB
  Применение условных скрытых баз при проектировании тем более удобно что позволяет исключить из расчетов неизбежные погрешности реальных поверхностей снижающие точность базирования. При базировании деталей собираемых узлов и обрабатываемых заготовок в подавляющем большинстве случаев используются материальные поверхности явные базы по ГОСТ 21495 76 однако и в этом случае для повышения точности базирования иногда применяются условные скрытые базы материализуемые различными устройствами отвесы коллиматоры центрирующие...
47010. Эластичность спроса и предложения. Финансовая устойчивость страховых компаний и ее составляющие 45.47 KB
  Эластичность - степень реакции одной экономической величины на изменение другой. Эластичность показывает, на сколько процентов изменяется одна переменная экономическая величина при изменении другой...