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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2010, 18:09   #1
djdron
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 12
Вопрос Ошибка в Delphi

Программа не запускается, выдает ошибку. Вот код кнопки, проект прикрепил к теме.
Код:
procedure TL7_Ivanov_Form1.Button2Click(Sender: TObject);
// Оброблювач події ЩИГЛИК на кнопці Button2 (Розрахунок).
var x,y:real;
var TotalCountPoint,i,int,ext:integer;
var N_str:string;
var sFig, error:real;
var s:string;
begin
// Запитуємо кількість точок.
  while true do
    begin
      N_str:=InputBox('','Уведіть кількість точок,'10000');
      try
        TotalCountPoint:=StrToInt(N_str);
        break;
      except
        ShowMessage('Кількість точок уведена невірно');
      end;
    end;
// Підготовка циклу. Ініціюємо генератор
// псевдовипадкових чисел за допомогою randomize.
// Якщо цього не зробити, при кожному запуску 
// програми буде генеруватися одна й та сама 
// послідовність. Очищуємо лічильники точок.
// Очищуємо графік. Установлюємо верхню межу
// смуги прогресу.
  randomize;
  int:=0;
  ext:=0;
  Chart1.SeriesList[3].Clear;
  ProgressBar1.Max:=TotalCountPoint;
// Цикл
  for і:=1 to TotalCountPoint do
    begin
// Генеруємо пари випадкових чисел і трактуємо їх 
// як координати випадкової точки (числа генеруються 
// в межах від 0 до 1).
      x:=2*random-1;
      y:=2*random-1;
// Перевіряємо, куди потрапляє точка: усередину фігури
// чи поза нею. У залежності від цього вибираємо
// колір точки. Крім того, ведемо окремо підрахунок
// зовнішніх і внутрішніх точок.
      if ((y>=0)and(y<=Sqrt(1-Sqr(x)))) or
         ((y>=-0.5*(x+1)) and (y<0)) then
        begin
          Chart1.SeriesList.Series[3].
                     AddXY(x,y,'',clRed);
          int:=int+1;
        end
      else
        begin
          Chart1.SeriesList.Series[3].
                     AddXY(x,y,'',clBlue);
          ext:=ext+1;
        end;
// Через кожні 100 точок викликаємо метод
// ProcessMessages глобального об'єкта Application
// для рисування "накреслених" раніше точок.
// Справа в тому, що ці точки насправді ще 
// не накреслені. Вони поки "мертві". "Привести їх 
// до життя" саме і покликаний метод ProcessMessages.
// Причому, при цьому буде накреслено відразу 100
// точок одночасно.
      if i mod 100 =0 then
        begin
          ProgressBar1.Position:=i;
          Application.ProcessMessages;
        end;
    end;
// Підбиваємо підсумки і виводимо їх у форму.
// Кількість точок усередині фігури.
      Edit1.Text:=InttoStr(int);
// Кількість точок поза фігурою.
      Edit3.Text:=InttoStr(ext);
// Визначаємо площу фігури.
      sFig:=4*(int/TotalCountPoint;
      Str(sf:0:4,s);
      Edit2.Text:=s;
// Визначаємо величину помилки.
      error:=(abs(((pi/2)+1)-4*(int/TotalCountPoint))/
         ((pi/2)+1))*100;
      Str(error:0:4,s);
      Edit4.Text:=s;
    end;
Вложения
Тип файла: rar lab7.rar (234.8 Кб, 7 просмотров)
djdron вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в Delphi!!!! reebox Общие вопросы Delphi 1 03.12.2010 17:24
Это ошибка Delphi или моя ошибка??? bloodeagle Общие вопросы Delphi 3 12.11.2009 15:26
Ошибка с БД в Delphi TaYgA БД в Delphi 5 10.10.2009 14:25
[Delphi] ошибка... Рамик Помощь студентам 2 06.08.2009 14:10
ошибка в Delphi 6 Ms-dos4 Софт 7 26.08.2007 14:09