#legacy-code #qbasic
#устаревший код #qbasic
Вопрос:
У меня есть устаревший код, выполняющий математические вычисления. Сообщается, что он написан на QBasic и успешно выполняется под управлением VB6. Я планирую написать код на более новом языке / платформе. Для чего я должен сначала поработать в обратном направлении и составить подробный алгоритм из существующего кода.
Проблема в том, что я не могу понять синтаксис нескольких строк:
Dim a(1 to 200) as Double
Dim b as Double
Dim f(1 to 200) as Double
Dim g(1 to 200) as Double
For i = 1 to N
a(i) = b: a(i N) = c
f(i) = 1#: g(i) = 0#
f(i N) = 0#: g(i N) = 1#
Next i
Основываясь на моей работе с VB5 9-летней давности, я предполагаю, что a, f и g — это двойные массивы, проиндексированные от 1 до 200. Тем не менее, я полностью запутался в этом использовании # и: вместе внутри тела цикла for.
Комментарии:
1. Интересно, стоит ли беспокоиться, что единственными непостоянными правыми частями являются
b
иc
, которые нигде не инициализированы (и, следовательно, равны 0).2. Символ : разделяет базовые операторы.
Ответ №1:
:
это символ продолжения строки, он позволяет вам связать несколько операторов в одной строке. a(i) = b: a(i N) = c
эквивалентно:
a(i)=b
a(i N)=c
#
является спецификатором типа. Это указывает, что число, за которым оно следует, должно обрабатываться как double.
Комментарии:
1. Большое спасибо Blindy и sidran32!
2. Пожалуйста, не забудьте проголосовать за полезные ответы и отметить один из них как решение. Спасибо, и всегда пожалуйста. 🙂
Ответ №2:
Я некоторое время не программировал на QBasic, но я много занимался в старших классах. Символ # указывает на определенный тип данных. Он предназначен для обозначения значения RHS как числа с плавающей запятой с двойной точностью (аналогично тому, как в C используется значение 1.0f, чтобы сделать 1.0 с плавающей запятой одинарной точности). Символ двоеточия также похож на точку с запятой в C, где он разделяет различные команды. Например:
a(i) = b: a(i N) = c
является ли в C:
a[i] = b; a[i N] = c;