|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||||||||
Изучение основ FreeBasic в сравнении с PowerBasic10.10.2022, 22:17. Показов 24730. Ответов 218
Метки freebasic;изучение основ (Все метки)
Всем добра и мира!
К сожалению, PowerBasic прекратил своё развитие вследствие смерти его создателя и главного (а скорее всего, единственного) разработчика Роберта Зейла в 2012-ом году. К настоящему времени последние надежды на его развитие окончательно угасли. В связи с этим я решил приступить к изучению основ FreeBasic'а. В этой ветке форума буду задавать вопросы, возникающие у меня в процессе ознакомления с этим ЯП. Как говорится, всё познаётся в сравнении. Ну вот и буду изучать FreeBasic, опираясь на определённый опыт ЛЮБИТЕЛЬСКОГО программирования на PowerBasic'е. Буду очень благодарен за любую помощь. Итак, первый возникший у меня вопрос. Каким образом в структурах FreeBasic'а появилась возможность использовать динамические строки? В PowerBasic'е это строго запрещено. Можно использовать только строки фиксированной длины. Вот 2 работающих (с одним и тем же результатом на консоли) кода для сравнения: FreeBasic
1
|
|||||||||||
| 10.10.2022, 22:17 | |
|
Ответы с готовыми решениями:
218
|
|
COM‐пропагандист
|
|||||||||||||
| 18.12.2022, 15:24 | |||||||||||||
Функции с передачей параметров по указателю пришли из Си во фрибесик. ByRef удобен тем, что не нужно собаку указывать. Так почему же нельзя было все указатели заменить на ByRef? Потому что через ByRef нельзя передать NUL.
1
|
|||||||||||||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
||||||||||||
| 27.12.2022, 19:26 [ТС] | ||||||||||||
|
Правильно я понял, что в FreeBasic'е разница между числовыми типами данных касается только INTEGER и UINTEGER?
Вот специально для сравнения набросал две небольшие программки: FreeBasic x32
0
|
||||||||||||
|
COM‐пропагандист
|
||
| 27.12.2022, 22:33 | ||
|
От битности компилятора, которым вы компилировали программу, зависит только Integer (и UInteger). Byte, Short, Long и LongInt имеют фиксированную битность (и их беззнаковые братья).
2
|
||
|
126 / 53 / 1
Регистрация: 26.10.2012
Сообщений: 89
|
|
| 29.12.2022, 11:29 | |
|
Я прошу прощения за неточность в учебнике. Где-то 10 лет назад , в справке как раз было именно так и указано. Тогда планировалось , что именно LONG станет вариативным , но потом разработчики переиграли и сделали вариативным INTEGER. Я исправил страницу , где была ошибка. Спасибо за то , что упомянули об этом. Если где-то еще будут ошибки , не стесняйтесь указывать на это.
2
|
|
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
||||
| 29.12.2022, 18:24 [ТС] | ||||
![]() И в результате этого "исследования" выяснилось, что "хамелеон" у нас действительно только один. А именно Integer. Ну со своей беззнаковой подружкой, разумеется ![]() Про учебник. Большое спасибо за этот классный учебник! Прочитал его от начала до конца, теперь вот снова вернулся в начало и планирую повторить весь путь медленно и вдумчиво, экспериментируя на своих тренировочных мини-программках. Написано превосходным простым, доступным для понимания абсолютно любому языком. Можно сказать, разжёвано и в рот положено, остаётся только медленно и вдумчиво проглотить ![]() А то ведь иной автор так напишет, что ни хрена не понятно, но зато слова все ну очень заумные и фразы все ну очень круглые ![]() То есть для него первоочередная задача состоит вовсе не в том, чтобы максимально понятными словами донести до читателя суть разбираемого вопроса, а в том, чтобы перед самим собой и перед коллегами покрасоваться. А уж поймёт ли там кто-нибудь чего-нибудь из того, что он понаписал, это уже дело десятое. Как говорится, кто не понял, тот не достиг ещё должного уровня просветления ![]() К счастью, здесь совершенно противоположный случай. С первых же страниц бросается в глаза, что написано не для самолюбования, а для реального достижения максимального понимания со стороны читателя. И это ведь ещё надо учитывать, что программисты такого высокого уровня, насколько я успел заметить, не любят отвлекаться на написание учебных материалов. Да оно и понятно. У всех какие-то планы, какие-то неотложные разработки. Иные даже к собственным программам не удосуживаются написать хоть небольшую справочную систему. ![]() Добавлено через 3 часа 14 минут А кроме того, мне ещё понравилось, что там в учебнике все примеры очень простые и иллюстративные, без лишних наворотов, за которыми легко может затеряться сама суть рассматриваемого вопроса.
3
|
||||
|
307 / 78 / 6
Регистрация: 27.04.2022
Сообщений: 243
|
|
| 30.12.2022, 00:38 | |
|
Не по теме: Если брать PC-совместимые ПК, то начинал на GW-Basic, потом перешёл на Turbo Basic, и лишь за тем на Q(uick) Basic, на котором пока остановился. На мой, дилетантский, взгляд — синтаксис Power Basic того же автора ушёл гораздо дальше от TB, чем Free Basic. P. S. Кто-нибудь занимается написанием ПО для FreeBSD на FreeBasic? Expected identifier в FreeBasic
0
|
|
|
126 / 53 / 1
Регистрация: 26.10.2012
Сообщений: 89
|
||||||
| 30.12.2022, 13:14 | ||||||
|
@Power_Basic
Спасибо за отзыв! Когда я писал учебник , ни о каком 64-bit компиляторе и речи не было. Все было написано опираясь на 32-bit платформу. По хорошему конечно надо обновить учебник. А именно, в описании примеров или рассуждений четко дать понять , что INTEGER не всегда 4 байта и что платформа может быть не только 32-битной. Добавлено через 1 час 28 минут @yevrowl Программа не будет компилироваться в системе freebsd , потому что для этой системы внутренне не реализованы функции работы с портами. Уберите функцию OUT (строчка OUT 984 , 46) и программа скомпилируется. Не знаю , зачем в программе используется работы с портами , тем более с TCP , да и не особо хочу знать. Вы можете закомментировать эту строчку , либо реализовать ее вручную , например с помощью ассемблерных вставок, например так (это при компиляции с #lang "QB" на 64-bit freebsd . Если компиляция на 32-bit системе , то rdx меняем на edx , а rax меняем на eax): ' OUT 984 , 46
Добавлено через 5 часов 25 минут Блин , какое нафиг TCP , 984 - это десятичное , а в hex будет 3D8 . Это какой-то порт , который использовали еще во времена доса только не знаю зачем он нужен. Но раз стоит сразу за функцией screen , наверное что-то связанное с экраном. Просто вырезать это не жалеючи.
2
|
||||||
|
|
||
| 30.12.2022, 14:02 | ||
|
В винде с этим четко сделано - инструкции In и Out заблокированы для юзермода и при их использовании приложение вылетает.
0
|
||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||
| 30.12.2022, 17:08 [ТС] | |||
|
Сам-то я теперь в процессе предстоящего более глубокого изучения всего учебника, разумеется, постоянно буду держать в уме возможность возникновения некоторых противоречий и возможную причину их появления с учётом полученной здесь информации. Но вот для неподготовленных в этом отношении читателей могут возникать определённые трудности в понимании отдельных фрагментов изучаемого материала. ![]() Следует признать, что это было довольно рискованное утверждение, чреватое серьёзными репутационными рисками, ведь это не просто учебник, а популярнейший учебник, на котором, я уверен, учились если не миллионы, то тысячи-то уж точно. Не удивлюсь, если выяснится, что и вы сами когда-то делали свои первые шаги в изучении FreeBasic'а, опираясь именно на этот источник.
1
|
|||
|
307 / 78 / 6
Регистрация: 27.04.2022
Сообщений: 243
|
|||||
| 30.12.2022, 23:34 | |||||
|
0
|
|||||
| 30.12.2022, 23:41 | |
|
Не по теме: Вообще с CGA разные фокусы делали — https://www.mobygames.com/attr... ibuteId,5/ — и ещё композитный вариант был.
0
|
|
|
126 / 53 / 1
Регистрация: 26.10.2012
Сообщений: 89
|
|||
| 31.12.2022, 07:10 | |||
|
' OUT 984 , 46 __Asm push rdx push rax mov edx , 984 mov eax , 46 out dx ,al pop rax pop rdx end __ASM Добавлено через 1 час 17 минут
0
|
|||
|
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 65
|
|
| 02.05.2023, 01:51 | |
|
Замабувараев
Добрый день. Прошу консультацию, помощь в решении задачи. Суть в следующем: во Free Basic математически определяю по нужному алгоритму число. Необходимо это число вывести на динамик компьютера как частоту звука в соответствии с этим числом. Знаю что многие функции ФБ решает с помощью функций операционной системы (видимо WinApi). Но с операционной системой взаимодействовать в рамках ФБ я не умею, овладел им по учебнику из интернет, где не увидел возможности это делать. Возможно где то эти сведения и прописаны. Просто хочется ускорить решение задачи и потому обращаюсь за помощью. Хотелось бы получить фрагмент кода в готовом виде - где командами (либо операторами, либо функциями) ФБ получает возможность извлечь звук (заданной в программе частоты), желательно без выхода из программы или с возвратом в неё. Заранее благодарю за внимание и возможную помощь.
0
|
|
|
COM‐пропагандист
|
|||||||
| 02.05.2023, 09:38 | |||||||
1
|
|||||||
|
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 65
|
|
| 05.05.2023, 21:12 | |
|
stabud,
Добрые пожелания. Случайно узнал здесь - что есть учебник (не справочный файл- хотя он для меня сейчаc вполне сходит за учебник Free Basica - именно из него беру недостающее поверх знаний QBasica). Как понимаю - вы участвуете в его создании? Что нужно чтобы получить его в пользование. Полуслепым темпом изучаю, особенно сложности во взаимодействии FB с операционной системой. Трудно даются массивы. У меня в работе 3,4,5 мерные массивы. Но не их размерность сложна, а возможность разнообразных форм вывода и ввода. Т.е. хотелось бы это разнообразие видеть в примерах. Ну а в настоящее время бьюсь, и беспокою ребят с форума проблемой вывода в программе звука по заданному числу (частоте) в установленном порядке. При не слишком строгом способе установки мной компилятора - он слишком сопротивляется - не даёт работать беспроблеммно. Извинения за беспокойство. Еще раз добра и спасибо.
0
|
|
| 05.05.2023, 23:31 | ||
|
Не по теме:
Больше нецелесообразно т. к. обычно неэффективно расходуется память и код становится запутанным. Если нужно изменить размер какого-то из измерений или размерность, это может создать определенные сложности. Вместо одного многомерного массива используйте массив структур, в которых могут быть в том числе массивы.
0
|
||
|
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 65
|
|
| 06.05.2023, 10:53 | |
|
Да, это понимаю. Просто необходимо понимать, что происходит в процессе изменений по нескольким осям и в общем, в графике и в математике, при этом наблюдать, меняя позиции, параметры. спасибо за ответ.
0
|
|
| 06.05.2023, 10:53 | |
|
Лабораторная работа на изучение основ работы с debug.exe Лабораторная работа(Изучение основ.Одномерный и двумерный массивы.Процессы) Проблема с Imagelist в PowerBasic 10 FreeBASIC Уйти с freebasic Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|