Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 09.04.2013
Сообщений: 37
1

Экспоненциальное распределение (перевести из C# в Delphi)

24.01.2015, 22:35. Показов 1883. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема с переводом в программирование не очень!!!

есть такой код на с
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AcademicProject
{
public partial class Form1 : Form
{
Random rng = new Random(); //Генератор случайных чисел
double t = 0; //tзад., т.е. какое время должна проработать система до ее отказа.
double N = 0; //количество итераций
double tpart = 0; //1/10 часть tзад.
int tmax = 0; //максимальное число для генерации
double[] tk = new double[7]; //загоняем в массив случайное число для одной итерации
int l = 0; //количество отказавших подсистем
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{}
private Boolean Law1() //закон экспонециального распределения f(x) = (lyambda) * (e^(-(lyambda)*x))
{
double x; //случайное число
double t1; //переменная для экспонециального распределенеия
double lyambda = 0.1; //заданные переменные по условию задачи
x = Generator(); //генерируем случайное число
t1 = ((lyambda) * Math.Exp(-(lyambda) * x));
if (t1 >= t)
{
tk[0] = x; //если подсистема проработала больше либо равно tзад, то записываем в массив время работы подсистемы
return true;
}
else
{
tk[0] = 0; //иначе обнуляем элемент массива
return false;
}}
не получается перевести на Delphi

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Math;
 
type
  TForm1 = class(TForm)
    Chart1: TChart;
    btn1: TButton;
    {procedure Boolean (Sender: TObject);  }
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
   x,t1,t,tk,ln :double;
implementation
{$R *.dfm}
function RandomExponent(ex: Extended): Extended;
{ экспоненциальное распределение }
begin
  Result := -ex * Ln(Random)
end;
  procedure   Boolean  ; //закон экспонециального распределения f(x) = (lyambda) * (e^(-(lyambda)*x))
   begin
      x:=0; //случайное число
      t1:=0; //переменная для экспонециального распределенеия
      ln := 0.1; //заданные переменные по условию задачи                      }
      x := RandomExponent(7); //генерируем случайное число
      t1 := ln(Exp( -ln (x)));
   if t1 >= t   then
      tk := x //если подсистема проработала больше либо равно tзад, то записываем в массив время работы подсистемы
      else
      tk := 0; //иначе обнуляем элемент массива
      Exit;
    end;
end.
кто чем может за ранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2015, 22:35
Ответы с готовыми решениями:

Равномерное, нормальное и экспоненциальное распределение в программе
Есть программа, код напишу ниже, с равномерным распределением,как её же переделать для нормального...

Экспоненциальное распределение
Всем привет! Нужен код для экспоненциального распределения лазерного излучения! помогите...

Экспоненциальное распределение
Есть задача, все сделал, кроме распределения, не понимаю что с ним делать и как применить, чтобы...

экспоненциальное распределение
Как узнать соответствует ли распределение случайной переменной экспоненциальному? Добавлено...

13
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
24.01.2015, 22:36 2
Цитата Сообщение от svetluii Посмотреть сообщение
procedure Boolean ;
Это что за ерунда ?
0
2 / 2 / 1
Регистрация: 09.04.2013
Сообщений: 37
24.01.2015, 22:51  [ТС] 3
это да говорю же слаб я очень в программирование и давно не нечего не писал!
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
24.01.2015, 22:55 4
Процедура должна иметь имя.
Имя не может совпалать с ключевыми словами.
Boolean - ключевое слово.
0
2 / 2 / 1
Регистрация: 09.04.2013
Сообщений: 37
24.01.2015, 23:04  [ТС] 5
если я правильно помню то procedure - это действие над каким то объектом (при нажатие на кнопку или форму)
значит мне надо использовать function?!
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
24.01.2015, 23:09 6
в данном случае да
0
2 / 2 / 1
Регистрация: 09.04.2013
Сообщений: 37
24.01.2015, 23:31  [ТС] 7
function Law1(x:real):real; ?!

Добавлено через 4 минуты
все равно не работает!

Цитата Сообщение от svetluii Посмотреть сообщение
ln := 0.1; //заданные переменные по условию задачи * * * * * * * * * * *}
* * * x := RandomExponent(7); //генерируем случайное число
на сколько я понял у меня ошибка здесь
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
24.01.2015, 23:32 8
Откуда real-то взялся ?

В оригинале это действительно ф-ция (точнее - приватный функциональный метод объекта класса Form1), но без параметров и имеющая тип возвращаемого ею результата Boolean
0
2 / 2 / 1
Регистрация: 09.04.2013
Сообщений: 37
25.01.2015, 18:30  [ТС] 9
вот теперь вообще запутал!

Добавлено через 18 часов 46 минут
но как я понял
function Law1():Boolean;
Law - переменная (имя функции)
() - в скобках тоже переменная
Boolean - Который может принимать значения True или False!
но я не пойму как в данном случае адаптировать это в Delphi !?
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.01.2015, 18:34 10
Ты разницу между регулярной функцией и функциональным методом класса понимаешь ?
0
2 / 2 / 1
Регистрация: 09.04.2013
Сообщений: 37
25.01.2015, 18:39  [ТС] 11
нет я же говорю очень слаб в программирование
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.01.2015, 18:41 12
Так возьми учебник и проштудируй !
0
2 / 2 / 1
Регистрация: 09.04.2013
Сообщений: 37
25.01.2015, 18:47  [ТС] 13
а вообще возможно в этой части кода не использовать Boolean;
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.01.2015, 18:53 14
Цитата Сообщение от svetluii Посмотреть сообщение
возможно в этой части кода не использовать Boolean
Тогда и в другой части кода, использующей ф-цию Law1, придется его не использовать.
0
25.01.2015, 18:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2015, 18:53
Помогаю со студенческими работами здесь

Экспоненциальное распределение
Известно, что X~E(2). Найти плотность вероятности X^2. Неужели это будет \lambda e^{-\lambda x }...

Экспоненциальное распределение.
У меня в задаче дано что в среднем приходит 10 заявок в месяц.Я написал функцию для генерации...

Экспоненциальное распределение величины
Добрый день! Помоги решить задачку с помощью Excel. Необходимо построить распределение величины...

Инвертировать экспоненциальное распределение
Доброго времени суток. Создаю массив чисел, распределенных по экспоненциальному распределению по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru