Учебный курс Программирование на Delphi. Модуль 13: различия между версиями

Материал из Wiki Mininuniver
Перейти к навигацииПерейти к поиску
 
Строка 1: Строка 1:
 
<Center>'''Использование процедур'''</Center>
 
<Center>'''Использование процедур'''</Center>
 +
Для программирования циклов с условием в Delphi существуют оператор цикла с предусловием WHILE и оператор цикла с постусловием REPEAT.
 +
 +
Формат операторов:
 +
 +
while условие do оператор;
 +
 +
repeat операторы until условие;
 +
 +
условие – логическое выражение.
 +
 +
В операторе while сначала вычисляется логическое выражение и если оно истинно, то выполняется оператор. После этого управление возвращается в начало цикла на вычисление логического выражения. Если условие ложно, оператор завершает работу и управление передаётся на следующий оператор.
 +
 +
В операторе repeat сначала выполняются операторы, и только потом вычисляется логическое выражение. Если оно ложно, то управление возвращается в начало цикла, повторяется выполнение операторов тела цикла. Если условие истинно – то выход из цикла.
 +
== Пример 1.==
 +
*Условие
 +
Алгоритм Евклида для подсчета НОД (наибольшего общего делителя) двух натуральных чисел.
 +
 +
*Использованные компоненты
 +
 +
 +
*Программный код
 +
 +
var a,b,x,y,z:integer;
 +
 +
procedure TForm1.BitBtn2Click(Sender: TObject);
 +
begin
 +
close;
 +
end;
 +
 +
procedure TForm1.BitBtn1Click(Sender: TObject);
 +
 +
begin
 +
a:=strtoint(edit1.Text);
 +
b:=strtoint(edit2.Text);
 +
  x:=a; y:=b;
 +
    while (x<>y) do
 +
      if x>y then x:=x-y
 +
              else y:=y-x;
 +
      z:=x;
 +
label3.Caption:='НОД= '+inttostr(z);
 +
end;
 +
end.
 +
*Форма с результатом работы программы
 +
[[Изображение:-4-1.JPG]]
 +
== Пример 2.==
 +
*Условие
 +
 +
*Использованные компоненты
 +
 +
*Программный код
 +
 +
var n:integer;
 +
      s,z,e:real;
 +
procedure TForm1.BitBtn2Click(Sender: TObject);
 +
begin
 +
close;
 +
end;
 +
 +
procedure TForm1.BitBtn1Click(Sender: TObject);
 +
begin
 +
e:=strtofloat(edit1.Text);
 +
n:=1; z:=1/6; s:=0;
 +
    while abs(z)>=e do
 +
      begin
 +
        s:=s+z;
 +
        n:=n+1;                         
 +
        z:=n/((n+1)*(n+2));
 +
      end;
 +
label2.Caption:='Сумма= '+floattostr(s);
 +
end;
 +
 +
end.
 +
*Форма с результатом работы программы
 +
== Пример 3.==
 +
 +
*Условие
 +
 +
*Использованные компоненты
 +
 +
*Программный код
 +
 +
var x1,x2,d,e,m:real;
 +
procedure TForm1.BitBtn2Click(Sender: TObject);
 +
begin
 +
close;
 +
end;
 +
 +
procedure TForm1.BitBtn1Click(Sender: TObject);
 +
begin
 +
m:=strtofloat(edit1.Text);
 +
e:=strtofloat(edit2.Text);
 +
x1:=m;
 +
  repeat
 +
    x2:=2/3*x1+m/3/sqr(x1);
 +
    d:=abs(x1-x2);
 +
    x1:=x2;                 
 +
  until d<=e;
 +
label3.Caption:='Корень= '+floattostr(x2);
 +
end;
 +
 +
end.
 +
 +
*Форма с результатом работы программы
 +
 +
 +
==Задание==
 +
 +
Таблица 13
 +
 +
Таблица 14
 +
 +
==Литература==
 +
 +
#Архангельский. Программирование на Delphi 6. – М: БИНОМ,  2002
 +
#Бобровский С. Delphi 7. Учебный курс. –  СПб:  Питер, 2003
 +
#Культин Н. Основы программирования в  Delphi 7. СПб: БХВ-Петербург, 2005.
 +
 +
 +
==Ссылки==
 +
 +
[[Учебный курс Программирование на Delphi]]
 +
 +
[[Учебный план курса Программирование на Delphi]]
 +
 +
 +
[[Категория: Учебный курс Программирование на Delphi]]

Версия 08:43, 1 марта 2008

Использование процедур

Для программирования циклов с условием в Delphi существуют оператор цикла с предусловием WHILE и оператор цикла с постусловием REPEAT.

Формат операторов:

while условие do оператор;

repeat операторы until условие;

условие – логическое выражение.

В операторе while сначала вычисляется логическое выражение и если оно истинно, то выполняется оператор. После этого управление возвращается в начало цикла на вычисление логического выражения. Если условие ложно, оператор завершает работу и управление передаётся на следующий оператор.

В операторе repeat сначала выполняются операторы, и только потом вычисляется логическое выражение. Если оно ложно, то управление возвращается в начало цикла, повторяется выполнение операторов тела цикла. Если условие истинно – то выход из цикла.

Пример 1.

  • Условие

Алгоритм Евклида для подсчета НОД (наибольшего общего делителя) двух натуральных чисел.

  • Использованные компоненты


  • Программный код

var a,b,x,y,z:integer;

procedure TForm1.BitBtn2Click(Sender: TObject); begin close; end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin

a:=strtoint(edit1.Text); b:=strtoint(edit2.Text);

 x:=a; y:=b;
   while (x<>y) do
     if x>y then x:=x-y
             else y:=y-x;
     z:=x;

label3.Caption:='НОД= '+inttostr(z); end; end.

  • Форма с результатом работы программы

-4-1.JPG

Пример 2.

  • Условие
  • Использованные компоненты
  • Программный код

var n:integer;

     s,z,e:real;

procedure TForm1.BitBtn2Click(Sender: TObject); begin close; end;

procedure TForm1.BitBtn1Click(Sender: TObject); begin e:=strtofloat(edit1.Text); n:=1; z:=1/6; s:=0;

   while abs(z)>=e do
     begin
       s:=s+z;
       n:=n+1;                          
       z:=n/((n+1)*(n+2));
     end;

label2.Caption:='Сумма= '+floattostr(s); end;

end.

  • Форма с результатом работы программы

Пример 3.

  • Условие
  • Использованные компоненты
  • Программный код

var x1,x2,d,e,m:real; procedure TForm1.BitBtn2Click(Sender: TObject); begin close; end;

procedure TForm1.BitBtn1Click(Sender: TObject); begin m:=strtofloat(edit1.Text); e:=strtofloat(edit2.Text); x1:=m;

 repeat
   x2:=2/3*x1+m/3/sqr(x1);
   d:=abs(x1-x2);
   x1:=x2;                   
 until d<=e;

label3.Caption:='Корень= '+floattostr(x2); end;

end.

  • Форма с результатом работы программы


Задание

Таблица 13

Таблица 14

Литература

  1. Архангельский. Программирование на Delphi 6. – М: БИНОМ, 2002
  2. Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003
  3. Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005.


Ссылки

Учебный курс Программирование на Delphi

Учебный план курса Программирование на Delphi