С Новым годом! Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,265
Записей в блоге: 3

Компиляция программы Qbasic в Freebasic

18.11.2018, 17:54. Показов 3802. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По мере надобности компиляции одной из старых программ, написанных давным давно в Qbasic, установил Freebasic (OS Ubuntu).
Пытаюсь скомпилировать программу, на ряд строк выдает ошибки.
PureBasic
1
 PRINT " F0 - В МЕГА-": PRINT "ГЕРЦАХ, ШИРИНА "; Y4$;
Code
1
Pi_kont.bas(12) error 147: Suffixes are only valid in -lang deprecated or fblite or qb, found 'Y4' in 'PRINT " F0 - В МЕГА-": PRINT "ГЕРЦАХ, ШИРИНА "; Y4$;'
Таких ошибок как приведено выше несколько.

А на вот эту строку (самая первая в программе), дает 2 ошибки.
PureBasic
1
10 CLEAR 300: COLOR 10: GOSUB 1910: CLS : PRINT TAB(10); G$; W$; Y6$
Code
1
2
3
4
Pi_kont.bas(1) error 145: Only valid in -lang fblite or qb, found 'GOSUB' in '10 CLEAR 300: COLOR 10: GOSUB 1910: CLS : PRINT TAB(10); G$; W$; Y6$'
 
 
Pi_kont.bas(1) error 145: Only valid in -lang deprecated or fblite or qb in '10 CLEAR 300: COLOR 10: GOSUB 1910: CLS : PRINT TAB(10); G$; W$; Y6$'
Прошу помощи, что нужно исправлять?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.11.2018, 17:54
Ответы с готовыми решениями:

Программы на QBasic
Ребята, кто поможет решить три задачи за пару дней? Задачи пришлю в личном сообщении.

Перевод программы из qbasic в С++
помогите перевести программу из Qbasic на С++ значение n = 3 OPEN "input7.TXT" FOR INPUT AS #1 INPUT #1, N FOR i = 0 TO N ...

Перевод программы из QBasic в C/C++
Перевод программы из QBasic в C/C++: CLS INPUT st$ stn$ = "" INPUT s11$ INPUT s12$ k1 = LEN(st$) k2 = LEN(s11$) i = 1 ...

15
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
18.11.2018, 19:51
В настройках нужно поставить совместимость с qbasic.
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
19.11.2018, 06:58
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

В начале программы:
PureBasic
1
'$LANG: "QB"
В конце программы:
PureBasic
1
SLEEP
Откомпилируется далеко не всё, потому что слишком разные архитектуры.
1
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,265
Записей в блоге: 3
20.11.2018, 16:02  [ТС]
Компилируется при добавлении в команду компиляции ключа совместимости -lang qb, но не понимает оператора CLEAR. Пришлось его исключить.
В документации прочел:
CLEAR закрытие всех файлов, очистка всех переменных и массивов, а также очистка стека.
Думаю это не так страшно с данной программой, но все же, чем его заменить в freebasic?
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
20.11.2018, 23:45
Файлы закрываются через CLOSE
массивы реинициализируются через ERASE
стек устанавливается ключом -t в байтах, т.е. fbc -t

И совсем другой вопрос зачем вам всё это нужно, не зная алгоритма работы программы.
Прямая замена может не прокатить, потому что под DOS изворачивались как могли,
использовали всё что используется.
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,265
Записей в блоге: 3
21.11.2018, 16:42  [ТС]
Цитата Сообщение от Quiet Snow Посмотреть сообщение
И совсем другой вопрос зачем вам всё это нужно, не зная алгоритма работы программы.
Решено, удаляю CLEAR. К тому же поднял оригинальный текст, там только в самом начале этот оператор один раз (код переделывался когда то под Qbasic из какого-то еще более древнего basic-a). Но все данные вводятся с клавиатуры, поэтому ошибок быть не должно. Да и пробные просчеты показывают, что вроде бы все корректно.

При выводе информации о расчетах происходит "сдвиг" как показано ниже.


Code
1
2
3
4
5
PH= 50        IM= 734.5251  Ф2= 45.00003 RЭ= 776.0116
P1= 52.33492  I1= 367.2625  ПП= 399.9776              СТ= 318.0229
P0= 70.14198  I0= 233.8066  QH= 13.38445  C1= 318.0229
PA= 17.80706  K0= 0.3183099 QT= 13.38445  L1= 1.987519
КП= 95.53851              K1= 0.5       QK= 3.718575  C2= 1204.228
фрагмент кода такой
PureBasic
1
2
3
4
5
PRINT "PH="; P2, "IM="; I2, "Ф2="; V0, "RЭ="; R1
PRINT "P1="; P1, "I1="; I1, "ПП="; F1, "СТ="; C7
PRINT "P0="; P0, "I0="; I0, "QH="; Q, "C1="; C1
PRINT "PA="; P3, "K0="; K0, "QT="; H, "L1="; L2
PRINT "КП="; S7, "K1="; K1, "QK="; Q5, "C2="; C3
Некрасиво. Чем это выровнить? В DOS версии было все ровно.
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
22.11.2018, 22:53
С этими цифрами в моем Ubuntu ровно показывает, если количество цифр в одном колонке ещё больше будет, тогда сдвигается. Для установки точную позицию можете использовать LOCATE.
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
23.11.2018, 00:08
Цитата Сообщение от WH Посмотреть сообщение
Чем это выровнить?
PRINT USING, можно через LOCATE используя CSRLIN и POS.
А можно просто сформировать нужную строку через строковые операторы, но USING практичнее.
1
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,265
Записей в блоге: 3
23.11.2018, 13:49  [ТС]
Насколько я понял компилятор я поставил 32 битный, который и скачал с сайта - FreeBASIC-1.05.0-linux-x86.tar.gz. К тому же пришлось доставить multilib и какую-то 32 битную библиотеку. Выходит 64 битного компилятора нет, или ошибаюсь?

Еще вопрос. Если программу запустить на другой Linux машине, программа запустится или потребует какие-то библиотеки? К сожалению проверить пока не на чем.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
23.11.2018, 17:20
Цитата Сообщение от WH Посмотреть сообщение
Выходит 64 битного компилятора нет, или ошибаюсь?
Должен быть, для винды есть. Но с линуксом не знаю, знаю только то, что разрабы к этому форку
относятся халатно, Стас как-то туда полез, запарился по всем фронтам.
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,265
Записей в блоге: 3
23.11.2018, 19:04  [ТС]
Ага, есть 64 битка для Linux. Я просмотрел просто и скачал 32 битную версию, которая была предложена по умолчанию. Переустановить бы надо и как-то на другой машине еще проверить.

Но вообще впечатление такое, что выводится текст в терминале с какой-то задержкой, хотя это не сильно напрягает. Не понятно с чем связано.

Цитата Сообщение от Quiet Snow Посмотреть сообщение
знаю только то, что разрабы к этому форку относятся халатно,
В смысле, к Linux версии?

Quiet Snow, а операторы из вашего поста № 3 что должны были дать?
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
23.11.2018, 21:00
Цитата Сообщение от WH Посмотреть сообщение
В смысле, к Linux версии?
Да, мало пользователей, некому баг репорты делать в необходимом количестве.

Цитата Сообщение от WH Посмотреть сообщение
Quiet Snow, а операторы из вашего поста № 3 что должны были дать?
Переключение режима диалекта. И ожидание любой клавиши перед закрытием окна в конце программы.

Цитата Сообщение от WH Посмотреть сообщение
Но вообще впечатление такое, что выводится текст в терминале с какой-то задержкой, хотя это не сильно напрягает. Не понятно с чем связано.
Значит используйте графический режим.
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,265
Записей в блоге: 3
24.11.2018, 08:41  [ТС]
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Да, мало пользователей, некому баг репорты делать в необходимом количестве.
Код каждой версии самого компилятора то по идее один.

Цитата Сообщение от Quiet Snow Посмотреть сообщение
Значит используйте графический режим.
Даже не знаю что такое есть )) Как его включить/выключить? И есть ли такой режим в linux терминале... Но вообще я так же использую терминальные программы на c++ / fortran, там такого явления не наблюдается. С этой программой это наблюдатся так, как буд-то производится большое количество вычислений, хотя дело не в этом. Например не только результаты расчета но и меню выбора действий выводится как "бегущий огонь", доли секунды, но не мгновенно.

Добавлено через 7 минут
Может дело в 32 битном компиляторе? ...

Добавлено через 3 часа 51 минуту
Поставил 64 битный компилятор, так же.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
24.11.2018, 20:07
Вот этот код с задержкой работает? Вверх\вниз потыкайте.
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
DECLARE SUB DrwMENU ()
CONST MaxVib = 3
DIM Kb AS STRING
DIM SHARED Vib AS INTEGER = 1
 
DrwMENU
DO: Kb = INKEY
 
  IF Kb = CHR(255) + CHR(72) AND Vib > 1 THEN Vib -= 1: DrwMENU
  IF Kb = CHR(255) + CHR(80) AND Vib < MaxVib THEN Vib += 1: DrwMENU
 
  SLEEP 1, 1
LOOP UNTIL Kb = CHR(27)
 
 
SUB DrwMENU ()
 LOCATE 1, 1
 IF Vib = 1 THEN COLOR 15, 1 ELSE COLOR 7, 0
   PRINT "Punkt 1"
 IF Vib = 2 THEN COLOR 15, 1 ELSE COLOR 7, 0
   PRINT "Punkt 2"
 IF Vib = 3 THEN COLOR 15, 1 ELSE COLOR 7, 0
   PRINT "Punkt 3"
END SUB
Добавлено через 2 минуты
Цитата Сообщение от WH Посмотреть сообщение
Как его включить/выключить?
В QB - SCREEN, в FB - SCREENRES. В справке всё написано, заглядывайте туда почаще.
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,265
Записей в блоге: 3
25.11.2018, 11:29  [ТС]
Скомпилировалось когда убрал ключ совместимости с QB "-lang qb".
Не совсем мне код понятен. Появилось меню (на скрине), и все. Вверх вниз по стрелкам работает нормально, без задержки, на Enter не реагирует.
Изображения
 
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
25.11.2018, 14:59
Ну так значит дело не в работе FB с консолью? Ваш код приложите, посмотрим что не так.

Цитата Сообщение от WH Посмотреть сообщение
Скомпилировалось когда убрал ключ совместимости с QB "-lang qb".
Для небольших программ лучше в самом исходнике эти режимы переключать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.11.2018, 14:59
Помогаю со студенческими работами здесь

Перевести 4 программы из PascalABC в QBasic
Программы элементарные, но разбираться с синтаксисом Basic и искать по полчаса &quot;лишнюю запятую из-за которой ничего не работает&quot;...

Перевод программы из QBasic в VBA
Есть задачка (нахождение суммы ряда) на Qbasic нужно перевести на VBA. Вопрос при выводе в ячейки Excel на VBA получается не верный...

Пароль для программы на qBasic
Нужно поставить пароль для программы на QBasic 4.5, чтобы при нажатии f5 спрашивался пароль, при неправильном вводе выход из программы....

Графический интерфейс программы в QBasic
Здравствуйте уважаемые. В школе мы проходим только простые задачи по программированию! Но недавно возник вопрос- Как в бейзике написать...

блок-схема и запись программы на QBASIC
Разработать блок-схему и записать программу на языке QBASIC: а) Дан массив С(К). Переписать четные элементы в массив Е, а нечетные в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru