|
COM‐пропагандист
|
||||||
Общие вопросы и приёмы эффективного программирования на BASIC27.03.2021, 15:34. Показов 33608. Ответов 391
Метки нет (Все метки)
Вот как создать кнопку:
0
|
||||||
| 27.03.2021, 15:34 | |
|
Ответы с готовыми решениями:
391
Общие вопросы по языку 1с Visual Basic Приемы взаимодействия Visual Basic и SQL Основные понятия и приемы программирования |
|
|
|||||||||||||||||||||||||||
| 01.04.2021, 12:48 | |||||||||||||||||||||||||||
|
Если намек на FB, то он по синтаксису не проще плюсов. Разве что фигурных скобок нет.
![]() ![]() ![]() Замабувараев, расскажите как в FB с кроссплатформенностью? Какие библиотеки есть? Как насчет кросплатформенной библиотеки GUI, сети и т. д.? И вообще зачем вы сравниваете PB и FB? Хотите писать на FB - пишите, кто запрещает? ![]() PS. Развели оффтоп в теме про QB...
1
|
|||||||||||||||||||||||||||
|
|
||
| 01.04.2021, 14:39 | ||
![]() Системный диск работает постоянно, а диск с файлопомойкой только когда я к нему обращаюсь.
0
|
||
|
Модератор
|
||
| 01.04.2021, 15:16 | ||
|
0
|
||
|
|
||
| 01.04.2021, 17:49 | ||
![]() Есть у меня на обслуживании рабочий комп на каком то из Пентиумов, работает ежедневно под wiXP (фото-видео-карточные игры, бабуля развлекается ), оперативка 512 МБ, и IDE HDD 80 ГБ., 2 раза менял батарейку на метеринке - вот и все неисправности. Всему этому комплекту не менее 15 лет, HDD умирать не собирается, конденсаторы не пухнут ![]() Есть у кого то такой древний SSD?
0
|
||
|
COM‐пропагандист
|
|||||||||||||
| 01.04.2021, 18:54 [ТС] | |||||||||||||
|
Вы запутались на что именно вы отвечаете: Итак, нам нужно создать тип данных Rational (натуральная дробь). Чтобы с ним работать, необходимо определить базовые функции: сложение дробей, вычитание, деление, умножение. Логично и естественно для сложения использовать знак «+», для умножения звёздочку «*», например, «c = a + b», «c = a * b», и так далее. Для этого во фрибесике мы просто перегружаем операторы сложения и умножения. Там, где нет перегрузки операторов, приходится городить монструозные конструкции вида с = RationalAdd(a, b) и c = RationalSubstract(a, b). Как вы считаете, какой из этих двух вариантов нагляднее: c = a + b или с = RationalAdd(a, b)? PureBasic поддерживает перегрузку операторов, например, «+» для чисел и строк, есть какая‐нибудь причина, почему это запрещено для собственных типов данных? >кроссплатформенность Какая‐то мифология. Сколько бы Я не смотрел на форумные темы, 90% из них — это как что‐нибудь решить через винапи. Во‐вторых, когда начинается разговор о быстродействии и эффективности, то быстро приходит понимание, что кроссплатформенность тут только вредит. Простой пример: встроенная функция выделения памяти работает только со стандартной кучей процесса, чтобы работать с дополнительными кучами, резервировать большие регионы, ставить защиту, необходимо выходить за рамки стандартной библиотеки.
0
|
|||||||||||||
|
Кормпилятор
|
|||||||||
| 01.04.2021, 20:35 | |||||||||
|
которую тоже надо перенести вместе с dll. Ну во всяком случае старые версии плагинов, новые 3-й версии я уже хз что там наворотили, вроде бы это уже нифига не dll. Тут надо у Анатолия спросить он вроде ковырял vst 3. и ещё бог знает куда. Причём подвязывают её к конкретной установленной винде. Так что только переустановка. Ну это чисто защиты, хотя от вареза как мы видим они не особо спасают, но геморов при переустановке создают. Добавлено через 35 минут Ну да перегрузку я бы и сам в бейсик не стал добавлять по очевидным причинам. Как и кучу того, что в FB например засунули на правах "можем - засунем". PB наверное единственный язык, который сохранил чистоту 3GL кода и очень аккуратно были добавлены соотв. синтаксич фишки из паскаля, си. И про пространства имён например если сравнить на FB - жопа, просто код не засунешь только оборачивать в функцию. Хотя это просто оператор, который по факту указывает формальное разбиение кода программы(для того чтобы разграничить доступ). Т.е. код как выполняется так и должен выполняться, но на FB кони люди писали этот функционал. Нет не страшно на самом деле, могу и в процедуры всё засунуть. Даже инициализации. Как-то наверно даже строже всё выглядит в плане модульности. Но как-бы не особо приятно. Не по асмовски сделано, неинтуитивно.
Ставился кривой какой-то драйвер, работает работает, потом фигак BSOD. Когда в системе много разных драйверов и устройств часто такое бывает. Ну и когда засранная винда, понаставил например лишних прог для чужих нужд, понятное дело хочется её переставить. Добавлено через 4 минуты В основном железячники, кому там COM\LPT быренько нужно со старья завести. На это проще QB взять как Vodav сделал. Добавлено через 10 минут А причина простая - мы меянем синтаксис ЯП. Постоянство синтаксиса довольно простая и логичная вещь. Это не конструктор, это язык. Старый, с оговоренными рамками, понятный. А когда начинается вся эта возьня с кастомизацией, потом смотришь код и охреневаешь. Версий 10 назад с 0.22 там было всё хорошо, потом влезли эти кони люди и начало трясти весь диалект, Стас помнит. Пришла куча сишников и начали там всем заправлять. Ну и всё, нет нормального понятного и простого языка. Теперь исходники хрен прочитаешь.
0
|
|||||||||
|
Модератор
|
||||
| 01.04.2021, 21:28 | ||||
|
0
|
||||
|
Кормпилятор
|
||||
| 01.04.2021, 21:44 | ||||
|
настраиваю и больше не ставлю никакой софт. Добавлено через 4 минуты Хотя уже тогда, году в 2005-м на 775-м были платы с твердотельниками. Просто дороже стоили. Добавлено через 31 секунду Хотя уже тогда, году в 2005-м на 775-м были платы с твердотельниками. Просто дороже стоили.
0
|
||||
|
|
||||||||||||
| 01.04.2021, 21:45 | ||||||||||||
|
PureBasic ни чего сам не определяет, так же как и FreeBasic. Все API, которые он "знает" описаны в соот. файлах .imp, например user32.imp. Там для имён применены псевдонимы, где имя совпадает, но добавлено подчеркивание. И это более универсально, т.к. если меня не устраивает встроенное решение я всегда могу подключиться непосредственно к библиотеке без конфликтов. Для самостоятельного подключения API непосредственно из библиотеки DLL или .lib есть несколько инструментов, там можно обозвать API как угодно, используя прототипы. В FB применены подключаемые файлы .bi, аналог header file, без которых FB не знает ни одной API. Почему это отстой? Потому, что ты должен помнить, в какой библиотеке что лежит и приинклюдить нужный файл .bi к своему коду. пример на FB:
на PB всего 1 строка:
0
|
||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| 01.04.2021, 22:22 | ||||||||||||||||||||||||||||||||||
А в структурах еще сложнее. Этот код совершенно понятен компилятору
1
|
||||||||||||||||||||||||||||||||||
|
|
||
| 02.04.2021, 11:24 | ||
|
Перекатываться на ООП точно не буду.. В нормальном мире функции-мухи отделены от котлет-данных. В ненормальном мире каждая котлета имеет свою муху в виде составной части. Хочет котлета или не хочет, муха будет её жрать и засирать..)) Я кстати не против инкапсуляции и полиморфизма, но это не прерогатива ООП. В процедурном стиле можно писать полиморфно и инкапсулированно не имея к тому же побочек ООП. Как-нибудь в своем блоге об этом черкану для разминки мозгов.. ООП - революця в процедурщине, но все как-то позабыли про то, что возможна и эволюция процедурного подхода - ППП Процедурно-Параметричское Программирование.. Придет время - останутся нормальные программы и нормальный код. Что станет с ненормальным кодом - мне неведомо..
0
|
||
|
COM‐пропагандист
|
||||||||||||||
| 02.04.2021, 12:43 [ТС] | ||||||||||||||
|
Заголовочные файлы используют для отделения интерфейсной части от реализации. Без заголовочных файлов вам придётся бежать сквозь километры кода функций в поисках публичной части, а если ещё и функция имеет право засорять пространство имён, то бежать спотыкаясь. В QuickBasic тоже было создание переменной по первому использованию, а в следующих версиях всё же пришлось ввести Option Explicit. Я вижу, что PureBasic создаёт и уничтожает память в промышленных масштабах на конвейерных лентах: память теребят присваивая строк, конкатенации. Строки на стэке функции не поддерживаются, хотя Я не вижу никаких платформоспецифических причин для такого ограничения. Есть просто библиотеки с функциями. Берёте любую понравившуюся, функции которой можно вызывать из Си, и используете, их не надо затачивать под FB. Отладчик с графическим интерфейсом «FB debugger» лежит тут https://www.freebasic.net/foru... =8&t=13935 Также и с файлами. Нет отображённых в память файлов, нет асинхронного ввода‐вывода.
0
|
||||||||||||||
|
|
||
| 02.04.2021, 12:57 | ||
|
Просто считай, что имя API +_ это зарезервированное слово. Простое правило - не называй функции так, как названы API + подчеркивание, это трудно запомнить? Тем более, что компилятор укажет на твою оплошность, если повторно объявить одну и туже функцию.
0
|
||
|
|
||
| 02.04.2021, 13:02 | ||
![]() Отладчик там совсем дугой: Есть в комплекте FB хоть что-то похожее на эту мощь?
0
|
||
|
COM‐пропагандист
|
||
| 02.04.2021, 14:01 [ТС] | ||
|
0
|
||
|
|
||
| 02.04.2021, 15:13 | ||
![]() А нормальные люди знают про индексацию. Да и вообще, PureBasic славится двухпроходным компилятором, который один из самых быстрых.
1
|
||
|
|
|
| 02.04.2021, 15:31 | |
|
Вставлю свои пять копеек. FB не стал высокоуровневым по причине добавления ООП фишек. Высокоуровневым язык делает доступность из коропки работу с АДТ. Если допустим язык не имеет средств работы со списками, регулярными выражениями - если в нем надо своими ручками пилить на указателях, то это си в бейсиковом обличье. И библиотеки тут являются костылями. FB сильно напоминает си, как тут уже замечали. От бейсика там по сути мало чего осталось. Не понимаю зачем это было нужно создавать очередной си с классами.
1
|
|
|
COM‐пропагандист
|
|||||||
| 02.04.2021, 17:15 [ТС] | |||||||
|
Похожесть на си — это хорошо, потому что позволяет использовать си‐библиотеки напрямую, без промежуточного кода. Вам дали нормальные функции, указатели, перегрузку операторов для собственных типов данных, средства ООП, а вы опять хотите объявить двести глобальных переменных и юзать их по всему коду, не заметить, что для каких-то локальных дел (например, в циклах) разные участки кода используют одну и ту же переменную, перепрыгивать из одного участка в другой и потом ночами напролёт дебуажить это с повизгиванием «Почему у меня ничего не работает?!» Лучше сразу писать по-нормальному, чем потом с незначительным усложнением программы бегать и обмазываться миноксидилом, отращивая волосы для вырывания.
0
|
|||||||
|
|
|||
| 02.04.2021, 17:52 | |||
|
Создание же нормальных и современных гуёвых программ под Винду превращает в сплошной гемор. Добавлено через 32 минуты ![]() Или хотя бы подумать над тем, что основная масса программистов на С++ принимает долгую компиляцию как должное.
1
|
|||
|
|
||||||||||||||||||||||||||||
| 02.04.2021, 17:54 | ||||||||||||||||||||||||||||
|
Может для вас будет открытием, API есть не только в винде (не путать с WinAPI). ![]() ![]() Можно ссылки на авторитетные источники? PureBasic сам по себе ничего не выделяет. Как написали программу так она и работает. ![]() Еще раз. В PB есть стандартная кроссплатформенная библиотека содержащая больше 1500 функций. см. "General Libraries", "2D Games & Multimedia Libraries" и "3D Games & Multimedia Libraries") https://www.purebasic.com/documentation/ Вот к примеру этот код для PB создает окно с прогресс-баром и таймером.
Например в С# или питоне не нужно подключать стандартные файлы библиотек.
1
|
||||||||||||||||||||||||||||
| 02.04.2021, 17:54 | |
|
Стоит ли изучать как устроена ЭВМ для эффективного программирования Подскажите ссылки на приемы программирования для Embedded
Интересны приемы программирования, о которых не пишут в книгах, а которые узнаются на практике Общие вопросы. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача
Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
Сигнатура
func Fetch(urls string, maxConcurrent int) Result
Пример
urls :=. . .
|
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition)
Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
|
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
|
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool
Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. . . .
|
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|