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

Вывод сообщений

Для вывода сообщений в отдельном окне применяют функцию:

MessageDlg(сообщение,

тип_сообщения,

[список_кнопок],

справка);

где

сообщение – текст, который будет отображен в окне сообщения;

тип_сообщения – определяет внешний вид окна;

Параметр

Тип окна сообщения

mtInformation

информационное

mtWarning

предупредительное

mtError

сообщение об ошибке

mtConfirmation

запрос на подтверждение

mtCustom

обычное

список_кнопок – константы (перечисляются через запятую), определяющие тип кнопок окна сообщения;

Константа

Кнопка

mbYes

Да

mbNo

Нет

mbOk

Ок

mbCancel

Отмена

mbAbort

Прервать

mbRetry

Повторить

mbIgnore

Пропустить

mbHelp

Помощь

справка – номер окна справочной системы, которое будет выведено на экран, если нажать F1, параметр равен нулю, если использование справки не предусмотрено.

ЗАДАЧА 3. Даны вещественные числа x и y. Определить принадлежит ли точка с координатами (x; y) заштрихованной части плоскости.

Плоскость ограничена линиями

x=-1, x=3, y=-2 и y=4.

Значит точка с координатами (x; y) принадлежит этой плоскости, если будут выполняться следующие условия: x -1, x 3, y -2 и y 4.

Иначе точка лежит за пределами плоскости.

procedure TForm1.FormCreate(Sender:

TObject);

begin

Img1.Stretch:=True;

Img1.Picture.LoadFromFile('ris.bmp');

end;

procedure TForm1.btn2Click(Sender:

TObject);

begin

Close;

end;

procedure TForm1.btn3Click(Sender:

TObject);

begin

edt1.Text:='0,0';

edt2.Text:='0,0';

end;

procedure TForm1.btn1Click(Sender:

TObject);

var x,y:Real;

begin

x:=strtofloat(Edt1.Text);

y:=strtofloat(Edt2.Text);

if (x>=-1) and (x<=3) and (y>=-2) and (y<=4) then

MessageDlg('Точка

принадлежит плоскости',

mtInformation,[mbOk],0)

else

MessageDlg('Точка

не принадлежит плоскости',

mtInformation,[mbOk],0);

end;

Обработка ошибок

Для контроля вводимых данных, применяют процедуру

Val(S,X,Kod),

которая преобразовывает строку S в число X (целое или вещественное). Если преобразование прошло успешно, то параметр Kod=0, а результат преобразования записывается в переменную X. В противном случае Kod содержит номер позиции в строке S, где произошла ошибка и содержимое переменной X не меняется.

ЗАДАЧА 4. Даны вещественные числа x и y. Определить принадлежит ли точка с координатами (x; y) заштрихованной части плоскости.

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

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

  1. (0, 1) — (4, 3);

  2. (4, 3) — (5, 1);

  3. (5, 1) — (0, 1).

Следовательно,

уравнение первой линии

,

уравнение второй линии

и уравнение третьей линии .

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

  1. (0, 1) — (-4, 3);

  2. (-4, 3) — (-5, 1);

  3. (-5, 1) — (0, 1);

Следовательно,

уравнение первой линии

уравнение второй линии

и уравнение третьей линии .

Условие попадания точки в заштрихованную часть плоскости:

или

procedure TForm1.btn1Click(Sender:

TObject);

var x,y:Real;

kod1, kod2:integer;

begin

val(edt1.Text,x,kod1);

val(edt2.Text,y,kod2);

if (kod1=0) and (kod2=0) then

begin

if ((y<=1+0.5*x) and

(y<=-2*x+11) and

(y>=1)) or

((y<=1-0.5*x) and

(y<=2*x+11) and

(y>=1)) then

MessageDlg('Точка

принадлежит плоскости',

mtInformation,[mbOk],0)

else

MessageDlg('Точка не

принадлежит плоскости ',

mtInformation,[mbOk],0);

end

else

begin

MessageDlg('Введите число!',

mtWarning,[mbOk],0);

edt1.Text:='0.0';

edt2.Text:='0.0';

end;

end;

Окном редактирования многострочного текста

Компонентй Memo, находится на вкладке Standard. Этот компонент снабжен множеством функций, свойственных большинству редакторов.

Основным для окна редактора является свойство Lines. В нем текст окна редактирования представлен в виде списка строк. Если в процессе конструирования формы выбрать это свойство в панели объектов, то появится окно редактирования строк, в котором можно выполнить начальную настройку.

Например, можно убрать весь текст, чтобы в начале работы программы текстовая область была пустой:

Если установить свойство

Memo.ReadOnly:=true;

то компонент будет доступен только для чтения.

Заносить текст в окно редактирования можно с помощью команды

Memo.Lines.Add(строка)

Она добавит строку, указанную в скобках, в конец текста окна редактирования.

Задача. Треугольник задан тремя сторонами. Вычислить сумму, периметр и углы треугольника.

procedure TForm1.btn1Click(Sender: TObject);

var a,b,c,p,S,alf,bet,gam:Real;

begin

a:=StrToFloat(edt1.text);

b:=StrToFloat(edt2.text);

c:=StrToFloat(edt3.text);

p:=(a+b+c)/2;

S:=Sqrt((p-a)*(p-b)*(p-c)*p);

gam:=arccos((a*a+b*b-c*c)/(2*a*b));

bet:=arccos((a*a+c*c-b*b)/(2*a*c));

alf:=pi-gam-bet;

mmo1.Lines.Add('Площадь');

mmo1.Lines.Add('S='+FloatToStr(S));

mmo1.Lines.Add('Периметр p='+

FloatToStr(2*p));

mmo1.Lines.Add('Угол АСВ='+

FloatToStr(gam));

mmo1.Lines.Add('Угол АBC='+

FloatToStr(bet));

mmo1.Lines.Add('Угол BАC='+

FloatToStr(alf));

end;