Учебный курс Программирование на Delphi. Модуль 13: различия между версиями
| Строка 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.
- Форма с результатом работы программы
Пример 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.