|
5 / 5 / 2
Регистрация: 24.11.2020
Сообщений: 73
|
|||||||||||
Перевод полутора десятков строк с Питона на Free Basic11.02.2023, 00:26. Показов 7723. Ответов 50
Метки нет (Все метки)
Здравствуйте.
Хочу в бейсике повторить программу написанную на питоне. Не уверен, что стоит погружаться в изучение последнего, ради пятнадцати строк. Приведу ниже всю программу и начну с малого ... надеюсь постепенно, с вашей помощью осилить эту непростую задачу. Заранее спасибо. Вот вся программа, ниже будет код, который хочется разобрать первым, иначе я не осилю сразу всей этой информации:
- создаётся цикл на 256 итераций, но не понимаю, почему нет закрывающего оператора NEXT, как и END IF в ниже следующих условиях - далее условие, если sk &, красным непонятное, что делает этот оператор? 1 << i это как я понял сдвиг влево на i раз, фактически умножение i раз на 2. Т.е. я не понимаю в чем заключается условие. - далее, как я понял, если в первой итерации, то ret не определён, присваиваем ему G - после else идем в процедуру, которая тоже вызывает множество вопросов - далее все ясно Главный вопрос в этом кусочке кода, тут - if sk & (1 << i), это что, логическое И с 1 << i, не понимаю, какой смысл условия .....
1
|
|||||||||||
| 11.02.2023, 00:26 | |
|
Ответы с готовыми решениями:
50
Перевод решенной задачи с Free Basic на Turbo Pascal Библиотека для Free Basic, аналог функций Pure Basic Перевод из питона |
|
5 / 5 / 2
Регистрация: 24.11.2020
Сообщений: 73
|
||
| 01.04.2023, 15:31 [ТС] | ||
|
Большое спасибо, программа с фибоначами работает, а вот где скачать эту бигинт библиотеку, я так и не понял ....
0
|
||
|
16 / 16 / 0
Регистрация: 10.04.2022
Сообщений: 16
|
||
| 01.04.2023, 16:02 | ||
|
Или вот. Распаковать в папку inc компилятора.
1
|
||
|
5 / 5 / 2
Регистрация: 24.11.2020
Сообщений: 73
|
|
| 01.04.2023, 16:16 [ТС] | |
|
0
|
|
|
16 / 16 / 0
Регистрация: 10.04.2022
Сообщений: 16
|
|
| 01.04.2023, 16:27 | |
|
И файл библиотеки libbig_int.a положить в папку lib\win32 (увы, только 32-х разрядной версии компилятора) Поэтому, Python и шустрит...
1
|
|
|
5 / 5 / 2
Регистрация: 24.11.2020
Сообщений: 73
|
||
| 01.04.2023, 16:43 [ТС] | ||
|
Библиотеку положил в папку INC
0
|
||
|
5 / 5 / 2
Регистрация: 24.11.2020
Сообщений: 73
|
||
| 01.04.2023, 16:50 [ТС] | ||
|
Добавлено через 4 минуты А где описание доступных действий, умножение, деление, сложение например ?
0
|
||
|
16 / 16 / 0
Регистрация: 10.04.2022
Сообщений: 16
|
|
| 01.04.2023, 17:00 | |
|
В заголовочных файлах *.bi смотрите названия функций и типы ...
И тут, читайте (описание для Си, но оно, в принципе, тоже самое, просто в библиотеке для Freebasic функции начинаются с префикса big_int_) : http://zonakoda.ru/dlinnaya-ar... g_int.html
1
|
|
|
16 / 16 / 0
Регистрация: 10.04.2022
Сообщений: 16
|
||
| 01.04.2023, 17:22 | ||
|
------------ Вот ещё один вариант библиотеки big_int для Frebasic без статической библиотеки... как быстро работает, не знаю, но работает и с х64... https://github.com/stephanbrunker/big_integer Скачать, распаковать, скомпилировать пример.
0
|
||
|
5 / 5 / 2
Регистрация: 24.11.2020
Сообщений: 73
|
||||||||||||
| 01.04.2023, 21:03 [ТС] | ||||||||||||
|
Добавлено через 3 часа 10 минут Вот кусок кода для возведения числа в степень. А как сделать чтоб умножал число на число не пойму ? В файле big_int.bi есть строка OP_MUL, т.е. в тексте программы (ниже) надо вместо функции OP_POW поставить OP_MUL. Но как в неё засунуть значения я не нашел, замена названия функции приводит к зависанию.
Простите, нашел где указано какие параметры и сколько передавать функции. Заработало умножение. Сейчас сравню его скорость с уже имеющимся. Добавлено через 14 минут Ха-ха, большие числа не передаются в функцию =) Нужно перемножить: aa1 = "550662630222773436695787188951685343262 50603453777594175500187360389116729240" аa2 = "326705100207588169780830851305070431844 71273380659243275938904335757337482424" Как бы их запихнуть в функцию умножения ? Даже половина не пропихивается в функцию ...
0
|
||||||||||||
|
16 / 16 / 0
Регистрация: 10.04.2022
Сообщений: 16
|
|||||||||||||||||||||
| 02.04.2023, 06:52 | |||||||||||||||||||||
|
Нельзя передать большие числа сразу в функцию, их вначале надо конвертировать из строк.
Как-то так...
Result = 1799042897875052654876847933094325163654 2174312905259406364010291621640 8207688780404496083242878040466332545330 7182565349415892761361856900131682866877 760 Добавлено через 42 минуты Вроде бы, работает... Компилятор может выдать предупреждение (там я с типами что-то напутал), но скомпилирует... просто, надо глубже вникнуть... Добавлено через 2 часа 27 минут Увы эта библиотека стара, слишком сложна и плохо документирована. Попробуйте вторую библиотеку с Github. Она гораздо проще и лучше документирована... ничего особо выдумывать не нужно... там все операторы перегружены для работы с большими целыми числами. Программировать, благодаря этому не сложнее чем на Python. Единственное, надо следить за типами переменных. https://github.com/stephanbrunker/big_integer Пример:
Добавлено через 11 минут Результат: +179904289787505265487684793309432516365 4217431290525940636401029162164082076887 8040449608324287804046633254533071825653 49415892761361856900131682866877760 +115792089237316195423570985008687907853 269984665640564039457584007913129639936 Добавлено через 15 минут Еще примеры: Python
1
|
|||||||||||||||||||||
|
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
|
|
| 02.04.2023, 06:56 | |
|
0
|
|
|
16 / 16 / 0
Регистрация: 10.04.2022
Сообщений: 16
|
|
| 02.04.2023, 06:59 | |
|
0
|
|
|
Супер-модератор
|
|
| 02.04.2023, 07:29 | |
|
Если речь - об арифметике на символьных строках (главное достоинство - не нужен перевод в печатную форму; главный недостаток - низкая производительность), то вот моя реализация такой арифметики: Перевод 256 битного HEX числа в десятичный вид
2
|
|
|
5 / 5 / 2
Регистрация: 24.11.2020
Сообщений: 73
|
||||||||
| 02.04.2023, 11:52 [ТС] | ||||||||
Добавлено через 1 минуту Разгребусь с работой, буду пробовать.
0
|
||||||||
|
16 / 16 / 0
Регистрация: 10.04.2022
Сообщений: 16
|
|
| 02.04.2023, 12:04 | |
|
Если надо шустрые вычисления, то лучше использовать библиотеку gmp https://gmplib.org
Успехов! Вот для Freebasic со статической библиотекой:
2
|
|
|
5 / 5 / 2
Регистрация: 24.11.2020
Сообщений: 73
|
||
| 02.04.2023, 14:40 [ТС] | ||
|
1
|
||
|
5 / 5 / 2
Регистрация: 24.11.2020
Сообщений: 73
|
||
| 14.10.2023, 18:41 [ТС] | ||
|
Оказывается я с гитхаба не умею ставить библиотеки. Я не понимаю как её от туда скачать, всё перерыл, нет кнопки скачать библиотеку (((((((((((((( И как в бейсике к ней путь прописывать ? Добавлено через 2 часа 12 минут Чудом нашел кнопку скачивания, надо же было так её засунуть.
0
|
||
|
COM‐пропагандист
|
||||||||
| 14.10.2023, 23:01 | ||||||||
1
|
||||||||
| 14.10.2023, 23:01 | |
|
Перевод с питона в с++
Перевод из Питона на С++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
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
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|