Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Число экспериментов



Если программа выполняет расчеты методом Монте-Карло, то известно, что чем больше количество экспериментов (статистика расчета), тем точнее результат моделирования. Пользователь может задать значение статистики в поле ввода, после чего это значение используется как количество итераций при расчете. Можно в программе объявить переменную, ответственную за статистику, как var Stat: integer; В этом случае максимальное значение статистики = 2147483647. Это легко проверить, используя следующий код:

var stat:integer;

begin

ShowMessage(IntToStr(High(stat)));

end;

В этом случае при разработке кода можно использовать оператор цикла:

for counter:= initialValue to finalValue do statement

Оператор цикла-счетчика for использует в качестве переменной цикла counter переменную Ordinal type (порядковый тип), к которому относится integer. Но в этом случае перед использованием значения статистики в программе необходимо проверить введенное пользователем значение, чтобы оно было меньше максимально допустимого для типа integer.

Можно использовать другой подход: объявить переменную статистики как

var stat:int64;

В этом случае максимальное значение переменной 9223372036854775807 удовлетворит даже самые смелые надежды пользователя, хотя проверка введенного значения, видимо, тоже необходима, поскольку никто не запрещает пользователю ввести в поле ввода что угодно. При работе со статистикой, объявленной как int64, нужно иметь в виду несколько моментов. Функция конвертирования строкового значения одинаково хорошо работает как с integer, так и с int64, но для обратного преобразования существуют две разные функции: StrToInt (const S: string): Integer; и StrToInt64 (const S: string): Int64;. В случае использования int64 невозможно использование цикла-счетчика for. Применение этого цикла приведет к ошибке. В старших версиях компилятор Delphi указывает на ошибку. Чтобы этого не произошло, при разработке кода расчетного блока программы цикл for целесообразно заменить на цикл while с инкрементированием счетчика в коде программы. Например:

var

i,Stat: int64;//i – счетчик, Stat - статистика

Begin

i:= 0; //обнуляем счетчик цикла

Stat:= StrToInt64(Form1.Edit1.Text);//Значение статистики

while(i < Stat)

Begin

... {тело цикла}...

inc(i);

End; End;





Дата публикования: 2014-11-03; Прочитано: 337 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...