Форум программистов, компьютерный форум, киберфорум
Basic4Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/279: Рейтинг темы: голосов - 279, средняя оценка - 4.97
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10

Basic для платформы Android - Basic4Android

19.04.2014, 19:43. Показов 57930. Ответов 111
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если кто не знает Basic4Android это простой и мощный инструмент разработки приложений для устройств, работающих под управлением операционной системы Android. Язык Basic4Android очень похож на популярный и всеми нами любимый язык Visual Basic. Лично мне показалось, что он больше похож на VB.NET, ООП полноценный.

Что можно на нём написать? Да в принципе всё, что и на Java, только быстрее. Игры, GPS навигация, управление звонками, контактами, СМС, FTP, HTTP, виджеты.

Огромное кол-во готовых библиотек сильно упрощают программирование, высокоразвитый IDE, отладчик реального времени, возможность отладки как на различных моделях эмуляторов различных устройств ( можно настроить любые параметры устройства) так и на реальном устройстве.


Если вы знаете Java, то это ещё плюс - можно самому писать любые библиотеки и подключать к своему проекту на Basic4Android.
Basic4Android выдает честный код, реальный .apk файл, без встроенных интерпретаторов, такой, что и на выходе скажем с Eclipse.
Из недостатков можно назвать его платность ($59 USD). Но если вы будете использовать его для написания платных программ, то думаю это смешная цена. А если не будете, то кого волнует, сколько он стоит? Всех волнует, где взять новую версию, а с этим проблем пока нет.
Проблема с общением и поиском единомышленников. Русских сообществ практически нет, форума, где можно задать вопрос на русском языке тоже нет.
Собственно потому я и пытаюсь создать что то подобное в теме. Сам я начал плотное знакомство с этим ЯП примерно неделю назад. Перевел кое что из документации, разобрал несколько примеров, написал свое собственное приложение. Пока всё нравится, и Basic4Android реально торт.
Но торт скучно есть в одиночку. Буду рад, если найдутся заинтересованные люди, готовые поддержать разговор.
22
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.04.2014, 19:43
Ответы с готовыми решениями:

Google Places Api для android платформы
Всем привет! Сразу к делу. Я пытаюсь создать приложение которое может отображать место положение пользователя и разные места...

Разработчик для платформы Android, Санкт-Петербург(от 70 до 90 т.р);
Компания Social Quantum набирает сотрудников в development офис в Санкт-Петербурге для работы над интересными, высоконагруженными...

Разработчик для платформы Android,Москва(от 60 до 100 т.р);
Компания Social Quantum открывает development офис в Москве! В связи с этим мы активно начинаем набирать талантливых программистов для...

111
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
09.05.2014, 21:35  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Igor-13 Посмотреть сообщение
литература по basic4android на русском?
есть перевод 20 глав руководства.
1
35 / 35 / 1
Регистрация: 14.11.2012
Сообщений: 178
10.05.2014, 11:01
а как сделать что-бы при установке на рабочий стол ярлык добавлялся?

Еще вопрос:
проблема с лебелами. Почему-то любой лебел, фон которого изменен программно теряет половину фона, после любого события (смена его текста, прокрутка скрола, и любая другая манипуляция). На картинке красным выделен лебел изначально черный, цвет програмно изменен на серо-голубой, после смены текста лебела, нижняя его половина стала черной. Причем повторное окрашивание в серо-голубой не помогает, нижняя часть все равно черная.


Окраска происходит так:
PureBasic
1
2
3
Dim DrA, DrX As ColorDrawable
DrA.Initialize(Colors.RGB(40,80,80),0)
LabelA1.Background = DrA
В чем причина?
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
10.05.2014, 15:02  [ТС]
Цитата Сообщение от Flamberg Посмотреть сообщение
а как сделать что-бы при установке на рабочий стол ярлык добавлялся?
Как я понял, надо искать по ключевому слову INSTALL_SHORTCUT
Что удалось найти:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim shortcutIntent As Intent
shortcutIntent.Initialize("", "")
shortcutIntent.SetComponent(Common.ShortcutPackage & "/.shortcutexec")
shortcutIntent.PutExtra("from_shortcut", True)
shortcutIntent.PutExtra("sc_type", SCType)
shortcutIntent.PutExtra("sc_value", SCValue)
shortcutIntent.PutExtra("sc_destination", SCDestination)
shortcutIntent.PutExtra("sc_toast", SCToast)
shortcutIntent.PutExtra("sc_notification", SCNotification)
shortcutIntent.PutExtra("sc_extra1", "")
shortcutIntent.PutExtra("sc_extra2", "")
Dim in As Intent
in.Initialize("", "")
in.PutExtra("android.intent.extra.shortcut.INTENT", shortcutIntent)
in.PutExtra("android.intent.extra.shortcut.NAME", txtName.Text)
in.PutExtra("android.intent.extra.shortcut.ICON", LoadBitmap(File.DirAssets, imageFN))
Не пробовал, испытай, потом расскжи кк работает.

Добавлено через 14 минут
Цитата Сообщение от Flamberg Посмотреть сообщение
Окраска происходит так:
Я это делаю проще, без всяких прелюдий сразу
Visual Basic
1
Label1.Color = Colors.RGB(255,80,80)
И всё работает замечательно.
1
35 / 35 / 1
Регистрация: 14.11.2012
Сообщений: 178
10.05.2014, 15:25
По поводу ярлыка: ваш код попробовал, ничего не произошло. Я так понял что нужно еще какие-то изменения в Manifest. Не думал, что это так сложно, попозже попробую разобраться.
0
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 8
10.05.2014, 16:26
Цитата Сообщение от Pro_grammer Посмотреть сообщение
есть перевод 20 глав руководства
А это можно где-то посмотреть?
0
 Аватар для Runkin
69 / 67 / 5
Регистрация: 22.12.2011
Сообщений: 261
Записей в блоге: 2
10.05.2014, 16:42
Shortcut.zip
пример с ярлыком

Добавлено через 1 минуту
вы пробовали использовать TurnGPS Library
у меня не работает. должна включать GPS когда он выключен.
это вроде единственный вариант
2
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
10.05.2014, 18:43  [ТС]
Цитата Сообщение от Igor-13 Посмотреть сообщение
можно где-то посмотреть?
Я из разных html пытался собрать всё в одну справку, вот что вышло



Переходы между страницами не заработали, но из домашней можно перейти на все по очереди.
Вложения
Тип файла: zip B4A tutorials.zip (2.19 Мб, 132 просмотров)
3
35 / 35 / 1
Регистрация: 14.11.2012
Сообщений: 178
11.05.2014, 08:39
Разобрался с ColorDrawable. Как оказалось это не параметр, а объект-картинка. Он создается с параметрами Label которому присвоен, если он задан нескольким контролам, то создается с размерами меньшего и вставляется так во все. В результате больший Label он не закрывает полностью.
Поэтому Pro_grammer прав, лучше Color.RGB.

С GPS пока не разбирался
0
 Аватар для Runkin
69 / 67 / 5
Регистрация: 22.12.2011
Сообщений: 261
Записей в блоге: 2
12.05.2014, 17:38
как задать ApplicationLabel на разных языках ?
Например приложение яндекс диск:
на русском: Диск
на английском: Yandex.Disk
0
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 8
14.05.2014, 09:21
Спасибо за информацию

Добавлено через 1 минуту
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Я из разных html пытался собрать всё в одну справку, вот что вышло

Вложение 397088

Переходы между страницами не заработали, но из домашней можно перейти на все по очереди.
Спасибо за информацию
0
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 29
15.05.2014, 12:07
Pro_grammer, а самих html не осталось?
Скачал посмотреть, а открывается дескать пустота.
То есть как будто ничего нет ни одной страницы даже, хотя размер говорит об обратном.
0
 Аватар для Runkin
69 / 67 / 5
Регистрация: 22.12.2011
Сообщений: 261
Записей в блоге: 2
15.05.2014, 12:32
Цитата:
Сообщение от Runkin Посмотреть сообщение
как задать ApplicationLabel на разных языках ?
Например приложение яндекс диск:
на русском: Диск
на английском: Yandex.Disk
c этой темой разобрался:
в ресурсах добавляем строку: например app_name
далее:
Visual Basic
1
#ApplicationLabel: @string/app_name
1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
15.05.2014, 16:08  [ТС]
Цитата Сообщение от BoDun Посмотреть сообщение
а самих html не осталось?
Найди и скачай приложение htm2chm и декомпилируй этот chm. Получишь исходные Html.
1
35 / 35 / 1
Регистрация: 14.11.2012
Сообщений: 178
15.05.2014, 22:27
еще пара интересных вопросов:
1. как сделать приложение неподвижным относительно ориентации экрана, всегда горизонтальное (планшетное).
2. как возводить в степень? Где-то видел, но когда понадобилось не нашел.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
15.05.2014, 22:40  [ТС]
Цитата Сообщение от Flamberg Посмотреть сообщение
всегда горизонтальное (планшетное).
в Project Attributes
#SupportedOrientations: landscape

Цитата Сообщение от Flamberg Посмотреть сообщение
как возводить в степень?
power (2,2) это как в Бейсике 2^2
2
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 29
20.05.2014, 12:57
Pro_grammer, ещё полезные примеры будете выкладывать?
У вас хорошо получается объяснить, что к чему и куда.
Если у вас позволяет время и разобрались с виджетами, было бы интересно разобрать пример... на офф форуме нашёл тему, но туго с английским и не всё описано.
Да и тему поддержать, чтоб не угасала тут.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.05.2014, 16:20  [ТС]
Цитата Сообщение от BoDun Посмотреть сообщение
с виджетами,
Тема интересная. Попробую найти время!
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
22.05.2014, 20:21  [ТС]
Android виджеты
Виджеты для андроид — это маленькие приложения, которые могут быть размещены на рабочем столе вашего Android-устрйства. Виджет работает в рамках "рабочего стола" нашего устройства и от этого имеет как плюсы так и минусы. Плюсы: можно настроить обновление средствами системы. Но минимальный интервал обновления при этом 30 мин., в целях экономии аккумулятора. Виджет всегда на виду: клиенту можно что-то сообщать не дожидаясь его действий.
Минусы: ограниченный набор компонентов, доступных для использования в интерфейсе.
Поддерживаются следующие виды:
- Button (default drawable)
- Label (ColorDrawable or GradientDrawable)
- Panel (ColorDrawable or GradientDrawable)
- ImageView
- ProgressBar (both modes)
Из этого следует, что на Panel или там Button вы не сможете фоном поставить изображение.
Ну, и, само собой, ограниченный размер "рабочей площади". В зависимости от устройства и его размеров будет зависеть и максимальный размер виджета. И он намного меньше полного экрана. Обычно виджеты размещаются в клетках, размер одной 80х100. Клеток может быть различное сочетание, такие как 2х3 или 3х4, горизонтальное расположение или вертикальное.
Написать виджет на Basic4Android так же просто, как и обычное приложение. Я придумал проект, в котором мы будем писать виджет, отображающий времена года. Для его осуществления нам понадобятся 4 изображения, соответствующие временам года, одно изображение на заставку в основной программе и иконка.
Название: ico.png
Просмотров: 410

Размер: 8.5 Кб
Основная программа делать ни чего не будет. При запуске покажет заставку с названием и картинкой потом сообщение вида MSGBOX, В котором мы предложим

пользователю установить виджет на рабочий экран. После нажатия на OK основное приложение закроется. Во вкладке ВИДЖЕТЫ мы видим наш виджет, который устанавливаем стандартным способом

В результате получим рабочий виджет на рабочем экране.

Приступаем к написанию основной программы. Запускаем Basic4Android, видим стандартный код. Как обычно, сохраняем проект в отдельной папке, на это раз с именем seasons. Изменяем в меню Project->Pasckage Name на своё, помним, что это как минимум 2 слова, разделённые точкой, к примеру seasons.examples. Теперь в меню Project->Choose Icon выбираем свою иконку. С настройками закончили, приступаем к творчеству. Открываем дизайнер и добавляем все найденные изображения в кол-ве 5 штук. Способом, описанным в предыдущих уроках. На экран добавляем Panel, растягиваем на весь экран. В данный момент мы проектируем приложение, и тут нет ограничений, а по сему прямо на панель в качестве фона устанавливаем изображение заставки. В свойствах панели Drawable устанавливаем в BitmapDrawable и в качестве Image File выбираем этот, найденный на просторах Интернета рисунок, размером 320х480 ( весь экран)

Изменяем имя Activity на наше seasons. Сохраняем панель с именем Layout1 и на этом проектирование основной программы считаем законченным. Приступаем к коду. Как я и сказал, делать наше приложение ни чего не будет, и код будет простой.
Изменяем имя приложения
#ApplicationLabel: Seasons

Код при активации
Visual Basic
1
2
3
4
5
6
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("Layout1")
    Msgbox("Добавте на экран Seasons виджет.", "Seasons")
    Activity.Finish
End Sub

С основным приложением закончили. Приступаем к программированию самого виджета. Добавляем из меню проекта Service module. Обращаю внимание, что это типовой модуль, в котором уже написан костяк кода. Даем ему имя, у меня SeasonsModule. Тут в модуле и будет весь остальной код виджета. Вызывам дизайнер и проектируем внешний вид нашего модуля. Если открылся проект приложения Layout1, то выберите File->New, это будет совсем другой файл!

Добавляем панель, как основа. Её делаем прозрачной – Alpha = 0. На панель добавляем ImageView1 и Label1. ImageView1 будет содержать изображения времён года, а Label1 будет отображать текущую дату. Смотрите на рисунке настройки шрифта и цвета. Вы, естественно, можете всё сделать по своему. Сохраните этот файл с именем L1.
Можно приступать к программированию виджета. Обновления виджета строятся и посылаются с помощью RemoteViews, включающий контент, для отображения на домашней странице. Объявление в Process_Globals
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Dim now, dt, month As String
    Dim rv As RemoteViews
    Dim imageFiles() As String
    imageFiles = Array As String("leto.png", "osen.png", _
        "vesna.png", "zima.png")
    Dim currentImage As Int
End Sub
Переменные now, dt, month для работы с датой.
Массив imageFiles = Array As String для смены изображений, содержит имена файлов изображений.
Стандартная процедура для виджета, которая всё настраивает:

Visual Basic
1
2
3
Sub Service_Create
rv = ConfigureHomeWidget("L1", "rv", 60, "Seasons Widget")
End Sub
Первый параметр это слой виджета, который мы создали в дизайнере. Второй это событие rv RemoteViews, третий параметр это время обновления и четвертый это имя нашего виджета. Это имя будет отображатся в списке виджетов для установки.
Следующие типовые процедуры, имена которых говорят сами за себя
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub Service_Start (StartingIntent As Intent)
If rv.HandleWidgetEvents(StartingIntent) Then Return
End Sub
Sub rv_RequestUpdate
    GetSeasons
    rv.UpdateWidget
End Sub
 
Sub rv_Disabled
    StopService("")
End Sub
Процедуры старта, обновления и завершения работы виджета.
Основная процедура определения времени года
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Sub GetSeasons
    DateTime.DateFormat = "dd:MM:yyyy"
    now = DateTime.now
    dt = DateTime.Date(now) 'день, месяц, год
    rv.SetText("Label1", dt)
    ' Выбор имени месяца и картинки
    Select Case DateTime.GetMonth(DateTime.now)
        Case 1
        month = "Января, зима в разгаре " 
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(3)))
        Case 2
        month = "Февраля, ещё зима "
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(3)))
        Case 3
        month = "Марта, уже весна"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(2)))
        Case 4
        month = "Апреля, весна в разгаре"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(2)))
        Case 5
        month = "Мая, пока ешё весна"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(2)))
        Case 6
        month = "Июня, уже лето"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(0)))
        Case 7
        month = "Июля, середина лета"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(0)))
        Case 8
        month = "Августа, пока ещё лето"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(0)))
        Case 9
        month = "Сентября, уже оснь"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(1)))
        Case 10
        month = "Октября, осень в разгаре"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(1)))
        Case 11
        month = "Ноября, всё ещё осень"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(1)))
        Case 12
        month = "Декабря, уже зима"
        rv.SetImage("ImageView1", LoadBitmap(File.DirAssets, imageFiles(3)))
    End Select
    
    rv.UpdateWidget
    
    
End Sub
В объяснениях не нуждается, обычный код.
Процедура, обрабатывающая взаимодействие с пользователем, а именно реагирует на клик по изображению. В результате выводит название месяца и день в сообщении:
Visual Basic
1
2
3
4
5
6
Sub ImageView1_Click
    
    ToastMessageShow("Сейчас " & DateTime.GetDayOfMonth(DateTime.now) & " " & month , True)
    GetSeasons
    rv.UpdateWidget
End Sub
Вот и весь код. Можно запускать на выполнение, и убедится в простоте программирования на Basic4Android.
Из граблей, которые явно обнаруживаются, можно отметить выбор размера виджета. Если виджет не умещается на экране в положенном ему месте, то его просто не видно в списке виджетов и соответственно не установить. Для этого делают несколько размеров виджетов, если они все максимальные по размеру для группы устройств, или один, но минимальный для самого маленького устройства ( как у нас).
Приятного программирования! Все материалы прилагаются ( из них можно почерпнуть изображения ) + готовый apk.
Вложения
Тип файла: zip seasons.zip (966.6 Кб, 87 просмотров)
1
 Аватар для fireday
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
28.06.2014, 18:12
Pro_grammer, спасибо большое за освещение b4a
Жаль в армию забирают, так бы сел за поедание такого торта
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
28.06.2014, 21:00  [ТС]
Цитата Сообщение от fireday Посмотреть сообщение
Жаль в армию забирают
Это нормально. Жизнь не останавливается, просто набирает новых впечатлений, опять же знаний и здоровья на халяву. Да и год это вообще не срок, я к тому времени ещё пару - тройку уроков напишу. В частности про игрушки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.06.2014, 21:00

Разработка ядра приложения для платформы iOS и Android
Здарвствуйте. Хочу понять, какой принцип сейчас больше используется для разработки мобильных приложений под несколько платформ. Исходя из...

Литература по Basic4Android для новичков
Добрый день,не подскажите ссылку на литературу Basic4Android для чайников или что-то подобное,давным давно vb5 увлекался,так простенькие...

Разработка десктопного ПО (Java, C#), веб сайтов, приложений под мобильный платформы Android, Windows
Команда из 4 человек специализируется на разработке программного обеспечения

Android SDK Manager не отображает платформы 2.3.3 (API 10), 2.3.1 (API 9). Как быть?
Добрый день! Использую Android Studio под Windows 7. Из-за несовместимости с операционной системой Android SDK Manager не отображает...

Basic-authentication Https SSL Android, loopj library
Никак не могу пройти аутентификацию в HTTPS с использованием loopj Asnctask Http library. Как можно это реализовать и что еще мне нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Закрытая тема Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru