Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.03.2010, 12:26
vovey vovey вне форума
Прохожий
 
Регистрация: 17.03.2010
Сообщения: 8
Репутация: 10
По умолчанию Помогите найти ошибку! Работа для курсовой

Ошибка в том:
Найти три точки: Самую высшую,самую левую и самую правую точки.Построить треугольник! А он не строит((


Код:
procedure TForm1.Button1Click(Sender: TObject);
var q,p,s,i,n,m,j,h,b,b1,b2,b3:integer;
    x,y:real;
    a:array[1..30] of TPoint;
    m1:array[1..3] of TPoint;
begin
      memo1.Clear;
      for i:=1 to strtoint(edit3.Text) do
      begin
      randomize;
            with image1.canvas do
            begin
            n:=(image1.width-250-strtoint(edit2.Text)*3)+random(image1.width-80);
            m:=(image1.Height-250-strtoint(edit2.Text)*3)+random(image1.Height-50);
            x:=n;
            y:=m;
            memo1.Lines.Add('№'+inttostr(i)+' ('+floattostrf(x,fffixed,3,0)+':'+floattostrf(y,fffixed,3,0)+')');
            p:=10+random(385);
            s:=10+random(385);
            image1.Canvas.Pen.Width:=5;
            image1.Canvas.Pen.Color:=clGreen;
            image1.Canvas.Ellipse(n-1,image1.Height-(m-1),n+1,image1.Height-(m+1));
            image1.Canvas.TextOut(n,image1.Height-(m),'№'+inttostr(i));
            a[i].X:=n;
            a[i].Y:=m;
      end;
            image1.Canvas.Pen.Width:=1;
            image1.Canvas.Pen.Color:=clblack;
            image1.Canvas.Font.Size:=7;
            memo1.Visible:=true;

      end;

            m1[1].Y:=a[1].y;
            for b:=1 to strtoint(edit3.Text) do
            if (a[b].Y>m1[1].Y)
            then begin m1[1].Y:=a[b].Y;
                       m1[1].X:=a[b].X;
      end;
            m1[2].X:=a[1].X;
            for b:=1 to strtoint(edit3.Text) do
            if (a[b].X>m1[2].X)
            then begin m1[2].X:=a[b].X;
                       m1[2].Y:=a[b].Y;
      end;
            m1[3].X:=a[1].X;
            for b:=1 to strtoint(edit3.Text) do
            if (a[b].X<m1[3].X)
            then begin m1[3].X:=a[b].X;
                       m1[3].Y:=a[b].Y;
      end;
            image1.Canvas.MoveTo(m1[1].X,image1.Height-m1[1].Y);
            image1.Canvas.LineTo(m1[2].X,image1.Height-m1[2].Y);

            image1.Canvas.MoveTo(m1[2].X,image1.Height-m1[2].Y);
            image1.Canvas.LineTo(m1[3].X,image1.Height-m1[3].Y);

            image1.Canvas.MoveTo(m1[3].X,image1.Height-m1[3].Y);
            image1.Canvas.LineTo(m1[1].X,image1.Height-m1[1].Y);


end;
__________________
пвапвап
Ответить с цитированием
  #2  
Старый 29.03.2010, 12:59
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Какой то треугольник строит, я вводил малые цифры 2..4...
Далее вскрытие покажет...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #3  
Старый 29.03.2010, 18:17
vovey vovey вне форума
Прохожий
 
Регистрация: 17.03.2010
Сообщения: 8
Репутация: 10
По умолчанию

Вот полное задание!




Задаваемое кол-во точек (3..30) генерируется случайным образом на координатной плоскости 40*40.Найти три точки: Самую высшую,самую левую и самую правую точки.Построить треугольник и подсчитать количество точек,находящихся внутри треугольника и снаружи!


А ошибка где-то при построении треугольника,найти только не могу((
__________________
пвапвап
Ответить с цитированием
  #4  
Старый 29.03.2010, 18:19
vovey vovey вне форума
Прохожий
 
Регистрация: 17.03.2010
Сообщения: 8
Репутация: 10
По умолчанию

Ошибка как я понимаю тут,а где она не знаю!


Код:
            m1[1].Y:=a[1].y;
            for b:=1 to strtoint(edit3.Text) do
            if (a[b].Y>m1[1].Y)
            then begin m1[1].Y:=a[b].Y;
                       m1[1].X:=a[b].X;
      end;
            m1[2].X:=a[1].X;
            for b:=1 to strtoint(edit3.Text) do
            if (a[b].X>m1[2].X)
            then begin m1[2].X:=a[b].X;
                       m1[2].Y:=a[b].Y;
      end;
            m1[3].X:=a[1].X;
            for b:=1 to strtoint(edit3.Text) do
            if (a[b].X<m1[3].X)
            then begin m1[3].X:=a[b].X;
                       m1[3].Y:=a[b].Y;
      end;
            image1.Canvas.MoveTo(m1[1].X,image1.Height-m1[1].Y);
            image1.Canvas.LineTo(m1[2].X,image1.Height-m1[2].Y);

            image1.Canvas.MoveTo(m1[2].X,image1.Height-m1[2].Y);
            image1.Canvas.LineTo(m1[3].X,image1.Height-m1[3].Y);

            image1.Canvas.MoveTo(m1[3].X,image1.Height-m1[3].Y);
            image1.Canvas.LineTo(m1[1].X,image1.Height-m1[1].Y);


end;
__________________
пвапвап
Ответить с цитированием
  #5  
Старый 30.03.2010, 07:58
vovey vovey вне форума
Прохожий
 
Регистрация: 17.03.2010
Сообщения: 8
Репутация: 10
По умолчанию

Ау,помогите,плиЗ!!!!!!!!!!!!!!!(((((((((
__________________
пвапвап
Ответить с цитированием
  #6  
Старый 30.03.2010, 09:04
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Хорошо, настроение подходящее...но сначала ответь, что делет Edit2...Edit3 как я понимаю задает количество точек...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...

Последний раз редактировалось NIch, 30.03.2010 в 09:07.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:37.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025