Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2012, 20:55   #1
Kost1ya
Новичок
Джуниор
 
Регистрация: 18.11.2012
Сообщений: 1
По умолчанию Многоугольник найти периметр

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
Button3: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
StringGrid1.Cells[0,0]:=IntToStr(random(20)+1);
StringGrid1.Cells[0,1]:=IntToStr(random(20)+1);
StringGrid1.Cells[0,2]:=IntToStr(random(20)+1);
StringGrid1.Cells[0,3]:=IntToStr(random(20)+1);
StringGrid1.Cells[0,4]:=IntToStr(random(20)+1);
StringGrid1.Cells[0,5]:=IntToStr(random(20)+1);
StringGrid1.Cells[0,6]:=IntToStr(random(20)+1);
StringGrid1.Cells[0,7]:=IntToStr(random(20)+1);
StringGrid1.Cells[0,8]:=IntToStr(random(20)+1);
StringGrid1.Cells[0,9]:=IntToStr(random(20)+1);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
StringGrid2.cells[0,0]:=IntToStr(random(20)+1);
StringGrid2.Cells[0,1]:=IntToStr(random(20)+1);
StringGrid2.Cells[0,2]:=IntToStr(random(20)+1);
StringGrid2.Cells[0,3]:=IntToStr(random(20)+1);
StringGrid2.Cells[0,4]:=IntToStr(random(20)+1);
StringGrid2.Cells[0,5]:=IntToStr(random(20)+1);
StringGrid2.Cells[0,6]:=IntToStr(random(20)+1);
StringGrid2.Cells[0,7]:=IntToStr(random(20)+1);
StringGrid2.Cells[0,8]:=IntToStr(random(20)+1);
StringGrid2.Cells[0,9]:=IntToStr(random(20)+1);

end;

procedure TForm1.Button3Click(Sender: TObject);
var
p:real;
c:real;
f:array[1..10] of integer;
a: array [1..10] of integer;
i:integer;
s:string;
d:real;

begin
s:='';
p:=0;
for i:=1 to 10 do begin
f[i]:=strtoint(StringGrid1.Cells[0,i-1]);
a[i]:=strtoint(StringGrid2.Cells[0,i-1]);

s:=s+inttostr(f[i])+inttostr(a[i])+#13;
Label1.Caption:=s;

end;
for i:=1 to 10 do begin
d:=sqrt(sqr(f[i+1] - f[i])+sqr(a[i+1]-a[i]));
end;
p:=d+sqrt(sqr(f[1] - f[10])+sqr(a[1]-a[10]));
c:=round(p/40);
label2.caption:='P ='+floattostr(c);
end;

end.

Задание
Координаты вершин многоугольника заданы массивами и . Считается, что вершины упорядочены в порядке обхода по часовой стрелке или против нее. Напишите программу вычисления периметра многоугольника.

Выводит периметр от 300 до 1500 , не могу понять в чем проблема
Kost1ya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано 3 точки своими координатами х,у. Будет ли они вершинами треугольника. Если да - найти периметр и площадь треугольника Arhi555 Паскаль, Turbo Pascal, PascalABC.NET 2 11.09.2012 17:46
Найти площадь, периметр и угол треугольника по длинам трёх его сторон ( Delphi 7 ) CONDOR* Помощь студентам 1 15.05.2012 18:26
Две задачи: Вычислить периметр и площадь прямоугольного треугольника; Найти сумму ряда sanyawasdas Паскаль, Turbo Pascal, PascalABC.NET 15 29.10.2011 12:30
Алгоритмическое задание - Найти многоугольник минимального периметра для заданного набора точек polarity Общие вопросы Delphi 13 16.06.2011 14:01
две задачи - выразить денежную сумму в купюрах; по координатам найти периметр (Pascal) p0weR Помощь студентам 2 01.03.2011 18:46