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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2013, 23:19   #1
iwannadrink
Новичок
Джуниор
 
Регистрация: 09.04.2013
Сообщений: 1
По умолчанию Перевод из qBasic в Visual Basic

Добрый день! Хотел бы попросить помочь мне перевести программу из qBasic в Visual Basic. Или помочь найти конвертер...

Задание : Вычислить минимум функции F(x) = P(x1)x^2-2.5P(x2)x-3 на отрезке [a;b] с точностью E. P(x1), P(x2) значения интерполяционного многочлена, построенного для таблично заданной функции f(x) в точках x1, x2.
Исходные данные:
x1 x2 a b E
0.041770 0.587282 0 2.0 10^(-4)

x 0 0.1 0.2 0.3
f(x) 1.858652 1.851659 1.851401 1.848081

x 0.4 0.5 0.6
f(x) 1.841914 1.833125 1.821948

В qBasic получилось :
DIM px1 AS SINGLE, px2 AS SINGLE, R AS SINGLE
DIM a AS SINGLE, b AS SINGLE, e AS SINGLE
DIM X(6) AS SINGLE, Y(6) AS SINGLE
DIM x1 AS SINGLE, x2 AS SINGLE

INPUT "a,b,e,x1,x2="; a, b, e, x1, x2

FOR i = 0 TO 6
PRINT "X,Y("; i; ")=";
INPUT X(i), Y(i)
NEXT i

px1 = LX(6, X(), Y(), x1)
px2 = LX(6, X(), Y(), x2)

PRINT "P(X1)=", px1
PRINT "P(X2)=", px2
PRINT

R = ZolSec(a, b, e, px1, px2)

PRINT
PRINT "p(x1)="; px1, "p(x2)="; px2, "Minimum="; R

FUNCTION f (X AS SINGLE, px1 AS SINGLE, px2 AS SINGLE)
f = px1 * X ^ 2 - 2.5 * px2 * X - 3
END FUNCTION

FUNCTION LX (k AS SINGLE, X() AS SINGLE, Y() AS SINGLE, xl AS SINGLE)
DIM l AS SINGLE, l1 AS SINGLE, i AS INTEGER, j AS INTEGER
l = 0
FOR i = 0 TO k
l1 = 1
FOR j = 0 TO k
IF i <> j THEN
l1 = (xl - X(j)) / (X(i) - X(j)) * l1
END IF
NEXT j

l = l + l1 * Y(i)
NEXT i

LX = l
END FUNCTION

FUNCTION ZolSec (a AS SINGLE, b AS SINGLE, e AS SINGLE, px1 AS SINGLE, px2 AS SINGLE)
DIM k1 AS SINGLE, k2 AS SINGLE
DIM x1 AS SINGLE, x2 AS SINGLE, f1 AS SINGLE, f2 AS SINGLE, xf AS SINGLE, ff AS SINGLE

k1 = (3 - SQR(5)) / 2
k2 = (SQR(5) - 1) / 2

x1 = a + k1 * (b - a)
x2 = a + k2 * (b - a)

f1 = f(x1, px1, px2)
f2 = f(x2, px1, px2)

DO UNTIL ABS(b - a) < e

IF f1 < f2 THEN
b = x2
x2 = x1
x1 = a + k1 * (b - a)
f2 = f1
f1 = f(x1, px1, px2)
ELSE
a = x1
x1 = x2
x2 = a + k2 * (b - a)
f1 = f2
f2 = f(x2, px1, px2)
END IF

PRINT USING "####.#####"; a; b; x1; x2; f(x1, px1, px2); f(x2, px1, px2)
LOOP

xf = (a + b) / 2
ff = f(xf, px1, px2)

ZolSec = xf
END FUNCTION
iwannadrink вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно решить задачу в Visual Basic ( Exel) и QBasic MurNyashka Помощь студентам 0 16.11.2012 19:18
Перевод программы с visual basic на delphi lordsyrius Фриланс 11 03.09.2010 09:53
Перевод чисел оптимизация (Visual Basic) maxcoder_1991 Помощь студентам 0 03.03.2010 22:19
Перевод информации в семибитный код(Visual Basic) maxcoder_1991 Помощь студентам 0 03.03.2010 18:45
Перевод десятичных чисел(Visual Basic) ioda1986 Помощь студентам 1 03.03.2010 00:51