Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443

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

10.10.2022, 22:17. Показов 22648. Ответов 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
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
08.12.2022, 22:21  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Замабувараев Посмотреть сообщение
Если у вас не открывается хотя бы эта ссылка, значит ваш провайдер блокирует:
КодВыделить код
http://www.xn--d1abkidrejo.xn--p1ai/files/0188.png
Так да, открылась картинка со скриншотом.

Я не уверен, что мой провайдер блокирует безобидную ссылку.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
08.12.2022, 22:27
Power_Basic, скопировать ссылку и вставить в адресную строку, без щелчков по ней, сработает?
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
09.12.2022, 13:54  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Power_Basic, скопировать ссылку и вставить в адресную строку, без щелчков по ней, сработает?
Да, таким способом сработало.
Скачался архив VSCodePortable.7z (423,73Мб).

А вот простым щелчком обе проблемные ссылки по-прежнему не работают, симптомы аналогичны вчерашним.

А вообще что представляет из себя этот контент? Это уже готовая настроенная IDE (для х64) со всеми отладчиками и прочими фичами или как?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.12.2022, 13:58
Цитата Сообщение от Power_Basic Посмотреть сообщение
Это уже готовая настроенная IDE (для х64) со всеми отладчиками и прочими фичами?
В архив входит:
Visual Studio Code с расширениями
компилятор
mingw64
Проект с программой подсчёта символов → откройте в студии каталог CharsCounter.
1
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
09.12.2022, 14:06  [ТС]
После распаковки заняло 2,25 Гб дискового пространства.

Добавлено через 4 минуты
Цитата Сообщение от Замабувараев Посмотреть сообщение
В архив входит:
Visual Studio Code с расширениями
компилятор
mingw64
Проект с программой подсчёта символов → откройте в студии каталог CharsCounter.
Спасибо, но, пожалуй, я сейчас уже не буду всем этим заниматься. У меня как раз всё очень хорошо наладилось с JK-IDE.
Но в качестве перспективы на будущее ваш материал будет у меня храниться.

В моих ближайших планах именно "Изучение основ FreeBasic в сравнении с PowerBasic" на основе простейших консольных программ. Заодно и пробелы в своих знаниях относительно особенностей передачи параметров в функции, работе с файлами, и прочее, буду постепенно заполнять. На простейших примерах это как раз самое оно.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,544
Записей в блоге: 1
09.12.2022, 14:07
Цитата Сообщение от Замабувараев Посмотреть сообщение
А когда надо выполнить «Убрать изменения» которые ломают программу или приводят к ошибке, как вы поступите? Ctrl+Z нажмёте? А если в нескольких файлах или изменения были сделаны после перезагрузки?
Ну, когда я учился, мои +-большие проекты лежали в папках с папками "стабильная версия", "версия с фичей А", "версия с фичей Б, которая не работает", "Попытка объединить версии с фичей А и с фичей В в новую стабильную версию"

Усугублялось тем, что у папок названия были отнюдь не настолько самодокументированными, как я тут их представляю.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
09.12.2022, 14:25  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ну, когда я учился, мои +-большие проекты лежали в папках с папками "стабильная версия", "версия с фичей А", "версия с фичей Б, которая не работает", "Попытка объединить версии с фичей А и с фичей В в новую стабильную версию"
Усугублялось тем, что у папок названия были отнюдь не настолько самодокументированными, как я тут их представляю.
Не настолько самодокументированными, но всё-таки тоже с кириллицей и с пробелами?
Мой компилятор (JK-IDE) их очень сильно недолюбливает, глючит
Приходится изголяться на инглише и без пробелов, что не всегда удобно. Как ни крути, а родной язык он в Африке родной язык

Добавлено через 6 минут
Виноват, что ошибочно назвал редактор компилятором.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.12.2022, 16:20
Цитата Сообщение от Power_Basic Посмотреть сообщение
Спасибо, но, пожалуй, я сейчас уже не буду всем этим заниматься
Откройте хотя бы тот проект.

Добавлено через 35 минут
Цитата Сообщение от Power_Basic Посмотреть сообщение
После распаковки заняло 2,25 Гб дискового пространства.
Это потому что она написана на яваскрипте, а тот работает в движке чромиум, который написан на Си Плас Плас.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
09.12.2022, 21:03  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Откройте хотя бы тот проект.
Ну мне это вот прямо сейчас совсем-совсем не нужно. Ну зачем мне лезть в GUI и в библиотеки , если я собираюсь надолго задержаться в консоли и поработать с простейшими встроенными командами. Информация должна быть востребована, вопросы должны созреть, тогда ответы ложатся на благодатную почву и хорошо усваиваются.

Вот вы мне лучше скажите, в чём может состоять ошибка в следующем консольном коде?

FreeBasic
PureBasic
1
2
3
4
5
6
7
8
  dim str_arr_1 ()       as string
  dim str_File_name_1    as string
  dim lng_File_number   as LONG     
  
  lng_File_number = freefile  
  OPEN str_File_name_1 FOR BINARY AS #lng_File_number
    GET #lng_File_number, , str_arr_1 ()          'error 24: Invalid data types, before '('
  close #lng_File_number
Текстовый файл str_File_name_1 реально существует и представляет из себя список ключевых слов FreeBasic'а по одному слову на каждой строке.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.12.2022, 21:49
Цитата Сообщение от Power_Basic Посмотреть сообщение
str_arr_1 ()
Нет конечно.
Если вы решили читать побайтово, а не построчно, вам необходимо подготовить буфер и передать его в GET. Например, так:
PureBasic
1
2
' Буфер из 9 символов + 1 для нулевого
Dim str_arr_1 As ZSstring *10
Или так:
PureBasic
1
2
' Буфер размером в длину файла
Dim str_arr_1 As String = String(LOF(lng_File_number), 0)
И тогда можно будет делать GET:
PureBasic
1
GET #lng_File_number, , str_arr_1
1
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
11.12.2022, 14:13  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Или так:

PureBasic
1
2
' Буфер размером в длину файла
Dim str_arr_1 As String = String(LOF(lng_File_number), 0)
И тогда можно будет делать GET:

PureBasic
1
GET #lng_File_number, , str_arr_1
Ну мы же таким образом вроде бы в строку str_arr_1 содержимое файла считываем, а требуется-то ведь считать в строковой массив str_arr_1 () .
Или это в принципе невозможно?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
11.12.2022, 15:25
Цитата Сообщение от Power_Basic Посмотреть сообщение
Или это в принципе невозможно?
Текущие ограничения не позволяют вам читать в массив строк.
1
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
11.12.2022, 18:23  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Текущие ограничения не позволяют вам читать в массив строк.
И даже строк в формате ZSTRING?
0
Эксперт по электронике
7155 / 3334 / 342
Регистрация: 28.10.2011
Сообщений: 13,151
Записей в блоге: 7
11.12.2022, 18:42
Думаю дело не в строках а в том что GET не предназначен для чтения в строковой массив. https://www.freebasic.net/wiki/KeyPgGetfileio
То есть GET не разделяет файл на строки с копированием каждой из них в свой элемент массива.
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
11.12.2022, 19:35
Цитата Сообщение от Power_Basic Посмотреть сообщение
И даже строк в формате ZSTRING?
Вы конечно можете сделать так:
PureBasic
1
2
3
4
5
6
7
Dim str_arr_1(9) As ZString * 10 = Any
Dim str_File_name_1 As String = "test.txt"
Dim lng_File_number As Long = FreeFile()
 
Open str_File_name_1 For Binary As #lng_File_number
Get #lng_File_number, , str_arr_1()
Close #lng_File_number
Но это вам всё равно не поможет, потому что в массив будет заполняться побайтово (как вы и просили), а не построчно.

Например ваш файл такой:
Code
1
2
3
123
456
789
И первый элемент в массиве str_arr_1 (индекс 0) будет заполнен на всю его длину:
Code
1
123\r\n456\r\n
(Здесь \r и \n это символы перевода строки и возврата каретки)
То есть в str_arr_1(0) будет не строка текста 123, а десять первых байт файла.

Это хорошо видно в отладчике:
1
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
11.12.2022, 19:52  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Думаю дело не в строках а в том что GET не предназначен для чтения в строковой массив. https://www.freebasic.net/wiki/KeyPgGetfileio
То есть GET не разделяет файл на строки с копированием каждой из них в свой элемент массива.
Ну в принципе, я так и понял, что с "FOR BINARY + GET" у меня ничего не получится, поэтому использовал связку "FOR INPUT + LINE INPUT". В такой редакции все строки из текстового файла считались в массив без проблем.

Но всё-таки с GET хотелось разобраться окончательно, чтобы не оказалось так, что есть возможность, которую я не использую.

Стало быть, числовые данные можно считывать из файла в массив, а строковые нельзя. Наверно, потому что каждое число занимает в памяти строго определённое количество байт в зависимости от типа, а строки (в общем случае) все разной длины.

FreeBasic
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
Sub get_array()
 
    Dim an_array(0 To 10-1) As Long ' array of Longs
 
    ' Read 10 Longs (10 * 4 = 40 bytes) from the file into an_array, using file number "f".
    Get #f, , an_array()
 
    ' print out result
    For i As Integer = 0 To 10-1
        Print an_array(i)
    Next
    Print
Добавлено через 4 минуты
Замабувараев, спасибо за подробное разъяснение.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
11.12.2022, 21:05
Цитата Сообщение от Power_Basic Посмотреть сообщение
Стало быть, числовые данные можно считывать из файла в массив, а строковые нельзя
В двоичном файле могут встречаться строки фиксированной длины, их можно читать.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
12.12.2022, 15:53  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
В двоичном файле могут встречаться строки фиксированной длины, их можно читать.
Да нет, двоичные файлы это уже совсем другая история. Сейчас у меня на повестке дня текстовые файлы приблизительно вот такого вида:

Кликните здесь для просмотра всего текста
OBJECT
OCT
OFFSETOF
ON ERROR
ON...GOSUB
ON...GOTO
ONCE
OPEN
OPEN COM
OPEN CONS
OPEN ERR
OPEN LPT
OPEN PIPE
OPEN SCRN
OPERATOR
OPTION()
OPTION BASE
OPTION BYVAL
OPTION DYNAMIC
OPTION ESCAPE


Короче говоря, я убедился, что без внешних библиотек в этом языке не обойтись, уж очень скуден набор встроенных функций.
В связи с этим, начал просматривать WinFBX (Windows Framework for FreeBASIC) и обнаружил, что там совершенно отсутствуют функции по манипуляциям с простыми массивами, но зато в изобилии присутствуют функции по работе с SAFEARRAY.
Что такое SAFEARRAY я знаю очень отдалённо, поскольку никогда не имел с ними дело. Знаю только, что это структура, которая описывает массив, что SAFEARRAY идеально подходит для COM-программирования и что они работают медленнее чем обычные массивы.
А вот насколько они медленней и если незначительно, тогда может быть имеет смысл полностью перейти на постоянное использование SAFEARRAY вместо обычных массивов?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
12.12.2022, 19:34
Цитата Сообщение от Power_Basic Посмотреть сообщение
отсутствуют функции по манипуляциям с простыми массивами
Каких функций нет?
Цитата Сообщение от Power_Basic Посмотреть сообщение
Что такое SAFEARRAY
Автоматизация предоставляет свой формат хранения массивов. Достоинство SAFEARRAY в том, что это универсальная структура и API, позволяющая хранить самоописываемые одномерные и многомерные массивы. «Самоописываемые» означает, что, имея ссылку на SAFEARRAY, можно получить полное описание хранящегося в нём массива: тип данных элемента, количество измерений и их верхние и нижние границы. SAFEARRAY создавались для облегчения передачи массивов между компонентами.
SAFEARRAY — это единственный допустимый тип массива для дуальных интерфейсов и интерфейсов Автоматизации. VB6 при создании Public-интерфейсов всегда использует SAFEARRAY и прекрасно их понимает сам.

Недостаток: не может занимать больше 2 гигабайт.

Вот пример как создать одномерный массив, заполнить случайным значением и распечатать:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include once "windows.bi"
#include once "win\ole2.bi"
#include once "win\oleauto.bi"
 
Sub PrintArray(ByVal psa As SAFEARRAY Ptr)
    Dim LowerBound As Long = Any
    SafeArrayGetLBound(psa, 1, @LowerBound)
    
    Dim UpperBound As Long = Any
    SafeArrayGetUBound(psa, 1, @UpperBound)
    
    Dim pVector As Long Ptr = Any
    Dim hrAccessData As HRESULT = SafeArrayAccessData(psa, @pVector)
    
    If SUCCEEDED(hrAccessData) Then
        
        For i As Integer = LowerBound To UpperBound
            Print pVector[i], 
        Next
        
        SafeArrayUnaccessData(psa)
    End If
    
End Sub
 
Const VectorLength As ULONG = 32
 
' Одномерный массив типа Long количеством 32
Dim psa As SAFEARRAY Ptr = SafeArrayCreateVector( _
    VT_I4, _
    0, _
    VectorLength _
)
 
If psa Then
    Dim pVector As Long Ptr = Any
    Dim hrAccessData As HRESULT = SafeArrayAccessData(psa, @pVector)
    
    If SUCCEEDED(hrAccessData) Then
        ' Заполнить массив случайными значениями
        For i As Integer = 0 To VectorLength - 1
            pVector[i] = CLng(Rnd() * 100)
        Next
        
        SafeArrayUnaccessData(psa)
        
        PrintArray(psa)
    End If
    
    SafeArrayDestroy(psa)
End If
1
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
12.12.2022, 20:15  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Цитата Сообщение от Power_Basic Посмотреть сообщение
отсутствуют функции по манипуляциям с простыми массивами
Каких функций нет?
Да практически вообще никаких нет

Давайте сравним набор ВСТРОЕННЫХ средств для работы с массивами с тем же PowerBasic'ом:

FreeBasic
Кликните здесь для просмотра всего текста
List of FreeBASIC keywords sorted by the function they perform.

Arrays

ARRAYLEN
Provides the length of an array given its array-name.

ARRAYSIZE
Provides the size of an array given its array-name.

ERASE
Statement to erase arrays

FBARRAY (array descriptor structure and access)
Pre-defined structure (UDT) and procedure declarations from the fbc-int/array.bi include file, usable to access the array descriptor data
fields.

LBOUND
Returns the lower bound of an array's dimension

REDIM
Defines or resizes a variable-length array

PRESERVE
Used with Redim to preserve contents will resizing an array

UBOUND
Returns the upper bound of an array's dimension


PowerBasic
Кликните здесь для просмотра всего текста
Array Operations

The following functions can be used to manipulate and manage arrays:

#DEBUG ERROR
Control generation of error checking code

#DIM
Specify if variables must be declared before use

ARRAY ASSIGN
Assign a number of values to successive elements of an array

ARRAY DELETE
Delete a single item from a given array

ARRAY INSERT
Insert a single item into a given array

ARRAY SCAN
Scan all or part of an array for a given value

ARRAY SORT
Sort all or part of a given array

ARRAYATTR
Return descriptive attributes of a given array

BIT CALC
Set or reset a bit in an implied bit-array

BIT
Return the value of a particular bit in an implied bit-array

BIT
Manipulate individual bits of an implied bit-array

DATA
Declare an array of constants to be read by READ$

DATACOUNT
Return the total count of the number of local data items

DIM
Declare and dimension arrays, scalar variables, and pointers

ERASE
Deallocate array memory

FILESCAN
Rapidly scan an open file, before loading into an array with GET

GET
Read a complete array from a binary file

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.

JOIN$
Return a string consisting of all of the strings in a string array

LBOUND
Return the lowest subscript of an array's specific dimension

LET
Assign a Variant to an array or an array to a Variant

LINE INPUT#
Read line(s) from a sequential file into a string variable or array

MAT
Matrix calculations on numeric arrays

PARSE
Parse a string and extract all delimited fields into an array

PRINT#
Write a complete array to a sequential file

PUT
Write a complete array to a binary file

READ$
Retrieve string data from a local DATA list

REDIM
Declare dynamic arrays, allocate, reallocate, deallocate memory

RESET
Set an array subscript or an entire array to zero or null/empty

UBOUND
Return the highest subscript of an array's specific dimension
Цитата Сообщение от Замабувараев Посмотреть сообщение
Недостаток: не может занимать больше 2 гигабайт.
Ну и ещё, наверняка, сильно в скорости работы проигрывает обычным массивам, да?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2022, 20:15

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
180
Ответ Создать тему
Опции темы

Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru