Добро пожаловать на Форум SoftWeb.ru.
 
Осень

Нам нужна Ваша поддержка. Сбор средств на оплату дата-центра.

Форум SoftWeb.ru » Интернет » Программирование » Языки программирования » Из Basic в Delphi

Языки программирования Basic, Pascal, Delphi, C++, C#, PHP, HTML, Perl, JavaScript, Assembler, Python, Java, SQL ...

ОТВЕТИТЬ
Старый 10.01.2008, 07:56   #1
 
Аватар для Argenty
 
Статус: Старшина
Регистрация: 17.09.2005
Адрес: Могилев на Днепре, РБ
Сообщений: 164
СПАСИБО: 44
сказали Спасибо 7 раз(а) в 5 сообщении
Получено наград:
Smile Из Basic в Delphi

Помогите перевести в Delphi кусочек алгоритма с Basic ибо я Basic не учил, а теперь надо перевести целую программу. Посоветуйте книгу.

10 REM Прогр.PETF2 ЛИНИИ2 для пищевого полимера.
11 REM Получена из программы PETF2 16.11.05. Скоррект. 16.02.2006.
12 REM моделирования непрерывного производства ПЭТФ
13 REM Возможна работа с оптим.профилем (чит-ся из файла dat7.dat)
14 REM для этого в строке 90 надо поставить goto 92(обычно goto 100)
16 DATA 5.3e4,2.65e4,6.8e5,6e8,7e7,7e7,.5e6,.5e6,3.6e9,6.8 e5
25 DIM W(11),W1(11),F(11),Y(11),K(11)
30 DATA 15,15,18.5,29.8,29.8,29.8,17.6,17.6,37.8,18.5
40 DATA 0.3,0.15,0.5,2.5,1.25
50 rem DATA 160.5,156,159,159,163,172,181.5,192,200,203,209,21 6,227,237,247
55 DATA 158,156,159,160,164,174,180,190,199,201,209,214,22 8,241,251
60 FOR J=1 TO 10:READ K1(J):NEXT
70 FOR J=1 TO 10:READ E1(J):NEXT
80 READ KK1,KK2,KK3,KK4,KK5
90 DIM T(15),s(15),Y1(15,15),z(14):FOR J=1 TO 15:READ T(J):NEXT:goto 100
91 rem ***чтение оптимального профиля из файла***
92 open "dat7.dat" as #7 len=4
93 for i=1 to 15:field #7,4 as a$:get #7,i:t(i)=cvs(a$):next
94 close #7:for i=1 to 15:print t(i);:next:delay (2)
100 DATA .00199,.1915,.0606,.452,.753,1.07,.977
110 READ RR,DV,EV,CD,CE,ROD,ROE
118 rem давл.РТ в мм рт. ст.,длина реакт.L в м,уровень HD в 13-15 трубах в %
120 PT=760:L=6:R=0.3:HD=70:PI=3.14159:N=11:N2=10:H=.25 :H1=60/H:HH=H
121 rem for i=1 to 3:s(i)=0.211:next i
122 rem for i=4 to 12:s(i)=0.1983:next i
123 rem for i=13 to 15:s(i)=0.2276:next i:s(14)=0.211
124 for i=1 to 12:s(i)=0.2276:next i
125 mmm=32.04:mme=62.07:mmw=18:mma=44:mmd=194
130 DEF FND(X)=.18*(1+.00077*(X-140))
140 DEF FNE(X)=.001*(9.412E-05*X*X+.026*X+55.19235)
145 rem def fne(x)=.0606*(1+.0014*(x-140))
150 DEF FNM(X)=.001*(43.9*(1+.0014*(x-140)))
155 REM DEF FNM(X)=.001*(.000328*X*X+.0307*X+39.74)
160 DEF FNW(X)=.001*(.0000368*X*X+.01496*X+17.736)
162 rem показатели каскада для ЛИНИИ2
170 N3=15:QD=3.47:N4=3.55:TD=160:TE=194:TG=30:TM=25
172 rem кол-во кат.(ацет. марг.) в литр/час для пр-сти по ДМТ 3.46м3/час
173 KTM=60.508
230 CLS:PRINT " РЕЖИМ КОРРЕКЦИИ ВХОДНЫХ ДАННЫХ":PRINT
240 GOSUB 520:GOSUB 590:GOSUB 520:GOSUB 760
310 GOSUB 1620
510 delay (5):goto 2010
520 PRINT:PRINT " ВХОДНЫЕ ДАННЫЕ СТАДИИ ПЭФ"
530 PRINT "уровень в последних трубах,%"TAB(44)HD
540 PRINT "пр-сть по ДМТ"TAB(44) USING "#.##";QD
550 PRINT "соотношение ДМТ:ЭГ"TAB(43)"1:" USING "#.##";N4
555 rem кол-во кат.(ацет. марг.) в литр/час для пр-сти по ДМТ QD
556 KTM1=QD/3.46*KTM
560 PRINT "кол-во катализ. (ацетат марг.) в л/час " USING " ##.###";KTM1
570 PRINT "распределение температур":FOR J=1 TO N3:PRINT T(J);:NEXT
580 PRINT:PRINT:RETURN
590 PRINT "Введите числа,равные 1,для тех входных данных,кот.нуждaются"
600 PRINT "в коррекции,в следующем порядке:уровень,пр-сть по ДМТ,"
610 PRINT "соотн.ДМТ:ЭГ,колич.кат-ра,распр-ие температур.Примеры:1,1,1,1,1"
620 PRINT "- в коррекции нуждаются все данные;1,,,,1 - в коррекции нужда-"
630 PRINT "ются уровень и распределение температур по трубам"
640 INPUT L4,L5,L6,L9,L7
660 IF L4=1 THEN INPUT "уровень = ";HD
661 hr=hd/50:if hr<=1 then s=r^2/15*hr*(12*sqr(2*hr-hr^2)+8*sqr(2*hr)):goto 664
662 s=pi*r^2-r^2/15*(2-hr)*(12*sqr(2*(2-hr)-(2-hr)^2)+8*sqr(2*(2-hr)))
663 rem s(16)=s:s(17)=s:s(18)=s
664 s(13)=s:s(14)=s:s(15)=s
670 IF L5=1 THEN INPUT "пр-сть по ДМТ = ";QD
680 IF L6=1 THEN INPUT "соотн.ДМТ:ЭГ = 1:";N4
690 KTM2=QD/3.46*KTM:IF L9=1 THEN INPUT "кол-во катал-ра Ац.Мн.= ";KTM2
700 IF L7=1 THEN 710 ELSE 750
710 PRINT "распределение температур по трубам"
720 for j=1 to n3
730 PRINT "t("J")= "T(J);:INPUT T1(J):IF T1(J)<>0 THEN T(J)=T1(J)
740 NEXT
750 RETURN
760 FD=QD*1000/H1/FND(TD)
770 FEG=N4*FD
780 QEK=.001*KTM:TEK=20:FEK=QEK*1000/H1/FNE(TEK)
800 FEG=FEG+FEK:QE=FEG*H1*FNE(TE)/1000
810 A1=ROD*FD*FND(TD):A2=ROE*FEG*FNE(TE):C=(CD+CE)/2
820 T=(CD*TD*A1+CE*TE*A2)/(C*(A1+A2)):T(0)=T
840 VV0=FD*FND(T)+FEG*FNE(T):Q0=VV0/1000
850 F=2*FD:FF=FD+FEG:FOR J=1 TO N:W1(J)=0:NEXT :W1(1)=F:W1(4)=FEG
860 MT=0:MG=0:MW=0:MA=0:X=0
870 FOR I=1 TO N3:L2=0:IL=0
880 TT=(T(I)-T(I-1))/L
885 L1=Q0/s(i):L2=L2+L1:IF L2>L THEN 1033
890 T=T(I-1)+TT*L2
895 IF IL=1 THEN FOR J=1 TO N:W1(J)=W1(J)*AA:NEXT
900 FOR J=1 TO N2:K2(J)=K1(J)*EXP(-E1(J)/(T+273)/RR):NEXT J
920 PM=10^(8.505629-1979.38/(290+T))
930 PW=10^(8.02406-1721.35/(235+T))
940 PG=10^(21.61-3729/(T+273)-4.042*LOG(T+273)*.43439)
945 PA=EXP(16.2481-2465.15/(T+273-37.15))
950 GM=PM/PT:GW=PW/PT:GG=PG/PT:GA=PA/PT
980 VV=Q0*1000:FOR J=1 TO N:W(J)=W1(J)/VV:NEXT
990 GOSUB 1220:GOSUB 1130



Добавлено через 23 часа 11 минут
Помогите понять принципы отличия! Написание.

Последний раз редактировалось Argenty; 11.01.2008 в 07:07. Причина: Добавлено сообщение
Argenty вне форума   ЦИТИРОВАТЬ
Объявление
Нам нужна Ваша поддержка. Сбор средств на оплату дата-центра.
Старый 09.05.2014, 23:16   #2
 
Статус: Banned
Регистрация: 08.02.2010
Сообщений: 162
СПАСИБО: 4
сказали Спасибо 23 раз(а) в 20 сообщении
По умолчанию Re: Из Basic в Delphi

Вопрос видимо уже не актуален... Однако, что касается самого Бейсика, как такового, рекомендую всем познакомиться с его основами. Ибо он прост и красив. Попробуйте, к примеру, портировать с бейсика такие программочки на любой другой язык программирования:

c1 = 0
a$ = "░▓▒"
SCREEN 13
CLS
FOR j = 1 TO 4
FOR i = 1 TO 32
c1 = c1 + 1
REM SLEEP (1)
COLOR c1
s = 18 * RND(2) + j
LOCATE s, i + j
PRINT a$
NEXT i
SLEEP (1)
NEXT j

c1 = 0: k = 1
SCREEN 13
CLS
FOR j = 1 TO 100
FOR i = 1 TO 270
c1 = c1 + 1
REM SLEEP (1)
IF c1 > 240 THEN c1 = 1
COLOR c1
s = 240 * RND(2) + j
PSET (s, i + j - k), c1
NEXT i
k = k + 2
REM SLEEP (1)
NEXT j

c1 = 0: k = 1
SCREEN 13
CLS
FOR j = 15 TO 100
FOR i = 15 TO 300
c1 = c1 + 1
REM SLEEP (1)
IF c1 > 240 THEN c1 = 1
COLOR c1
s = 210 * RND(j) + j
ss = 15 - 29 * RND(i)
sss = 15 - 29 * RND(i)
LINE (s, i + j - k)-(s + ss, i + j - k - sss), c1
REM PSET (s, i + j - k), c1
NEXT i
k = k + 2
SLEEP (1)
NEXT j

c1 = 0: k = 1
SCREEN 13
CLS
FOR j = 40 TO 60
FOR i = 45 TO 70
c1 = c1 + 1
IF c1 > 240 THEN c1 = 1
COLOR c1
s = 210 * RND(j) + j
ss = 35 - 69 * RND(i)
sss = 35 - 69 * RND(i)
r = c1 * RND(i) / 3
d = 6 * RND(i)
e = d / 2 - .3
CIRCLE (s + ss, i + j - k - sss), r, c1, , , e
NEXT i
k = k + 1
SLEEP (1)
NEXT j

c1 = 0: k = 1
SCREEN 13
CLS
FOR j = 1 TO 100
FOR i = 1 TO 290
c1 = c1 + 1
IF c1 > 240 THEN c1 = 1
COLOR c1
s = ABS(300 * RND(2) + j)
s2 = ABS(i + j - k - INT(i / 2))
PSET (s, s2), c1
CIRCLE (s2, c1), i, c1
NEXT i
k = k + 2
SLEEP (1)
NEXT j

Ужасно получается, по сравнению с исходниками на бейсике, не так ли? )))
OSLeroi вне форума   ЦИТИРОВАТЬ
Старый 10.10.2014, 09:22   #3
 
Статус: Ефрейтор
Регистрация: 10.10.2014
Сообщений: 10
СПАСИБО: 7
сказали Спасибо 0 раз(а) в 0 сообщении
По умолчанию Re: Из Basic в Delphi

Реализаций Бейсика очень много.
Обратите внимание, даже внешне программа Argenty (очень старинная версия))
отличается от OSLeroi (Вероятно, Qbasic под MS-DOS).
Современные версии, например VB от Microsoft - полноценные универсальные среды программирования
Ни первая, ни вторая программа там работать не будут.
Я в свое время мучительно трудно переводил некоторые проекты на Delphi.
Akfatori вне форума   ЦИТИРОВАТЬ
Старый 11.10.2014, 13:27   #4
 
Аватар для 4айник
 
Статус: Чайник
Регистрация: 06.11.2006
Адрес: Владик, что возле Японии
Сообщений: 12,748
СПАСИБО: 10,175
сказали Спасибо 8,066 раз(а) в 5,001 сообщении
По умолчанию Re: Из Basic в Delphi

Цитата:
Сообщение от Akfatori Посмотреть сообщение
Современные версии, например VB от Microsoft - полноценные универсальные среды программирования
Ни первая, ни вторая программа там работать не будут.

если говорить не о VBA, а именно о VB, то Ваше утверждение более чем спорное


Цитата:
Сообщение от Клод Адриан Гельвеций
Знание некоторых принципов легко возмещает незнание некоторых фактов

[Ссылки могут видеть только зарегистрированные пользователи. ] не жать.
4айник вне форума   ЦИТИРОВАТЬ
Объявление
Нам нужна Ваша поддержка. Сбор средств на оплату дата-центра.
ОТВЕТИТЬ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решебник (Basic, Visual Basic и прочие бейсики) Jana Вопросы и ответы 44 17.04.2011 22:22
Delphi 7 - справка для Delphi Arhimed Обсуждение вопросы/ответы 10 20.04.2009 23:59
BASIC-256 SoftWeb Средства разработки приложений 3 12.09.2008 22:11
q basic Channel-Master Вирусы и шпионы 9 24.11.2007 13:55
IPSwitcher Basic TVL Утилиты 0 09.03.2006 11:44


Часовой пояс GMT +3, время: 10:33.

Нам нужна Ваша поддержка. Сбор средств на оплату дата-центра.
Яндекс цитирования