|
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 62
|
|
Отладка кода (программы) во FreeBasic21.02.2024, 01:11. Показов 15475. Ответов 224
Уважаемые программисты. Подскажите - как производится
В QB это делалось просто. В меню Debug командой toggle breakpoint метится строка до которой проверить. После запуска идет проверка, отмечаются ошибки, проблемы. У меня во FreeBasic этот метод не работает. Программа на метку не реагирует, действия не совершаются. Прошу помощи.
0
|
|
| 21.02.2024, 01:11 | |
|
Ответы с готовыми решениями:
224
Грамотная отладка программы, подмога в структуризации кода Отладка программы в Delphi(нужно подредактировать текст чужой программы) |
|
Кормпилятор
|
|||
| 26.02.2024, 20:35 | |||
|
Многое там можно считать составляющими алгоритма. Т.е. алгоритмической части у меня больше чисто программистской. Добавлено через 7 минут а вот по объёму работ - с гарантией. Даже если чисто алгоритм.(вичисл) кода будет меньше то это не даст объективной оценки по трудозатратам. Под вычислительным кодом имею в виду всё, что необходимо вычислить для получения итогового результата.
0
|
|||
|
|
|||
| 26.02.2024, 20:51 | |||
|
Но структурная парадигма наоборот - сделала эти шаги неявными переходами. Причем стало считаться неверным и даже позорным выделять состояния, например при помощи тех же меток. Не знаю почему. Писать готовые алгоритмы по книжкам используя подобный подход просто, главное это запомнить как этот алгоритм ВЫГЛЯДИТ в коде. А это и есть по сути иероглифическое описание алгоритма. Создавать новые алгоритмы при таком подходе очень сложно, если вообще возможно.. Вот почему goto рано сбрасывать со счетов. Для простых тривиальных алгоритмов можно и не выделять шаги в отдельные абстракции, но для сложных алгоритмов без этого сложно обойтись.
0
|
|||
|
Кормпилятор
|
||
| 26.02.2024, 21:50 | ||
|
И соотв. приведению последовательности действий к более простой и понятной структуре. Код с макаронингом не обслуживаем. Это код который заточен на жесточайшую оптимизацию, ценой читаемости и объёма кода. Либо для алгоритмов ветвящихся сложным нетривиальным образом. Этот подход характерен фактической невозможностью переписывания или доработки уже определённого кол-ва кода со сходной его эффективностью. А также неудобствами в трассировке алгоритма. Более того такой уровень оптимизации переключения состояний требуется редко, т.к. большинство задач блоковые, где идут вычисления в блоке, достаточные чтобы влияние этой оптимизации сошло на нет. Поэтому выгоднее применять флаги-триггеры для отладки состояний. Т.к. код в такой структуре линеен, разбит на итерации и легко трассируется. Применял такой подход в разворачивании рекурсии и в создании прототипов довольно сложных движков, в принципе применимо к любым задачам. А вот если нужна максимальная оптимизация на небольших(до сотни строк максимум) участках кода - тогда да можно применить твой подход и тут проблема в другом: если раньше люди качали эти навыки, то сейчас они у всех в зачаточном состоянии и зачастую попросту не дадут той эффективности, которую эта идеология позволяет получать. Поэтому оно сошло на нет и люди ищут другой c точки зрения разработки ресурс, позволяющий написать более оптимально, более понятным кодом, обслуживаемым и дополняемым, хотя по факту всё равно полностью не избежать реструктуризаций. И именно исходя из того, что навыков работы у совр. программистов в этом нет они и отказываются от т.н. "состояний в коде", потому что трудозатраты несоразмерны и редко на самом деле нужно иметь подобный уровень оптимизации, он ничего не даёт: затратить огромный объём мозгоресурсов и получить нефиксируемый мизер в 99% задач. Написать же большой проект так не сможет де факто никто, даже маститые из прошлого.
0
|
||
|
|
|||
| 26.02.2024, 22:12 | |||
|
В PB такой проблемы нет и внутри пространства имен переменную нужно объявлять глобальной чтобы она стала доступной в процедурах.
0
|
|||
|
Кормпилятор
|
||||||||
| 26.02.2024, 23:24 | ||||||||
|
Как бы думаю что уже поздно трепыхаться, они не пойдут ни на какие изменения. Это подкосит кодовую базу и уровень совместимости. Крутимся как можем. CoderHuligan, ток шоу: "ответ Алисы"(Yandex GPT)
Ну и вишенка на торте: Так что вопрос GOTO это теперь вопрос этики! Так что этикет, уважаемые графья и графини. А сейчас мы узнаем почему! Ведь Алиска у нас не промах! Ну чё, кто побежал за Шеридоном, Хатчисоном и Вендлером? Ведь это очень важно!
0
|
||||||||
|
COM‐пропагандист
|
||
| 27.02.2024, 06:25 | ||
|
0
|
||
|
759 / 278 / 14
Регистрация: 21.01.2023
Сообщений: 388
|
||
| 27.02.2024, 08:24 | ||
|
0
|
||
|
|
||||||
| 27.02.2024, 11:39 | ||||||
0
|
||||||
|
|
|||||||||||||||||
| 27.02.2024, 11:45 | |||||||||||||||||
0
|
|||||||||||||||||
|
|
|||
| 27.02.2024, 12:08 | |||
|
https://translated.turbopages.... ing_ethics Но там про goto ничего не сказано. Этика о другом. Надумала эта алиса отсебятину. Жаль, что теперь её бред будет расходиться на цитаты и портить еще неокрепшие мозги.. Написать код на С/С++, который из целого числа от 0 до 4294967295, выдаёт на русском языке сумму прописью добавляя в нужном падеже слово «ворона». Для попугаев: main.7z Обратите внимание, как я инкапсулировал данные в функциях сделав их статическими. При этом глобальное пространство очистилось. На FB тоже так можно, вроде бы.
0
|
|||
|
|
|
| 27.02.2024, 16:21 | |
|
В идеале вообще не должно быть глобальных данных вне функций. Но это в идеале. Функции должны инкапсулировать данные внутри себя и обмениваться ими путем создания четкого протокола разделяемой ответственности. Например у нас две функции и обе могут видеть одну и ту же ячейку памяти. Другие функции доступа к ней не имеют. То есть нужно четко прописывать: а что и кто инкапсулирует внутри себя. И исходить не из данных, которые что-то инкапсулируют, а от функций, которые прячут от внешнего мира свои данные. Внешнего мира извне функций просто не должно существовать. Но это в идеале. Нужен тестовый язык, на котором можно было бы отработать данную концепцию. Вот над чем я сейчас думаю. И ручки очень чешутся..
Добавлено через 2 часа 42 минуты http://oberon2005.oberoncore.ru/paper/fatprog.pdf
0
|
|
|
Кормпилятор
|
||||||||||
| 28.02.2024, 01:26 | ||||||||||
|
любому другому. У неё нет критического мышления, она сопротивляется любым оценкам. Переубедить её не получится с гарантией. Страшно представить если эти GPT выпустят на форумы, Анатолий говорит со мной спорить бесполезно, а попробуйте с такими ботами поспорить))), и это ещё видно что тупые боты, а станут умнее - обзаведутся риторикой, аналитикой. Сила убеждения такой машины бесконечна. Может быть поэтому ведущие мировые компании резко схватились за это и вливают большие деньги в AI. через 10 лет открываешь и начинаешь чесать затылок. других вариантов масштабирования ты вряд ли сыщешь. как говорится "в отличии от" лапоуха Дейкстры. Отсюда простое правило думай своей головой. От этих людей очень сильно пострадало BASIC коммьюнити, это была идеологическая борьба, которая ещё не закончена. Просто нужно правильно обучать людей, правильные тезисы в голову им вшивать, про бумажную работу, про обязательную подробную документацию(чтобы просрав весь код человек мог легко заново его пересобрать или легко изменить и доработать), про формализацию и её корректное понимание в особенности. Парадигма и инструмент - мало важны, каждый выбирает себе по вкусу, а вот грамотно поставленный рабочий процесс важен. А когда тенденции такие что какой-нть сопляк начинает думать что программирование это легко и можно не вылезая из-за компа всё делать и можно всё легко потырить и не надо прикладывать никаких усилий - то в индустрии начинается жопища, тотальная. Потом вырастают такие, кому на всё насрать, никакой ответственности, "а баги" - "да и х*р с ними", "багрепорт не пишут - значит не надо". Причём не дети. Пофигизм этот массовый. И к слову всякие левые люди, которых ты раньше приводил в пример - тоже такие себе теоретики, ну т.е. только теоретизировать и умели. Тут надо внимательно разобраться кого слушаешь, может и жизнь станет легче. Добавлено через 46 минут Макросы же превращают ассемблер чисто визуально практически в ВУ. Но ты же не будешь это делать, правильно? А это именно то самое, что ты пропагандируешь. По поводу документации все люди ограничены в документации в IDE, не только ты. Но никто сильно не ограничен в листиках A4. Бывает только что места нет и стола нормального. Во-первых код с флагами ещё надо правильно написать, чтобы он был хорошо читаем А это подразумевает что в нём легко выделяется каждое состояние и сама суть мышления заключена в разбивке на отдельные порции, эти порции должны быть частью одного алгоритма, но не должны неявно выполнять функции друг друга, нужно помнить что алгоритм это конечная последовательность шагов. Так вот есть алгоритм и есть состояния - это разные вещи, все переходы между состояниями должны фиксироваться от чего мы пришли, к чему пришли и почему это произошло. Т.е. алгоритм с конечным набором шагов должен быть вычленяем из этих самых состояний. Правильно написанный код с флагами позволяет это сделать без усилий. А вот меточный код, со "слепленными" состояниями когда одно состояние(процесс) является частью другого состояния(процесса), не читается совсем, это жопа. Т.е. ты переходишь из одного состояния в другое, и оказывается что при ветвлении никуда переходить не надо, дальше идёт третье состояние, четвёртое и пятое. И переход может случаться утрированно "из любого в любое", при этом начало и конца процесса мы не видим мы видим лишь метки. Так вот чтобы вычленить единый процесс из подобных блоков нужно потратить годы даже на мелкие проги. Причём это свойство заложено в идеологию того метода, про который ты говоришь, это и позволяет достигать "гибкости" и творить чудеса небольшими кусочками кода, но нам нужны не чудеса и не "чистый код", а полезные свойства, дополняемость, модифицируемость, легкий разбор даже после многих лет. Да написать его напишут(если осилят, т.к. чем он больше тем труднее его писать, в геометрической прогрессии), оптимально как ты говоришь, а вот разобрать - что-то близкое к невозможному. И учитывая, то что документацию делает 0,5% нынешних "программистов", некоторые даже по личным мотивам типа чтобы не разобрались, то к тебе попадёт код именно без документации, в лучшем случае со скупыми редкими комментариями. Это и называют макаронингом, это как распутывать 10 клубков одного цвета, замотанных хаотичным образом, т.е. можно запутать ещё сильнее. Так же можно написать и флаговый код, через жопу, да. Но сама его структура, если человек грамотный и использует CASE, всё таки подразумевает разграничивать на осмысленные состояния. это понимает видя окружающие технологии, но не каждый понимает почему этого ещё не случилось. Была присказка про вавилонскую башню, там близко к истине. По идее AI не будет обладать такой проблемой. Добавлено через 38 минут попортили изрядно. Если раньше он развился до QB, идеологию и концепцию которого взяли за стандарт почти все бейсики, то сейчас нет такого, который хотелось бы взять.
Да текстовые редакторы в 8 килобайт кода это классно было тогда, сейчас - это говно))) Сказал бы по другому: каждому программисту неплохо бы иметь представление о скорости выполнения кода в разные годы и на разных типах машин, чтобы пытаться программировать так, как были написаны лучшие образцы ПО. Но сейчас это невозможно в силу того, что людям в принципе насрать на это и многие из них даже не видят разницы между скоростью выполнения GUI на ПК 20 летней давности и современных. Это тот суслик, которого не видно, а он есть.
0
|
||||||||||
|
|
||||||||||
| 28.02.2024, 19:07 | ||||||||||
|
Добавлено через 5 часов 6 минут Ну вот как пишут сейчас алгоритмы? Допустим надо что-то со строкой сделать сразу пишут нечто, даже не понимая, что надо в принципе делать:
А нет бы сперва сесть и подумать как должна решаться задача по шагам. Сначала придумать алгоритм, а уж потом кнопки нажимать. Мы же не знаем, а вдруг нам нужен цикл с постусловием, и заранее мы этого не знаем. А мы начинаем с глобального состояния под названием "проход по строке". ..
0
|
||||||||||
|
Кормпилятор
|
||||||
| 28.02.2024, 21:11 | ||||||
|
и там и там, причём в триггерной логике, как показала практика даже и посильнее продумывать нужно, т.к. состояния должны быть разделены по смыслу и абсолютно не должны "обоюдно вливаться друг в друга" и для каждого массивного законченного алгоритмического процесса в бесконечном количестве итераций программы - проходить единоразово. Только тогда у тебя будет нормальная логика работы состояний. Это не об экономии кода и не о выигрыше десяти сраных тактов на 1000 строк программы. Причём при доработке переписывать приходиться и там и там, но в первом случае это относительно небольшой процент кода, во втором - весь код целиком, если не продумать его целиком сразу, что бывает попросту невозможно, в первом же случае можно как вклинивать состояния с копеечным изменением остальных, так и дополнять. Кажется что разница небольшая однако это становится не так как только ты нарушаешь озвученный выше принцип смысловой уникальности ради оптимизации. Дело как раз в том что если логика достаточно сложна то и выделяют этот самый флаг для состояний, никто не спорит что можно IF-овать без него, причём даже структурно IF-овать без GOTO. Метки это метки - это поток управления сугубо для того же GOTO. Как только ты начинаешь использовать это на ВУ ровно так как ты используешь их на НУ - у тебя начинается жопа, потому что это и есть одно из ключевых различий ВУ и НУ. Т.е. имеет место и идеологическое различие(разные аспекты кода) и по парадигме.
консультировал видимо, а может его консультировали. История показала как этот "х*енов менеджер" обосcался со своим детищем вместе с Виртом. Они не осилили собственную идеологию и Бедолага Вирт был вынужден вернуть GOTO, нет ничего позорнее. Этот "идеологический борец" с "умственно деградирующими" принёс больше вреда чем пользы. Добавлено через 32 минуты Ты сам это подтверждаешь, на деле выбирая более юзабельный продукт.
1
|
||||||
|
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 62
|
|||
| 29.02.2024, 06:21 [ТС] | |||
|
Здесь у меня нет желания грузить этими моими вопросами, которые не в теме наладчика для FB, потому не ожидаю ответа, что мне нужен. Буду их искать сам. Но от вас я хорошие наводки получаю, меня это устраивает.
0
|
|||
|
COM‐пропагандист
|
|||||
| 29.02.2024, 07:08 | |||||
|
Об этом написано в любой книжке по компьютерной графике в первых главах. Добавлено через 1 минуту Добавлено через 10 минут Добавлено через 3 минуты
1
|
|||||
|
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 62
|
|||
| 29.02.2024, 07:42 [ТС] | |||
|
Замабувараев,
0
|
|||
|
759 / 278 / 14
Регистрация: 21.01.2023
Сообщений: 388
|
|||
| 29.02.2024, 08:26 | |||
|
1
|
|||
|
COM‐пропагандист
|
||
| 29.02.2024, 08:57 | ||
|
Где x, y, z — координаты точки фигуры. Умножая матрицу и вектор, получаем вектор с новыми координатами. То есть фигура «переехала» на новое место. Аффинные преобразования: https://compgraphics.info/3D/3... ations.php Матрицы в OpenGL: https://gamedev.ru/code/articles/?id=4161
2
|
||
|
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 62
|
||||
| 29.02.2024, 09:45 [ТС] | ||||
|
У меня - по заданному порядку производится расчёт, получается некий набор частот в рассчитанных значениях. Например 250, 310, 380, 430, 505... Далее программа этот звукоряд озвучивает, т.е. - некую мелодию. (отсюда - звуковые генераторы тут не к месту) В этом состоянии я их научился озвучивать. Но необходимо эти звуки облагородить, как это делает синтезатор. Там это делается наложением гармоник ли, искажением ли синусоиды, добавлением, иными эффектами. В результате представленная последовательность будет звучать, согласно расчёту, радуя слух. Но если брать эти звуки из синтезатора, опять же, это будут нотные значения в строгом соответствии с нотами нотного ряда. Добавлено через 6 минут
0
|
||||
| 29.02.2024, 09:45 | |
|
Помогаю со студенческими работами здесь
100
Отладка кода Отладка кода Отладка кода Отладка кода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|