- •2.Константы: целые, вещественные, строковые, логические, символьные :
- •3.Простые переменные и их типы: вещественный, целый, логический, символьный. Раздел переменных.
- •4. Арифметические выражения. Математические функции. Арифметические операции. Возведение в степень, извлечение корня, вычисление тригонометрических функций.
- •5. Порядок действий в арифметических выражениях.
- •6. Оператор присваивания и его динамический смысл.Комментарии.
- •7. Логические выражения. Логические операции. Таблица истинности логических операций. Порядок действий в логических выражениях.
- •3.1. Логические выражения.
- •8. Условный оператор в сокращенной и полной форме. Составной оператор.
- •3.3. Составной оператор.
- •9. Ввод и вывод с использованием формы. Таблица функций преобразования чисел.
- •10.Понятие файла. Текстовый файл. Файловая переменная. Открытие и закрытие файлов. Чтение из вводного файла и запись в выводной файл. Использование окончания In.
- •11. Оператор цикла for в двух формах.
- •12. Оператор цикла while.
- •4.3. Программа с использованием оператора while.
- •13. Оператор цикла repeat … until.
- •14. Раздел констант, типов.
- •15.Одномерные и двумерные массивы. Их описание.
- •16. Раздел меток. Оператор goto.
- •17. Процедуры. Формальные параметры. Структура функций. Роль описателя var. Обращение к процедуре.
- •6.5. Программа с использованием процедуры.
- •18. Функции. Формальные параметры. Структура функций. Роль описателя var. Обращение к функции. Присваивание имени функции значения в теле функции.
- •19. Структура полной подпрограммы, создаваемой в процедуре режима OnClick.
- •20.Модули. Структура модуля.
12. Оператор цикла while.
while <логическое выражение> do <оператор>;
(пока) (выполнить)
Пока логическое выражение истинно, то будет выполняться оператор. Когда оно станет ложным, выполнение оператора прекратиться и начнет выполняться следующий оператор.
Пример бесконечного повторения (точнее, до переполнения разрядной сетки числа a):
while true do a:=a+1;
Пример, когда оператор не выполнится ни разу:
while false do a:=a+1;
Операторы цикла for и while - операторы с предварительной проверкой условия (циклы с предусловием).
4.3. Программа с использованием оператора while.
Напишем программу, которая решает уравнение x-0,5sinx+2=0. Перепишем это уравнение в виде x=0,5sinx-2. Зададим начальное приближение x1 к корню. Здесь можно принять x1=-2. Затем производим вычисления по итерационной формуле: xk+1=0,5sinxk-2. Процесс заканчивается при выполнении неравенства xk+1- xk,(k=1,2,3,…) где - малое число, например, ε= 0,001. Приведем программу, решающую поставленную задачу.
Сначала создадим форму. Создаем в левом верхнем углу формы три компонента класса Tlabel, переименовываем их с помощью строки Caption Object Inspector в x11, eps1 и корень соответственно. Создаем прямо под ними три компонента класса TЕdit и переименовываем их в x11, eps1, x соответственно с помощью строки Name Object Inspector.
Прямо под ними расположим два управляющих компонента Button1 и Button2 (пиктограмма ok) и кнопку √ok страницы Additional. Выбираем строку Kind и, нажав на стрелку в конце этой строки, в выпавшем наборе возможностей выбираем bkClose.
Рис.4.1. Вид формы после выполнения программы.
Код программы приводится ниже.
unit Unit1;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, Buttons, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
x11: TEdit;
eps1: TEdit;
x: TEdit;
Button1: TButton;
Button2: TButton;
BitBtn1: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
x1,x2,eps:Extended;
procedure clearr;// процедура очистки компонентов класса ТEdit формы
begin
Form1.x11.Text:=''; Form1.eps1.Text:='';
end;
procedure TForm1.Button1Click(Sender: TObject);
//установка фокуса ввода
begin
Clearr;
Form1.x11.SetFocus;
end;
procedure TForm1.Button2Click(Sender: TObject); //вычисление корня
begin
x1:=StrToFloat(Form1.x11.Text);
eps:=StrToFloat(Form1.eps1.Text);
x2:=0.5*sin(x1)-2;
while abs(x1-x2)>=eps do
begin x1:=x2;x2:=0.5*sin(x1)-2; end;
Form1.x.Text:=FloatToStrF(x2,ffFixed,8,2);//вывод результата
end;
end.
13. Оператор цикла repeat … until.
repeat <набор операторов> until <логическое выражение>;
(повторять) (пока)
В начале выполняется набор операторов. Затем вычисляется логическое выражение. Если оно ложно, то снова выполняется набор операторов и так до тех пор, пока это выражение не станет истинным. Это оператор повторения с проверкой истинности логического выражения (условия) после выполнения набора операторов, т.е. оператор с постусловием.
Перед until точка с запятой может не ставиться.