|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||||||||
Изучение основ FreeBasic в сравнении с PowerBasic10.10.2022, 22:17. Показов 22079. Ответов 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
|
||||
|
306 / 77 / 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
|
|||
|
306 / 77 / 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
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 и то, что с ним. . .
|