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

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

18.11.2018, 17:54. Показов 3877. Ответов 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,433
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,281
Записей в блоге: 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,281
Записей в блоге: 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,281
Записей в блоге: 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,281
Записей в блоге: 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,281
Записей в блоге: 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,281
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru