|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||||||||
Изучение основ FreeBasic в сравнении с PowerBasic10.10.2022, 22:17. Показов 22075. Ответов 218
Метки freebasic;изучение основ (Все метки)
Всем добра и мира!
К сожалению, PowerBasic прекратил своё развитие вследствие смерти его создателя и главного (а скорее всего, единственного) разработчика Роберта Зейла в 2012-ом году. К настоящему времени последние надежды на его развитие окончательно угасли. В связи с этим я решил приступить к изучению основ FreeBasic'а. В этой ветке форума буду задавать вопросы, возникающие у меня в процессе ознакомления с этим ЯП. Как говорится, всё познаётся в сравнении. Ну вот и буду изучать FreeBasic, опираясь на определённый опыт ЛЮБИТЕЛЬСКОГО программирования на PowerBasic'е. Буду очень благодарен за любую помощь. Итак, первый возникший у меня вопрос. Каким образом в структурах FreeBasic'а появилась возможность использовать динамические строки? В PowerBasic'е это строго запрещено. Можно использовать только строки фиксированной длины. Вот 2 работающих (с одним и тем же результатом на консоли) кода для сравнения: FreeBasic
1
|
|||||||||||
| 10.10.2022, 22:17 | |
|
Ответы с готовыми решениями:
218
|
|
|
|||
| 12.11.2022, 12:57 | |||
|
0
|
|||
|
|
|||
| 12.11.2022, 13:08 | |||
|
И это при том что в нем нет поддержки x64 не говоря про друие платформы кроме винды. QB тоже используют, несмотря то что времена DOS давно прошли.
1
|
|||
|
|
||||
| 12.11.2022, 14:43 | ||||
|
Что касается инклюдов. На мой взгляд для расширяемости языка неплохо иметь такую возможность. Штатные средства - это хорошо, но не все можно предусмотреть на этапе проектирования языка, всегда что-то упустишь. А подключаемые либы позволяют это обойти.
0
|
||||
|
|
|||
| 12.11.2022, 14:49 | |||
0
|
|||
|
|
|
| 12.11.2022, 15:42 | |
|
0
|
|
| 12.11.2022, 16:12 | ||
|
1
|
||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
||||||||
| 12.11.2022, 16:36 [ТС] | ||||||||
![]() Подразумевалось что-то вроде софтовых плагинов или нечто вроде плат расширения, вставляемых/встраиваемых в материнку. Но вы мне этим советом подсказали, как искать в библиотеках, предназначенных именно для FreeBasic'а. И да, это работает. Попробовал сейчас поиск "array NEAR sort" в WinFBX (https://github.com/JoseRoca/WinFBX), и нашлась именно предложенная вами функция (см. скриншот). ![]() ![]() Вы поймите, я сейчас в первом классе, а вы мне предлагаете задачки из высшей математики ![]() Вот я где сейчас: https://users.freebasic-portal... tbook.html. Мы там про вызовы сишных функций пока ещё не проходили ![]() И поэтому я принципиально не хочу забегать вперёд, чтобы не запутаться. Кстати, Станислав там великолепно учебный материал излагает, надо отдать ему должное. ![]() Вы поймите, программирование это лишь одно из моих многочисленных хобби. Я могу годами "не подходить к роялю" ![]() Согласитесь, сложно в такой ситуации всегда следовать точной терминологии. Вот сейчас "пошла волна" в этом направлении, ну вот я и снова постепенно "вживаюсь в тему". Ну просто мне пришла блажь в голову, что не худо бы иметь возможность программировать под х64, ну вот я и выбираю дополнительный (не основной!) язык. А понадобятся ли мне когда-нибудь эти самые х64? Вопрос открытый.
0
|
||||||||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
||
| 12.11.2022, 17:06 [ТС] | ||
0
|
||
|
|
||||
| 12.11.2022, 17:08 | ||||
|
Бейсик интересен прежде всего своей простотой, а в FreeBasic с этим есть некоторые сложности и этим он похож на Си. Тогда это не первый класс. Функция qsort не сложна для понимания. Принцип ее работы понятен из примера без чтения документации. https://cpp.com.ru/shildt_spr_po_c/18/qsort.html
2
|
||||
| 12.11.2022, 17:33 | |||
|
1
|
|||
|
|
|||||
| 12.11.2022, 17:34 | |||||
И на нем придется программировать под win api, а это уже почти никто не делает, за исключением тех, у кого уйма свободного времени. Или надо подключать сторонние либы, которые упрощают программирование под окошки.
1
|
|||||
| 12.11.2022, 18:04 | ||
|
1
|
||
|
|
|
| 12.11.2022, 18:30 | |
|
Единственное, что хорошо в Free basic это встроенная графическая библиотека и динамические строки. Однако меня лично не удовлетворяет скорость графики. Также в экранах нет поддержки русского алфавита. Ну а строки реализованы несколько тупо, так как там выделяется память каждый раз столько сколько требуется, но это неправильно с точки зрения её фрагментации. Надо в 2 раза больше или через степень двойки. Короче проект для атомной станции на free basic я бы писать не стал.
Если бы удалось улучшить графику и строки, добавить поддержку других adt, нативные функции для обработки массивов, то язык бы стал вполне нормальным.
1
|
|
|
COM‐пропагандист
|
||||||
| 12.11.2022, 20:23 | ||||||
|
У вас должна быть только одна категория — «функция». Функция как независимый участок кода, который принимает параметры и возвращает результат. Я вам открою секрет: фрибейсиковая функция InStr — она на самом деле на си написана, в вашей терминологии — это сишная функция. Вас это сильно расстроит? Или как‐то усложнит вам жизнь? Или после этого вам стало труднее писать название этой функции в редакторе и очень сложно ставить скобки и указывать внутри параметры? Эта графическая библиотека только и умеет, что рисовать линии, прямоугольники и овалы. Графика в стиле QBASIC устарела уже тогда, когда вышла Windows 3.11 со своим интерфейсом GDI (1990 год), в котором поддерживаются кисти, перья, регионы, картинки, шрифты, сплайны, кривые Безье, трансформация координат и аффинные преобразования через матрицы. Добавлено через 20 минут Потому что в лабораторных работах первого семестра какие‐нибудь встроенные строки или сортировки будут работать. А когда появится серьёзный проект, где важна скорость и память, вам придётся выкинуть стандартную реализацию. И программисты работали вхолостую, потому что никто ихнюю стандартную реализацию не использует.
2
|
||||||
|
|
|||||
| 13.11.2022, 11:41 | |||||
|
0
|
|||||
|
COM‐пропагандист
|
||||||||
| 13.11.2022, 13:41 | ||||||||
|
Но сейчас времена 640x480 и 16 цветов давно прошли. Или вы собираетесь писать графику для эмуляторов DOS? В 2022 году? А потом придя на работу услышать фразу «забудьте всё, чему вас учили в школе». И ценность функций рисования прямоугольников и овалов стала равна нулю. Хорошо, простой вопрос. Как с помощью этих функций нарисовать эллипс под углом? Чтобы получилось примерно такое: Вы будете руками множество точек эллипса вычислять? А ведь достаточно установить матрицу перехода:
0
|
||||||||
|
|
|||
| 13.11.2022, 13:45 | |||
|
0
|
|||
|
COM‐пропагандист
|
||
| 13.11.2022, 13:58 | ||
|
И тогда останется одна функция DrawImage, остальные можно выкидывать за ненадобностью. Только вот графическая библиотека из одной функции — это точно то что надо?
0
|
||
|
|
||
| 13.11.2022, 14:25 | ||
![]() Встроенная графическая библиотека работает. ![]() Программирование на WinAPI не только требует больше времени и сил, но и не кроссплатформенно!
1
|
||
|
|
|
| 13.11.2022, 14:49 | |
|
Замабувараев, - смысл basic именно в готовых встроенных средствах - графики из коробки, управление памятью + возможность по ручной оптимизации, то есть возможность иметь доступ к памяти напрямую посредством указателей. Ну и в отсутствии определенной парадигмы. Если он это не обеспечивает, то это не basic. Вопросы об эффективности реализации данных возможностей, это уже вопрос другой.
1
|
|
| 13.11.2022, 14:49 | |
|
Лабораторная работа на изучение основ работы с debug.exe Лабораторная работа(Изучение основ.Одномерный и двумерный массивы.Процессы) Проблема с Imagelist в PowerBasic 10 FreeBASIC Уйти с freebasic Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сезонность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|