
- •Программирование в Delphi
- •Структура проекта Delphi
- •Данные в Delphi
- •Символьный тип данных
- •Целочисленный тип данных
- •Вещественный тип данных
- •Тип дата-время
- •Логический тип данных
- •Var переменные: новый_тип;
- •Var имя:(знач_1,знач_2,…);
- •Указатели
- •Операции и выражения
- •Арифметические операции
- •Операции отношения
- •Логические операции
- •Стандартные функции
- •Понятие алгоритма
- •Изображение алгоритма в виде блок-схемы
- •Оператор присваивания
- •Составной оператор
- •Условные операторы
- •Вывод сообщений
- •Обработка ошибок
- •Ораторы цикла
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с заданным числом повторений
- •Операторы передачи управления
Вывод сообщений
Для вывода сообщений в отдельном окне применяют функцию:
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) заштрихованной части плоскости.
Составим уравнения линий, ограничивающих заданные плоскости.
Треугольник в первой координатной области ограничен линиями, проходящими через точки:
(0, 1) — (4, 3);
(4, 3) — (5, 1);
(5, 1) — (0, 1).
Следовательно,
уравнение первой линии
,
уравнение второй линии
и
уравнение третьей линии
.
Линии, которые формируют треугольник во второй координатной области, проходят через точки:
(0, 1) — (-4, 3);
(-4, 3) — (-5, 1);
(-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;