Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачи КР ОАИП.docx
Скачиваний:
4
Добавлен:
22.11.2019
Размер:
54 Кб
Скачать
☆

X1,y1,x2,y2,x3,y3,h:extended;

Implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

x1:=StrToFloat(edit1.Text); y1:=StrToFloat(edit2.Text);

x2:=StrToFloat(edit3.Text); y2:=StrToFloat(edit4.Text);

x3:=StrToFloat(edit5.Text); y3:=StrToFloat(edit6.Text);

h:=StrToFloat(edit7.Text);

Resh(x1,y1,x2,y2,x3,y3,h,image1);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Text:='1'; Edit2.Text:='1';

Edit3.Text:='7'; Edit4.Text:='10';

Edit5.Text:='10'; Edit6.text:='5';

Edit7.Text:='0,025';

end;

end.

unit Unit2;

Interface

uses

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

Dialogs, StdCtrls, ExtCtrls;

Procedure Resh(x1,y1,x2,y2,x3,y3,h:extended; Image1:TImage);

Implementation

Procedure Resh;

Var Xmax,ymax:integer;

a,b,c,s,p:extended;

begin

With Image1.Canvas do

begin

xmax:=Image1.Width; ymax:=Image1.Height;

Pen.Color:=ClYellow; Brush.Color:=ClYellow;

Rectangle(0,0,xmax,ymax);

Pen.Color:=ClNavy; Brush.Color:=ClNavy;

Polygon([Point(Round(x1/h),round(ymax-y1/h)),Point(Round(x2/h),round(ymax-y2/h)),Point(Round(x3/h),round(ymax-y3/h))]);

a:=Sqrt(sqr(y2-y1)+sqr(x2-x1));

b:=Sqrt(sqr(y3-y1)+sqr(x3-x1));

c:=Sqrt(sqr(y3-y2)+sqr(x3-x2));

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

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

Pen.Color:=ClBlack; Brush.Color:=ClWhite;

TextOut(xmax-200,ymax-20,'Площадь равна '+FloatToStrF(s,Fffixed,4,3));

end;

end;

end.

Задача 11

  • Составить и оформить в виде отдельного модуля подпрограмму вывода в окно TMemo четных чисел, записанных в строке St. Строка St содержит запись произвольных целых чисел, разделенных пробелом.

  • Формальные параметры: st : string; Memo.

  • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных, обращение к подпрограмме, вывод исходных данных и результатов в окно TMemo.

var

Form1: TForm1;

St:String;

Implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Text:='235 124 125 34568';

Memo1.clear;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

memo1.clear;

St:=Edit1.text;

Resh(st,memo1);

end;

end.

unit Unit2;

Interface

uses

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

Dialogs, StdCtrls;

Procedure resh(st:string; Memo1:TMemo);

Implementation

Procedure Resh;

Var tmp:string; I:integer;

begin

tmp:=''; st:=St+' ';

for i:=1 to Length(st) do

begin

if st[i]<>' ' then tmp:=tmp+st[i]

else begin if (tmp<>'') and (tmp[length(tmp)] in ['0','2','4','6','8']) then memo1.Lines.add(tmp); tmp:=''; end;

end;

end;

end.

Задача 12

  • Составить и оформить в виде отдельного модуля подпрограмму подсчета количества различных символов в строке st. (использовать множество)

  • Формальные параметры: st : string.

  • Составить программу - обработчик события в которой при нажатии кнопки организованы ввод исходных данных, обращение к подпрограмме, вывод исходных данных и результатов в окно TEdit.

var

Form1: TForm1;

St:String;