|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||||||||
Изучение основ FreeBasic в сравнении с PowerBasic10.10.2022, 22:17. Показов 21970. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
28. КОнкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования?
Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная.
Где разрыв
. . .
|
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно»
Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
|
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую:
Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
|
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий?
Да, такие данные есть, и они хорошо описаны и в российской,. . .
|
|
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу:
https:/ / github. com/ altbodhi/ ReConMan
По итогу пришел к мысли, что DU не дружат с существующими технологиями.
От сериализации до отображения в реляционную. . .
|
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
|
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
|
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2.
Задача: контроль уникальности строк в. . .
|