Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование в Delphi_2013.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.65 Mб
Скачать

Составной оператор

Составной оператор – группа операторов языка Pascal, отделенных друг от друга точкой с запятой, начинающихся со служебного слова begin и заканчивающихся словом end:

begin

оператор_1;

...

оператор_n

end;

Транслятор воспринимает составной оператор как один оператор.

Условные операторы

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

Условный оператор, соответствующий приведенной блок-схеме, имеет вид:

if условие then

оператор_1

else

оператор_2;

Работа условного оператора организована следующим образом. Сначала вычисляется выражение, записанное в условии. Если оно имеет значение истина (True), то выполняется оператор_1. В противном случае, когда выражение имеет значение ложь (False), оператор_1 игнорируется и управление передается оператору_2.

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

if условие then

begin

оператор_1;

оператор_2;

end

else

begin

оператор_1;

оператор_2;

end;

Если в зависимости от условия выполняется действие, а в противном случае ничего не происходит, то алгоритм имет вид:

Условный оператор в этом случае имет конструкцию:

if условие then оператор;

или

if условие then

begin

оператор_1;

оператор_2;

end;

В таком «усеченном» виде условный оператор работает так: оператор (группа операторов) либо выполняется, либо пропускается, в зависимости от значения выражения, представляющего условие.

Условные операторы могут быть вложены друг в друга. При вложениях условных операторов всегда действует правило: альтернатива else считается принадлежащей ближайшему if, имеющему ветвь else. Например, в записи

if условие_1 then

if условие_2 then

оператор_А

else оператор_Б;

оператор_Б относится к условию_2, а в конструкции

if условие_1 then

begin

if условие_2 then

оператор_А;

end

else оператор_Б;

он принадлежит оператору if с условием_1.

Для сравнения переменных в условных выражениях применяют операции отношения: =, <>, <, >, <=, >=. Условные выражения составляют с использованием логических операций and, or и not. В языке Pascal приоритет операций отношения меньше, чем у логических операций, поэтому составные части сложного логического выражения заключают в скобки.

Допустим, нужно проверить, принадлежит ли переменная х интервалу [a, b].

Условный оператор будет иметь вид:

if (x>=a) and (x<=b) then….

Запись

if x>=a and x<=b then…

не верна, так как фактически будет вычисляться значение выражения

x>= (a and x) <=b.

ЗАДАЧА 1. Дано вещественное число x. Для функции, график которой приведен ниже, вычислить y=f(x).

Аналитическая запись функции:

Словесный алгоритм:

  1. Начало алгоритма.

  2. Ввод числа x (аргумент функции).

3. Если значение x меньше либо равно -2, то переход к п. 4, иначе переход к п. 5.

4. Вычисление значения функции: y=4, переход к п. 8.

5. Если значение x больше либо равно 1, то переход к п. 6, иначе переход к п. 7.

6. Вычисление значения функции: y=1, переход к п. 8.

7. Вычисление значения функции: y=x2.

8. Вывод значений аргумента x и функции y.

9. Конец алгоритма.

Компонент TImage позволяет отобразить на форме графический файл с расширениями BMP, JPG, JPEG или WMF.

Некоторые свойства компонента Image1:

• AutoSize: – если значение свойства True, то размеры компонента настраиваются (увеличиваются или уменьшаются) по размерам загружаемого рисунка;

• Stretch: – если это свойство установлено в значение True, то будут изменяться размеры изображения, в этом случае оно как бы «натягивается» на клиентскую область;

• Center: – если это свойство установлено в значение True, изображение центрируется в пределах клиентской области, иначе оно располагается в ее верхнем левом углу.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs,StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

edt1: TEdit;

lbl1: TLabel;

lbl2: TLabel;

lbl3: TLabel;

lbl4: TLabel;

lbl5: TLabel;

btn1: TButton;

btn2: TButton;

btn3: TButton;

img1: TImage;

procedure btn3Click(Sender: TObject);

procedure btn2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure btn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

//Открытие формы

procedure TForm1.FormCreate(Sender:

TObject);

begin

Img1.Stretch:=True;

Img1.Picture.LoadFromFile

('ris2.bmp');

end;

//Кнопка ОЧИСТИТЬ

procedure TForm1.btn3Click(Sender:

TObject);

begin

edt1.Text:='0,0';

lbl5.Caption:='';

end;

//Кнопка ЗАКРЫТЬ

procedure TForm1.btn2Click(Sender:

TObject);

begin

close;

end;

//Кнопка ВЫЧИСЛИТЬ

procedure TForm1.btn1Click(Sender:

TObject);

var x,y:Real;

begin

x:=strtofloat(Edt1.Text );

if x<=-2 then y:=4

else if x>=1 then y:=1

else y:=Sqr(x);

lbl5.Caption:=

floattostrF(y,ffFixed,5,2);

end;

end.

Уравнение прямой на плоскости

ЗАДАЧА 2. Дано вещественное число x. Для функции, график которой приведен ниже вычислить y=f(x).

Аналитическая запись функции:

//Кнопка ВЫЧИСЛИТЬ

procedure TForm1.btn1Click(Sender:

TObject);

var x,y:Real;

begin

x:=strtofloat(Edt1.Text );

if x<=0 then y:=x/2

else y:=2

lbl5.Caption:=4/3*x+1;

floattostrF(y,ffFixed,5,2);

end;