2013-01-24 22 views
12

Tôi đang dịch một chương trình GW-BASIC quá mức thành JavaScript và tôi đã gặp một đoạn cú pháp khiến tôi bối rối. Lưu ý (một lần nữa): hoàn toàn không phải mã của tôi, và các tên biến là tất cả điên, đó là lý do tại sao tôi đang chuyển nó ở nơi đầu tiên.Hàm/cú pháp GW-BASIC không xác định: Q (var) = var

1380 Z = 1 
1390 RATIO = FCO2 /(1-FCO2-10^REFFO2) 
1400 AA =(1 - 2*RATIO*(100/MIXRATIO - 1))/(1 + 2*(100/MIXRATIO - 1)) 
1410 PART = LOG(1 - AA)- LOG(100/MIXRATIO - 1) 
1420 FOR I = 1 TO - 1 STEP -2 
1430 H = I 
1440 W = T + H 
1450 GG = 62.110326# - .02144446#*W + 4.720326E-07*(W^ 2)+(- 4.5574288#)*(10^(- 12))*(W^ 3)- 7.343018200000001#*(10^(- 15))*(W^ 4) 
1460 KK = EXP(- GG /(R*(W + 273.18))) 
1470 Q(Z)= KK 
1480 Z = Z + 1 
1490 NEXT I 
1500 NEWFO21 = LOG(10)*.5*(LOG(Q(1))+ PART):NEWFO22 = LOG(10)*.5*(LOG(Q(2))+ PART) 
1510 DELEMFDELT =(FN EMF (TREF + 1,NEWFO21) - FN EMF (TREF - 1, NEWFO22))/2 
1520 RETURN 

Dấu hỏi là dòng 1470: Q(Z) = KK. Q được định nghĩa Q$ trước đó trong chương trình dưới dạng biến đầu vào có/không, do đó, không có ý nghĩa gì khi tôi đặt dấu phẩy vào trong đó. Không có hàm Q() được xác định trong chương trình trước đó và tôi cũng không thể tìm thấy tham chiếu đến hàm Q() trong GW-BASIC.

Bất kỳ trợ giúp nào?

+3

+1 để nhắc tôi về GW-BASIC, đã là NĂM ​​ – Ali

+2

Tôi phải nói, dự án cụ thể này là một vụ nổ đối với cổng. –

Trả lời

12

Q và Q $ là các biến riêng biệt. Bất cứ điều gì với $ là một biến chuỗi. Q (Z) là một dãy số.

Tên ký tự 1 và 2 là phổ biến vì trong các phiên bản trước của Basic, tên biến được giới hạn tối đa 2 ký tự.

+0

Cho đến khi tôi có thể nói, Q không bao giờ được xác định trước khi nó được sử dụng trong vòng lặp cụ thể này. Điều đó có khả thi trong BASIC không? Và cảm ơn bạn đã gợi ý cú pháp mảng cho BASIC. –

+0

Tôi nghĩ rằng các mảng được yêu cầu được khai báo trong DIM, nhưng không phải là các biến vô hướng. Đã lâu rồi tôi không nhớ chắc chắn. – xpda

+0

Nó không thực sự quan trọng - nó không hiểu nhiều hơn rằng tôi đang xử lý một mảng. Cảm ơn, và tôi sẽ trả lời bạn sau 6 phút nữa. :) –

4

Như XPDA đã đề cập, bất kỳ tên biến nào được gắn liền với $ là một chuỗi. Tôi đã viết một số GW-BASIC một vài năm trước đây, và may mắn tôi vẫn có rất nhiều tài liệu cũ đã được đóng gói với trình biên dịch. Tôi đã tải lên bản sao CHM mà tôi đã lưu trữ, có thể bạn sẽ tìm thấy một số thông tin hữu ích về nó trong đó. http://www.mediafire.com/?3h9z133ok8wx1l9

+0

Tại sao bạn phải viết gwbasic một vài năm trước, ai sẽ muốn một chương trình viết bằng gwbasic? , Tôi chỉ tò mò :) –

+0

@dotNetSoldier nó là một phần của khóa học tôi đã trợ giúp –