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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 19:44   #1
Васильева Зинаида
Пользователь
 
Аватар для Васильева Зинаида
 
Регистрация: 14.10.2010
Сообщений: 43
Лампочка Модель производства.

Здравствуйте, поздравляю всех с наступившим 2011 годом!!!!
У меня маленькая неприятность, программа по имитационному моделированию "Модель производства" она реализована для функции типа y=at+b, где , a,b коэфиценты потока инвестиций, она работает все нормально, но мой педагог решила что этого мало и дала мне еще провести 3 эксперимента над этой програмой... и я поняла что незнаю как выполнить их....
Вот они:
1. Поток инвестиций постоянный и в каждый момент времени равен 1000. В начальный момент капитал равен 100 000 руб Коэфицент аммортизации- 0,025. Построить модель динамики(посуточно) и найти величину основных фондов через 20 суток, если лаг равен 5 суток.
2. Величина основных фондов в момент времени t=0 была равна 5000. Через какое время их общая сумма превысит 120 000 руб.. если поток инвестиций постоянный и равен 200, а m= 0,02, Т=3?
3. Найти постоянный коэфицент потока аммортизации, т.е идентифицировать его , если в начальный момент времени величина каппитала равна 200 000, а в следующий момент времени увеличилась до 200 200, а поток инвестиций начиная от начальной величины в 10 000 увеличивается в каждый следующий момент времени на 5%.
Подскажите как эт делать?*
Васильева Зинаида вне форума Ответить с цитированием
Старый 16.01.2011, 19:45   #2
Васильева Зинаида
Пользователь
 
Аватар для Васильева Зинаида
 
Регистрация: 14.10.2010
Сообщений: 43
По умолчанию

Код:
Public Sub ipol(ByVal x1 As Double, ByVal y1 As Double, ByVal x2 As Double, ByVal y2 As Double, ByVal x3 As Double, ByVal y3 As Double)
        'процедура  интерполяции
        Dim d1 As Double, da As Double, db As Double, dc As Double
        d1 = x1 * x1 * (x2 - x3) + x2 * x2 * (x3 - x1) + x3 * x3 * (x1 - x2)
        da = y1 * (x2 - x3) + y2 * (x3 - x1) + y3 * (x1 - x2)
        db = x1 * x1 * (y2 - y3) + x2 * x2 * (y3 - y1) + x3 * x3 * (y1 - y2)
        dc = x1 * x1 * (x2 * y3 - y2 * x3) + x2 * x2 * (x3 * y1 - y3 * x1) + x3 * x3 * (x1 * y2 - y1 * x2)
        aa = da / d1: bb = db / d1: cc = dc / d1
    End Sub
    Private Sub Command1_Click()
    Dim x(2000) As Integer
    Dim ax(2000) As Long, ay(2000) As Long
    Dim iTime As Integer, yi As Integer, yt As Integer, tmin As Integer, tmax As Integer, t As Integer, p As Integer
    Dim x0 As Double, maxx As Double, minx As Double, sx As Double, tk As Double, aa As Double, bb As Double, cc As Double
    
  ' рабочая процедура
    x0 = CDbl(x0TXT)
    x(0) = x0
    Lag = CInt(LagTXT.Text)
    a = CDbl(aTXT.Text)
    b = CDbl(bTXT.Text)
    m = CDbl(mTXT.Text)
    iTime = CInt(iTimeTXT.Text)
    For t = 1 To iTime
        If (t < Lag + 1) Then
            yt = 0
                Else
                    yt = a * (t - 1 - Lag) + b
                    x(t) = yt + (1 - m) * x(t - 1)
        End If
    Next
    maxx = x(0): minx = x(0): tmin = 0: tmax = 0
    For t = 1 To iTime
        If x(t) > maxx Then
            maxx = x(t)
            tmax = t
            Else
                If x(t) < minx Then
                    minx = x(t)
                    tmin = t
                End If
        End If
    Next
    'вывод на форму
    xtimeTXT.Text = x(iTime)
    tminTXT.Text = tmin
    tmaxTXT.Text = tmax
    maxxTXT.Text = maxx
    minxTXT.Text = minx
    ' построение графика
    Picture1.Cls ' это объект у которого есть методы прорисовки Line,Circle
    Picture1.CurrentX = 50
    Picture1.CurrentY = 50
    Picture1.Line (30, 40)-(600, 40)
    Picture1.Line (600, 40)-(600, 450)
    Picture1.Line (600, 450)-(30, 450)
    Picture1.Line (30, 450)-(30, 40)
    Picture1.Line (600, 60)-(620, 60)
    Picture1.Line (620, 60)-(620, 470)
    Picture1.Line (50, 450)-(50, 470)
    Picture1.Line (50, 470)-(620, 470)
    Picture1.Circle (70, 410), 2
    Picture1.Line (70, 410)-(70, 50)
    Picture1.Line (70, 410)-(590, 410)
    Picture1.CurrentX = 587: Picture1.CurrentY = 402: Picture1.Print ">" ' CurrentX это его координата по оси Х
    Picture1.CurrentX = 67: Picture1.CurrentY = 47: Picture1.Print "^" 'т.е туда будет рисоваться точка или начало линии
    Picture1.CurrentX = 57: Picture1.CurrentY = 415: Picture1.Print "0"
    Picture1.CurrentX = 80: Picture1.CurrentY = 70: Picture1.Print "X(T) - (Величина основных фондов производства)"
    Picture1.CurrentX = 590: Picture1.CurrentY = 415: Picture1.Print "Т"
    Picture1.CurrentX = 540: Picture1.CurrentY = 430: Picture1.Print "(Время)"
    For i = 1 To 16
        Picture1.Line (67, 70 + 20 * i)-(70, 70 + 20 * i)
    Next
    For i = 1 To 24
        Picture1.Line (70 + 20 * i, 410)-(70 + 20 * i, 413)
    Next
    ' масштабирование ОХ
    p = 1
    Do While (iTime > p * 24)
        p = p + 1
    Loop
    For t = 0 To iTime
        ax(t) = 70 + Round(20 * t / p) ' round округление дроби
    Next
   ' масштабирование ОУ
    Dim k As Integer, r As Integer
    If maxx > 16 Then
        k = 1
        Do While (maxx > k * 16)
            k = k + 1
        Loop
        tk = k
    Else
        r = 1
        Do While (maxx <= 16 / r) And (r < 16)
            r = r + 1
           ' r = r - 1
        Loop
        tk = 1 / r
    End If
    For t = 0 To iTime
        ay(t) = 410 - Round(20 * x(t) / tk)
    Next
   ' продолжение построения графика
    For t = 0 To iTime
        Picture1.Circle (ax(t), ay(t)), 2
    Next
    
    Picture1.Line (70, ay(iTime))-(ax(iTime), ay(iTime)): Picture1.Line (ax(iTime), ay(iTime))-(ax(iTime), 410)

    Call ipol(0, x(0), 1, x(1), 2, x(2))
    
    For i = ax(0) To ax(2)
        sx = p * (i - 70) / 20
        yi = 410 - Round(20 * (aa * sx * sx + bb * sx + cc) / tk)
        Picture1.Circle (i, yi), 1
    Next
    For t = 1 To iTime - 2
        Call ipol(t, x(t), t + 1, x(t + 1), t + 2, x(t + 2))
        For i = ax(t + 1) To ax(t + 2)
            sx = p * (i - 70) / 20
            yi = 410 - Round(20 * (aa * sx * sx + bb * sx + cc) / tk)
            Picture1.Circle (i, yi), 1
        Next
    Next
End Sub

Последний раз редактировалось Stilet; 17.01.2011 в 09:45.
Васильева Зинаида вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна программа производства k_slava Свободное общение 4 04.12.2010 11:27
проектирование базы планирования производства redfield Microsoft Office Access 0 11.06.2010 13:24
симплекс метод_метод производства(((нужна ваша помощь bakir Помощь студентам 1 08.12.2009 01:51
найти оптимальный план производства Baxxter Microsoft Office Excel 12 25.09.2008 23:45