Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/78: Рейтинг темы: голосов - 78, средняя оценка - 4.86
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443

Изучение основ FreeBasic в сравнении с PowerBasic

10.10.2022, 22:17. Показов 24814. Ответов 218

Студворк — интернет-сервис помощи студентам
Всем добра и мира!

К сожалению, PowerBasic прекратил своё развитие вследствие смерти его создателя и главного (а скорее всего, единственного) разработчика Роберта Зейла в 2012-ом году. К настоящему времени последние надежды на его развитие окончательно угасли. В связи с этим я решил приступить к изучению основ FreeBasic'а.

В этой ветке форума буду задавать вопросы, возникающие у меня в процессе ознакомления с этим ЯП.

Как говорится, всё познаётся в сравнении. Ну вот и буду изучать FreeBasic, опираясь на определённый опыт ЛЮБИТЕЛЬСКОГО программирования на PowerBasic'е.

Буду очень благодарен за любую помощь.

Итак, первый возникший у меня вопрос.

Каким образом в структурах FreeBasic'а появилась возможность использовать динамические строки?
В PowerBasic'е это строго запрещено. Можно использовать только строки фиксированной длины.

Вот 2 работающих (с одним и тем же результатом на консоли) кода для сравнения:

FreeBasic
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
TYPE Persons
    Name AS STRING
    Surname AS STRING
    Age AS BYTE = 35
END TYPE
 
DIM Vpersons AS Persons
 
Vpersons.Name="Richard"
Vpersons.Surname="Black"
 
? Vpersons.Name
? Vpersons.Surname
? Vpersons.Age
Sleep
PowerBasic
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#COMPILE EXE
#DIM ALL
 
TYPE Persons
  Name AS STRING*10       'если здесь написать "Name AS STRING", компилятор бастует
  Surname AS STRING*10   'если здесь написать "Surname AS STRING", компилятор бастует
  Age AS BYTE           'значение по умолчанию здесь присвоить не получится
END TYPE
 
FUNCTION PBMAIN () AS LONG
DIM Vpersons AS Persons
 
  Vpersons.Name="Richard"
  Vpersons.Surname="Black"
  Vpersons.Age = 35
 
  ? Vpersons.Name
  ? Vpersons.Surname
  ? Vpersons.Age
 
  SLEEP 5000    'если SLEEP без указания продолжительности, компилятор бастует
END FUNCTION
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2022, 22:17
Ответы с готовыми решениями:

Перегрузка методов (изучение основ)
Добрый день! Вот я добрался до перегрузки методов и быстренько накидал вот такой пример: using System; namespace...

Сколько в среднем часов уходит на изучение основ C++?
1) Если с нуля 2) Если после паскаля или чего то в этом духе

Групповое изучение программирование с основ без преподавателя
Суть: Студенты 3 курса Специальность: информационно вычислительная техника, после третьего курса "Аналитики" С с божьей...

218
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
12.12.2022, 21:36
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Power_Basic Посмотреть сообщение
Ну и ещё, наверняка, сильно в скорости работы проигрывает обычным массивам, да?
Нет.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
12.12.2022, 22:07
Цитата Сообщение от Power_Basic Посмотреть сообщение
IPowerArray.ARRAYBASE
Returns the address of the first element of the array.
IPowerArray.ARRAYDESC
Returns the address of the SAFEARRAY descriptor.
IPowerArray.ARRAYINFO <Get>
Retrieves the info string, if one is present.
IPowerArray.ARRAYINFO <Set>
Assigns the info string.
IPowerArray.CLONE
An exact duplicate of the SafeArray is created, and stored in the specified PowerArray object.
IPowerArray.COPYFROMVARIANT
An exact copy is made of the specified SafeArray and stored in this PowerArray object.
IPowerArray.COPYTOVARIANT
An exact copy is made of the SafeArray in this object and stored in the specified Variant.
IPowerArray.DIM
Dimensions (creates) a new array.
IPowerArray.ELEMENTPTR
Retrieves the address of the specified data element.
IPowerArray.ELEMENTSIZE
Retrieves the storage size (in bytes) of each data element of the array.
IPowerArray.ERASE
Destroys the contained array and empties the object.
IpowerArray.LBOUND
Retrieves the lower bound number for the dimension specified.
IPowerArray.LOCK
Increments the lock count of the SAFEARRAY.
IPowerArray.MOVEFROMVARIANT
Transfers ownership of the specified SafeArray to the PowerArray object.
IPowerArray.MOVETOVARIANT
Transfers ownership of the SafeArray contained in this PowerArray object to a variant parameter.
IPowerArray.REDIM
Allows the SafeArray to be erased and re-dimensioned to a new size.
IPowerArray.REDIMPRESERVE
Allows the least significant (rightmost) bound to be changed to a new size. The remaining data items in the array are preserved.
IPowerArray.RESET
All elements in the SafeArray are set back to their initial, default value.
IPowerArray.SUBSCRIPTS
Retrieves the number of dimensions (subscripts) for this array.
IPowerArray.UBOUND
Retrieves the upper bound number for the dimension specified.
IPowerArray.UNLOCK
Decrements the lock count of the SAFEARRAY.
IPowerArray.VALUEGET
Retrieves the value of the specified array element.
IPowerArray.VALUESET
Assigns the specified value to the specified array element.
IPowerArray.VALUETYPE
Retrieves the %VT code which describes the data contained in this array.
Надстройка над SAFEARRAY, ничего тут нет встроенного.
Эти функции просто псевдонимы для функций Автоматизации.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
13.12.2022, 14:54  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Цитата Сообщение от Power_Basic Посмотреть сообщение
Ну и ещё, наверняка, сильно в скорости работы проигрывает обычным массивам, да?
Нет.
Предельно лаконично
Давайте всё-таки попробую развернуть этот ответ немного пошире: "Да, действительно проигрывает, но незначительно".
Так будет правильно?

Кстати, проигрыш в скорости (пусть даже незначительный) и стал причиной, почему я никогда не использовал SAFEARRAY в своих программах, всегда обходясь обычными массивами.
Откуда я узнал об этом недостатке?
Из справки PowerBasic'а:
The SAFEARRAY is generally considered to be the lowest common denominator of arrays. It's not as fast as a standard PowerBASIC array, but it serves an excellent purpose: It's a "standard" form of array data which can be used to transfer data between programs, modules, and even DLLs created with different versions of the compiler.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Надстройка над SAFEARRAY, ничего тут нет встроенного.
Эти функции просто псевдонимы для функций Автоматизации.
Мы ходим по кругу
Никакая это не надстройка, никакие это не псевдонимы, это ВСТРОЕННЫЙ в компилятор PowerBasic'а класс PowerArray с интерфейсом IPowerArray.

Ну вот смотрите, прямо сейчас набросал простенькую программку (не используя никаких внешних библиотек!).
И кстати, это мой первый в жизни опыт работы с SAFEARRAY

PowerBasic
PureBasic
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
FUNCTION PBMAIN () AS LONG
  LOCAL obj_MyFirstSafeArray AS IPOWERARRAY
  LOCAL Bounds               AS PowerBounds
  LOCAL int_MyVar            AS INTEGER
 
  obj_MyFirstSafeArray = CLASS "PowerArray"
 
  Bounds.Elements1 = 2
  Bounds.LowBound1 = 0
 
 obj_MyFirstSafeArray.DIM (22, 1, BYREF Bounds)
 
'заполняем массив
 int_MyVar = 15
 obj_MyFirstSafeArray.ValueSet(int_MyVar, 0)
 
 int_MyVar = 77
 obj_MyFirstSafeArray.ValueSet(int_MyVar, 1)
 
'считываем и распечатываем массив
 PRINT "Результат:"
 obj_MyFirstSafeArray.VALUEGET (int_MyVar, 0)
 PRINT int_MyVar
 
 obj_MyFirstSafeArray.VALUEGET (int_MyVar, 1)
 PRINT int_MyVar
 
 SLEEP 5000
END FUNCTION
Миниатюры
Изучение основ FreeBasic в сравнении с PowerBasic  
Вложения
Тип файла: zip 01.zip (14.0 Кб, 5 просмотров)
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
13.12.2022, 16:08
Цитата Сообщение от Power_Basic Посмотреть сообщение
это ВСТРОЕННЫЙ в компилятор PowerBasic'а класс PowerArray с интерфейсом IPowerArray
Нет.

И вот доказательства.

Давайте откроем таблицу импорта вашего екзешника: ПКМ на файле → 7-zip → Открыть архив → Открываем файл .link.
Что мы там видим:
ссылка на библиотеку автоматизации OLEAUT32.DLL (отмечена красным);
функции SafeArrayAllocData SafeArrayAllocDescriptor SafeArrayCopy SafeArrayCreate SafeArrayDestroy SafeArrayDestroyDescriptor SafeArrayPtrOfIndex SafeArrayRedim для работы с SAFEARRAY (отмечены синим).

Так что функции эти никакие не «встроенные в компилятор функции», обычные алиасы для функций из библиотек.
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
13.12.2022, 16:08
Картинка:
0
Эксперт по электронике
7218 / 3397 / 347
Регистрация: 28.10.2011
Сообщений: 13,366
Записей в блоге: 7
13.12.2022, 16:42
Цитата Сообщение от Замабувараев Посмотреть сообщение
Нет.
И вот доказательства.
Power_Basic писал о том что этот массив встроен в ЯП. Его использование проще и удобнее чем в вашем коде Изучение основ FreeBasic в сравнении с PowerBasic
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
13.12.2022, 17:08
Цитата Сообщение от locm Посмотреть сообщение
Его использование проще и удобнее
То есть написать такое:
PureBasic
1
2
3
4
LOCAL obj_MyFirstSafeArray AS IPOWERARRAY
LOCAL Bounds               AS PowerBounds
obj_MyFirstSafeArray = CLASS "PowerArray"
obj_MyFirstSafeArray.DIM (22, 1, BYREF Bounds)
— это просто, а сделать SafeArrayCreateVector и SafeArrayAccessData — это уже слишком сложно?
0
Эксперт по электронике
7218 / 3397 / 347
Регистрация: 28.10.2011
Сообщений: 13,366
Записей в блоге: 7
13.12.2022, 17:45
Замабувараев, это вопрос не ко мне.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
13.12.2022, 19:14  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Давайте откроем таблицу импорта вашего екзешника: ПКМ на файле → 7-zip → Открыть архив → Открываем файл .link.
Фигасе! Никогда бы не подумал, что эксешники можно открывать как обычные архивы. Фантастика!

Цитата Сообщение от Замабувараев Посмотреть сообщение
Так что функции эти никакие не «встроенные в компилятор функции», обычные алиасы для функций из библиотек.
Ну хорошо, пусть будут "обычные алиасы", но тогда это всё равно "обычные алиасы", встроенные в компилятор.

Это же настоящий бейсик. Начинающий программист может вообще не знать о существовании SafeArray и Winapi функциях, необходимых для манипуляций с ним. Всю необходимую работу делает за него компилятор "за кулисами".
Программист тупо создаёт экземпляр встроенного класса PowerArray и использует функции его интерфейса.

Цитата Сообщение от locm Посмотреть сообщение
Power_Basic писал о том что этот массив встроен в ЯП. Его использование проще и удобнее чем в вашем коде
Ну да. Всё в одном месте, в одном редакторе и в одном компиляторе. Нет необходимости изучать содержимое внешних библиотек, которых наплодили уже такое множество, что даже одно их перечисление уже вызывает оторопь

Цитата Сообщение от Замабувараев Посмотреть сообщение
— это просто, а сделать SafeArrayCreateVector и SafeArrayAccessData — это уже слишком сложно?
Для профессионала, пожалуй, любой из этих вариантов хорош, а вот для бегиннера, которому может быть сложно на первых порах вникать в тонкости работы с SafeArray, мой вариант, наверняка, покажется предпочтительным.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
13.12.2022, 20:17
Цитата Сообщение от Power_Basic Посмотреть сообщение
Фигасе! Никогда бы не подумал, что эксешники можно открывать как обычные архивы
Z-zip показывает секции в файле как архив. Не на всех екзешниках это работает.
Цитата Сообщение от Power_Basic Посмотреть сообщение
Программист тупо создаёт экземпляр встроенного класса PowerArray и использует функции его интерфейса.
Цитата Сообщение от Power_Basic Посмотреть сообщение
Нет необходимости изучать содержимое внешних библиотек
Неверно.
Изучение документации компилятора и документации не компилятора имеют одинаковую сложность.

Я правильно понимаю, что вас просто пугает слово «внешний» или документация, расположенная не в каталоге с компилятором?
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
13.12.2022, 21:29  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Я правильно понимаю, что вас просто пугает слово «внешний» или документация, расположенная не в каталоге с компилятором?
Да просто я никогда раньше не использовал в своих программах на PowerBasic'е никаких внешних библиотек кроме одного-единственного исключения для Sound API (sapi.inc).
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
13.12.2022, 22:59
Цитата Сообщение от Power_Basic Посмотреть сообщение
Давайте всё-таки попробую развернуть этот ответ немного пошире: "Да, действительно проигрывает, но незначительно".
Еще раз, работа с SAFEARRAY массивом ничуть не медленней чем с любым другим, т.к. SAFEARRAY массив представляет из себя обычный массив + заголовок. Из преимуществ - огромное количество сервисных функций и возможностей предоставляемых системой + это родной тип для OLE Automation.
1
Эксперт по электронике
7218 / 3397 / 347
Регистрация: 28.10.2011
Сообщений: 13,366
Записей в блоге: 7
13.12.2022, 23:51
Цитата Сообщение от The trick Посмотреть сообщение
Еще раз, работа с SAFEARRAY массивом ничуть не медленней чем с любым другим, т.к. SAFEARRAY массив представляет из себя обычный массив + заголовок.
Но ведь он доступен из разных процессов?
Тогда или копирование данных в каждый процесс имеющий доступ к массиву и их синхронизация, или общая память для всех процессов.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
14.12.2022, 08:08
Цитата Сообщение от locm Посмотреть сообщение
Но ведь он доступен из разных процессов?
Только когда вы отправляете SAFEARRAY в другие процессы.
А сам по себе SAFEARRAY недоступен из других процессов.
Это как утверждать, что строки медленные только потому что их можно отправить по сети.
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
14.12.2022, 09:27
Цитата Сообщение от locm Посмотреть сообщение
Но ведь он доступен из разных процессов?
Тогда или копирование данных в каждый процесс имеющий доступ к массиву и их синхронизация, или общая память для всех процессов.
Не только процессами, но и компьютерами. Ну и BSTR строки, объекты и пользовательские типы и другие Automation-типы также можно передавать между разными машинами что не делает их какими-то особенными. Эта работа ложится на плечи маршалера. Вообще SAFEARRAY достаточно гибок и данные можно располагать и в расшаренной памяти в том числе. К примеру тут я так делал для передачи звуковых данных между процессами.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
14.12.2022, 13:44  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Еще раз, работа с SAFEARRAY массивом ничуть не медленней чем с любым другим, т.к. SAFEARRAY массив представляет из себя обычный массив + заголовок. Из преимуществ - огромное количество сервисных функций и возможностей предоставляемых системой + это родной тип для OLE Automation.
Всё понял. Спасибо за подробное разъяснение.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
17.12.2022, 17:35  [ТС]
Подскажите, пожалуйста, при чём здесь вообще какой-то указатель?
Передаём по ссылке переменную типа LARGE_INTEGER, ну и получаем в эту переменную соответствующее значение. На моём компьютере это 1000000. Ну а пойнтер-то зачем здесь нужен?!
Миниатюры
Изучение основ FreeBasic в сравнении с PowerBasic  
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
17.12.2022, 19:31
Цитата Сообщение от Power_Basic Посмотреть сообщение
Передаём по ссылке
Передаёте в функцию указатель на вашу структуру. Функция записывает данные в место, куда указывает указатель.

Добавлено через 2 минуты
Откуда вы вообще взяли фразу «по ссылке»? На сайте корпорации Микрософт в документации по этой функции нету типа данных «ссылка», там написано «указатель».
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
18.12.2022, 14:41  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Откуда вы вообще взяли фразу «по ссылке»? На сайте корпорации Микрософт в документации по этой функции нету типа данных «ссылка», там написано «указатель».
Насколько мне известно, параметры в функцию или процедуру можно передавать тремя способами: по ссылке, по значению или по копии. Ну вот давайте заглянем в хэдеры Jose Roca для PowerBasic'а:

"Шапка":
' ######################################## ######################################## ########
' Microsoft Windows
' File: WinBase.inc
' Contents: This module defines the 32-Bit Windows Base APIs
' Copyright (c) 2011 Jose Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ######################################## ######################################## ########
Фрагмент, относящийся к рассматриваемому вопросу:
'//
'// Performance counter API's
'//

DECLARE FUNCTION QueryPerformanceCounter IMPORT "KERNEL32.DLL" ALIAS "QueryPerformanceCounter" ( _
BYREF lpPerformanceCount AS QUAD _ ' __out LARGE_INTEGER *lpPerformanceCount
) AS LONG ' BOOL

DECLARE FUNCTION QueryPerformanceFrequency IMPORT "KERNEL32.DLL" ALIAS "QueryPerformanceFrequency" ( _
BYREF lpFrequency AS QUAD _ ' __out LARGE_INTEGER *lpFrequency
) AS LONG ' BOOL

' Note: Parameter declared AS ANY because it may accept both an OSVERSIONINFOA
' or OSVERSIONINFOEXA structure.
DECLARE FUNCTION GetVersionExA IMPORT "KERNEL32.DLL" ALIAS "GetVersionExA" ( _
BYREF lpVersionInformation AS ANY _ ' __inout LPOSVERSIONINFOA lpVersionInformation
) AS LONG ' BOOL

' Note: Parameter declared AS ANY because it may accept both an OSVERSIONINFOW
' or OSVERSIONINFOEXW structure.
DECLARE FUNCTION GetVersionExW IMPORT "KERNEL32.DLL" ALIAS "GetVersionExW" ( _
BYREF lpVersionInformation AS ANY _ ' __inout LPOSVERSIONINFOW lpVersionInformation
) AS LONG ' BOOL
В данном случае параметр передаётся BYREF, т.е. по ссылке. Это означает, что мы передаём, по сути, пустышку, которая вернётся обратно с запрашиваемой информацией.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Передаёте в функцию указатель на вашу структуру.
Не, ну структуры здесь вообще ни при чём. Я специально процитировал более широкий фрагмент, чтобы включить в него упоминания структур. Но это уже другой случай.
В нашем случае мы передаём и получаем обратно простое целое 64-битное число безо всяких структур.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Функция записывает данные в место, куда указывает указатель.
Следует ли мне понимать это таким образом, что запись:

C++ (Qt)
1
2
3
BOOL QueryPerformanceCounter(
  [out] LARGE_INTEGER *lpPerformanceCount
);
эквивалентна простой передаче целого 64-битного числа по ссылке?
Передача по ссылке это же и есть передача адреса, в котором хранится значение переменной. Ну то есть, по сути, это и есть указатель.

Пожалуй, это даже больше вопрос к The trick'у чем к вам, поскольку я пока ещё не особо знаком с тонкостями передачи параметров в FreeBasic'е, но точно знаю, что в Визуальном бейсике параметры передаются именно такими способами, которые я описал выше.
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
18.12.2022, 15:04
Цитата Сообщение от Power_Basic Посмотреть сообщение
эквивалентна простой передаче целого 64-битного числа по ссылке?
Да.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.12.2022, 15:04

Лабораторная работа на изучение основ работы с debug.exe
Ход работы 1. Запишите в отчет тему и цель. 2. В командной строке наберите debug. У вас должно появиться на экране окно отладчика с...

Лабораторная работа(Изучение основ.Одномерный и двумерный массивы.Процессы)
Ребята, помогите с задачами, дали написать задачи на VBA (ни разу с ним не имел дела), первые 3 задачи делал на python'e может быть Вы...

Проблема с Imagelist в PowerBasic 10
Я хочу в ресурс вставить одно растровое изображение. Затем с помощью графических команд вырезать кусочки в память и добавлять их в...

FreeBASIC
Заметил, что уже имеющиеся на форуме темы в разделах: - QBasic - Visual Basic - VBA - Pure Basic посещаются довольно часто –...

Уйти с freebasic
написал кое как программу с openCL на freebasic там моделируется взfвимодействие частиц через потенциал парного взаимодейстивия ...


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

Или воспользуйтесь поиском по форуму:
200
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru