|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||||||||
Изучение основ FreeBasic в сравнении с PowerBasic10.10.2022, 22:17. Показов 22675. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|